-
+
-
+
@@ -151,7 +157,8 @@
-
+
@@ -164,29 +171,43 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
- Hello {{name|abbreviate:25}}!
+
+ Hello {{name|abbreviate:25}}!
- We received a request to change your current email to {{ pending-email }}.
+
+ We received a request to change your current email to {{ pending-email }}.
- Click to the link below to confirm the change:
+
+ Click to the link below to confirm the change:
-
-
+
+
@@ -194,17 +215,24 @@
- If you received this email by mistake, please consider changing your password for security reasons.
+
+ If you received this email by mistake, please consider changing your password for security
+ reasons.
- Enjoy!
+
+ Enjoy!
- The Penpot team.
+
+ The Penpot team.
@@ -221,258 +249,10 @@
-
-
-
-
-
-
-
-
-
-
-
- Penpot is the first Open Source design and prototyping platform meant for cross-domain teams.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Penpot | Made with <3 and Open Source
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/backend/resources/app/email/includes/footer.html b/backend/resources/app/email/includes/footer.html
new file mode 100644
index 0000000000..4581ff37a6
--- /dev/null
+++ b/backend/resources/app/email/includes/footer.html
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Penpot is the first Open Source design and prototyping platform meant for
+ cross-domain teams.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Penpot | Made with <3 and Open Source
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/resources/app/email/invite-to-team/en.html b/backend/resources/app/email/invite-to-team/en.html
index 93763c106c..43bcbde67a 100644
--- a/backend/resources/app/email/invite-to-team/en.html
+++ b/backend/resources/app/email/invite-to-team/en.html
@@ -1,5 +1,6 @@
-
+
@@ -110,15 +111,20 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
-
+
-
+
@@ -151,7 +157,8 @@
-
+
@@ -164,24 +171,36 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
- Hello!
+
+ Hello!
- {{invited-by|abbreviate:25}} has invited you to join the team “{{ team|abbreviate:25 }}”.
+
+ {{invited-by|abbreviate:25}} has invited you to join the team “{{ team|abbreviate:25 }}”.
-
-
+
+
@@ -189,12 +208,16 @@
- Enjoy!
+
+ Enjoy!
- The Penpot team.
+
+ The Penpot team.
@@ -211,258 +234,10 @@
-
-
-
-
-
-
-
-
-
-
-
- Penpot is the first Open Source design and prototyping platform meant for cross-domain teams.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Penpot | Made with <3 and Open Source
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/backend/resources/app/email/join-team/en.html b/backend/resources/app/email/join-team/en.html
new file mode 100644
index 0000000000..1a59e70ce0
--- /dev/null
+++ b/backend/resources/app/email/join-team/en.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+ As you requested, {{invited-by|abbreviate:25}} has added you to the team “{{
+ team|abbreviate:25}}”.
+
+
+
+
+
+
+
+
+
+
+ Enjoy!
+
+
+
+
+
+ The Penpot team.
+
+
+
+
+
+
+
+
+
+
+
+ {% include "app/email/includes/footer.html" %}
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/resources/app/email/join-team/en.subj b/backend/resources/app/email/join-team/en.subj
new file mode 100644
index 0000000000..296ce140f6
--- /dev/null
+++ b/backend/resources/app/email/join-team/en.subj
@@ -0,0 +1 @@
+You have joined {{team}}
diff --git a/backend/resources/app/email/join-team/en.txt b/backend/resources/app/email/join-team/en.txt
new file mode 100644
index 0000000000..78cba680e0
--- /dev/null
+++ b/backend/resources/app/email/join-team/en.txt
@@ -0,0 +1,10 @@
+Hello!
+
+As you requested, {{invited-by|abbreviate:25}} has added you to the team “{{ team|abbreviate:25}}”.
+
+Go to the team with this link:
+
+{{ public-uri }}/#/dashboard/team/{{team-id}}
+
+Enjoy!
+The Penpot team.
diff --git a/backend/resources/app/email/password-recovery/en.html b/backend/resources/app/email/password-recovery/en.html
index ed18ef12cf..7770402b75 100644
--- a/backend/resources/app/email/password-recovery/en.html
+++ b/backend/resources/app/email/password-recovery/en.html
@@ -1,5 +1,6 @@
-
+
@@ -110,15 +111,20 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
-
+
-
+
@@ -151,7 +157,8 @@
-
+
@@ -164,24 +171,37 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
- Hello {{name|abbreviate:25}}!
+
+ Hello {{name|abbreviate:25}}!
- We have received a request to reset your password. Click the link below to choose a new one:
+
+ We have received a request to reset your password. Click the link below to choose a new one:
+
-
-
+
+
@@ -189,17 +209,24 @@
- If you received this email by mistake, you can safely ignore it. Your password won't be changed.
+
+ If you received this email by mistake, you can safely ignore it. Your password won't be changed.
+
- Enjoy!
+
+ Enjoy!
- The Penpot team.
+
+ The Penpot team.
@@ -216,258 +243,10 @@
-
-
-
-
-
-
-
-
-
-
-
- Penpot is the first Open Source design and prototyping platform meant for cross-domain teams.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Penpot | Made with <3 and Open Source
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/backend/resources/app/email/register/en.html b/backend/resources/app/email/register/en.html
index 3f058b184b..c5fb5bc3fb 100644
--- a/backend/resources/app/email/register/en.html
+++ b/backend/resources/app/email/register/en.html
@@ -1,5 +1,6 @@
-
+
@@ -110,15 +111,20 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
-
+
-
+
@@ -151,7 +157,8 @@
-
+
@@ -164,24 +171,37 @@
class="" style="vertical-align:top;width:600px;"
>
-
-
+
+
- Hello {{name|abbreviate:25}}!
+
+ 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!
+
+ Thanks for signing up for your Penpot account! Please verify your email using the link below and
+ get started building mockups and prototypes today!
-
-
+
+
@@ -189,12 +209,16 @@
- Enjoy!
+
+ Enjoy!
- The Penpot team.
+
+ The Penpot team.
@@ -211,258 +235,10 @@
-
-
-
-
-
-
-
-
-
-
-
- Penpot is the first Open Source design and prototyping platform meant for cross-domain teams.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Penpot | Made with <3 and Open Source
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/backend/resources/app/email/request-file-access-yourpenpot-view/en.html b/backend/resources/app/email/request-file-access-yourpenpot-view/en.html
new file mode 100644
index 0000000000..3146665f08
--- /dev/null
+++ b/backend/resources/app/email/request-file-access-yourpenpot-view/en.html
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+ {{requested-by|abbreviate:25}} ({{requested-by-email}}) wants to have view-only access to the
+ file named “{{file-name|abbreviate:25}}”.
+
+
+ Since this file is in your Penpot team, you can provide access by sending a view-only link.
+ This will allow {{requested-by|abbreviate:25}} to view the content without making any changes.
+
+
To proceed, please click the button below to generate and send the view-only link:
+
+
+
+
+
+
+
+
+
+
+
+
If you do not wish to grant access at this time, you can simply disregard this email.
+
Thank you
+
+
+
+
+
+
+ The Penpot team.
+
+
+
+
+
+
+
+
+
+
+
+ {% include "app/email/includes/footer.html" %}
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/resources/app/email/request-file-access-yourpenpot-view/en.subj b/backend/resources/app/email/request-file-access-yourpenpot-view/en.subj
new file mode 100644
index 0000000000..2e577c3e0e
--- /dev/null
+++ b/backend/resources/app/email/request-file-access-yourpenpot-view/en.subj
@@ -0,0 +1 @@
+Request View-Only Access to “{{file-name|abbreviate:25}}”
diff --git a/backend/resources/app/email/request-file-access-yourpenpot-view/en.txt b/backend/resources/app/email/request-file-access-yourpenpot-view/en.txt
new file mode 100644
index 0000000000..67eb6cedf7
--- /dev/null
+++ b/backend/resources/app/email/request-file-access-yourpenpot-view/en.txt
@@ -0,0 +1,17 @@
+Hello!
+
+{{requested-by|abbreviate:25}} ({{requested-by-email}}) wants to have view-only access to the file named “{{file-name|abbreviate:25}}”.
+
+Since this file is in your Penpot team, you can provide access by sending a view-only link. This will allow {{requested-by|abbreviate:25}} to view the content without making any changes.
+
+To proceed, please click the link below to generate and send the view-only link:
+
+{{ public-uri }}/#/view/{{file-id}}?page-id={{page-id}}§ion=interactions&index=0&share=true
+
+
+
+If you do not wish to grant access at this time, you can simply disregard this email.
+Thank you
+
+
+The Penpot team.
diff --git a/backend/resources/app/email/request-file-access-yourpenpot/en.html b/backend/resources/app/email/request-file-access-yourpenpot/en.html
new file mode 100644
index 0000000000..e32a1603fb
--- /dev/null
+++ b/backend/resources/app/email/request-file-access-yourpenpot/en.html
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+ {{requested-by|abbreviate:25}} ({{requested-by-email}}) has requested access to the file named
+ “{{file-name|abbreviate:25}}”.
+
+
+ Please note that the file is currently in Your Penpot 's team, so direct access cannot be
+ granted. However, you have two options to provide the requested access:
+
+
+
+ Move the File to Another Team:
+ You can move the file to another team and then give access to that team, inviting
+ {{requested-by|abbreviate:25}}.
+
+
+
+
+
+
+
+
+
+
+
+ Send a View-Only Link:
+ Alternatively, you can create and share a view-only link to the file. This will allow
+ {{requested-by|abbreviate:25}} to view the content without making any changes.
+ Click the button below to generate and send the link:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
If you do not wish to grant access at this time, you can simply disregard this email.
+
Thank you
+
+
+
+
+
+
+ The Penpot team.
+
+
+
+
+
+
+
+
+
+
+
+ {% include "app/email/includes/footer.html" %}
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/resources/app/email/request-file-access-yourpenpot/en.subj b/backend/resources/app/email/request-file-access-yourpenpot/en.subj
new file mode 100644
index 0000000000..d4a90980b3
--- /dev/null
+++ b/backend/resources/app/email/request-file-access-yourpenpot/en.subj
@@ -0,0 +1 @@
+Request Access to “{{file-name|abbreviate:25}}”
diff --git a/backend/resources/app/email/request-file-access-yourpenpot/en.txt b/backend/resources/app/email/request-file-access-yourpenpot/en.txt
new file mode 100644
index 0000000000..140cb04453
--- /dev/null
+++ b/backend/resources/app/email/request-file-access-yourpenpot/en.txt
@@ -0,0 +1,30 @@
+Hello!
+
+
+Hello!
+
+{{requested-by|abbreviate:25}} ({{requested-by-email}}) has requested access to the file named “{{file-name|abbreviate:25}}”.
+
+Please note that the file is currently in Your Penpot 's team, so direct access cannot be granted. However, you have two options to provide the requested access:
+
+- Move the File to Another Team:
+
+You can move the file to another team and then give access to that team, inviting {{requested-by|abbreviate:25}}.
+
+
+
+- Send a View-Only Link:
+
+Alternatively, you can create and share a view-only link to the file. This will allow {{requested-by|abbreviate:25}} to view the content without making any changes.
+
+Click the link below to generate and send the link:
+
+{{ public-uri }}/#/view/{{file-id}}?page-id={{page-id}}§ion=interactions&index=0&share=true
+
+
+
+If you do not wish to grant access at this time, you can simply disregard this email.
+Thank you
+
+
+The Penpot team.
diff --git a/backend/resources/app/email/request-file-access/en.html b/backend/resources/app/email/request-file-access/en.html
new file mode 100644
index 0000000000..370687e3f0
--- /dev/null
+++ b/backend/resources/app/email/request-file-access/en.html
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+ {{requested-by|abbreviate:25}} ({{requested-by-email}}) has requested access to the file named
+ “{{file-name|abbreviate:25}}”.
+
+
+ To provide this access, you have the following options:
+
+
+
+ Give Access to the “{{team-name|abbreviate:25}}” Team:
+ This will automatically include {{requested-by|abbreviate:25}} in the team, so the user
+ can see all the projects and files in it.
+ Click the button below to provide team access:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Send a View-Only Link:
+ Alternatively, you can create and share a view-only link to the file. This will allow
+ {{requested-by|abbreviate:25}} to view the content without making any changes.
+ Click the button below to generate and send the link:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
If you do not wish to grant access at this time, you can simply disregard this email.
+
Thank you
+
+
+
+
+
+
+ The Penpot team.
+
+
+
+
+
+
+
+
+
+
+
+ {% include "app/email/includes/footer.html" %}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/resources/app/email/request-file-access/en.subj b/backend/resources/app/email/request-file-access/en.subj
new file mode 100644
index 0000000000..d4a90980b3
--- /dev/null
+++ b/backend/resources/app/email/request-file-access/en.subj
@@ -0,0 +1 @@
+Request Access to “{{file-name|abbreviate:25}}”
diff --git a/backend/resources/app/email/request-file-access/en.txt b/backend/resources/app/email/request-file-access/en.txt
new file mode 100644
index 0000000000..d327e47803
--- /dev/null
+++ b/backend/resources/app/email/request-file-access/en.txt
@@ -0,0 +1,34 @@
+Hello!
+
+
+Hello!
+
+{{requested-by|abbreviate:25}} ({{requested-by-email}}) has requested access to the file named “{{file-name|abbreviate:25}}”.
+
+To provide this access, you have the following options:
+
+- Give Access to the “{{team-name|abbreviate:25}}” Team:
+
+This will automatically include {{requested-by|abbreviate:25}} in the team, so the user can see all the projects and files in it.
+
+Click the link below to provide team access:
+
+{{ public-uri }}/#/dashboard/team/{{team-id}}/members?invite-email={{requested-by-email|urlescape}}
+
+
+
+- Send a View-Only Link:
+
+Alternatively, you can create and share a view-only link to the file. This will allow {{requested-by|abbreviate:25}} to view the content without making any changes.
+
+Click the link below to generate and send the link:
+
+{{ public-uri }}/#/view/{{file-id}}?page-id={{page-id}}§ion=interactions&index=0&share=true
+
+
+
+If you do not wish to grant access at this time, you can simply disregard this email.
+Thank you
+
+
+The Penpot team.
diff --git a/backend/resources/app/email/request-team-access/en.html b/backend/resources/app/email/request-team-access/en.html
new file mode 100644
index 0000000000..54a7dcc2ab
--- /dev/null
+++ b/backend/resources/app/email/request-team-access/en.html
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+ {{requested-by|abbreviate:25}} ({{requested-by-email}}) wants to have access to the
+ “{{team-name|abbreviate:25}}” Team.
+
+
+ To provide access, please click the button below:
+
+
+
+
+
+
+
+
+
+
+
+
+
If you do not wish to grant access at this time, you can simply disregard this email.
+
Thank you
+
+
+
+
+
+
+ The Penpot team.
+
+
+
+
+
+
+
+
+
+
+
+ {% include "app/email/includes/footer.html" %}
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/resources/app/email/request-team-access/en.subj b/backend/resources/app/email/request-team-access/en.subj
new file mode 100644
index 0000000000..d455c082b4
--- /dev/null
+++ b/backend/resources/app/email/request-team-access/en.subj
@@ -0,0 +1 @@
+Request Access to “{{team-name|abbreviate:25}}”
diff --git a/backend/resources/app/email/request-team-access/en.txt b/backend/resources/app/email/request-team-access/en.txt
new file mode 100644
index 0000000000..225bc1e26f
--- /dev/null
+++ b/backend/resources/app/email/request-team-access/en.txt
@@ -0,0 +1,14 @@
+Hello!
+
+{{requested-by|abbreviate:25}} ({{requested-by-email}}) wants to have access to the “{{team-name|abbreviate:25}}” Team.
+
+To provide access, please click the link below:
+
+{{ public-uri }}/#/dashboard/team/{{team-id}}/members?invite-email={{requested-by-email|urlescape}}
+
+
+If you do not wish to grant access at this time, you can simply disregard this email.
+Thank you
+
+
+The Penpot team.
diff --git a/backend/resources/app/onboarding.edn b/backend/resources/app/onboarding.edn
index a6449f5fd8..5762f09b91 100644
--- a/backend/resources/app/onboarding.edn
+++ b/backend/resources/app/onboarding.edn
@@ -1,39 +1,42 @@
[{:id "wireframing-kit"
:name "Wireframe library"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/wireframing-kit.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/wireframing-kit.penpot"}
{:id "prototype-examples"
:name "Prototype template"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/prototype-examples.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/prototype-examples.penpot"}
{:id "plants-app"
:name "UI mockup example"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Plants-app.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/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"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/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"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/tutorial-for-beginners.penpot"}
{:id "lucide-icons"
:name "Lucide Icons"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Lucide-icons.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/Lucide-icons.penpot"}
{:id "font-awesome"
:name "Font Awesome"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Font-Awesome.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/FontAwesome.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"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/Black-&-White-Mobile-Templates.penpot"}
{:id "avataaars"
:name "Avataaars"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Avataaars-by-Pablo-Stanley.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/Avataaars-by-Pablo-Stanley.penpot"}
{:id "ux-notes"
:name "UX Notes"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/UX-Notes.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/UX-Notes.penpot"}
{:id "whiteboarding-kit"
:name "Whiteboarding Kit"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Whiteboarding-mapping-kit.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/Whiteboarding-mapping-kit.penpot"}
{:id "open-color-scheme"
:name "Open Color Scheme"
- :file-uri "https://github.com/penpot/penpot-files/raw/binary-files/Open-Color-Scheme.penpot"}
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/Open%20Color%20Scheme%20(v1.9.1).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/main/Flex%20Layout%20Playground.penpot"}
+ {:id "welcome"
+ :name "Welcome"
+ :file-uri "https://github.com/penpot/penpot-files/raw/main/welcome.penpot"}]
diff --git a/backend/scripts/repl b/backend/scripts/repl
index 84e9797076..d5c2bd1660 100755
--- a/backend/scripts/repl
+++ b/backend/scripts/repl
@@ -23,10 +23,12 @@ export PENPOT_FLAGS="\
enable-urepl-server \
enable-rpc-climit \
enable-rpc-rlimit \
+ enable-quotes \
enable-soft-rpc-rlimit \
- enable-file-snapshot \
+ enable-auto-file-snapshot \
enable-webhooks \
enable-access-tokens \
+ enable-tiered-file-data-storage \
enable-file-validation \
enable-file-schema-validation \
disable-feature-design-tokens";
@@ -63,9 +65,10 @@ mc mb penpot-s3/penpot -p -q
export AWS_ACCESS_KEY_ID=penpot-devenv
export AWS_SECRET_ACCESS_KEY=penpot-devenv
-export PENPOT_ASSETS_STORAGE_BACKEND=assets-s3
-export PENPOT_STORAGE_ASSETS_S3_ENDPOINT=http://minio:9000
-export PENPOT_STORAGE_ASSETS_S3_BUCKET=penpot
+
+export PENPOT_OBJECTS_STORAGE_BACKEND=s3
+export PENPOT_OBJECTS_STORAGE_S3_ENDPOINT=http://minio:9000
+export PENPOT_OBJECTS_STORAGE_S3_BUCKET=penpot
export OPTIONS="
-A:jmx-remote -A:dev \
diff --git a/backend/scripts/start-dev b/backend/scripts/start-dev
index e21a0530a9..bb9e23acaa 100755
--- a/backend/scripts/start-dev
+++ b/backend/scripts/start-dev
@@ -17,8 +17,10 @@ export PENPOT_FLAGS="\
disable-secure-session-cookies \
enable-rpc-climit \
enable-smtp \
+ enable-quotes \
enable-file-snapshot \
enable-access-tokens \
+ enable-tiered-file-data-storage \
enable-file-validation \
enable-file-schema-validation \
disable-feature-design-tokens";
@@ -57,9 +59,9 @@ mc mb penpot-s3/penpot -p -q
export AWS_ACCESS_KEY_ID=penpot-devenv
export AWS_SECRET_ACCESS_KEY=penpot-devenv
-export PENPOT_ASSETS_STORAGE_BACKEND=assets-s3
-export PENPOT_STORAGE_ASSETS_S3_ENDPOINT=http://minio:9000
-export PENPOT_STORAGE_ASSETS_S3_BUCKET=penpot
+export PENPOT_OBJECTS_STORAGE_BACKEND=s3
+export PENPOT_OBJECTS_STORAGE_S3_ENDPOINT=http://minio:9000
+export PENPOT_OBJECTS_STORAGE_S3_BUCKET=penpot
entrypoint=${1:-app.main};
diff --git a/backend/src/app/auth/oidc.clj b/backend/src/app/auth/oidc.clj
index 824f8a9373..049b95c176 100644
--- a/backend/src/app/auth/oidc.clj
+++ b/backend/src/app/auth/oidc.clj
@@ -567,7 +567,6 @@
(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)})]
@@ -592,7 +591,8 @@
:else
(let [info (assoc info :is-active (provider-has-email-verified? cfg info))]
- (if (contains? cf/flags :registration)
+ (if (or (contains? cf/flags :registration)
+ (contains? cf/flags :oidc-registration))
(redirect-to-register cfg info request)
(redirect-with-error "registration-disabled")))))
diff --git a/backend/src/app/binfile/v1.clj b/backend/src/app/binfile/v1.clj
index 3e1c93aa01..87f02d391a 100644
--- a/backend/src/app/binfile/v1.clj
+++ b/backend/src/app/binfile/v1.clj
@@ -22,7 +22,6 @@
[app.db :as db]
[app.loggers.audit :as-alias audit]
[app.loggers.webhooks :as-alias webhooks]
- [app.media :as media]
[app.rpc :as-alias rpc]
[app.rpc.commands.teams :as teams]
[app.rpc.doc :as-alias doc]
@@ -403,9 +402,9 @@
(write-obj! output rels)))
(defmethod write-section :v1/sobjects
- [{:keys [::sto/storage ::output]}]
+ [{:keys [::output] :as cfg}]
(let [sids (-> bfc/*state* deref :sids)
- storage (media/configure-assets-storage storage)]
+ storage (sto/resolve cfg)]
(l/dbg :hint "found sobjects"
:items (count sids)
@@ -620,8 +619,8 @@
::l/sync? true))))))
(defmethod read-section :v1/sobjects
- [{:keys [::sto/storage ::db/conn ::input ::bfc/overwrite ::bfc/timestamp]}]
- (let [storage (media/configure-assets-storage storage)
+ [{:keys [::db/conn ::input ::bfc/overwrite ::bfc/timestamp] :as cfg}]
+ (let [storage (sto/resolve cfg)
ids (read-obj! input)
thumb? (into #{} (map :media-id) (:thumbnails @bfc/*state*))]
diff --git a/backend/src/app/binfile/v2.clj b/backend/src/app/binfile/v2.clj
index 1a5f103425..bef327acc1 100644
--- a/backend/src/app/binfile/v2.clj
+++ b/backend/src/app/binfile/v2.clj
@@ -20,7 +20,6 @@
[app.db.sql :as sql]
[app.loggers.audit :as-alias audit]
[app.loggers.webhooks :as-alias webhooks]
- [app.media :as media]
[app.storage :as sto]
[app.storage.tmp :as tmp]
[app.util.events :as events]
@@ -347,9 +346,7 @@
[cfg team-id]
(let [id (uuid/next)
tp (dt/tpoint)
-
- cfg (-> (create-database cfg)
- (update ::sto/storage media/configure-assets-storage))]
+ cfg (create-database cfg)]
(l/inf :hint "start"
:operation "export"
@@ -390,7 +387,6 @@
tp (dt/tpoint)
cfg (-> (create-database cfg path)
- (update ::sto/storage media/configure-assets-storage)
(assoc ::bfc/timestamp (dt/now)))]
(l/inf :hint "start"
diff --git a/backend/src/app/config.clj b/backend/src/app/config.clj
index d1315d48bb..a06f52950c 100644
--- a/backend/src/app/config.clj
+++ b/backend/src/app/config.clj
@@ -42,9 +42,9 @@
:rpc-rlimit-config "resources/rlimit.edn"
:rpc-climit-config "resources/climit.edn"
- :file-snapshot-total 10
- :file-snapshot-every 5
- :file-snapshot-timeout "3h"
+ :auto-file-snapshot-total 10
+ :auto-file-snapshot-every 5
+ :auto-file-snapshot-timeout "3h"
:public-uri "http://localhost:3449"
:host "localhost"
@@ -52,8 +52,8 @@
:redis-uri "redis://redis/0"
- :assets-storage-backend :assets-fs
- :storage-assets-fs-directory "assets"
+ :objects-storage-backend "fs"
+ :objects-storage-fs-directory "assets"
:assets-path "/internal/assets/"
:smtp-default-reply-to "Penpot "
@@ -91,25 +91,25 @@
[:public-uri {:optional false} :string]
[:host {:optional false} :string]
- [:http-server-port {:optional true} :int]
+ [:http-server-port {:optional true} ::sm/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]
+ [:http-server-max-body-size {:optional true} ::sm/int]
+ [:http-server-max-multipart-body-size {:optional true} ::sm/int]
+ [:http-server-io-threads {:optional true} ::sm/int]
+ [:http-server-worker-threads {:optional true} ::sm/int]
[:telemetry-uri {:optional true} :string]
- [:telemetry-with-taiga {:optional true} :boolean] ;; DELETE
+ [:telemetry-with-taiga {:optional true} ::sm/boolean] ;; DELETE
- [:file-snapshot-total {:optional true} :int]
- [:file-snapshot-every {:optional true} :int]
- [:file-snapshot-timeout {:optional true} ::dt/duration]
+ [:auto-file-snapshot-total {:optional true} ::sm/int]
+ [:auto-file-snapshot-every {:optional true} ::sm/int]
+ [:auto-file-snapshot-timeout {:optional true} ::dt/duration]
- [:media-max-file-size {:optional true} :int]
+ [:media-max-file-size {:optional true} ::sm/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]
+ [:telemetry-enabled {:optional true} ::sm/boolean]
+ [:default-blob-version {:optional true} ::sm/int]
+ [:allow-demo-users {:optional true} ::sm/boolean]
[:error-report-webhook {:optional true} :string]
[:user-feedback-destination {:optional true} :string]
@@ -118,30 +118,30 @@
[:rpc-climit-config {:optional true} ::fs/path]
[:audit-log-archive-uri {:optional true} :string]
- [:audit-log-http-handler-concurrency {:optional true} :int]
+ [:audit-log-http-handler-concurrency {:optional true} ::sm/int]
- [: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]
+ [:default-executor-parallelism {:optional true} ::sm/int] ;; REVIEW
+ [:scheduled-executor-parallelism {:optional true} ::sm/int] ;; REVIEW
+ [:worker-default-parallelism {:optional true} ::sm/int]
+ [:worker-webhook-parallelism {:optional true} ::sm/int]
[: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]
+ [:database-readonly {:optional true} ::sm/boolean]
+ [:database-min-pool-size {:optional true} ::sm/int]
+ [:database-max-pool-size {:optional true} ::sm/int]
- [: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]
+ [:quotes-teams-per-profile {:optional true} ::sm/int]
+ [:quotes-access-tokens-per-profile {:optional true} ::sm/int]
+ [:quotes-projects-per-team {:optional true} ::sm/int]
+ [:quotes-invitations-per-team {:optional true} ::sm/int]
+ [:quotes-profiles-per-team {:optional true} ::sm/int]
+ [:quotes-files-per-project {:optional true} ::sm/int]
+ [:quotes-files-per-team {:optional true} ::sm/int]
+ [:quotes-font-variants-per-team {:optional true} ::sm/int]
+ [:quotes-comment-threads-per-file {:optional true} ::sm/int]
+ [:quotes-comments-per-file {:optional true} ::sm/int]
[:auth-data-cookie-domain {:optional true} :string]
[:auth-token-cookie-name {:optional true} :string]
@@ -178,15 +178,15 @@
[: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-port {:optional true} ::sm/int]
+ [:ldap-ssl {:optional true} ::sm/boolean]
+ [:ldap-starttls {:optional true} ::sm/boolean]
[:ldap-user-query {:optional true} :string]
[:profile-bounce-max-age {:optional true} ::dt/duration]
- [:profile-bounce-threshold {:optional true} :int]
+ [:profile-bounce-threshold {:optional true} ::sm/int]
[:profile-complaint-max-age {:optional true} ::dt/duration]
- [:profile-complaint-threshold {:optional true} :int]
+ [:profile-complaint-threshold {:optional true} ::sm/int]
[:redis-uri {:optional true} :string]
@@ -197,26 +197,34 @@
[: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-port {:optional true} ::sm/int]
+ [:smtp-ssl {:optional true} ::sm/boolean]
+ [:smtp-tls {:optional true} ::sm/boolean]
[:smtp-username {:optional true} [:maybe :string]]
[:urepl-host {:optional true} :string]
- [:urepl-port {:optional true} :int]
+ [:urepl-port {:optional true} ::sm/int]
[:prepl-host {:optional true} :string]
- [:prepl-port {:optional true} :int]
+ [:prepl-port {:optional true} ::sm/int]
- [:assets-storage-backend {:optional true} :keyword]
[:media-directory {:optional true} :string] ;; REVIEW
[:media-uri {:optional true} :string]
[:assets-path {:optional true} :string]
+ ;; Legacy, will be removed in 2.5
+ [:assets-storage-backend {:optional true} :keyword]
[: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]]))
+ [:storage-assets-s3-io-threads {:optional true} ::sm/int]
+
+ [:objects-storage-backend {:optional true} :keyword]
+ [:objects-storage-fs-directory {:optional true} :string]
+ [:objects-storage-s3-bucket {:optional true} :string]
+ [:objects-storage-s3-region {:optional true} :keyword]
+ [:objects-storage-s3-endpoint {:optional true} :string]
+ [:objects-storage-s3-io-threads {:optional true} ::sm/int]]))
(def default-flags
[:enable-backend-api-doc
@@ -245,7 +253,7 @@
env)))
(def decode-config
- (sm/decoder schema:config sm/default-transformer))
+ (sm/decoder schema:config sm/string-transformer))
(def validate-config
(sm/validator schema:config))
diff --git a/backend/src/app/db.clj b/backend/src/app/db.clj
index 097ada50a1..2df9a53b11 100644
--- a/backend/src/app/db.clj
+++ b/backend/src/app/db.clj
@@ -153,7 +153,7 @@
(s/def ::conn some?)
(s/def ::nilable-pool (s/nilable ::pool))
(s/def ::pool pool?)
-(s/def ::pool-or-conn some?)
+(s/def ::connectable some?)
(defn closed?
[pool]
@@ -407,6 +407,7 @@
(ex/raise :type :not-found
:code :object-not-found
:table table
+ :params params
:hint "database object not found"))
row))
diff --git a/backend/src/app/email.clj b/backend/src/app/email.clj
index 03228e45bc..eee5ec42ac 100644
--- a/backend/src/app/email.clj
+++ b/backend/src/app/email.clj
@@ -17,6 +17,8 @@
[app.db :as db]
[app.db.sql :as sql]
[app.email.invite-to-team :as-alias email.invite-to-team]
+ [app.email.join-team :as-alias email.join-team]
+ [app.email.request-team-access :as-alias email.request-team-access]
[app.metrics :as mtx]
[app.util.template :as tmpl]
[app.worker :as wrk]
@@ -155,10 +157,10 @@
[:map
[::username {:optional true} :string]
[::password {:optional true} :string]
- [::tls {:optional true} :boolean]
- [::ssl {:optional true} :boolean]
+ [::tls {:optional true} ::sm/boolean]
+ [::ssl {:optional true} ::sm/boolean]
[::host {:optional true} :string]
- [::port {:optional true} :int]
+ [::port {:optional true} ::sm/int]
[::default-from {:optional true} :string]
[::default-reply-to {:optional true} :string]])
@@ -304,6 +306,8 @@
(let [session (create-smtp-session cfg)]
(with-open [transport (.getTransport session (if (::ssl cfg) "smtps" "smtp"))]
(.connect ^Transport transport
+ ^String (::host cfg)
+ ^String (::port cfg)
^String (::username cfg)
^String (::password cfg))
@@ -311,15 +315,13 @@
(l/dbg :hint "sendmail"
:id (:id params)
:to (:to params)
- :subject (str/trim (:subject params))
- :body (str/join "," (map :type (:body params))))
+ :subject (str/trim (:subject params)))
(.sendMessage ^Transport transport
^MimeMessage message
(.getAllRecipients message))))))
- (when (or (contains? cf/flags :log-emails)
- (not (contains? cf/flags :smtp)))
+ (when (contains? cf/flags :log-emails)
(send-to-logger! cfg params))))
(defmethod ig/pre-init-spec ::handler [_]
@@ -397,6 +399,79 @@
"Teams member invitation email."
(template-factory ::invite-to-team))
+
+(s/def ::email.join-team/invited-by ::us/string)
+(s/def ::email.join-team/team ::us/string)
+(s/def ::email.join-team/team-id ::us/uuid)
+
+(s/def ::join-team
+ (s/keys :req-un [::email.join-team/invited-by
+ ::email.join-team/team-id
+ ::email.join-team/team]))
+
+(def join-team
+ "Teams member joined after request email."
+ (template-factory ::join-team))
+
+(s/def ::email.request-team-access/requested-by ::us/string)
+(s/def ::email.request-team-access/requested-by-email ::us/string)
+(s/def ::email.request-team-access/team-name ::us/string)
+(s/def ::email.request-team-access/team-id ::us/uuid)
+(s/def ::email.request-team-access/file-name ::us/string)
+(s/def ::email.request-team-access/file-id ::us/uuid)
+(s/def ::email.request-team-access/page-id ::us/uuid)
+
+(s/def ::request-file-access
+ (s/keys :req-un [::email.request-team-access/requested-by
+ ::email.request-team-access/requested-by-email
+ ::email.request-team-access/team-name
+ ::email.request-team-access/team-id
+ ::email.request-team-access/file-name
+ ::email.request-team-access/file-id
+ ::email.request-team-access/page-id]))
+
+(def request-file-access
+ "File access request email."
+ (template-factory ::request-file-access))
+
+
+(s/def ::request-file-access-yourpenpot
+ (s/keys :req-un [::email.request-team-access/requested-by
+ ::email.request-team-access/requested-by-email
+ ::email.request-team-access/team-name
+ ::email.request-team-access/team-id
+ ::email.request-team-access/file-name
+ ::email.request-team-access/file-id
+ ::email.request-team-access/page-id]))
+
+(def request-file-access-yourpenpot
+ "File access on Your Penpot request email."
+ (template-factory ::request-file-access-yourpenpot))
+
+(s/def ::request-file-access-yourpenpot-view
+ (s/keys :req-un [::email.request-team-access/requested-by
+ ::email.request-team-access/requested-by-email
+ ::email.request-team-access/team-name
+ ::email.request-team-access/team-id
+ ::email.request-team-access/file-name
+ ::email.request-team-access/file-id
+ ::email.request-team-access/page-id]))
+
+(def request-file-access-yourpenpot-view
+ "File access on Your Penpot view mode request email."
+ (template-factory ::request-file-access-yourpenpot-view))
+
+(s/def ::request-team-access
+ (s/keys :req-un [::email.request-team-access/requested-by
+ ::email.request-team-access/requested-by-email
+ ::email.request-team-access/team-name
+ ::email.request-team-access/team-id]))
+
+(def request-team-access
+ "Team access request email."
+ (template-factory ::request-team-access))
+
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BOUNCE/COMPLAINS HELPERS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/backend/src/app/features/components_v2.clj b/backend/src/app/features/components_v2.clj
index 47dc3fad00..5415e70d42 100644
--- a/backend/src/app/features/components_v2.clj
+++ b/backend/src/app/features/components_v2.clj
@@ -62,6 +62,7 @@
[datoteka.io :as io]
[promesa.util :as pu]))
+
(def ^:dynamic *stats*
"A dynamic var for setting up state for collect stats globally."
nil)
@@ -113,7 +114,7 @@
(sm/lazy-validator ::ctc/color))
(def valid-fill?
- (sm/lazy-validator ::cts/fill))
+ (sm/lazy-validator cts/schema:fill))
(def valid-stroke?
(sm/lazy-validator ::cts/stroke))
@@ -134,10 +135,10 @@
(sm/lazy-validator ::ctc/rgb-color))
(def valid-shape-points?
- (sm/lazy-validator ::cts/points))
+ (sm/lazy-validator cts/schema:points))
(def valid-image-attrs?
- (sm/lazy-validator ::cts/image-attrs))
+ (sm/lazy-validator cts/schema:image-attrs))
(def valid-column-grid-params?
(sm/lazy-validator ::ctg/column-params))
@@ -1742,7 +1743,7 @@
:validate validate?
:skip-on-graphic-error skip-on-graphic-error?)
- (db/tx-run! (update system ::sto/storage media/configure-assets-storage)
+ (db/tx-run! system
(fn [system]
(binding [*system* system]
(when (string? label)
diff --git a/backend/src/app/features/fdata.clj b/backend/src/app/features/fdata.clj
index baa63f6936..1d9a649f3d 100644
--- a/backend/src/app/features/fdata.clj
+++ b/backend/src/app/features/fdata.clj
@@ -12,10 +12,19 @@
[app.common.logging :as l]
[app.db :as db]
[app.db.sql :as-alias sql]
+ [app.storage :as sto]
[app.util.blob :as blob]
[app.util.objects-map :as omap]
[app.util.pointer-map :as pmap]))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; OFFLOAD
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defn offloaded?
+ [file]
+ (= "objects-storage" (:data-backend file)))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; OBJECTS-MAP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -55,31 +64,45 @@
;; POINTER-MAP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defn get-file-data
+ "Get file data given a file instance."
+ [system file]
+ (if (offloaded? file)
+ (let [storage (sto/resolve system ::db/reuse-conn true)]
+ (->> (sto/get-object storage (:data-ref-id file))
+ (sto/get-object-bytes storage)))
+ (:data file)))
+
+(defn resolve-file-data
+ [system file]
+ (let [data (get-file-data system file)]
+ (assoc file :data data)))
+
(defn load-pointer
"A database loader pointer helper"
[system file-id id]
- (let [{:keys [content]} (db/get system :file-data-fragment
- {:id id :file-id file-id}
- {::sql/columns [:content]
- ::db/check-deleted false})]
+ (let [fragment (db/get* system :file-data-fragment
+ {:id id :file-id file-id}
+ {::sql/columns [:data :data-backend :data-ref-id :id]})]
(l/trc :hint "load pointer"
:file-id (str file-id)
:id (str id)
- :found (some? content))
+ :found (some? fragment))
- (when-not content
+ (when-not fragment
(ex/raise :type :internal
:code :fragment-not-found
:hint "fragment not found"
:file-id file-id
:fragment-id id))
- (blob/decode content)))
+ (let [data (get-file-data system fragment)]
+ ;; FIXME: conditional thread scheduling for decoding big objects
+ (blob/decode data))))
(defn persist-pointers!
- "Given a database connection and the final file-id, persist all
- pointers to the underlying storage (the database)."
+ "Persist all currently tracked pointer objects"
[system file-id]
(let [conn (db/get-connection system)]
(doseq [[id item] @pmap/*tracked*]
@@ -89,7 +112,7 @@
(db/insert! conn :file-data-fragment
{:id id
:file-id file-id
- :content content}))))))
+ :data content}))))))
(defn process-pointers
"Apply a function to all pointers on the file. Usuly used for
diff --git a/backend/src/app/http/assets.clj b/backend/src/app/http/assets.clj
index 06c3318490..9a8e69dbf2 100644
--- a/backend/src/app/http/assets.clj
+++ b/backend/src/app/http/assets.clj
@@ -57,11 +57,10 @@
(defn- serve-object
"Helper function that returns the appropriate response depending on
the storage object backend type."
- [{:keys [::sto/storage] :as cfg} {:keys [backend] :as obj}]
- (let [backend (sto/resolve-backend storage backend)]
- (case (::sto/type backend)
- :s3 (serve-object-from-s3 cfg obj)
- :fs (serve-object-from-fs cfg obj))))
+ [cfg {:keys [backend] :as obj}]
+ (case backend
+ (:s3 :assets-s3) (serve-object-from-s3 cfg obj)
+ (:fs :assets-fs) (serve-object-from-fs cfg obj)))
(defn objects-handler
"Handler that servers storage objects by id."
diff --git a/backend/src/app/http/middleware.clj b/backend/src/app/http/middleware.clj
index f70e102adf..de098ad105 100644
--- a/backend/src/app/http/middleware.clj
+++ b/backend/src/app/http/middleware.clj
@@ -7,11 +7,13 @@
(ns app.http.middleware
(:require
[app.common.exceptions :as ex]
+ [app.common.json :as json]
[app.common.logging :as l]
+ [app.common.schema :as-alias sm]
[app.common.transit :as t]
[app.config :as cf]
[app.http.errors :as errors]
- [clojure.data.json :as json]
+ [app.util.pointer-map :as pmap]
[cuerdas.core :as str]
[ring.request :as rreq]
[ring.response :as rres]
@@ -39,16 +41,6 @@
(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]
(letfn [(process-request [request]
@@ -63,7 +55,7 @@
(str/starts-with? header "application/json")
(with-open [reader (get-reader request)]
- (let [params (json/read reader :key-fn read-json-key)]
+ (let [params (json/read reader :key-fn json/read-kebab-key)]
(-> request
(assoc :body-params params)
(update :params merge params))))
@@ -113,6 +105,12 @@
(def ^:const buffer-size (:xnio/buffer-size yt/defaults))
+(defn- write-json-value
+ [_ val]
+ (if (pmap/pointer-map? val)
+ [(pmap/get-id val) (meta val)]
+ val))
+
(defn wrap-format-response
[handler]
(letfn [(transit-streamable-body [data opts]
@@ -134,10 +132,11 @@
(reify rres/StreamableResponseBody
(-write-body-to-stream [_ _ output-stream]
(try
- (with-open [^OutputStream bos (buffered-output-stream output-stream buffer-size)]
- (with-open [^java.io.OutputStreamWriter writer (java.io.OutputStreamWriter. bos)]
- (json/write data writer :key-fn write-json-key)))
-
+ (let [encode (or (-> data meta :encode/json) identity)
+ data (encode data)]
+ (with-open [^OutputStream bos (buffered-output-stream output-stream buffer-size)]
+ (with-open [^java.io.OutputStreamWriter writer (java.io.OutputStreamWriter. bos)]
+ (json/write writer data :key-fn json/write-camel-key :value-fn write-json-value))))
(catch java.io.IOException _)
(catch Throwable cause
(binding [l/*context* {:value data}]
diff --git a/backend/src/app/http/sse.clj b/backend/src/app/http/sse.clj
index 3da84322cb..e3f1bebc33 100644
--- a/backend/src/app/http/sse.clj
+++ b/backend/src/app/http/sse.clj
@@ -60,6 +60,9 @@
(try
(let [result (handler)]
(events/tap :end result))
+
+ (catch java.io.EOFException cause
+ (events/tap :error (errors/handle' cause request)))
(catch Throwable cause
(l/err :hint "unexpected error on processing sse response"
:cause cause)
diff --git a/backend/src/app/http/websocket.clj b/backend/src/app/http/websocket.clj
index 864de29879..bac7eecf60 100644
--- a/backend/src/app/http/websocket.clj
+++ b/backend/src/app/http/websocket.clj
@@ -278,18 +278,18 @@
:inc 1)
message)
-(def ^:private schema:params
- (sm/define
- [:map {:title "params"}
- [:session-id ::sm/uuid]]))
-
(defn- http-handler
[cfg {:keys [params ::session/profile-id] :as request}]
- (let [{:keys [session-id]} (sm/conform! schema:params params)]
+ (let [session-id (some-> params :session-id sm/parse-uuid)]
+ (when-not (uuid? session-id)
+ (ex/raise :type :validation
+ :code :missing-session-id
+ :hint "missing or invalid session-id found"))
+
(cond
(not profile-id)
(ex/raise :type :authentication
- :hint "Authentication required.")
+ :hint "authentication required")
;; WORKAROUND: we use the adapter specific predicate for
;; performance reasons; for now, the ring default impl for
diff --git a/backend/src/app/loggers/audit.clj b/backend/src/app/loggers/audit.clj
index c0ca61da90..6b1e7ea28f 100644
--- a/backend/src/app/loggers/audit.clj
+++ b/backend/src/app/loggers/audit.clj
@@ -263,6 +263,8 @@
(assoc ::wrk/dedupe dedupe?)
(assoc ::wrk/label label)
(assoc ::wrk/params (-> params
+ (dissoc :source)
+ (dissoc :context)
(dissoc :ip-addr)
(dissoc :type)))))))
params))
diff --git a/backend/src/app/loggers/webhooks.clj b/backend/src/app/loggers/webhooks.clj
index cd6385429f..4bcd2b0094 100644
--- a/backend/src/app/loggers/webhooks.clj
+++ b/backend/src/app/loggers/webhooks.clj
@@ -66,21 +66,18 @@
(defmethod ig/init-key ::process-event-handler
[_ cfg]
(fn [{:keys [props] :as task}]
- (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/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}))))))))))
+ (l/dbg :hint "process webhook event" :name (:name props))
+ (when-let [items (lookup-webhooks cfg props)]
+ (l/trc :hint "webhooks found for event" :total (count items))
+ (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 props
+ :config item})))))))))
;; --- RUN
(declare interpret-exception)
@@ -138,7 +135,7 @@
(l/dbg :hint "run webhook"
:event-name (:name event)
- :webhook-id (:id whook)
+ :webhook-id (str (:id whook))
:webhook-uri (:uri whook)
:webhook-mtype (:mtype whook))
diff --git a/backend/src/app/main.clj b/backend/src/app/main.clj
index ee58a21b5b..314732d9fc 100644
--- a/backend/src/app/main.clj
+++ b/backend/src/app/main.clj
@@ -344,6 +344,8 @@
{:sendmail (ig/ref ::email/handler)
:objects-gc (ig/ref :app.tasks.objects-gc/handler)
:file-gc (ig/ref :app.tasks.file-gc/handler)
+ :file-gc-scheduler (ig/ref :app.tasks.file-gc-scheduler/handler)
+ :offload-file-data (ig/ref :app.tasks.offload-file-data/handler)
:file-xlog-gc (ig/ref :app.tasks.file-xlog-gc/handler)
:tasks-gc (ig/ref :app.tasks.tasks-gc/handler)
:telemetry (ig/ref :app.tasks.telemetry/handler)
@@ -394,9 +396,17 @@
{::db/pool (ig/ref ::db/pool)
::sto/storage (ig/ref ::sto/storage)}
- :app.tasks.file-xlog-gc/handler
+ :app.tasks.file-gc-scheduler/handler
{::db/pool (ig/ref ::db/pool)}
+ :app.tasks.offload-file-data/handler
+ {::db/pool (ig/ref ::db/pool)
+ ::sto/storage (ig/ref ::sto/storage)}
+
+ :app.tasks.file-xlog-gc/handler
+ {::db/pool (ig/ref ::db/pool)
+ ::sto/storage (ig/ref ::sto/storage)}
+
:app.tasks.telemetry/handler
{::db/pool (ig/ref ::db/pool)
::http.client/client (ig/ref ::http.client/client)
@@ -448,17 +458,28 @@
::sto/storage
{::db/pool (ig/ref ::db/pool)
::sto/backends
- {:assets-s3 (ig/ref [::assets :app.storage.s3/backend])
- :assets-fs (ig/ref [::assets :app.storage.fs/backend])}}
+ {:s3 (ig/ref :app.storage.s3/backend)
+ :fs (ig/ref :app.storage.fs/backend)
- [::assets :app.storage.s3/backend]
- {::sto.s3/region (cf/get :storage-assets-s3-region)
- ::sto.s3/endpoint (cf/get :storage-assets-s3-endpoint)
- ::sto.s3/bucket (cf/get :storage-assets-s3-bucket)
- ::sto.s3/io-threads (cf/get :storage-assets-s3-io-threads)}
+ ;; LEGACY (should not be removed, can only be removed after an
+ ;; explicit migration because the database objects/rows will
+ ;; still reference the old names).
+ :assets-s3 (ig/ref :app.storage.s3/backend)
+ :assets-fs (ig/ref :app.storage.fs/backend)}}
- [::assets :app.storage.fs/backend]
- {::sto.fs/directory (cf/get :storage-assets-fs-directory)}})
+ :app.storage.s3/backend
+ {::sto.s3/region (or (cf/get :storage-assets-s3-region)
+ (cf/get :objects-storage-s3-region))
+ ::sto.s3/endpoint (or (cf/get :storage-assets-s3-endpoint)
+ (cf/get :objects-storage-s3-endpoint))
+ ::sto.s3/bucket (or (cf/get :storage-assets-s3-bucket)
+ (cf/get :objects-storage-s3-bucket))
+ ::sto.s3/io-threads (or (cf/get :storage-assets-s3-io-threads)
+ (cf/get :objects-storage-s3-io-threads))}
+
+ :app.storage.fs/backend
+ {::sto.fs/directory (or (cf/get :storage-assets-fs-directory)
+ (cf/get :objects-storage-fs-directory))}})
(def worker-config
@@ -485,7 +506,7 @@
:task :tasks-gc}
{:cron #app/cron "0 0 2 * * ?" ;; daily
- :task :file-gc}
+ :task :file-gc-scheduler}
{:cron #app/cron "0 30 */3,23 * * ?"
:task :telemetry}
diff --git a/backend/src/app/media.clj b/backend/src/app/media.clj
index 9e1a120feb..4c8ae28aeb 100644
--- a/backend/src/app/media.clj
+++ b/backend/src/app/media.clj
@@ -49,7 +49,7 @@
(sm/register! ::upload
[:map {:title "Upload"}
[:filename :string]
- [:size :int]
+ [:size ::sm/int]
[:path ::fs/path]
[:mtype {:optional true} :string]
[:headers {:optional true}
@@ -313,17 +313,3 @@
(= stype :ttf)
(-> (assoc "font/otf" (ttf->otf sfnt))
(assoc "font/ttf" sfnt)))))))))
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Utility functions
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defn configure-assets-storage
- "Given storage map, returns a storage configured with the appropriate
- backend for assets and optional connection attached."
- ([storage]
- (assoc storage ::sto/backend (cf/get :assets-storage-backend :assets-fs)))
- ([storage pool-or-conn]
- (-> (configure-assets-storage storage)
- (assoc ::db/pool-or-conn pool-or-conn))))
diff --git a/backend/src/app/migrations.clj b/backend/src/app/migrations.clj
index 86f0fa6f5f..5226e5152f 100644
--- a/backend/src/app/migrations.clj
+++ b/backend/src/app/migrations.clj
@@ -379,7 +379,40 @@
:fn (mg/resource "app/migrations/sql/0119-mod-file-table.sql")}
{:name "0120-mod-audit-log-table"
- :fn (mg/resource "app/migrations/sql/0120-mod-audit-log-table.sql")}])
+ :fn (mg/resource "app/migrations/sql/0120-mod-audit-log-table.sql")}
+
+ {:name "0121-mod-file-data-fragment-table"
+ :fn (mg/resource "app/migrations/sql/0121-mod-file-data-fragment-table.sql")}
+
+ {:name "0122-mod-file-table"
+ :fn (mg/resource "app/migrations/sql/0122-mod-file-table.sql")}
+
+ {:name "0122-mod-file-data-fragment-table"
+ :fn (mg/resource "app/migrations/sql/0122-mod-file-data-fragment-table.sql")}
+
+ {:name "0123-mod-file-change-table"
+ :fn (mg/resource "app/migrations/sql/0123-mod-file-change-table.sql")}
+
+ {:name "0124-mod-profile-table"
+ :fn (mg/resource "app/migrations/sql/0124-mod-profile-table.sql")}
+
+ {:name "0125-mod-file-table"
+ :fn (mg/resource "app/migrations/sql/0125-mod-file-table.sql")}
+
+ {:name "0126-add-team-access-request-table"
+ :fn (mg/resource "app/migrations/sql/0126-add-team-access-request-table.sql")}
+
+ {:name "0127-mod-storage-object-table"
+ :fn (mg/resource "app/migrations/sql/0127-mod-storage-object-table.sql")}
+
+ {:name "0128-mod-task-table"
+ :fn (mg/resource "app/migrations/sql/0128-mod-task-table.sql")}
+
+ {:name "0129-mod-file-change-table"
+ :fn (mg/resource "app/migrations/sql/0129-mod-file-change-table.sql")}
+
+ {:name "0130-mod-file-change-table"
+ :fn (mg/resource "app/migrations/sql/0130-mod-file-change-table.sql")}])
(defn apply-migrations!
[pool name migrations]
diff --git a/backend/src/app/migrations/sql/0121-mod-file-data-fragment-table.sql b/backend/src/app/migrations/sql/0121-mod-file-data-fragment-table.sql
new file mode 100644
index 0000000000..bd30e8cb84
--- /dev/null
+++ b/backend/src/app/migrations/sql/0121-mod-file-data-fragment-table.sql
@@ -0,0 +1,8 @@
+ALTER TABLE file_data_fragment
+ ADD COLUMN data bytea NULL;
+
+UPDATE file_data_fragment
+ SET data = content;
+
+ALTER TABLE file_data_fragment
+ DROP COLUMN content;
diff --git a/backend/src/app/migrations/sql/0122-mod-file-data-fragment-table.sql b/backend/src/app/migrations/sql/0122-mod-file-data-fragment-table.sql
new file mode 100644
index 0000000000..87955aea8f
--- /dev/null
+++ b/backend/src/app/migrations/sql/0122-mod-file-data-fragment-table.sql
@@ -0,0 +1,6 @@
+ALTER TABLE file_data_fragment
+ ADD COLUMN data_backend text NULL,
+ ADD COLUMN data_ref_id uuid NULL;
+
+CREATE INDEX IF NOT EXISTS file_data_fragment__data_ref_id__idx
+ ON file_data_fragment (data_ref_id);
diff --git a/backend/src/app/migrations/sql/0122-mod-file-fragment-table.sql b/backend/src/app/migrations/sql/0122-mod-file-fragment-table.sql
new file mode 100644
index 0000000000..87955aea8f
--- /dev/null
+++ b/backend/src/app/migrations/sql/0122-mod-file-fragment-table.sql
@@ -0,0 +1,6 @@
+ALTER TABLE file_data_fragment
+ ADD COLUMN data_backend text NULL,
+ ADD COLUMN data_ref_id uuid NULL;
+
+CREATE INDEX IF NOT EXISTS file_data_fragment__data_ref_id__idx
+ ON file_data_fragment (data_ref_id);
diff --git a/backend/src/app/migrations/sql/0122-mod-file-table.sql b/backend/src/app/migrations/sql/0122-mod-file-table.sql
new file mode 100644
index 0000000000..4f0a05155e
--- /dev/null
+++ b/backend/src/app/migrations/sql/0122-mod-file-table.sql
@@ -0,0 +1,4 @@
+ALTER TABLE file ADD COLUMN data_ref_id uuid NULL;
+
+CREATE INDEX IF NOT EXISTS file__data_ref_id__idx
+ ON file (data_ref_id);
diff --git a/backend/src/app/migrations/sql/0123-mod-file-change-table.sql b/backend/src/app/migrations/sql/0123-mod-file-change-table.sql
new file mode 100644
index 0000000000..37fccfd51f
--- /dev/null
+++ b/backend/src/app/migrations/sql/0123-mod-file-change-table.sql
@@ -0,0 +1,2 @@
+CREATE INDEX IF NOT EXISTS file_change__created_at__label__idx
+ ON file_change (created_at, label);
diff --git a/backend/src/app/migrations/sql/0124-mod-profile-table.sql b/backend/src/app/migrations/sql/0124-mod-profile-table.sql
new file mode 100644
index 0000000000..e9624abd64
--- /dev/null
+++ b/backend/src/app/migrations/sql/0124-mod-profile-table.sql
@@ -0,0 +1,2 @@
+CREATE INDEX profile__props__newsletter1__idx ON profile (email) WHERE props->>'~:newsletter-news' = 'true';
+CREATE INDEX profile__props__newsletter2__idx ON profile (email) WHERE props->>'~:newsletter-updates' = 'true';
diff --git a/backend/src/app/migrations/sql/0125-mod-file-table.sql b/backend/src/app/migrations/sql/0125-mod-file-table.sql
new file mode 100644
index 0000000000..20d560bbb5
--- /dev/null
+++ b/backend/src/app/migrations/sql/0125-mod-file-table.sql
@@ -0,0 +1,3 @@
+--- This setting allow to optimize the table for heavy write workload
+--- leaving space on the page for HOT updates
+ALTER TABLE file SET (FILLFACTOR=50);
diff --git a/backend/src/app/migrations/sql/0126-add-team-access-request-table.sql b/backend/src/app/migrations/sql/0126-add-team-access-request-table.sql
new file mode 100644
index 0000000000..548003adb7
--- /dev/null
+++ b/backend/src/app/migrations/sql/0126-add-team-access-request-table.sql
@@ -0,0 +1,10 @@
+CREATE TABLE team_access_request (
+ id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
+ team_id uuid NOT NULL REFERENCES team(id) ON DELETE CASCADE DEFERRABLE,
+ requester_id uuid NULL REFERENCES profile(id) ON DELETE CASCADE DEFERRABLE,
+ valid_until timestamptz NOT NULL,
+ auto_join_until timestamptz NOT NULL,
+ created_at timestamptz NOT NULL DEFAULT now(),
+ updated_at timestamptz NOT NULL DEFAULT now(),
+ UNIQUE (team_id, requester_id)
+);
diff --git a/backend/src/app/migrations/sql/0127-mod-storage-object-table.sql b/backend/src/app/migrations/sql/0127-mod-storage-object-table.sql
new file mode 100644
index 0000000000..521a3fcb0a
--- /dev/null
+++ b/backend/src/app/migrations/sql/0127-mod-storage-object-table.sql
@@ -0,0 +1,3 @@
+--- This setting allow to optimize the table for heavy write workload
+--- leaving space on the page for HOT updates
+ALTER TABLE storage_object SET (FILLFACTOR=60);
diff --git a/backend/src/app/migrations/sql/0128-mod-task-table.sql b/backend/src/app/migrations/sql/0128-mod-task-table.sql
new file mode 100644
index 0000000000..97fcdbeef0
--- /dev/null
+++ b/backend/src/app/migrations/sql/0128-mod-task-table.sql
@@ -0,0 +1,3 @@
+--- This setting allow to optimize the table for heavy write workload
+--- leaving space on the page for HOT updates
+ALTER TABLE task SET (FILLFACTOR=60);
diff --git a/backend/src/app/migrations/sql/0129-mod-file-change-table.sql b/backend/src/app/migrations/sql/0129-mod-file-change-table.sql
new file mode 100644
index 0000000000..fcf1d4f4c1
--- /dev/null
+++ b/backend/src/app/migrations/sql/0129-mod-file-change-table.sql
@@ -0,0 +1,6 @@
+ALTER TABLE file_change
+ ADD COLUMN data_backend text NULL,
+ ADD COLUMN data_ref_id uuid NULL;
+
+CREATE INDEX IF NOT EXISTS file_change__data_ref_id__idx
+ ON file_change (data_ref_id);
diff --git a/backend/src/app/migrations/sql/0130-mod-file-change-table.sql b/backend/src/app/migrations/sql/0130-mod-file-change-table.sql
new file mode 100644
index 0000000000..272828fc2b
--- /dev/null
+++ b/backend/src/app/migrations/sql/0130-mod-file-change-table.sql
@@ -0,0 +1,2 @@
+ALTER TABLE file_change
+ ADD COLUMN version integer NULL;
diff --git a/backend/src/app/rpc.clj b/backend/src/app/rpc.clj
index 09fff7b89f..444cf43524 100644
--- a/backend/src/app/rpc.clj
+++ b/backend/src/app/rpc.clj
@@ -149,6 +149,13 @@
:hint "authentication required for this endpoint")
(f cfg params)))))
+(defn- wrap-db-transaction
+ [_ f mdata]
+ (if (::db/transaction mdata)
+ (fn [cfg params]
+ (db/tx-run! cfg f params))
+ f))
+
(defn- wrap-audit
[_ f mdata]
(if (or (contains? cf/flags :webhooks)
@@ -178,41 +185,25 @@
(if-let [schema (::sm/params mdata)]
(let [validate (sm/validator schema)
explain (sm/explainer schema)
- decode (sm/decoder schema)]
+ decode (sm/decoder schema sm/json-transformer)
+ encode (sm/encoder schema sm/json-transformer)]
(fn [cfg params]
(let [params (decode params)]
(if (validate params)
- (f cfg params)
-
+ (let [result (f cfg params)]
+ (if (instance? clojure.lang.IObj result)
+ (vary-meta result assoc :encode/json encode)
+ result))
(let [params (d/without-qualified params)]
(ex/raise :type :validation
:code :params-validation
::sm/explain (explain params)))))))
f))
-(defn- wrap-output-validation
- [_ f mdata]
- (if (contains? cf/flags :rpc-output-validation)
- (or (when-let [schema (::sm/result mdata)]
- (let [schema (if (sm/lazy-schema? schema)
- schema
- (sm/define schema))
- validate (sm/validator schema)
- explain (sm/explainer schema)]
- (fn [cfg params]
- (let [response (f cfg params)]
- (when (map? response)
- (when-not (validate response)
- (ex/raise :type :validation
- :code :data-validation
- ::sm/explain (explain response))))
- response))))
- f)
- f))
-
(defn- wrap-all
[cfg f mdata]
(as-> f $
+ (wrap-db-transaction cfg $ mdata)
(cond/wrap cfg $ mdata)
(retry/wrap-retry cfg $ mdata)
(climit/wrap cfg $ mdata)
@@ -220,7 +211,6 @@
(rlimit/wrap cfg $ mdata)
(wrap-audit cfg $ mdata)
(wrap-spec-conform cfg $ mdata)
- (wrap-output-validation cfg $ mdata)
(wrap-params-validation cfg $ mdata)
(wrap-authentication cfg $ mdata)))
diff --git a/backend/src/app/rpc/commands/access_token.clj b/backend/src/app/rpc/commands/access_token.clj
index e8d9675f99..f1cb1d425b 100644
--- a/backend/src/app/rpc/commands/access_token.clj
+++ b/backend/src/app/rpc/commands/access_token.clj
@@ -30,18 +30,17 @@
:tid token-id
:iat created-at})
- expires-at (some-> expiration dt/in-future)]
-
- (db/insert! conn :access-token
- {:id token-id
- :name name
- :token token
- :profile-id profile-id
- :created-at created-at
- :updated-at created-at
- :expires-at expires-at
- :perms (db/create-array conn "text" [])})))
-
+ expires-at (some-> expiration dt/in-future)
+ token (db/insert! conn :access-token
+ {:id token-id
+ :name name
+ :token token
+ :profile-id profile-id
+ :created-at created-at
+ :updated-at created-at
+ :expires-at expires-at
+ :perms (db/create-array conn "text" [])})]
+ (decode-row token)))
(defn repl:create-access-token
[{:keys [::db/pool] :as system} profile-id name expiration]
@@ -60,14 +59,12 @@
(sv/defmethod ::create-access-token
{::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)]
- (quotes/check-quote! conn
- {::quotes/id ::quotes/access-tokens-per-profile
- ::quotes/profile-id profile-id})
- (-> (create-access-token cfg profile-id name expiration)
- (decode-row)))))
+ [cfg {:keys [::rpc/profile-id name expiration]}]
+
+ (quotes/check! cfg {::quotes/id ::quotes/access-tokens-per-profile
+ ::quotes/profile-id profile-id})
+
+ (db/tx-run! cfg create-access-token profile-id name expiration))
(def ^:private schema:delete-access-token
[:map {:title "delete-access-token"}
diff --git a/backend/src/app/rpc/commands/auth.clj b/backend/src/app/rpc/commands/auth.clj
index ff8bfdb8f4..1ed3fa364d 100644
--- a/backend/src/app/rpc/commands/auth.clj
+++ b/backend/src/app/rpc/commands/auth.clj
@@ -27,9 +27,11 @@
[app.rpc.doc :as-alias doc]
[app.rpc.helpers :as rph]
[app.setup :as-alias setup]
+ [app.setup.welcome-file :refer [create-welcome-file]]
[app.tokens :as tokens]
[app.util.services :as sv]
[app.util.time :as dt]
+ [app.worker :as wrk]
[cuerdas.core :as str]))
(def schema:password
@@ -180,10 +182,11 @@
(defn- validate-register-attempt!
[cfg params]
- (when-not (contains? cf/flags :registration)
- (when-not (contains? params :invitation-token)
- (ex/raise :type :restriction
- :code :registration-disabled)))
+ (when (or
+ (not (contains? cf/flags :registration))
+ (not (contains? cf/flags :login-with-password)))
+ (ex/raise :type :restriction
+ :code :registration-disabled))
(when (contains? params :invitation-token)
(let [invitation (tokens/verify (::setup/props cfg)
@@ -240,6 +243,7 @@
params (d/without-nils params)
token (tokens/generate (::setup/props cfg) params)]
+
(with-meta {:token token}
{::audit/profile-id uuid/zero})))
@@ -282,6 +286,7 @@
is-demo (:is-demo params false)
is-muted (:is-muted params false)
is-active (:is-active params false)
+ theme (:theme params nil)
email (str/lower email)
params {:id id
@@ -292,6 +297,7 @@
:password password
:deleted-at (:deleted-at params)
:props props
+ :theme theme
:is-active is-active
:is-muted is-muted
:is-demo is-demo}]
@@ -347,30 +353,43 @@
:extra-data ptoken})))
(defn register-profile
- [{:keys [::db/conn] :as cfg} {:keys [token fullname] :as params}]
- (let [claims (tokens/verify (::setup/props cfg) {:token token :iss :prepared-register})
+ [{:keys [::db/conn ::wrk/executor] :as cfg} {:keys [token fullname theme] :as params}]
+ (let [theme (when (= theme "light") theme)
+ claims (tokens/verify (::setup/props cfg) {:token token :iss :prepared-register})
params (-> claims
(into params)
- (assoc :fullname fullname))
+ (assoc :fullname fullname)
+ (assoc :theme theme))
profile (if-let [profile-id (:profile-id claims)]
(profile/get-profile conn profile-id)
- (let [is-active (or (boolean (:is-active claims))
- (not (contains? cf/flags :email-verification)))
- params (-> params
- (assoc :is-active is-active)
- (update :password #(profile/derive-password cfg %)))]
- (->> (create-profile! conn params)
- (create-profile-rels! conn))))
+ ;; NOTE: we first try to match existing profile
+ ;; by email, that in normal circumstances will
+ ;; not return anything, but when a user tries to
+ ;; reuse the same token multiple times, we need
+ ;; to detect if the profile is already registered
+ (or (profile/get-profile-by-email conn (:email claims))
+ (let [is-active (or (boolean (:is-active claims))
+ (not (contains? cf/flags :email-verification)))
+ params (-> params
+ (assoc :is-active is-active)
+ (update :password #(profile/derive-password cfg %)))
+ profile (->> (create-profile! conn params)
+ (create-profile-rels! conn))]
+ (vary-meta profile assoc :created true))))
- ;; When no profile-id comes on claims means a new register
- created? (not (:profile-id claims))
+ created? (-> profile meta :created true?)
invitation (when-let [token (:invitation-token params)]
(tokens/verify (::setup/props cfg) {:token token :iss :team-invitation}))
- props (audit/profile->props profile)]
+ props (audit/profile->props profile)
+ create-welcome-file-when-needed
+ (fn []
+ (when (:create-welcome-file params)
+ (let [cfg (dissoc cfg ::db/conn)]
+ (wrk/submit! executor (create-welcome-file cfg profile)))))]
(cond
;; When profile is blocked, we just ignore it and return plain data
(:is-blocked profile)
@@ -407,6 +426,7 @@
(if (:is-active profile)
(-> (profile/strip-private-attrs profile)
(rph/with-transform (session/create-fn cfg (:id profile)))
+ (rph/with-defer create-welcome-file-when-needed)
(rph/with-meta
{::audit/replace-props props
::audit/context {:action "login"}
@@ -416,19 +436,21 @@
(when-not (eml/has-reports? conn (:email profile))
(send-email-verification! cfg profile))
- (rph/with-meta {:email (:email profile)}
- {::audit/replace-props props
- ::audit/context {:action "email-verification"}
- ::audit/profile-id (:id profile)})))
+ (-> {:email (:email profile)}
+ (rph/with-defer create-welcome-file-when-needed)
+ (rph/with-meta
+ {::audit/replace-props props
+ ::audit/context {:action "email-verification"}
+ ::audit/profile-id (:id profile)}))))
:else
- (let [elapsed? (elapsed-verify-threshold? profile)
- complaints? (eml/has-reports? conn (:email profile))
- action (if complaints?
- "ignore-because-complaints"
- (if elapsed?
- "resend-email-verification"
- "ignore"))]
+ (let [elapsed? (elapsed-verify-threshold? profile)
+ reports? (eml/has-reports? conn (:email profile))
+ action (if reports?
+ "ignore-because-complaints"
+ (if elapsed?
+ "resend-email-verification"
+ "ignore"))]
(l/wrn :hint "repeated registry detected"
:profile-id (str (:id profile))
@@ -450,7 +472,9 @@
(def schema:register-profile
[:map {:title "register-profile"}
[:token schema:token]
- [:fullname [::sm/word-string {:max 100}]]])
+ [:fullname [::sm/word-string {:max 100}]]
+ [:theme {:optional true} [:string {:max 10}]]
+ [:create-welcome-file {:optional true} :boolean]])
(sv/defmethod ::register-profile
{::rpc/auth false
@@ -522,7 +546,6 @@
(create-recovery-token)
(send-email-notification conn)))))))
-
(def schema:request-profile-recovery
[:map {:title "request-profile-recovery"}
[:email ::sm/email]])
diff --git a/backend/src/app/rpc/commands/comments.clj b/backend/src/app/rpc/commands/comments.clj
index 41645a8be3..fafecd8b87 100644
--- a/backend/src/app/rpc/commands/comments.clj
+++ b/backend/src/app/rpc/commands/comments.clj
@@ -71,10 +71,15 @@
[conn comment-id & {:as opts}]
(db/get-by-id conn :comment comment-id opts))
+(def ^:private sql:get-next-seqn
+ "SELECT (f.comment_thread_seqn + 1) AS next_seqn
+ FROM file AS f
+ WHERE f.id = ?
+ FOR UPDATE")
+
(defn- get-next-seqn
[conn file-id]
- (let [sql "select (f.comment_thread_seqn + 1) as next_seqn from file as f where f.id = ?"
- res (db/exec-one! conn [sql file-id])]
+ (let [res (db/exec-one! conn [sql:get-next-seqn file-id])]
(:next-seqn res)))
(def sql:upsert-comment-thread-status
@@ -292,7 +297,7 @@
[:map {:title "create-comment-thread"}
[:file-id ::sm/uuid]
[:position ::gpt/point]
- [:content [:string {:max 250}]]
+ [:content [:string {:max 750}]]
[:page-id ::sm/uuid]
[:frame-id ::sm/uuid]
[:share-id {:optional true} [:maybe ::sm/uuid]]])
@@ -304,38 +309,43 @@
::rtry/when rtry/conflict-exception?
::sm/params schema:create-comment-thread}
[cfg {:keys [::rpc/profile-id ::rpc/request-at file-id page-id share-id position content frame-id]}]
+ (files/check-comment-permissions! cfg profile-id file-id share-id)
- (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
- (files/check-comment-permissions! cfg profile-id file-id share-id)
- (let [{:keys [team-id project-id page-name]} (get-file conn file-id page-id)]
+ (let [{:keys [team-id project-id page-name]} (get-file cfg file-id page-id)]
- (run! (partial quotes/check-quote! cfg)
- (list {::quotes/id ::quotes/comment-threads-per-file
- ::quotes/profile-id profile-id
- ::quotes/team-id team-id
- ::quotes/project-id project-id
- ::quotes/file-id file-id}
- {::quotes/id ::quotes/comments-per-file
- ::quotes/profile-id profile-id
- ::quotes/team-id team-id
- ::quotes/project-id project-id
- ::quotes/file-id file-id}))
+ (-> cfg
+ (assoc ::quotes/profile-id profile-id)
+ (assoc ::quotes/team-id team-id)
+ (assoc ::quotes/project-id project-id)
+ (assoc ::quotes/file-id file-id)
+ (quotes/check! {::quotes/id ::quotes/comment-threads-per-file}
+ {::quotes/id ::quotes/comments-per-file}))
- (create-comment-thread conn {:created-at request-at
- :profile-id profile-id
- :file-id file-id
- :page-id page-id
- :page-name page-name
- :position position
- :content content
- :frame-id frame-id})))))
+ (let [params {:created-at request-at
+ :profile-id profile-id
+ :file-id file-id
+ :page-id page-id
+ :page-name page-name
+ :position position
+ :content content
+ :frame-id frame-id}
+ thread (db/tx-run! cfg create-comment-thread params)]
+
+ (vary-meta thread assoc ::audit/props thread))))
(defn- create-comment-thread
- [conn {:keys [profile-id file-id page-id page-name created-at position content frame-id]}]
+ [{:keys [::db/conn] :as cfg}
+ {:keys [profile-id file-id page-id page-name created-at position content frame-id]}]
+
+ (let [;; NOTE: we take the next seq number from a separate query
+ ;; because we need to lock the file for avoid race conditions
+
+ ;; FIXME: this method touches and locks the file table,which
+ ;; is already heavy-update tablel; we need to think on move
+ ;; the sequence state management to a different table or
+ ;; different storage (example: redis) for alivate the update
+ ;; pression on the file table
- (let [;; NOTE: we take the next seq number from a separate query because the whole
- ;; operation can be retried on conflict, and in this case the new seq shold be
- ;; retrieved from the database.
seqn (get-next-seqn conn file-id)
thread-id (uuid/next)
thread (db/insert! conn :comment-thread
@@ -364,7 +374,8 @@
;; Optimistic update of current seq number on file.
(db/update! conn :file
{:comment-thread-seqn seqn}
- {:id file-id})
+ {:id file-id}
+ {::db/return-keys false})
(-> thread
(select-keys [:id :file-id :page-id])
@@ -387,7 +398,6 @@
(files/check-comment-permissions! conn profile-id file-id share-id)
(upsert-comment-thread-status! conn profile-id id)))))
-
;; --- COMMAND: Update Comment Thread
(def ^:private
@@ -432,12 +442,11 @@
{:keys [team-id project-id page-name] :as file} (get-file cfg file-id page-id)]
(files/check-comment-permissions! conn profile-id file-id share-id)
- (quotes/check-quote! conn
- {::quotes/id ::quotes/comments-per-file
- ::quotes/profile-id profile-id
- ::quotes/team-id team-id
- ::quotes/project-id project-id
- ::quotes/file-id file-id})
+ (quotes/check! cfg {::quotes/id ::quotes/comments-per-file
+ ::quotes/profile-id profile-id
+ ::quotes/team-id team-id
+ ::quotes/project-id project-id
+ ::quotes/file-id file-id})
;; Update the page-name cached attribute on comment thread table.
(when (not= page-name (:page-name thread))
diff --git a/backend/src/app/rpc/commands/feedback.clj b/backend/src/app/rpc/commands/feedback.clj
index 29b79a87ba..c641a4ff41 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 {:max 250}]]
- [:content [:string {:max 250}]]])
+ [:subject [:string {:max 400}]]
+ [:content [:string {:max 2500}]]])
(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 6c9ac43c87..cdf4a0fb96 100644
--- a/backend/src/app/rpc/commands/files.clj
+++ b/backend/src/app/rpc/commands/files.clj
@@ -17,6 +17,7 @@
[app.common.schema.desc-js-like :as-alias smdj]
[app.common.types.components-list :as ctkl]
[app.common.types.file :as ctf]
+ [app.common.uri :as uri]
[app.config :as cf]
[app.db :as db]
[app.db.sql :as-alias sql]
@@ -68,6 +69,9 @@
:max-version fmg/version))
file))
+
+;; --- FILE DATA
+
;; --- FILE PERMISSIONS
(def ^:private sql:file-permissions
@@ -171,38 +175,34 @@
;; --- COMMAND QUERY: get-file (by id)
(def schema:file
- (sm/define
- [:map {:title "File"}
- [:id ::sm/uuid]
- [:features ::cfeat/features]
- [:has-media-trimmed :boolean]
- [:comment-thread-seqn {:min 0} :int]
- [:name [:string {:max 250}]]
- [:revn {:min 0} :int]
- [:modified-at ::dt/instant]
- [:is-shared :boolean]
- [:project-id ::sm/uuid]
- [:created-at ::dt/instant]
- [:data {:optional true} :any]]))
+ [:map {:title "File"}
+ [:id ::sm/uuid]
+ [:features ::cfeat/features]
+ [:has-media-trimmed ::sm/boolean]
+ [:comment-thread-seqn [::sm/int {:min 0}]]
+ [:name [:string {:max 250}]]
+ [:revn [::sm/int {:min 0}]]
+ [:modified-at ::dt/instant]
+ [:is-shared ::sm/boolean]
+ [:project-id ::sm/uuid]
+ [:created-at ::dt/instant]
+ [:data {:optional true} :any]])
(def schema:permissions-mixin
- (sm/define
- [:map {:title "PermissionsMixin"}
- [:permissions ::perms/permissions]]))
+ [:map {:title "PermissionsMixin"}
+ [:permissions ::perms/permissions]])
(def schema:file-with-permissions
- (sm/define
- [:merge {:title "FileWithPermissions"}
- schema:file
- schema:permissions-mixin]))
+ [:merge {:title "FileWithPermissions"}
+ schema:file
+ schema:permissions-mixin])
(def ^:private
schema:get-file
- (sm/define
- [:map {:title "get-file"}
- [:features {:optional true} ::cfeat/features]
- [:id ::sm/uuid]
- [:project-id {:optional true} ::sm/uuid]]))
+ [:map {:title "get-file"}
+ [:features {:optional true} ::cfeat/features]
+ [:id ::sm/uuid]
+ [:project-id {:optional true} ::sm/uuid]])
(defn- migrate-file
[{:keys [::db/conn] :as cfg} {:keys [id] :as file}]
@@ -258,58 +258,74 @@
(let [params (merge {:id id}
(when (some? project-id)
{:project-id project-id}))
- file (-> (db/get conn :file params
- {::db/check-deleted (not include-deleted?)
- ::db/remove-deleted (not include-deleted?)
- ::sql/for-update lock-for-update?})
- (decode-row))]
+ file (->> (db/get conn :file params
+ {::db/check-deleted (not include-deleted?)
+ ::db/remove-deleted (not include-deleted?)
+ ::sql/for-update lock-for-update?})
+ (feat.fdata/resolve-file-data cfg)
+ (decode-row))]
(if (and migrate? (fmg/need-migration? file))
(migrate-file cfg file)
file)))
(defn get-minimal-file
[cfg id & {:as opts}]
- (let [opts (assoc opts ::sql/columns [:id :modified-at :revn])]
+ (let [opts (assoc opts ::sql/columns [:id :modified-at :deleted-at :revn :data-ref-id :data-backend])]
(db/get cfg :file {:id id} opts)))
+(defn- get-minimal-file-with-perms
+ [cfg {:keys [:id ::rpc/profile-id]}]
+ (let [mfile (get-minimal-file cfg id)
+ perms (get-permissions cfg profile-id id)]
+ (assoc mfile :permissions perms)))
+
(defn get-file-etag
- [{:keys [::rpc/profile-id]} {:keys [modified-at revn]}]
- (str profile-id (dt/format-instant modified-at :iso) revn))
+ [{:keys [::rpc/profile-id]} {:keys [modified-at revn permissions]}]
+ (str profile-id "/" revn "/"
+ (dt/format-instant modified-at :iso)
+ "/"
+ (uri/map->query-string permissions)))
(sv/defmethod ::get-file
"Retrieve a file by its ID. Only authenticated users."
{::doc/added "1.17"
- ::cond/get-object #(get-minimal-file %1 (:id %2))
+ ::cond/get-object #(get-minimal-file-with-perms %1 %2)
::cond/key-fn get-file-etag
::sm/params schema:get-file
- ::sm/result schema:file-with-permissions}
- [cfg {:keys [::rpc/profile-id id project-id] :as params}]
- (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
- (let [perms (get-permissions conn profile-id id)]
- (check-read-permissions! perms)
- (let [team (teams/get-team conn
- :profile-id profile-id
- :project-id project-id
- :file-id id)
+ ::sm/result schema:file-with-permissions
+ ::db/transaction true}
+ [{:keys [::db/conn] :as cfg} {:keys [::rpc/profile-id id project-id] :as params}]
+ ;; The COND middleware makes initial request for a file and
+ ;; permissions when the incoming request comes with an
+ ;; ETAG. When ETAG does not matches, the request is resolved
+ ;; and this code is executed, in this case the permissions
+ ;; will be already prefetched and we just reuse them instead
+ ;; of making an additional database queries.
+ (let [perms (or (:permissions (::cond/object params))
+ (get-permissions conn profile-id id))]
+ (check-read-permissions! perms)
- file (-> (get-file cfg id :project-id project-id)
- (assoc :permissions perms)
- (check-version!))
+ (let [team (teams/get-team conn
+ :profile-id profile-id
+ :project-id project-id
+ :file-id id)
- _ (-> (cfeat/get-team-enabled-features cf/flags team)
- (cfeat/check-client-features! (:features params))
- (cfeat/check-file-features! (:features file) (:features params)))
+ file (-> (get-file cfg id :project-id project-id)
+ (assoc :permissions perms)
+ (check-version!))]
- ;; This operation is needed for backward comapatibility with frontends that
- ;; does not support pointer-map resolution mechanism; this just resolves the
- ;; pointers on backend and return a complete file.
- file (if (and (contains? (:features file) "fdata/pointer-map")
- (not (contains? (:features params) "fdata/pointer-map")))
- (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)]
- (update file :data feat.fdata/process-pointers deref))
- file)]
+ (-> (cfeat/get-team-enabled-features cf/flags team)
+ (cfeat/check-client-features! (:features params))
+ (cfeat/check-file-features! (:features file) (:features params)))
- (vary-meta file assoc ::cond/key (get-file-etag params file)))))))
+ ;; This operation is needed for backward comapatibility with frontends that
+ ;; does not support pointer-map resolution mechanism; this just resolves the
+ ;; pointers on backend and return a complete file.
+ (if (and (contains? (:features file) "fdata/pointer-map")
+ (not (contains? (:features params) "fdata/pointer-map")))
+ (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)]
+ (update file :data feat.fdata/process-pointers deref))
+ file))))
;; --- COMMAND QUERY: get-file-fragment (by id)
@@ -327,9 +343,11 @@
[:share-id {:optional true} ::sm/uuid]])
(defn- get-file-fragment
- [conn file-id fragment-id]
- (some-> (db/get conn :file-data-fragment {:file-id file-id :id fragment-id})
- (update :content blob/decode)))
+ [cfg file-id fragment-id]
+ (let [resolve-file-data (partial feat.fdata/resolve-file-data cfg)]
+ (some-> (db/get cfg :file-data-fragment {:file-id file-id :id fragment-id})
+ (resolve-file-data)
+ (update :data blob/decode))))
(sv/defmethod ::get-file-fragment
"Retrieve a file fragment by its ID. Only authenticated users."
@@ -337,12 +355,12 @@
::rpc/auth false
::sm/params schema:get-file-fragment
::sm/result schema:file-fragment}
- [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id fragment-id share-id]}]
- (dm/with-open [conn (db/open pool)]
- (let [perms (get-permissions conn profile-id file-id share-id)]
- (check-read-permissions! perms)
- (-> (get-file-fragment conn file-id fragment-id)
- (rph/with-http-cache long-cache-duration)))))
+ [cfg {:keys [::rpc/profile-id file-id fragment-id share-id]}]
+ (db/run! cfg (fn [cfg]
+ (let [perms (get-permissions cfg profile-id file-id share-id)]
+ (check-read-permissions! perms)
+ (-> (get-file-fragment cfg file-id fragment-id)
+ (rph/with-http-cache long-cache-duration))))))
;; --- COMMAND QUERY: get-project-files
@@ -402,7 +420,7 @@
"Checks if the file has libraries. Returns a boolean"
{::doc/added "1.15.1"
::sm/params schema:has-file-libraries
- ::sm/result :boolean}
+ ::sm/result ::sm/boolean}
[{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id file-id]}]
(dm/with-open [conn (db/open pool)]
(check-read-permissions! pool profile-id file-id)
@@ -481,7 +499,7 @@
[:file-id ::sm/uuid]
[:page-id {:optional true} ::sm/uuid]
[:share-id {:optional true} ::sm/uuid]
- [:object-id {:optional true} [:or ::sm/uuid ::sm/coll-of-uuid]]
+ [:object-id {:optional true} [:or ::sm/uuid [::sm/set ::sm/uuid]]]
[:features {:optional true} ::cfeat/features]])
(sv/defmethod ::get-page
@@ -723,6 +741,23 @@
[cfg {:keys [::rpc/profile-id] :as params}]
(db/tx-run! cfg get-file-summary (assoc params :profile-id profile-id)))
+
+;; --- COMMAND QUERY: get-file-info
+
+(defn- get-file-info
+ [{:keys [::db/conn] :as cfg} {:keys [id] :as params}]
+ (db/get* conn :file
+ {:id id}
+ {::sql/columns [:id]}))
+
+(sv/defmethod ::get-file-info
+ "Retrieve minimal file info by its ID."
+ {::rpc/auth false
+ ::doc/added "2.2.0"
+ ::sm/params schema:get-file}
+ [cfg params]
+ (db/tx-run! cfg get-file-info params))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; MUTATION COMMANDS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -802,7 +837,8 @@
(db/update! cfg :file
{:revn (inc (:revn file))
:data (blob/encode (:data file))
- :modified-at (dt/now)}
+ :modified-at (dt/now)
+ :has-media-trimmed false}
{:id file-id})
(feat.fdata/persist-pointers! cfg file-id))))
@@ -890,10 +926,9 @@
(def ^:private
schema:set-file-shared
- (sm/define
- [:map {:title "set-file-shared"}
- [:id ::sm/uuid]
- [:is-shared :boolean]]))
+ [:map {:title "set-file-shared"}
+ [:id ::sm/uuid]
+ [:is-shared ::sm/boolean]])
(sv/defmethod ::set-file-shared
{::doc/added "1.17"
@@ -920,9 +955,8 @@
(def ^:private
schema:delete-file
- (sm/define
- [:map {:title "delete-file"}
- [:id ::sm/uuid]]))
+ [:map {:title "delete-file"}
+ [:id ::sm/uuid]])
(defn- delete-file
[{:keys [::db/conn] :as cfg} {:keys [profile-id id] :as params}]
@@ -954,10 +988,9 @@
(def ^:private
schema:link-file-to-library
- (sm/define
- [:map {:title "link-file-to-library"}
- [:file-id ::sm/uuid]
- [:library-id ::sm/uuid]]))
+ [:map {:title "link-file-to-library"}
+ [:file-id ::sm/uuid]
+ [:library-id ::sm/uuid]])
(sv/defmethod ::link-file-to-library
{::doc/added "1.17"
@@ -1034,7 +1067,7 @@
(def ^:private schema:ignore-file-library-sync-status
[:map {:title "ignore-file-library-sync-status"}
[:file-id ::sm/uuid]
- [:date ::dt/duration]])
+ [:date ::dt/instant]])
;; TODO: improve naming
(sv/defmethod ::ignore-file-library-sync-status
diff --git a/backend/src/app/rpc/commands/files_create.clj b/backend/src/app/rpc/commands/files_create.clj
index b65efa3bf8..72c3ab8841 100644
--- a/backend/src/app/rpc/commands/files_create.clj
+++ b/backend/src/app/rpc/commands/files_create.clj
@@ -91,53 +91,56 @@
[:name [:string {:max 250}]]
[:project-id ::sm/uuid]
[:id {:optional true} ::sm/uuid]
- [:is-shared {:optional true} :boolean]
+ [:is-shared {:optional true} ::sm/boolean]
[:features {:optional true} ::cfeat/features]])
(sv/defmethod ::create-file
{::doc/added "1.17"
::doc/module :files
::webhooks/event? true
- ::sm/params schema:create-file}
- [cfg {:keys [::rpc/profile-id project-id] :as params}]
- (db/tx-run! cfg
- (fn [{:keys [::db/conn] :as cfg}]
- (projects/check-edition-permissions! conn profile-id project-id)
- (let [team (teams/get-team conn
- :profile-id profile-id
- :project-id project-id)
- team-id (:id team)
+ ::sm/params schema:create-file
+ ::db/transaction true}
+ [{:keys [::db/conn] :as cfg} {:keys [::rpc/profile-id project-id] :as params}]
+ (projects/check-edition-permissions! conn profile-id project-id)
+ (let [team (teams/get-team conn
+ :profile-id profile-id
+ :project-id project-id)
+ team-id (:id team)
- ;; When we create files, we only need to respect the team
- ;; features, because some features can be enabled
- ;; globally, but the team is still not migrated properly.
- features (-> (cfeat/get-team-enabled-features cf/flags team)
- (cfeat/check-client-features! (:features params)))
+ ;; When we create files, we only need to respect the team
+ ;; features, because some features can be enabled
+ ;; globally, but the team is still not migrated properly.
+ features (-> (cfeat/get-team-enabled-features cf/flags team)
+ (cfeat/check-client-features! (:features params)))
- ;; We also include all no migration features declared by
- ;; client; that enables the ability to enable a runtime
- ;; feature on frontend and make it permanent on file
- features (-> (:features params #{})
- (set/intersection cfeat/no-migration-features)
- (set/union features))
+ ;; We also include all no migration features declared by
+ ;; client; that enables the ability to enable a runtime
+ ;; feature on frontend and make it permanent on file
+ features (-> (:features params #{})
+ (set/intersection cfeat/no-migration-features)
+ (set/union features))
- params (-> params
- (assoc :profile-id profile-id)
- (assoc :features features))]
+ params (-> params
+ (assoc :profile-id profile-id)
+ (assoc :features features))]
- (run! (partial quotes/check-quote! conn)
- (list {::quotes/id ::quotes/files-per-project
- ::quotes/team-id team-id
- ::quotes/profile-id profile-id
- ::quotes/project-id project-id}))
+ (quotes/check! cfg {::quotes/id ::quotes/files-per-project
+ ::quotes/team-id team-id
+ ::quotes/profile-id profile-id
+ ::quotes/project-id project-id})
- ;; When newly computed features does not match exactly with
- ;; the features defined on team row, we update it.
- (when (not= features (:features team))
- (let [features (db/create-array conn "text" features)]
- (db/update! conn :team
- {:features features}
- {:id team-id})))
+ ;; FIXME: IMPORTANT: this code can have race
+ ;; conditions, because we have no locks for updating
+ ;; team so, creating two files concurrently can lead
+ ;; to lost team features updating
- (-> (create-file cfg params)
- (vary-meta assoc ::audit/props {:team-id team-id}))))))
+ ;; When newly computed features does not match exactly with
+ ;; the features defined on team row, we update it.
+ (when (not= features (:features team))
+ (let [features (db/create-array conn "text" features)]
+ (db/update! conn :team
+ {:features features}
+ {:id team-id})))
+
+ (-> (create-file cfg params)
+ (vary-meta assoc ::audit/props {:team-id team-id}))))
diff --git a/backend/src/app/rpc/commands/files_snapshot.clj b/backend/src/app/rpc/commands/files_snapshot.clj
index 1e9c3081a5..2fdb262a00 100644
--- a/backend/src/app/rpc/commands/files_snapshot.clj
+++ b/backend/src/app/rpc/commands/files_snapshot.clj
@@ -13,13 +13,15 @@
[app.config :as cf]
[app.db :as db]
[app.db.sql :as-alias sql]
+ [app.features.fdata :as feat.fdata]
[app.main :as-alias main]
- [app.media :as media]
[app.rpc :as-alias rpc]
[app.rpc.commands.files :as files]
[app.rpc.commands.profile :as profile]
[app.rpc.doc :as-alias doc]
[app.storage :as sto]
+ [app.util.blob :as blob]
+ [app.util.pointer-map :as pmap]
[app.util.services :as sv]
[app.util.time :as dt]
[cuerdas.core :as str]))
@@ -34,20 +36,21 @@
:code :authentication-required
:hint "only admins allowed")))
+(def sql:get-file-snapshots
+ "SELECT id, label, revn, created_at
+ FROM file_change
+ WHERE file_id = ?
+ AND created_at < ?
+ AND label IS NOT NULL
+ ORDER BY created_at DESC
+ LIMIT ?")
+
(defn get-file-snapshots
[{:keys [::db/conn]} {:keys [file-id limit start-at]
:or {limit Long/MAX_VALUE}}]
- (let [query (str "select id, label, revn, created_at "
- " from file_change "
- " where file_id = ? "
- " and created_at < ? "
- " and data is not null "
- " order by created_at desc "
- " limit ?")
- start-at (or start-at (dt/now))
+ (let [start-at (or start-at (dt/now))
limit (min limit 20)]
-
- (->> (db/exec! conn [query file-id start-at limit])
+ (->> (db/exec! conn [sql:get-file-snapshots file-id start-at limit])
(mapv (fn [row]
(update row :created-at dt/format-instant :rfc1123))))))
@@ -63,8 +66,8 @@
(db/run! cfg get-file-snapshots params))
(defn restore-file-snapshot!
- [{:keys [::db/conn ::sto/storage] :as cfg} {:keys [file-id id]}]
- (let [storage (media/configure-assets-storage storage conn)
+ [{:keys [::db/conn] :as cfg} {:keys [file-id id]}]
+ (let [storage (sto/resolve cfg {::db/reuse-conn true})
file (files/get-minimal-file conn file-id {::db/for-update true})
snapshot (db/get* conn :file-change
{:file-id file-id
@@ -78,43 +81,53 @@
:id id
:file-id file-id))
- (when-not (:data snapshot)
- (ex/raise :type :precondition
- :code :snapshot-without-data
- :hint "snapshot has no data"
- :label (:label snapshot)
- :file-id file-id))
+ (let [snapshot (feat.fdata/resolve-file-data cfg snapshot)]
+ (when-not (:data snapshot)
+ (ex/raise :type :precondition
+ :code :snapshot-without-data
+ :hint "snapshot has no data"
+ :label (:label snapshot)
+ :file-id file-id))
- (l/dbg :hint "restoring snapshot"
- :file-id (str file-id)
- :label (:label snapshot)
- :snapshot-id (str (:id snapshot)))
+ (l/dbg :hint "restoring snapshot"
+ :file-id (str file-id)
+ :label (:label snapshot)
+ :snapshot-id (str (:id snapshot)))
- (db/update! conn :file
- {:data (:data snapshot)
- :revn (inc (:revn file))
- :features (:features snapshot)}
- {:id file-id})
+ ;; If the file was already offloaded, on restring the snapshot
+ ;; we are going to replace the file data, so we need to touch
+ ;; the old referenced storage object and avoid possible leaks
+ (when (feat.fdata/offloaded? file)
+ (sto/touch-object! storage (:data-ref-id file)))
- ;; clean object thumbnails
- (let [sql (str "update file_tagged_object_thumbnail "
- " set deleted_at = now() "
- " where file_id=? returning media_id")
- res (db/exec! conn [sql file-id])]
+ (db/update! conn :file
+ {:data (:data snapshot)
+ :revn (inc (:revn file))
+ :version (:version snapshot)
+ :data-backend nil
+ :data-ref-id nil
+ :has-media-trimmed false
+ :features (:features snapshot)}
+ {:id file-id})
- (doseq [media-id (into #{} (keep :media-id) res)]
- (sto/touch-object! storage media-id)))
+ ;; clean object thumbnails
+ (let [sql (str "update file_tagged_object_thumbnail "
+ " set deleted_at = now() "
+ " where file_id=? returning media_id")
+ res (db/exec! conn [sql file-id])]
+ (doseq [media-id (into #{} (keep :media-id) res)]
+ (sto/touch-object! storage media-id)))
- ;; clean object thumbnails
- (let [sql (str "update file_thumbnail "
- " set deleted_at = now() "
- " where file_id=? returning media_id")
- res (db/exec! conn [sql file-id])]
- (doseq [media-id (into #{} (keep :media-id) res)]
- (sto/touch-object! storage media-id)))
+ ;; clean file thumbnails
+ (let [sql (str "update file_thumbnail "
+ " set deleted_at = now() "
+ " where file_id=? returning media_id")
+ res (db/exec! conn [sql file-id])]
+ (doseq [media-id (into #{} (keep :media-id) res)]
+ (sto/touch-object! storage media-id)))
- {:id (:id snapshot)
- :label (:label snapshot)}))
+ {:id (:id snapshot)
+ :label (:label snapshot)})))
(defn- resolve-snapshot-by-label
[conn file-id label]
@@ -146,21 +159,33 @@
(merge (resolve-snapshot-by-label conn file-id label)))]
(restore-file-snapshot! cfg params)))))
+(defn- get-file
+ [cfg file-id]
+ (let [file (->> (db/get cfg :file {:id file-id})
+ (feat.fdata/resolve-file-data cfg))]
+ (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg file-id)]
+ (-> file
+ (update :data blob/decode)
+ (update :data feat.fdata/process-pointers deref)
+ (update :data feat.fdata/process-objects (partial into {}))
+ (update :data blob/encode)))))
+
(defn take-file-snapshot!
- [cfg {:keys [file-id label]}]
- (let [conn (db/get-connection cfg)
- file (db/get conn :file {:id file-id})
+ [cfg {:keys [file-id label ::rpc/profile-id]}]
+ (let [file (get-file cfg file-id)
id (uuid/next)]
(l/debug :hint "creating file snapshot"
:file-id (str file-id)
:label label)
- (db/insert! conn :file-change
+ (db/insert! cfg :file-change
{:id id
:revn (:revn file)
:data (:data file)
+ :version (:version file)
:features (:features file)
+ :profile-id profile-id
:file-id (:id file)
:label label}
{::db/return-keys false})
diff --git a/backend/src/app/rpc/commands/files_temp.clj b/backend/src/app/rpc/commands/files_temp.clj
index 2500260763..f639bebdb1 100644
--- a/backend/src/app/rpc/commands/files_temp.clj
+++ b/backend/src/app/rpc/commands/files_temp.clj
@@ -38,44 +38,45 @@
[:name [:string {:max 250}]]
[:project-id ::sm/uuid]
[:id {:optional true} ::sm/uuid]
- [:is-shared :boolean]
+ [:is-shared ::sm/boolean]
[:features ::cfeat/features]
- [:create-page :boolean]])
+ [:create-page ::sm/boolean]])
(sv/defmethod ::create-temp-file
{::doc/added "1.17"
::doc/module :files
- ::sm/params schema:create-temp-file}
- [cfg {:keys [::rpc/profile-id project-id] :as params}]
- (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
- (projects/check-edition-permissions! conn profile-id project-id)
- (let [team (teams/get-team conn :profile-id profile-id :project-id project-id)
+ ::sm/params schema:create-temp-file
+ ::db/transaction true}
+ [{:keys [::db/conn] :as cfg} {:keys [::rpc/profile-id project-id] :as params}]
+ (projects/check-edition-permissions! conn profile-id project-id)
+ (let [team (teams/get-team conn :profile-id profile-id :project-id project-id)
+ ;; When we create files, we only need to respect the team
+ ;; features, because some features can be enabled
+ ;; globally, but the team is still not migrated properly.
+ input-features
+ (:features params #{})
- ;; When we create files, we only need to respect the team
- ;; features, because some features can be enabled
- ;; globally, but the team is still not migrated properly.
- input-features (:features params #{})
+ ;; If the imported project doesn't contain v2 we need to remove it
+ team-features
+ (cond-> (cfeat/get-team-enabled-features cf/flags team)
+ (not (contains? input-features "components/v2"))
+ (disj "components/v2"))
- ;; If the imported project doesn't contain v2 we need to remove it
- team-features
- (cond-> (cfeat/get-team-enabled-features cf/flags team)
- (not (contains? input-features "components/v2"))
- (disj "components/v2"))
+ ;; We also include all no migration features declared by
+ ;; client; that enables the ability to enable a runtime
+ ;; feature on frontend and make it permanent on file
+ features
+ (-> input-features
+ (set/intersection cfeat/no-migration-features)
+ (set/union team-features))
+ params
+ (-> params
+ (assoc :profile-id profile-id)
+ (assoc :deleted-at (dt/in-future {:days 1}))
+ (assoc :features features))]
- ;; We also include all no migration features declared by
- ;; client; that enables the ability to enable a runtime
- ;; feature on frontend and make it permanent on file
- features (-> input-features
- (set/intersection cfeat/no-migration-features)
- (set/union team-features))
-
- params (-> params
- (assoc :profile-id profile-id)
- (assoc :deleted-at (dt/in-future {:days 1}))
- (assoc :features features))]
-
- (files.create/create-file cfg params)))))
+ (files.create/create-file cfg params)))
;; --- MUTATION COMMAND: update-temp-file
@@ -83,7 +84,7 @@
(def ^:private schema:update-temp-file
[:map {:title "update-temp-file"}
[:changes [:vector ::cpc/change]]
- [:revn {:min 0} :int]
+ [:revn [::sm/int {:min 0}]]
[:session-id ::sm/uuid]
[:id ::sm/uuid]])
diff --git a/backend/src/app/rpc/commands/files_thumbnails.clj b/backend/src/app/rpc/commands/files_thumbnails.clj
index 446de53788..92c8d16b08 100644
--- a/backend/src/app/rpc/commands/files_thumbnails.clj
+++ b/backend/src/app/rpc/commands/files_thumbnails.clj
@@ -179,18 +179,16 @@
(def ^:private
schema:get-file-data-for-thumbnail
- (sm/define
- [:map {:title "get-file-data-for-thumbnail"}
- [:file-id ::sm/uuid]
- [:features {:optional true} ::cfeat/features]]))
+ [:map {:title "get-file-data-for-thumbnail"}
+ [:file-id ::sm/uuid]
+ [:features {:optional true} ::cfeat/features]])
(def ^:private
schema:partial-file
- (sm/define
- [:map {:title "PartialFile"}
- [:id ::sm/uuid]
- [:revn {:min 0} :int]
- [:page :any]]))
+ [:map {:title "PartialFile"}
+ [:id ::sm/uuid]
+ [:revn {:min 0} ::sm/int]
+ [:page :any]])
(sv/defmethod ::get-file-data-for-thumbnail
"Retrieves the data for generate the thumbnail of the file. Used
@@ -233,7 +231,7 @@
"INSERT INTO file_tagged_object_thumbnail (file_id, object_id, tag, media_id)
VALUES (?, ?, ?, ?)
ON CONFLICT (file_id, object_id, tag)
- DO UPDATE SET updated_at=?, media_id=?, deleted_at=null
+ DO UPDATE SET updated_at=?, media_id=?, deleted_at=?
RETURNING *")
(defn- persist-thumbnail!
@@ -251,17 +249,19 @@
:content-type mtype
:bucket "file-object-thumbnail"})))
-
-
(defn- create-file-object-thumbnail!
- [{:keys [::sto/storage] :as cfg} file-id object-id media tag]
- (let [tsnow (dt/now)
- media (persist-thumbnail! storage media tsnow)
+ [{:keys [::sto/storage] :as cfg} file object-id media tag]
+ (let [file-id (:id file)
+ timestamp (dt/now)
+ media (persist-thumbnail! storage media timestamp)
[th1 th2] (db/tx-run! cfg (fn [{:keys [::db/conn]}]
(let [th1 (db/exec-one! conn [sql:get-file-object-thumbnail file-id object-id tag])
th2 (db/exec-one! conn [sql:create-file-object-thumbnail
- file-id object-id tag (:id media)
- tsnow (:id media)])]
+ file-id object-id tag
+ (:id media)
+ timestamp
+ (:id media)
+ (:deleted-at file)])]
[th1 th2])))]
(when (and (some? th1)
@@ -294,9 +294,8 @@
(media/validate-media-size! media)
(db/run! cfg files/check-edition-permissions! profile-id file-id)
-
- (let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
- (create-file-object-thumbnail! cfg file-id object-id media (or tag "frame"))))
+ (when-let [file (files/get-minimal-file cfg file-id {::db/check-deleted false})]
+ (create-file-object-thumbnail! cfg file object-id media (or tag "frame"))))
;; --- MUTATION COMMAND: delete-file-object-thumbnail
@@ -327,7 +326,7 @@
(files/check-edition-permissions! cfg profile-id file-id)
(db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
(-> cfg
- (update ::sto/storage media/configure-assets-storage conn)
+ (update ::sto/storage sto/configure conn)
(delete-file-object-thumbnail! file-id object-id))
nil)))
@@ -386,7 +385,7 @@
schema:create-file-thumbnail
[:map {:title "create-file-thumbnail"}
[:file-id ::sm/uuid]
- [:revn :int]
+ [:revn ::sm/int]
[:media ::media/upload]])
(sv/defmethod ::create-file-thumbnail
@@ -405,7 +404,6 @@
(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)
- (let [cfg (update cfg ::sto/storage media/configure-assets-storage)
- media (create-file-thumbnail! cfg params)]
+ (let [media (create-file-thumbnail! cfg params)]
{:uri (files/resolve-public-uri (:id media))
:id (:id media)})))))
diff --git a/backend/src/app/rpc/commands/files_update.clj b/backend/src/app/rpc/commands/files_update.clj
index 76b621b3cd..bd98b70715 100644
--- a/backend/src/app/rpc/commands/files_update.clj
+++ b/backend/src/app/rpc/commands/files_update.clj
@@ -29,6 +29,7 @@
[app.rpc.commands.teams :as teams]
[app.rpc.doc :as-alias doc]
[app.rpc.helpers :as rph]
+ [app.storage :as sto]
[app.util.blob :as blob]
[app.util.pointer-map :as pmap]
[app.util.services :as sv]
@@ -37,6 +38,20 @@
[clojure.set :as set]
[promesa.exec :as px]))
+(declare ^:private get-lagged-changes)
+(declare ^:private send-notifications!)
+(declare ^:private update-file)
+(declare ^:private update-file*)
+(declare ^:private process-changes-and-validate)
+(declare ^:private take-snapshot?)
+(declare ^:private delete-old-snapshots!)
+
+;; PUBLIC API; intended to be used outside of this module
+(declare update-file!)
+(declare update-file-data!)
+(declare persist-file!)
+(declare get-file)
+
;; --- SCHEMA
(def ^:private
@@ -44,7 +59,7 @@
[:map {:title "update-file"}
[:id ::sm/uuid]
[:session-id ::sm/uuid]
- [:revn {:min 0} :int]
+ [:revn {:min 0} ::sm/int]
[:features {:optional true} ::cfeat/features]
[:changes {:optional true} [:vector ::cpc/change]]
[:changes-with-metadata {:optional true}
@@ -52,7 +67,7 @@
[:changes [:vector ::cpc/change]]
[:hint-origin {:optional true} :keyword]
[:hint-events {:optional true} [:vector [:string {:max 250}]]]]]]
- [:skip-validate {:optional true} :boolean]])
+ [:skip-validate {:optional true} ::sm/boolean]])
(def ^:private
schema:update-file-result
@@ -61,7 +76,7 @@
[:changes [:vector ::cpc/change]]
[:file-id ::sm/uuid]
[:id ::sm/uuid]
- [:revn {:min 0} :int]
+ [:revn {:min 0} ::sm/int]
[:session-id ::sm/uuid]]])
;; --- HELPERS
@@ -96,41 +111,6 @@
(or (contains? library-change-types type)
(contains? file-change-types type)))
-(def ^:private sql:get-file
- "SELECT f.*, p.team_id
- FROM file AS f
- JOIN project AS p ON (p.id = f.project_id)
- WHERE f.id = ?
- AND (f.deleted_at IS NULL OR
- f.deleted_at > now())
- FOR KEY SHARE")
-
-(defn get-file
- [conn id]
- (let [file (db/exec-one! conn [sql:get-file id])]
- (when-not file
- (ex/raise :type :not-found
- :code :object-not-found
- :hint (format "file with id '%s' does not exists" id)))
- (update file :features db/decode-pgarray #{})))
-
-(defn- wrap-with-pointer-map-context
- [f]
- (fn [cfg {:keys [id] :as file}]
- (binding [pmap/*tracked* (pmap/create-tracked)
- pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)]
- (let [result (f cfg file)]
- (feat.fdata/persist-pointers! cfg id)
- result))))
-
-(declare ^:private delete-old-snapshots!)
-(declare ^:private get-lagged-changes)
-(declare ^:private send-notifications!)
-(declare ^:private take-snapshot?)
-(declare ^:private update-file)
-(declare ^:private update-file*)
-(declare ^:private update-file-data)
-
;; If features are specified from params and the final feature
;; set is different than the persisted one, update it on the
;; database.
@@ -146,7 +126,8 @@
::sm/result schema:update-file-result
::doc/module :files
::doc/added "1.17"}
- [cfg {:keys [::rpc/profile-id id] :as params}]
+ [{:keys [::mtx/metrics] :as cfg}
+ {:keys [::rpc/profile-id id changes changes-with-metadata] :as params}]
(db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
(files/check-edition-permissions! conn profile-id id)
(db/xact-lock! conn id)
@@ -160,14 +141,30 @@
(cfeat/check-client-features! (:features params))
(cfeat/check-file-features! (:features file) (:features params)))
- params (assoc params
- :profile-id profile-id
- :features features
- :team team
- :file file)
+ changes (if changes-with-metadata
+ (->> changes-with-metadata (mapcat :changes) vec)
+ (vec changes))
+
+ params (-> params
+ (assoc :profile-id profile-id)
+ (assoc :features features)
+ (assoc :team team)
+ (assoc :file file)
+ (assoc :changes changes))
+
+ cfg (assoc cfg ::timestamp (dt/now))
tpoint (dt/tpoint)]
+
+ (when (> (:revn params)
+ (:revn file))
+ (ex/raise :type :validation
+ :code :revn-conflict
+ :hint "The incoming revision number is greater that stored version."
+ :context {:incoming-revn (:revn params)
+ :stored-revn (:revn file)}))
+
;; When newly computed features does not match exactly with
;; the features defined on team row, we update it.
(when (not= features (:features team))
@@ -176,98 +173,222 @@
{:features features}
{:id (:id team)})))
+ (mtx/run! metrics {:id :update-file-changes :inc (count changes)})
+
(binding [l/*context* (some-> (meta params)
(get :app.http/request)
(errors/request->context))]
- (-> (update-file cfg params)
+ (-> (update-file* cfg params)
(rph/with-defer #(let [elapsed (tpoint)]
(l/trace :hint "update-file" :time (dt/format-duration elapsed))))))))))
-(defn update-file
- [{:keys [::mtx/metrics] :as cfg}
- {:keys [file features changes changes-with-metadata] :as params}]
- (let [features (-> features
- (set/difference cfeat/frontend-only-features)
- (set/union (:features file)))
-
- update-fn (cond-> update-file*
- (contains? features "fdata/pointer-map")
- (wrap-with-pointer-map-context))
-
- changes (if changes-with-metadata
- (->> changes-with-metadata (mapcat :changes) vec)
- (vec changes))]
-
- (when (> (:revn params)
- (:revn file))
- (ex/raise :type :validation
- :code :revn-conflict
- :hint "The incoming revision number is greater that stored version."
- :context {:incoming-revn (:revn params)
- :stored-revn (:revn file)}))
-
- (mtx/run! metrics {:id :update-file-changes :inc (count changes)})
-
- (binding [cfeat/*current* features
- cfeat/*previous* (:features file)]
- (let [file (assoc file :features features)
- params (-> params
- (assoc :file file)
- (assoc :changes changes)
- (assoc ::created-at (dt/now)))]
-
- (-> (update-fn cfg params)
- (vary-meta assoc ::audit/replace-props
- {:id (:id file)
- :name (:name file)
- :features (:features file)
- :project-id (:project-id file)
- :team-id (:team-id file)}))))))
-
(defn- update-file*
- [{:keys [::db/conn ::wrk/executor] :as cfg}
- {:keys [profile-id file changes session-id ::created-at skip-validate] :as params}]
- (let [;; Process the file data on separated thread for avoid to do
+ "Internal function, part of the update-file process, that encapsulates
+ the changes application offload to a separated thread and emit all
+ corresponding notifications.
+
+ Follow the inner implementation to `update-file-data!` function.
+
+ Only intended for internal use on this module."
+ [{:keys [::db/conn ::wrk/executor ::timestamp] :as cfg}
+ {:keys [profile-id file features changes session-id skip-validate] :as params}]
+
+ (let [;; Retrieve the file data
+ file (feat.fdata/resolve-file-data cfg file)
+
+ file (assoc file :features
+ (-> features
+ (set/difference cfeat/frontend-only-features)
+ (set/union (:features file))))
+
+ ;; Process the file data on separated thread for avoid to do
;; the CPU intensive operation on vthread.
- file (px/invoke! executor (partial update-file-data cfg file changes skip-validate))
- features (db/create-array conn "text" (:features file))]
+ file (px/invoke! executor
+ (fn []
+ (binding [cfeat/*current* features
+ cfeat/*previous* (:features file)]
+ (update-file-data! cfg file
+ process-changes-and-validate
+ changes skip-validate))))]
- (db/insert! conn :file-change
- {:id (uuid/next)
- :session-id session-id
- :profile-id profile-id
- :created-at created-at
- :file-id (:id file)
- :revn (:revn file)
- :label (::snapshot-label file)
- :data (::snapshot-data file)
- :features (db/create-array conn "text" (:features file))
- :changes (blob/encode changes)}
- {::db/return-keys false})
+ (when (feat.fdata/offloaded? file)
+ (let [storage (sto/resolve cfg ::db/reuse-conn true)]
+ (some->> (:data-ref-id file) (sto/touch-object! storage))))
+ ;; TODO: move this to asynchronous task
(when (::snapshot-data file)
(delete-old-snapshots! cfg file))
+ (persist-file! cfg file)
+
+ (let [params (assoc params :file file)
+ response {:revn (:revn file)
+ :lagged (get-lagged-changes conn params)}
+ features (db/create-array conn "text" (:features file))]
+
+ ;; Insert change (xlog)
+ (db/insert! conn :file-change
+ {:id (uuid/next)
+ :session-id session-id
+ :profile-id profile-id
+ :created-at timestamp
+ :file-id (:id file)
+ :revn (:revn file)
+ :version (:version file)
+ :features features
+ :label (::snapshot-label file)
+ :data (::snapshot-data file)
+ :changes (blob/encode changes)}
+ {::db/return-keys false})
+
+ ;; Send asynchronous notifications
+ (send-notifications! cfg params)
+
+ (vary-meta response assoc ::audit/replace-props
+ {:id (:id file)
+ :name (:name file)
+ :features (:features file)
+ :project-id (:project-id file)
+ :team-id (:team-id file)}))))
+
+(defn update-file!
+ "A public api that allows apply a transformation to a file with all context setup."
+ [cfg file-id update-fn & args]
+ (let [file (get-file cfg file-id)
+ file (apply update-file-data! cfg file update-fn args)]
+ (persist-file! cfg file)))
+
+(def ^:private sql:get-file
+ "SELECT f.*, p.team_id
+ FROM file AS f
+ JOIN project AS p ON (p.id = f.project_id)
+ WHERE f.id = ?
+ AND (f.deleted_at IS NULL OR
+ f.deleted_at > now())
+ FOR KEY SHARE")
+
+(defn get-file
+ "Get not-decoded file, only decodes the features set."
+ [conn id]
+ (let [file (db/exec-one! conn [sql:get-file id])]
+ (when-not file
+ (ex/raise :type :not-found
+ :code :object-not-found
+ :hint (format "file with id '%s' does not exists" id)))
+ (update file :features db/decode-pgarray #{})))
+
+(defn persist-file!
+ "Function responsible of persisting already encoded file. Should be
+ used together with `get-file` and `update-file-data!`.
+
+ It also updates the project modified-at attr."
+ [{:keys [::db/conn ::timestamp]} file]
+ (let [features (db/create-array conn "text" (:features file))
+ ;; The timestamp can be nil because this function is also
+ ;; intended to be used outside of this module
+ modified-at (or timestamp (dt/now))]
+
+ (db/update! conn :project
+ {:modified-at modified-at}
+ {:id (:project-id file)}
+ {::db/return-keys false})
+
(db/update! conn :file
{:revn (:revn file)
:data (:data file)
:version (:version file)
:features features
:data-backend nil
- :modified-at created-at
+ :data-ref-id nil
+ :modified-at modified-at
:has-media-trimmed false}
- {:id (:id file)})
+ {:id (:id file)}
+ {::db/return-keys false})))
- (db/update! conn :project
- {:modified-at created-at}
- {:id (:project-id file)})
+(defn- update-file-data!
+ "Perform a file data transformation in with all update context setup.
- (let [params (assoc params :file file)]
- ;; Send asynchronous notifications
- (send-notifications! cfg params)
+ This function expected not-decoded file and transformation function. Returns
+ an encoded file.
- {:revn (:revn file)
- :lagged (get-lagged-changes conn params)})))
+ This function is not responsible of saving the file. It only saves
+ fdata/pointer-map modified fragments."
+
+ [cfg {:keys [id] :as file} update-fn & args]
+ (binding [pmap/*tracked* (pmap/create-tracked)
+ pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)]
+ (let [file (update file :data (fn [data]
+ (-> data
+ (blob/decode)
+ (assoc :id (:id file)))))
+
+ ;; For avoid unnecesary overhead of creating multiple pointers
+ ;; and handly internally with objects map in their worst
+ ;; case (when probably all shapes and all pointers will be
+ ;; readed in any case), we just realize/resolve them before
+ ;; applying the migration to the file
+ file (if (fmg/need-migration? file)
+ (-> file
+ (update :data feat.fdata/process-pointers deref)
+ (update :data feat.fdata/process-objects (partial into {}))
+ (fmg/migrate-file))
+ file)
+
+ file (apply update-fn cfg file args)
+
+ ;; TODO: reuse operations if file is migrated
+ ;; TODO: move encoding to a separated thread
+ file (if (take-snapshot? file)
+ (let [tpoint (dt/tpoint)
+ snapshot (-> (:data file)
+ (feat.fdata/process-pointers deref)
+ (feat.fdata/process-objects (partial into {}))
+ (blob/encode))
+ elapsed (tpoint)
+ label (str "internal/snapshot/" (:revn file))]
+
+ (l/trc :hint "take snapshot"
+ :file-id (str (:id file))
+ :revn (:revn file)
+ :label label
+ :elapsed (dt/format-duration elapsed))
+
+ (-> file
+ (assoc ::snapshot-data snapshot)
+ (assoc ::snapshot-label label)))
+ file)
+
+ file (cond-> file
+ (contains? cfeat/*current* "fdata/objects-map")
+ (feat.fdata/enable-objects-map)
+
+ (contains? cfeat/*current* "fdata/pointer-map")
+ (feat.fdata/enable-pointer-map)
+
+ :always
+ (update :data blob/encode))]
+
+ (feat.fdata/persist-pointers! cfg id)
+
+ file)))
+
+(defn- get-file-libraries
+ "A helper for preload file libraries, mainly used for perform file
+ semantical and structural validation"
+ [{:keys [::db/conn] :as cfg} file]
+ (->> (files/get-file-libraries conn (:id file))
+ (into [file] (map (fn [{:keys [id]}]
+ (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)
+ pmap/*tracked* nil]
+ ;; We do not resolve the objects maps here
+ ;; because there is a lower probability that all
+ ;; shapes needed to be loded into memory, so we
+ ;; leeave it on lazy status
+ (-> (files/get-file cfg id :migrate? false)
+ (update :data feat.fdata/process-pointers deref) ; ensure all pointers resolved
+ (update :data feat.fdata/process-objects (partial into {}))
+ (fmg/migrate-file))))))
+ (d/index-by :id)))
(defn- soft-validate-file-schema!
[file]
@@ -284,68 +405,19 @@
(l/error :hint "file validation error"
:cause cause))))
-(defn- update-file-data
- [{:keys [::db/conn] :as cfg} file changes skip-validate]
- (let [file (update file :data (fn [data]
- (-> data
- (blob/decode)
- (assoc :id (:id file)))))
- ;; For avoid unnecesary overhead of creating multiple pointers
- ;; and handly internally with objects map in their worst
- ;; case (when probably all shapes and all pointers will be
- ;; readed in any case), we just realize/resolve them before
- ;; applying the migration to the file
- file (if (fmg/need-migration? file)
- (-> file
- (update :data feat.fdata/process-pointers deref)
- (update :data feat.fdata/process-objects (partial into {}))
- (fmg/migrate-file))
- file)
-
- ;; WARNING: this ruins performance; maybe we need to find
+(defn- process-changes-and-validate
+ [cfg file changes skip-validate]
+ (let [;; WARNING: this ruins performance; maybe we need to find
;; some other way to do general validation
libs (when (and (or (contains? cf/flags :file-validation)
(contains? cf/flags :soft-file-validation))
(not skip-validate))
- (->> (files/get-file-libraries conn (:id file))
- (into [file] (map (fn [{:keys [id]}]
- (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)
- pmap/*tracked* nil]
- ;; We do not resolve the objects maps here
- ;; because there is a lower probability that all
- ;; shapes needed to be loded into memory, so we
- ;; leeave it on lazy status
- (-> (files/get-file cfg id :migrate? false)
- (update :data feat.fdata/process-pointers deref) ; ensure all pointers resolved
- (update :data feat.fdata/process-objects (partial into {}))
- (fmg/migrate-file))))))
- (d/index-by :id)))
-
+ (get-file-libraries cfg file))
file (-> (files/check-version! file)
(update :revn inc)
(update :data cpc/process-changes changes)
- (update :data d/without-nils))
-
- file (if (take-snapshot? file)
- (let [tpoint (dt/tpoint)
- snapshot (-> (:data file)
- (feat.fdata/process-pointers deref)
- (feat.fdata/process-objects (partial into {}))
- (blob/encode))
- elapsed (tpoint)
- label (str "internal/snapshot/" (:revn file))]
-
- (l/trc :hint "take snapshot"
- :file-id (str (:id file))
- :revn (:revn file)
- :label label
- :elapsed (dt/format-duration elapsed))
-
- (-> file
- (assoc ::snapshot-data snapshot)
- (assoc ::snapshot-label label)))
- file)]
+ (update :data d/without-nils))]
(binding [pmap/*tracked* nil]
(when (contains? cf/flags :soft-file-validation)
@@ -362,22 +434,14 @@
(not skip-validate))
(val/validate-file-schema! file)))
- (cond-> file
- (contains? cfeat/*current* "fdata/objects-map")
- (feat.fdata/enable-objects-map)
-
- (contains? cfeat/*current* "fdata/pointer-map")
- (feat.fdata/enable-pointer-map)
-
- :always
- (update :data blob/encode))))
+ file))
(defn- take-snapshot?
"Defines the rule when file `data` snapshot should be saved."
[{:keys [revn modified-at] :as file}]
- (when (contains? cf/flags :file-snapshot)
- (let [freq (or (cf/get :file-snapshot-every) 20)
- timeout (or (cf/get :file-snapshot-timeout)
+ (when (contains? cf/flags :auto-file-snapshot)
+ (let [freq (or (cf/get :auto-file-snapshot-every) 20)
+ timeout (or (cf/get :auto-file-snapshot-timeout)
(dt/duration {:hours 1}))]
(or (= 1 freq)
@@ -401,19 +465,18 @@
"UPDATE file_change
SET label = NULL
WHERE file_id = ?
- AND label IS NOT NULL
+ AND label LIKE 'internal/%'
AND created_at < ?")
(defn- delete-old-snapshots!
[{:keys [::db/conn] :as cfg} {:keys [id] :as file}]
(when-let [snapshots (not-empty (db/exec! conn [sql:get-latest-snapshots id
- (cf/get :file-snapshot-total 10)]))]
+ (cf/get :auto-file-snapshot-total 10)]))]
(let [last-date (-> snapshots peek :created-at)
result (db/exec-one! conn [sql:delete-snapshots id last-date])]
(l/trc :hint "delete old snapshots" :file-id (str id) :total (db/get-update-count result)))))
-(def ^:private
- sql:lagged-changes
+(def ^:private sql:lagged-changes
"select s.id, s.revn, s.file_id,
s.session_id, s.changes
from file_change as s
diff --git a/backend/src/app/rpc/commands/fonts.clj b/backend/src/app/rpc/commands/fonts.clj
index 0942da601d..43b90305e1 100644
--- a/backend/src/app/rpc/commands/fonts.clj
+++ b/backend/src/app/rpc/commands/fonts.clj
@@ -86,6 +86,9 @@
[:font-weight [::sm/one-of {:format "number"} valid-weight]]
[:font-style [::sm/one-of {:format "string"} valid-style]]])
+;; FIXME: IMPORTANT: refactor this, we should not hold a whole db
+;; connection around the font creation
+
(sv/defmethod ::create-font-variant
{::doc/added "1.18"
::climit/id [[:process-font/by-profile ::rpc/profile-id]
@@ -95,12 +98,11 @@
[cfg {:keys [::rpc/profile-id team-id] :as params}]
(db/tx-run! cfg
(fn [{:keys [::db/conn] :as cfg}]
- (let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
- (teams/check-edition-permissions! conn profile-id team-id)
- (quotes/check-quote! conn {::quotes/id ::quotes/font-variants-per-team
- ::quotes/profile-id profile-id
- ::quotes/team-id team-id})
- (create-font-variant cfg (assoc params :profile-id profile-id))))))
+ (teams/check-edition-permissions! conn profile-id team-id)
+ (quotes/check! cfg {::quotes/id ::quotes/font-variants-per-team
+ ::quotes/profile-id profile-id
+ ::quotes/team-id team-id})
+ (create-font-variant cfg (assoc params :profile-id profile-id)))))
(defn create-font-variant
[{:keys [::sto/storage ::db/conn ::wrk/executor]} {:keys [data] :as params}]
@@ -203,14 +205,13 @@
::sm/params schema:delete-font}
[cfg {:keys [::rpc/profile-id id team-id]}]
(db/tx-run! cfg
- (fn [{:keys [::db/conn ::sto/storage] :as cfg}]
+ (fn [{:keys [::db/conn] :as cfg}]
(teams/check-edition-permissions! conn profile-id team-id)
(let [fonts (db/query conn :team-font-variant
{:team-id team-id
:font-id id
:deleted-at nil}
{::sql/for-update true})
- storage (media/configure-assets-storage storage conn)
tnow (dt/now)]
(when-not (seq fonts)
@@ -220,11 +221,7 @@
(doseq [font fonts]
(db/update! conn :team-font-variant
{:deleted-at tnow}
- {:id (:id font)})
- (some->> (:woff1-file-id font) (sto/touch-object! storage))
- (some->> (:woff2-file-id font) (sto/touch-object! storage))
- (some->> (:ttf-file-id font) (sto/touch-object! storage))
- (some->> (:otf-file-id font) (sto/touch-object! storage)))
+ {:id (:id font)}))
(rph/with-meta (rph/wrap)
{::audit/props {:id id
@@ -245,22 +242,16 @@
::sm/params schema:delete-font-variant}
[cfg {:keys [::rpc/profile-id id team-id]}]
(db/tx-run! cfg
- (fn [{:keys [::db/conn ::sto/storage] :as cfg}]
+ (fn [{:keys [::db/conn] :as cfg}]
(teams/check-edition-permissions! conn profile-id team-id)
(let [variant (db/get conn :team-font-variant
{:id id :team-id team-id}
- {::sql/for-update true})
- storage (media/configure-assets-storage storage conn)]
+ {::sql/for-update true})]
(db/update! conn :team-font-variant
{:deleted-at (dt/now)}
{:id (:id variant)})
- (some->> (:woff1-file-id variant) (sto/touch-object! storage))
- (some->> (:woff2-file-id variant) (sto/touch-object! storage))
- (some->> (:ttf-file-id variant) (sto/touch-object! storage))
- (some->> (:otf-file-id variant) (sto/touch-object! storage))
-
(rph/with-meta (rph/wrap)
{::audit/props {:font-family (:font-family variant)
:font-id (:font-id variant)}})))))
diff --git a/backend/src/app/rpc/commands/management.clj b/backend/src/app/rpc/commands/management.clj
index 680541184b..fc71a509d7 100644
--- a/backend/src/app/rpc/commands/management.clj
+++ b/backend/src/app/rpc/commands/management.clj
@@ -88,10 +88,9 @@
(def ^:private
schema:duplicate-file
- (sm/define
- [:map {:title "duplicate-file"}
- [:file-id ::sm/uuid]
- [:name {:optional true} [:string {:max 250}]]]))
+ [:map {:title "duplicate-file"}
+ [:file-id ::sm/uuid]
+ [:name {:optional true} [:string {:max 250}]]])
(sv/defmethod ::duplicate-file
"Duplicate a single file in the same team."
@@ -150,10 +149,9 @@
(def ^:private
schema:duplicate-project
- (sm/define
- [:map {:title "duplicate-project"}
- [:project-id ::sm/uuid]
- [:name {:optional true} [:string {:max 250}]]]))
+ [:map {:title "duplicate-project"}
+ [:project-id ::sm/uuid]
+ [:name {:optional true} [:string {:max 250}]]])
(sv/defmethod ::duplicate-project
"Duplicate an entire project with all the files"
@@ -327,10 +325,9 @@
(def ^:private
schema:move-files
- (sm/define
- [:map {:title "move-files"}
- [:ids ::sm/set-of-uuid]
- [:project-id ::sm/uuid]]))
+ [:map {:title "move-files"}
+ [:ids ::sm/set-of-uuid]
+ [:project-id ::sm/uuid]])
(sv/defmethod ::move-files
"Move a set of files from one project to other."
@@ -382,10 +379,9 @@
(def ^:private
schema:move-project
- (sm/define
- [:map {:title "move-project"}
- [:team-id ::sm/uuid]
- [:project-id ::sm/uuid]]))
+ [:map {:title "move-project"}
+ [:team-id ::sm/uuid]
+ [:project-id ::sm/uuid]])
(sv/defmethod ::move-project
"Move projects between teams"
@@ -397,8 +393,8 @@
;; --- COMMAND: Clone Template
-(defn- clone-template
- [cfg {:keys [project-id ::rpc/profile-id] :as params} template]
+(defn clone-template
+ [cfg {:keys [project-id 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
@@ -417,6 +413,7 @@
(doseq [file-id result]
(let [props (assoc props :id file-id)
event (-> (audit/event-from-rpc-params params)
+ (assoc ::audit/profile-id profile-id)
(assoc ::audit/name "create-file")
(assoc ::audit/props props))]
(audit/submit! cfg event))))
@@ -425,10 +422,9 @@
(def ^:private
schema:clone-template
- (sm/define
- [:map {:title "clone-template"}
- [:project-id ::sm/uuid]
- [:template-id ::sm/word-string]]))
+ [:map {:title "clone-template"}
+ [:project-id ::sm/uuid]
+ [:template-id ::sm/word-string]])
(sv/defmethod ::clone-template
"Clone into the specified project the template by its id."
@@ -439,7 +435,8 @@
[{: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)]
+ template (tmpl/get-template-stream cfg template-id)
+ params (assoc params :profile-id profile-id)]
(when-not template
(ex/raise :type :not-found
diff --git a/backend/src/app/rpc/commands/media.clj b/backend/src/app/rpc/commands/media.clj
index 992c5d1da9..0a5c38e348 100644
--- a/backend/src/app/rpc/commands/media.clj
+++ b/backend/src/app/rpc/commands/media.clj
@@ -46,7 +46,7 @@
[:map {:title "upload-file-media-object"}
[:id {:optional true} ::sm/uuid]
[:file-id ::sm/uuid]
- [:is-local :boolean]
+ [:is-local ::sm/boolean]
[:name [:string {:max 250}]]
[:content ::media/upload]])
@@ -56,21 +56,19 @@
::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}]
- (let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
+ (files/check-edition-permissions! pool profile-id file-id)
+ (media/validate-media-type! content)
+ (media/validate-media-size! content)
- (files/check-edition-permissions! pool profile-id file-id)
- (media/validate-media-type! content)
- (media/validate-media-size! content)
-
- (db/run! cfg (fn [cfg]
- (let [object (create-file-media-object cfg params)
- props {:name (:name params)
- :file-id file-id
- :is-local (:is-local params)
- :size (:size content)
- :mtype (:mtype content)}]
- (with-meta object
- {::audit/replace-props props}))))))
+ (db/run! cfg (fn [cfg]
+ (let [object (create-file-media-object cfg params)
+ props {:name (:name params)
+ :file-id file-id
+ :is-local (:is-local params)
+ :size (:size content)
+ :mtype (:mtype content)}]
+ (with-meta object
+ {::audit/replace-props props})))))
(defn- big-enough-for-thumbnail?
"Checks if the provided image info is big enough for
@@ -174,7 +172,7 @@
(def ^:private schema:create-file-media-object-from-url
[:map {:title "create-file-media-object-from-url"}
[:file-id ::sm/uuid]
- [:is-local :boolean]
+ [:is-local ::sm/boolean]
[:url ::sm/uri]
[:id {:optional true} ::sm/uuid]
[:name {:optional true} [:string {:max 250}]]])
@@ -183,9 +181,8 @@
{::doc/added "1.17"
::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)
- (create-file-media-object-from-url cfg (assoc params :profile-id profile-id))))
+ (files/check-edition-permissions! pool profile-id file-id)
+ (create-file-media-object-from-url cfg (assoc params :profile-id profile-id)))
(defn download-image
[{:keys [::http/client]} uri]
@@ -256,7 +253,7 @@
(def ^:private schema:clone-file-media-object
[:map {:title "clone-file-media-object"}
[:file-id ::sm/uuid]
- [:is-local :boolean]
+ [:is-local ::sm/boolean]
[:id ::sm/uuid]])
(sv/defmethod ::clone-file-media-object
diff --git a/backend/src/app/rpc/commands/profile.clj b/backend/src/app/rpc/commands/profile.clj
index 40b8b8a43e..57034c4613 100644
--- a/backend/src/app/rpc/commands/profile.clj
+++ b/backend/src/app/rpc/commands/profile.clj
@@ -10,6 +10,7 @@
[app.common.data :as d]
[app.common.exceptions :as ex]
[app.common.schema :as sm]
+ [app.common.types.plugins :refer [schema:plugin-registry]]
[app.common.uuid :as uuid]
[app.config :as cf]
[app.db :as db]
@@ -40,6 +41,33 @@
(declare strip-private-attrs)
(declare verify-password)
+(def schema:props
+ [:map {:title "ProfileProps"}
+ [:plugins {:optional true} schema:plugin-registry]
+ [:newsletter-updates {:optional true} ::sm/boolean]
+ [:newsletter-news {:optional true} ::sm/boolean]
+ [:onboarding-team-id {:optional true} ::sm/uuid]
+ [:onboarding-viewed {:optional true} ::sm/boolean]
+ [:v2-info-shown {:optional true} ::sm/boolean]
+ [:welcome-file-id {:optional true} [:maybe ::sm/boolean]]
+ [:release-notes-viewed {:optional true}
+ [::sm/text {:max 100}]]])
+
+(def schema:profile
+ [:map {:title "Profile"}
+ [:id ::sm/uuid]
+ [:fullname [::sm/word-string {:max 250}]]
+ [:email ::sm/email]
+ [:is-active {:optional true} ::sm/boolean]
+ [:is-blocked {:optional true} ::sm/boolean]
+ [:is-demo {:optional true} ::sm/boolean]
+ [:is-muted {:optional true} ::sm/boolean]
+ [:created-at {:optional true} ::sm/inst]
+ [:modified-at {:optional true} ::sm/inst]
+ [:default-project-id {:optional true} ::sm/uuid]
+ [:default-team-id {:optional true} ::sm/uuid]
+ [:props {:optional true} schema:props]])
+
(defn clean-email
"Clean and normalizes email address string"
[email]
@@ -53,24 +81,6 @@
email)]
email))
-(def ^:private
- schema:profile
- (sm/define
- [:map {:title "Profile"}
- [:id ::sm/uuid]
- [:fullname [::sm/word-string {:max 250}]]
- [:email ::sm/email]
- [:is-active {:optional true} :boolean]
- [:is-blocked {:optional true} :boolean]
- [:is-demo {:optional true} :boolean]
- [:is-muted {:optional true} :boolean]
- [:created-at {:optional true} ::sm/inst]
- [:modified-at {:optional true} ::sm/inst]
- [:default-project-id {:optional true} ::sm/uuid]
- [:default-team-id {:optional true} ::sm/uuid]
- [:props {:optional true}
- [:map-of {:title "ProfileProps"} :keyword :any]]]))
-
;; --- QUERY: Get profile (own)
(sv/defmethod ::get-profile
@@ -99,11 +109,10 @@
(def ^:private
schema:update-profile
- (sm/define
- [:map {:title "update-profile"}
- [:fullname [::sm/word-string {:max 250}]]
- [:lang {:optional true} [:string {:max 5}]]
- [:theme {:optional true} [:string {:max 250}]]]))
+ [:map {:title "update-profile"}
+ [:fullname [::sm/word-string {:max 250}]]
+ [:lang {:optional true} [:string {:max 8}]]
+ [:theme {:optional true} [:string {:max 250}]]])
(sv/defmethod ::update-profile
{::doc/added "1.0"
@@ -144,11 +153,10 @@
(def ^:private
schema:update-profile-password
- (sm/define
- [:map {:title "update-profile-password"}
- [:password [::sm/word-string {:max 500}]]
- ;; Social registered users don't have old-password
- [:old-password {:optional true} [:maybe [::sm/word-string {:max 500}]]]]))
+ [:map {:title "update-profile-password"}
+ [:password [::sm/word-string {:max 500}]]
+ ;; Social registered users don't have old-password
+ [:old-password {:optional true} [:maybe [::sm/word-string {:max 500}]]]])
(sv/defmethod ::update-profile-password
{::doc/added "1.0"
@@ -199,9 +207,8 @@
(def ^:private
schema:update-profile-photo
- (sm/define
- [:map {:title "update-profile-photo"}
- [:file ::media/upload]]))
+ [:map {:title "update-profile-photo"}
+ [:file ::media/upload]])
(sv/defmethod ::update-profile-photo
{:doc/added "1.1"
@@ -210,8 +217,7 @@
[cfg {:keys [::rpc/profile-id file] :as params}]
;; Validate incoming mime type
(media/validate-media-type! file #{"image/jpeg" "image/png" "image/webp"})
- (let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
- (update-profile-photo cfg (assoc params :profile-id profile-id))))
+ (update-profile-photo cfg (assoc params :profile-id profile-id)))
(defn update-profile-photo
[{:keys [::db/pool ::sto/storage] :as cfg} {:keys [profile-id file] :as params}]
@@ -269,9 +275,8 @@
(def ^:private
schema:request-email-change
- (sm/define
- [:map {:title "request-email-change"}
- [:email ::sm/email]]))
+ [:map {:title "request-email-change"}
+ [:email ::sm/email]])
(sv/defmethod ::request-email-change
{::doc/added "1.0"
@@ -352,36 +357,38 @@
:extra-data ptoken})
nil))
-
;; --- MUTATION: Update Profile Props
(def ^:private
schema:update-profile-props
- (sm/define
- [:map {:title "update-profile-props"}
- [:props [:map-of :keyword :any]]]))
+ [:map {:title "update-profile-props"}
+ [:props schema:props]])
+
+(defn update-profile-props
+ [{:keys [::db/conn] :as cfg} profile-id props]
+ (let [profile (get-profile conn profile-id ::sql/for-update true)
+ props (reduce-kv (fn [props k v]
+ ;; We don't accept namespaced keys
+ (if (simple-ident? k)
+ (if (nil? v)
+ (dissoc props k)
+ (assoc props k v))
+ props))
+ (:props profile)
+ props)]
+
+ (db/update! conn :profile
+ {:props (db/tjson props)}
+ {:id profile-id})
+
+ (filter-props props)))
(sv/defmethod ::update-profile-props
{::doc/added "1.0"
::sm/params schema:update-profile-props}
- [{:keys [::db/pool]} {:keys [::rpc/profile-id props]}]
- (db/with-atomic [conn pool]
- (let [profile (get-profile conn profile-id ::sql/for-update true)
- props (reduce-kv (fn [props k v]
- ;; We don't accept namespaced keys
- (if (simple-ident? k)
- (if (nil? v)
- (dissoc props k)
- (assoc props k v))
- props))
- (:props profile)
- props)]
-
- (db/update! conn :profile
- {:props (db/tjson props)}
- {:id profile-id})
-
- (filter-props props))))
+ [cfg {:keys [::rpc/profile-id props]}]
+ (db/tx-run! cfg (fn [cfg]
+ (update-profile-props cfg profile-id props))))
;; --- MUTATION: Delete Profile
diff --git a/backend/src/app/rpc/commands/projects.clj b/backend/src/app/rpc/commands/projects.clj
index 4901a6efde..1b83102320 100644
--- a/backend/src/app/rpc/commands/projects.clj
+++ b/backend/src/app/rpc/commands/projects.clj
@@ -168,6 +168,17 @@
;; --- MUTATION: Create Project
+(defn- create-project
+ [{:keys [::db/conn] :as cfg} {:keys [profile-id team-id] :as params}]
+ (let [project (teams/create-project conn params)]
+ (teams/create-project-role conn profile-id (:id project) :owner)
+ (db/insert! conn :team-project-profile-rel
+ {:project-id (:id project)
+ :profile-id profile-id
+ :team-id team-id
+ :is-pinned false})
+ (assoc project :is-pinned false)))
+
(def ^:private schema:create-project
[:map {:title "create-project"}
[:team-id ::sm/uuid]
@@ -178,23 +189,15 @@
{::doc/added "1.18"
::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)
- (quotes/check-quote! conn {::quotes/id ::quotes/projects-per-team
- ::quotes/profile-id profile-id
- ::quotes/team-id team-id})
+ [cfg {:keys [::rpc/profile-id team-id] :as params}]
- (let [params (assoc params :profile-id profile-id)
- project (teams/create-project conn params)]
- (teams/create-project-role conn profile-id (:id project) :owner)
- (db/insert! conn :team-project-profile-rel
- {:project-id (:id project)
- :profile-id profile-id
- :team-id team-id
- :is-pinned false})
- (assoc project :is-pinned false))))
+ (teams/check-edition-permissions! cfg profile-id team-id)
+ (quotes/check! cfg {::quotes/id ::quotes/projects-per-team
+ ::quotes/profile-id profile-id
+ ::quotes/team-id team-id})
+ (let [params (assoc params :profile-id profile-id)]
+ (db/tx-run! cfg create-project params)))
;; --- MUTATION: Toggle Project Pin
@@ -208,7 +211,7 @@
(def ^:private schema:update-project-pin
[:map {:title "update-project-pin"}
[:team-id ::sm/uuid]
- [:is-pinned :boolean]
+ [:is-pinned ::sm/boolean]
[:id ::sm/uuid]])
(sv/defmethod ::update-project-pin
diff --git a/backend/src/app/rpc/commands/teams.clj b/backend/src/app/rpc/commands/teams.clj
index 74918de973..e162e3358d 100644
--- a/backend/src/app/rpc/commands/teams.clj
+++ b/backend/src/app/rpc/commands/teams.clj
@@ -15,6 +15,7 @@
[app.common.uuid :as uuid]
[app.config :as cf]
[app.db :as db]
+ [app.db.sql :as sql]
[app.email :as eml]
[app.loggers.audit :as audit]
[app.main :as-alias main]
@@ -28,6 +29,7 @@
[app.setup :as-alias setup]
[app.storage :as sto]
[app.tokens :as tokens]
+ [app.util.blob :as blob]
[app.util.services :as sv]
[app.util.time :as dt]
[app.worker :as wrk]
@@ -80,6 +82,35 @@
(cond-> row
(some? features) (assoc :features (db/decode-pgarray features #{}))))
+(defn- check-profile-muted
+ "Check if the member's email is part of the global bounce report"
+ [conn member]
+ (let [email (profile/clean-email (:email member))]
+ (when (and member (not (eml/allow-send-emails? conn member)))
+ (ex/raise :type :validation
+ :code :member-is-muted
+ :email email
+ :hint "the profile has reported repeatedly as spam or has bounces"))))
+
+(defn- check-email-bounce
+ "Check if the email is part of the global complain report"
+ [conn email show?]
+ (when (eml/has-bounce-reports? conn email)
+ (ex/raise :type :restriction
+ :code :email-has-permanent-bounces
+ :email (if show? email "private")
+ :hint "this email has been repeatedly reported as bounce")))
+
+(defn- check-email-spam
+ "Check if the member email is part of the global complain report"
+ [conn email show?]
+ (when (eml/has-complaint-reports? conn email)
+ (ex/raise :type :restriction
+ :code :email-has-complaints
+ :email (if show? email "private")
+ :hint "this email has been repeatedly reported as spam")))
+
+
;; --- Query: Teams
(declare get-teams)
@@ -194,16 +225,16 @@
;; --- Query: Team Members
(def sql:team-members
- "select tp.*,
+ "SELECT tp.*,
p.id,
p.email,
- p.fullname as name,
- p.fullname as fullname,
+ p.fullname AS name,
+ p.fullname AS fullname,
p.photo_id,
p.is_active
- from team_profile_rel as tp
- join profile as p on (p.id = tp.profile_id)
- where tp.team_id = ?")
+ FROM team_profile_rel AS tp
+ JOIN profile AS p ON (p.id = tp.profile_id)
+ WHERE tp.team_id = ?")
(defn get-team-members
[conn team-id]
@@ -333,6 +364,24 @@
(check-read-permissions! conn profile-id team-id)
(get-team-invitations conn team-id)))
+
+;; --- COMMAND QUERY: get-team-info
+
+(defn- get-team-info
+ [{:keys [::db/conn] :as cfg} {:keys [id] :as params}]
+ (db/get* conn :team
+ {:id id}
+ {::sql/columns [:id :is-default]}))
+
+(sv/defmethod ::get-team-info
+ "Retrieve minimal team info by its ID."
+ {::rpc/auth false
+ ::doc/added "2.2.0"
+ ::sm/params schema:get-team}
+ [cfg params]
+ (db/tx-run! cfg get-team-info params))
+
+
;; --- Mutation: Create Team
(declare create-team)
@@ -352,17 +401,19 @@
{::doc/added "1.17"
::sm/params schema:create-team}
[cfg {:keys [::rpc/profile-id] :as params}]
- (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
- (quotes/check-quote! conn {::quotes/id ::quotes/teams-per-profile
- ::quotes/profile-id profile-id})
- (let [features (-> (cfeat/get-enabled-features cf/flags)
- (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)}})))))
+ (quotes/check! cfg {::quotes/id ::quotes/teams-per-profile
+ ::quotes/profile-id profile-id})
+
+ (let [features (-> (cfeat/get-enabled-features cf/flags)
+ (cfeat/check-client-features! (:features params)))
+ params (-> params
+ (assoc :profile-id profile-id)
+ (assoc :features features))
+ team (db/tx-run! cfg create-team params)]
+
+ (with-meta team
+ {::audit/props {:id (:id team)}})))
(defn create-team
"This is a complete team creation process, it creates the team
@@ -674,8 +725,7 @@
[cfg {:keys [::rpc/profile-id file] :as params}]
;; Validate incoming mime type
(media/validate-media-type! file #{"image/jpeg" "image/png" "image/webp"})
- (let [cfg (update cfg ::sto/storage media/configure-assets-storage)]
- (update-team-photo cfg (assoc params :profile-id profile-id))))
+ (update-team-photo cfg (assoc params :profile-id profile-id)))
(defn update-team-photo
[{:keys [::db/pool ::sto/storage] :as cfg} {:keys [profile-id team-id] :as params}]
@@ -717,36 +767,51 @@
:member-id member-id}))
(defn- create-profile-identity-token
- [cfg profile]
+ [cfg profile-id]
+
+ (dm/assert!
+ "expected valid uuid for profile-id"
+ (uuid? profile-id))
+
(tokens/generate (::setup/props cfg)
{:iss :profile-identity
- :profile-id (:id profile)
+ :profile-id profile-id
:exp (dt/in-future {:days 30})}))
+(def ^:private schema:create-invitation
+ [:map {:title "params:create-invitation"}
+ [::rpc/profile-id ::sm/uuid]
+ [:team
+ [:map
+ [:id ::sm/uuid]
+ [:name :string]]]
+ [:profile
+ [:map
+ [:id ::sm/uuid]
+ [:fullname :string]]]
+ [:role [::sm/one-of valid-roles]]
+ [:email ::sm/email]])
+
+(def ^:private check-create-invitation-params!
+ (sm/check-fn schema:create-invitation))
+
(defn- create-invitation
[{:keys [::db/conn] :as cfg} {:keys [team profile role email] :as params}]
+
+ (dm/assert!
+ "expected valid connection on cfg parameter"
+ (db/connection? conn))
+
+ (dm/assert!
+ "expected valid params for `create-invitation` fn"
+ (check-create-invitation-params! params))
+
(let [email (profile/clean-email email)
member (profile/get-profile-by-email conn email)]
- (when (and member (not (eml/allow-send-emails? conn member)))
- (ex/raise :type :validation
- :code :member-is-muted
- :email email
- :hint "the profile has reported repeatedly as spam or has bounces"))
-
- ;; Secondly check if the invited member email is part of the global bounce report.
- (when (eml/has-bounce-reports? conn email)
- (ex/raise :type :restriction
- :code :email-has-permanent-bounces
- :email email
- :hint "the email you invite has been repeatedly reported as bounce"))
-
- ;; Secondly check if the invited member email is part of the global complain report.
- (when (eml/has-complaint-reports? conn email)
- (ex/raise :type :restriction
- :code :email-has-complaints
- :email email
- :hint "the email you invite has been repeatedly reported as spam"))
+ (check-profile-muted conn member)
+ (check-email-bounce conn email true)
+ (check-email-spam conn email true)
;; When we have email verification disabled and invitation user is
;; already present in the database, we proceed to add it to the
@@ -780,7 +845,8 @@
(name role) expire
(name role) expire])
updated? (not= id (:id invitation))
- tprops {:profile-id (:id profile)
+ profile-id (:id profile)
+ tprops {:profile-id profile-id
:invitation-id (:id invitation)
:valid-until expire
:team-id (:id team)
@@ -788,12 +854,11 @@
:member-id (:id member)
:role role}
itoken (create-invitation-token cfg tprops)
- ptoken (create-profile-identity-token cfg profile)]
+ ptoken (create-profile-identity-token cfg profile-id)]
(when (contains? cf/flags :log-invitation-tokens)
(l/info :hint "invitation token" :token itoken))
-
(let [props (-> (dissoc tprops :profile-id)
(audit/clean-props))
evname (if updated?
@@ -815,63 +880,142 @@
itoken))))
+(defn- add-user-to-team
+ [conn profile team role email]
+
+ (let [team-id (:id team)
+ member (db/get* conn :profile
+ {:email (str/lower email)}
+ {::sql/columns [:id :email]})
+ params (merge
+ {:team-id team-id
+ :profile-id (:id member)}
+ (role->params role))]
+
+ ;; Do not allow blocked users to join teams.
+ (when (:is-blocked member)
+ (ex/raise :type :restriction
+ :code :profile-blocked))
+
+ (quotes/check!
+ {::db/conn conn
+ ::quotes/id ::quotes/profiles-per-team
+ ::quotes/profile-id (:id member)
+ ::quotes/team-id team-id})
+
+ ;; Insert the member to the team
+ (db/insert! conn :team-profile-rel params {::db/on-conflict-do-nothing? true})
+
+ ;; Delete any request
+ (db/delete! conn :team-access-request
+ {:team-id team-id :requester-id (:id member)})
+
+ ;; Delete any invitation
+ (db/delete! conn :team-invitation
+ {:team-id team-id :email-to (:email member)})
+
+ (eml/send! {::eml/conn conn
+ ::eml/factory eml/join-team
+ :public-uri (cf/get :public-uri)
+ :to email
+ :invited-by (:fullname profile)
+ :team (:name team)
+ :team-id (:id team)})))
+
+(def sql:valid-requests-email
+ "SELECT p.email
+ FROM team_access_request AS tr
+ JOIN profile AS p ON (tr.requester_id = p.id)
+ WHERE tr.team_id = ?
+ AND tr.auto_join_until > now()")
+
+(defn- get-valid-requests-email
+ [conn team-id]
+ (db/exec! conn [sql:valid-requests-email team-id]))
+
+(def ^:private xf:map-email
+ (map :email))
+
+(defn- create-team-invitations
+ [{:keys [::db/conn] :as cfg} {:keys [profile team role emails] :as params}]
+ (let [join-requests (into #{} xf:map-email
+ (get-valid-requests-email conn (:id team)))
+ team-members (into #{} xf:map-email
+ (get-team-members conn (:id team)))
+
+ invitations (into #{}
+ (comp
+ ;; We don't re-send inviation to
+ ;; already existing members
+ (remove team-members)
+ ;; We don't send invitations to
+ ;; join-requested members
+ (remove join-requests)
+ (map (fn [email] (assoc params :email email)))
+ (keep (partial create-invitation cfg)))
+ emails)]
+
+ ;; For requested invitations, do not send invitation emails, add
+ ;; the user directly to the team
+ (->> (filter join-requests emails)
+ (run! (partial add-user-to-team conn profile team role)))
+
+ invitations))
+
(def ^:private schema:create-team-invitations
[:map {:title "create-team-invitations"}
[:team-id ::sm/uuid]
[:role schema:role]
- [:emails ::sm/set-of-emails]])
+ [:emails [::sm/set ::sm/email]]])
+
+(def ^:private max-invitations-by-request-threshold
+ "The number of invitations can be sent in a single rpc request"
+ 25)
(sv/defmethod ::create-team-invitations
"A rpc call that allow to send a single or multiple invitations to
join the team."
{::doc/added "1.17"
::sm/params schema:create-team-invitations}
- [{:keys [::db/pool] :as cfg} {:keys [::rpc/profile-id team-id emails role] :as params}]
- (db/with-atomic [conn pool]
- (let [perms (get-permissions conn profile-id team-id)
- profile (db/get-by-id conn :profile profile-id)
- team (db/get-by-id conn :team team-id)
- emails (into #{} (map profile/clean-email) emails)]
+ [cfg {:keys [::rpc/profile-id team-id emails] :as params}]
+ (let [perms (get-permissions cfg profile-id team-id)
+ profile (db/get-by-id cfg :profile profile-id)
+ emails (into #{} (map profile/clean-email) emails)]
- (run! (partial quotes/check-quote! conn)
- (list {::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)}))
+ (when-not (:is-admin perms)
+ (ex/raise :type :validation
+ :code :insufficient-permissions))
- (when-not (:is-admin perms)
- (ex/raise :type :validation
- :code :insufficient-permissions))
+ (when (> (count emails) max-invitations-by-request-threshold)
+ (ex/raise :type :validation
+ :code :max-invitations-by-request
+ :hint "the maximum of invitation on single request is reached"
+ :threshold max-invitations-by-request-threshold))
- ;; First check if the current profile is allowed to send emails.
- (when-not (eml/allow-send-emails? conn profile)
- (ex/raise :type :validation
- :code :profile-is-muted
- :hint "looks like the profile has reported repeatedly as spam or has permanent bounces"))
+ (-> cfg
+ (assoc ::quotes/profile-id profile-id)
+ (assoc ::quotes/team-id team-id)
+ (assoc ::quotes/incr (count emails))
+ (quotes/check! {::quotes/id ::quotes/invitations-per-team}
+ {::quotes/id ::quotes/profiles-per-team}))
- (let [cfg (assoc cfg ::db/conn conn)
- members (->> (db/exec! conn [sql:team-members team-id])
- (into #{} (map :email)))
+ ;; Check if the current profile is allowed to send emails
+ (check-profile-muted cfg profile)
- invitations (into #{}
- (comp
- ;; We don't re-send inviation to already existing members
- (remove (partial contains? members))
- (map (fn [email]
- (-> params
- (assoc :email email)
- (assoc :team team)
- (assoc :profile profile)
- (assoc :role role))))
- (keep (partial create-invitation cfg)))
- emails)]
- (with-meta {:total (count invitations)
- :invitations invitations}
- {::audit/props {:invitations (count invitations)}})))))
+ (let [team (db/get-by-id cfg :team team-id)
+ ;; NOTE: Is important pass RPC method params down to the
+ ;; `create-team-invitations` because it uses the implicit
+ ;; RPC properties from params for fill necessary data on
+ ;; emiting an entry to the audit-log
+ invitations (db/tx-run! cfg create-team-invitations
+ (-> params
+ (assoc :profile profile)
+ (assoc :team team)
+ (assoc :emails emails)))]
+
+ (with-meta {:total (count invitations)
+ :invitations invitations}
+ {::audit/props {:invitations (count invitations)}}))))
;; --- Mutation: Create Team & Invite Members
@@ -880,57 +1024,55 @@
[:name [:string {:max 250}]]
[:features {:optional true} ::cfeat/features]
[:id {:optional true} ::sm/uuid]
- [:emails ::sm/set-of-emails]
+ [:emails [::sm/set ::sm/email]]
[:role schema:role]])
(sv/defmethod ::create-team-with-invitations
{::doc/added "1.17"
- ::sm/params schema:create-team-with-invitations}
- [cfg {:keys [::rpc/profile-id emails role name] :as params}]
+ ::sm/params schema:create-team-with-invitations
+ ::db/transaction true}
+ [{:keys [::db/conn] :as 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))
+ team (create-team cfg params)
+ emails (into #{} (map profile/clean-email) emails)]
- 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)]
+ (-> cfg
+ (assoc ::quotes/profile-id profile-id)
+ (assoc ::quotes/team-id (:id team))
+ (assoc ::quotes/incr (count emails))
+ (quotes/check! {::quotes/id ::quotes/teams-per-profile}
+ {::quotes/id ::quotes/invitations-per-team}
+ {::quotes/id ::quotes/profiles-per-team}))
- (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))
+ (when (> (count emails) max-invitations-by-request-threshold)
+ (ex/raise :type :validation
+ :code :max-invitations-by-request
+ :hint "the maximum of invitation on single request is reached"
+ :threshold max-invitations-by-request-threshold))
- ;; 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.
+ (let [profile (db/get-by-id conn :profile profile-id)
+ params (-> params
+ (assoc :team team)
+ (assoc :profile profile)
+ (assoc :role role))
+ invitations (->> emails
+ (map (fn [email] (assoc params :email email)))
+ (map (partial create-invitation cfg)))]
- (vary-meta team assoc ::audit/props {:invitations (count emails)})))))
+ (vary-meta team assoc ::audit/props {:invitations (count invitations)}))))
;; --- Query: get-team-invitation-token
@@ -1007,3 +1149,130 @@
:email-to (profile/clean-email email)}
{::db/return-keys true})]
(rph/wrap nil {::audit/props {:invitation-id (:id invitation)}})))))
+
+
+
+
+;; --- Mutation: Request Team Invitation
+
+(def sql:upsert-team-access-request
+ "INSERT INTO team_access_request (id, team_id, requester_id, valid_until, auto_join_until)
+ VALUES (?, ?, ?, ?, ?)
+ ON conflict(id)
+ DO UPDATE SET valid_until = ?, auto_join_until = ?, updated_at = now()
+ RETURNING *")
+
+
+(def sql:team-access-request
+ "SELECT id, (valid_until < now()) AS expired
+ FROM team_access_request
+ WHERE team_id = ?
+ AND requester_id = ?")
+
+(def sql:team-owner
+ "SELECT profile_id
+ FROM team_profile_rel
+ WHERE team_id = ?
+ AND is_owner = true")
+
+
+(defn- create-team-access-request
+ [{:keys [::db/conn] :as cfg} {:keys [team requester team-owner file is-viewer] :as params}]
+ (let [old-request (->> (db/exec-one! conn [sql:team-access-request (:id team) (:id requester)])
+ (decode-row))]
+ (when (false? (:expired old-request))
+ (ex/raise :type :validation
+ :code :request-already-sent
+ :hint "you have already made a request to join this team less than 24 hours ago"))
+
+ (let [id (or (:id old-request) (uuid/next))
+ valid_until (dt/in-future "24h")
+ auto_join_until (dt/in-future "168h") ;; 7 days
+ request (db/exec-one! conn [sql:upsert-team-access-request
+ id (:id team) (:id requester) valid_until auto_join_until
+ valid_until auto_join_until])
+ factory (cond
+ (and (some? file) (:is-default team) is-viewer)
+ eml/request-file-access-yourpenpot-view
+ (and (some? file) (:is-default team))
+ eml/request-file-access-yourpenpot
+ (some? file)
+ eml/request-file-access
+ :else
+ eml/request-team-access)
+ page-id (when (some? file)
+ (-> file :data :pages first))]
+
+ ;; TODO needs audit?
+
+ (eml/send! {::eml/conn conn
+ ::eml/factory factory
+ :public-uri (cf/get :public-uri)
+ :to (:email team-owner)
+ :requested-by (:fullname requester)
+ :requested-by-email (:email requester)
+ :team-name (:name team)
+ :team-id (:id team)
+ :file-name (:name file)
+ :file-id (:id file)
+ :page-id page-id})
+
+ request)))
+
+
+(def ^:private schema:create-team-access-request
+ [:and
+ [:map {:title "create-team-access-request"}
+ [:file-id {:optional true} ::sm/uuid]
+ [:team-id {:optional true} ::sm/uuid]
+ [:is-viewer {:optional true} ::sm/boolean]]
+
+ [:fn (fn [params]
+ (or (contains? params :file-id)
+ (contains? params :team-id)))]])
+
+
+(sv/defmethod ::create-team-access-request
+ "A rpc call that allow to request for an invitations to join the team."
+ {::doc/added "2.2.0"
+ ::sm/params schema:create-team-access-request}
+ [cfg {:keys [::rpc/profile-id file-id team-id is-viewer] :as params}]
+
+ (db/tx-run! cfg
+ (fn [{:keys [::db/conn] :as cfg}]
+
+ (let [requester (db/get-by-id conn :profile profile-id)
+ team-id (if (some? team-id)
+ team-id
+ (:id (get-team-for-file conn file-id)))
+ team (db/get-by-id conn :team team-id)
+ owner-id (->> (db/exec! conn [sql:team-owner (:id team)])
+ (map decode-row)
+ (first)
+ :profile-id)
+ team-owner (db/get-by-id conn :profile owner-id)
+ file (when (some? file-id)
+ (db/get* conn :file
+ {:id file-id}
+ {::sql/columns [:id :name :data]}))
+ file (when (some? file)
+ (assoc file :data (blob/decode (:data file))))]
+
+ ;;TODO needs quotes?
+
+ (when (or (nil? requester) (nil? team) (nil? team-owner) (and (some? file-id) (nil? file)))
+ (ex/raise :type :validation
+ :code :invalid-parameters))
+
+ ;; Check that the requester is not muted
+ (check-profile-muted conn requester)
+
+ ;; Check that the owner is not marked as bounce nor spam
+ (check-email-bounce conn (:email team-owner) false)
+ (check-email-spam conn (:email team-owner) true)
+
+ (let [request (create-team-access-request
+ cfg {:team team :requester requester :team-owner team-owner :file file :is-viewer is-viewer})]
+ (when request
+ (with-meta {:request request}
+ {::audit/props {:request 1}})))))))
diff --git a/backend/src/app/rpc/commands/verify_token.clj b/backend/src/app/rpc/commands/verify_token.clj
index 0e4f3c89f1..7f0dd6b5fb 100644
--- a/backend/src/app/rpc/commands/verify_token.clj
+++ b/backend/src/app/rpc/commands/verify_token.clj
@@ -8,6 +8,7 @@
(:require
[app.common.exceptions :as ex]
[app.common.schema :as sm]
+ [app.config :as cf]
[app.db :as db]
[app.db.sql :as-alias sql]
[app.http.session :as session]
@@ -29,21 +30,19 @@
(def ^:private schema:verify-token
[:map {:title "verify-token"}
- [:token [:string {:max 1000}]]])
+ [:token [:string {:max 5000}]]])
(sv/defmethod ::verify-token
{::rpc/auth false
::doc/added "1.15"
::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})
- cfg (assoc cfg :conn conn)]
- (process-token cfg params claims))))
+ [cfg {:keys [token] :as params}]
+ (let [claims (tokens/verify (::setup/props cfg) {:token token})]
+ (db/tx-run! cfg process-token params claims)))
(defmethod process-token :change-email
- [{:keys [conn] :as cfg} _params {:keys [profile-id email] :as claims}]
+ [{:keys [::db/conn] :as cfg} _params {:keys [profile-id email] :as claims}]
(let [email (profile/clean-email email)]
(when (profile/get-profile-by-email conn email)
(ex/raise :type :validation
@@ -59,7 +58,7 @@
::audit/profile-id profile-id})))
(defmethod process-token :verify-email
- [{:keys [conn] :as cfg} _ {:keys [profile-id] :as claims}]
+ [{:keys [::db/conn] :as cfg} _ {:keys [profile-id] :as claims}]
(let [profile (profile/get-profile conn profile-id)
claims (assoc claims :profile profile)]
@@ -80,22 +79,14 @@
::audit/profile-id (:id profile)}))))
(defmethod process-token :auth
- [{:keys [conn] :as cfg} _params {:keys [profile-id] :as claims}]
- (let [profile (profile/get-profile conn profile-id {::sql/for-update true})
- props (merge (:props profile)
- (:props claims))]
- (when (not= props (:props profile))
- (db/update! conn :profile
- {:props (db/tjson props)}
- {:id profile-id}))
-
- (let [profile (assoc profile :props props)]
- (assoc claims :profile profile))))
+ [{:keys [::db/conn] :as cfg} _params {:keys [profile-id] :as claims}]
+ (let [profile (profile/get-profile conn profile-id)]
+ (assoc claims :profile profile)))
;; --- Team Invitation
(defn- accept-invitation
- [{:keys [conn] :as cfg} {:keys [team-id role member-email] :as claims} invitation member]
+ [{:keys [::db/conn] :as cfg} {:keys [team-id role member-email] :as claims} invitation member]
(let [;; Update the role if there is an invitation
role (or (some-> invitation :role keyword) role)
params (merge
@@ -108,10 +99,9 @@
(ex/raise :type :restriction
:code :profile-blocked))
- (quotes/check-quote! conn
- {::quotes/id ::quotes/profiles-per-team
- ::quotes/profile-id (:id member)
- ::quotes/team-id team-id})
+ (quotes/check! cfg {::quotes/id ::quotes/profiles-per-team
+ ::quotes/profile-id (:id member)
+ ::quotes/team-id team-id})
;; Insert the invited member to the team
(db/insert! conn :team-profile-rel params {::db/on-conflict-do-nothing? true})
@@ -127,6 +117,10 @@
(db/delete! conn :team-invitation
{:team-id team-id :email-to member-email})
+ ;; Delete any request
+ (db/delete! conn :team-access-request
+ {:team-id team-id :requester-id (:id member)})
+
(assoc member :is-active true)))
(def schema:team-invitation-claims
@@ -143,7 +137,7 @@
(sm/lazy-validator schema:team-invitation-claims))
(defmethod process-token :team-invitation
- [{:keys [conn] :as cfg}
+ [{:keys [::db/conn] :as cfg}
{:keys [::rpc/profile-id token] :as params}
{:keys [member-id team-id member-email] :as claims}]
@@ -152,11 +146,12 @@
: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})
- profile (db/get* conn :profile
- {:id profile-id}
- {:columns [:id :email]})]
+ (let [invitation (db/get* conn :team-invitation
+ {:team-id team-id :email-to member-email})
+ profile (db/get* conn :profile
+ {:id profile-id}
+ {:columns [:id :email]})
+ registration-disabled? (not (contains? cf/flags :registration))]
(when (nil? invitation)
(ex/raise :type :validation
:code :invalid-token
@@ -185,12 +180,12 @@
:hint "logged-in user does not matches the invitation"))
;; If we have not logged-in user, and invitation comes with member-id we
- ;; redirect user to login, if no memeber-id is present in the invitation
- ;; token, we redirect user the the register page.
+ ;; redirect user to login, if no memeber-id is present and in the invitation
+ ;; token and registration is enabled, we redirect user the the register page.
{:invitation-token token
:iss :team-invitation
- :redirect-to (if member-id :auth-login :auth-register)
+ :redirect-to (if (or member-id registration-disabled?) :auth-login :auth-register)
:state :pending})))
;; --- Default
diff --git a/backend/src/app/rpc/commands/webhooks.clj b/backend/src/app/rpc/commands/webhooks.clj
index 2649a73a4b..e2a56691e5 100644
--- a/backend/src/app/rpc/commands/webhooks.clj
+++ b/backend/src/app/rpc/commands/webhooks.clj
@@ -111,7 +111,7 @@
[:id ::sm/uuid]
[:uri ::sm/uri]
[:mtype [::sm/one-of {:format "string"} valid-mtypes]]
- [:is-active :boolean]])
+ [:is-active ::sm/boolean]])
(sv/defmethod ::update-webhook
{::doc/added "1.17"
diff --git a/backend/src/app/rpc/cond.clj b/backend/src/app/rpc/cond.clj
index 3fe03c8210..2c79d8f664 100644
--- a/backend/src/app/rpc/cond.clj
+++ b/backend/src/app/rpc/cond.clj
@@ -48,20 +48,25 @@
(str "W/\"" (encode s) "\""))
(defn wrap
- [_ f {:keys [::get-object ::key-fn ::reuse-key?] :as mdata}]
+ [_ f {:keys [::get-object ::key-fn ::reuse-key?] :or {reuse-key? true} :as mdata}]
(if (and (ifn? get-object) (ifn? key-fn))
(do
(l/trc :hint "instrumenting method" :service (::sv/name mdata))
(fn [cfg {:keys [::key] :as params}]
(if *enabled*
- (let [key' (when (or key reuse-key?)
- (some->> (get-object cfg params) (key-fn params) (fmt-key)))]
+ (let [object (when (some? key)
+ (get-object cfg params))
+ key' (when (some? object)
+ (->> object (key-fn params) (fmt-key)))]
(if (and (some? key) (= key key'))
(fn [_] {::rres/status 304})
- (let [result (f cfg params)
+ (let [params (if (some? object)
+ (assoc params ::object object)
+ params)
+ result (f cfg params)
etag (or (and reuse-key? key')
- (some-> result meta ::key fmt-key)
- (some-> result key-fn fmt-key))]
+ (some->> result meta ::key fmt-key)
+ (some->> result (key-fn params) fmt-key))]
(rph/with-header result "etag" etag))))
(f cfg params))))
f))
diff --git a/backend/src/app/rpc/doc.clj b/backend/src/app/rpc/doc.clj
index 185f3fc4c2..ea973ff7a4 100644
--- a/backend/src/app/rpc/doc.clj
+++ b/backend/src/app/rpc/doc.clj
@@ -26,7 +26,6 @@
[clojure.spec.alpha :as s]
[cuerdas.core :as str]
[integrant.core :as ig]
- [malli.transform :as mt]
[pretty-spec.core :as ps]
[ring.response :as-alias rres]))
@@ -98,77 +97,79 @@
;; OPENAPI / SWAGGER (v3.1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def output-transformer
- (mt/transformer
- sm/default-transformer
- (mt/key-transformer {:encode str/camel
- :decode (comp keyword str/kebab)})))
-
(defn prepare-openapi-context
[methods]
- (letfn [(gen-response-doc [tsx schema]
- (let [schema (sm/schema schema)
- example (sm/generate schema)
- example (sm/encode schema example output-transformer)]
- {:default
- {:description "A default response"
- :content
- {"application/json"
- {:schema tsx
- :example example}}}}))
+ (let [definitions (atom {})
+ options {:registry sr/default-registry
+ ::oapi/definitions-path "#/components/schemas/"
+ ::oapi/definitions definitions}
- (gen-params-doc [tsx schema]
- (let [example (sm/generate schema)
- example (sm/encode schema example output-transformer)]
- {:required true
- :content
- {"application/json"
- {:schema tsx
- :example example}}}))
+ output-transformer
+ (sm/json-transformer)
- (gen-method-doc [options mdata]
- (let [pschema (::sm/params mdata)
- rschema (::sm/result mdata)
+ gen-response-doc
+ (fn [tsx schema]
+ (let [schema (sm/schema schema)
+ example (sm/generate schema)
+ example (sm/encode schema example output-transformer)]
+ {:default
+ {:description "A default response"
+ :content
+ {"application/json"
+ {:schema tsx
+ :example example}}}}))
- sparams (-> pschema (oapi/transform options) (gen-params-doc pschema))
- sresp (some-> rschema (oapi/transform options) (gen-response-doc rschema))
+ gen-params-doc
+ (fn [tsx schema]
+ (let [example (sm/generate schema)
+ example (sm/encode schema example output-transformer)]
+ {:required true
+ :content
+ {"application/json"
+ {:schema tsx
+ :example example}}}))
- rpost {:description (::sv/docstring mdata)
- :deprecated (::deprecated mdata false)
- :requestBody sparams}
+ gen-method-doc
+ (fn [mdata]
+ (let [pschema (::sm/params mdata)
+ rschema (::sm/result mdata)
- rpost (cond-> rpost
- (some? sresp)
- (assoc :responses sresp))]
+ sparams (-> pschema (oapi/transform options) (gen-params-doc pschema))
+ sresp (some-> rschema (oapi/transform options) (gen-response-doc rschema))
- {:name (-> mdata ::sv/name d/name)
- :module (-> (:ns mdata) (str/split ".") last)
- :repr {:post rpost}}))]
+ rpost {:description (::sv/docstring mdata)
+ :deprecated (::deprecated mdata false)
+ :requestBody sparams}
- (let [definitions (atom {})
- options {:registry sr/default-registry
- ::oapi/definitions-path "#/components/schemas/"
- ::oapi/definitions definitions}
+ rpost (cond-> rpost
+ (some? sresp)
+ (assoc :responses sresp))]
- paths (binding [oapi/*definitions* definitions]
- (->> methods
- (map (comp first val))
- (filter ::sm/params)
- (map (partial gen-method-doc options))
- (sort-by (juxt :module :name))
- (map (fn [doc]
- [(str/ffmt "/command/%" (:name doc)) (:repr doc)]))
- (into {})))]
- {:openapi "3.0.0"
- :info {:version (:main cf/version)}
- :servers [{:url (str/ffmt "%/api/rpc" (cf/get :public-uri))
+ {:name (-> mdata ::sv/name d/name)
+ :module (-> (:ns mdata) (str/split ".") last)
+ :repr {:post rpost}}))
+
+ paths
+ (binding [oapi/*definitions* definitions]
+ (->> methods
+ (map (comp first val))
+ (filter ::sm/params)
+ (map gen-method-doc)
+ (sort-by (juxt :module :name))
+ (map (fn [doc]
+ [(str/ffmt "/command/%" (:name doc)) (:repr doc)]))
+ (into {})))]
+
+ {:openapi "3.0.0"
+ :info {:version (:main cf/version)}
+ :servers [{:url (str/ffmt "%/api/rpc" (cf/get :public-uri))
;; :description "penpot backend"
- }]
- :security
- {:api_key []}
+ }]
+ :security
+ {:api_key []}
- :paths paths
- :components {:schemas @definitions}})))
+ :paths paths
+ :components {:schemas @definitions}}))
(defn openapi-json-handler
[context]
diff --git a/backend/src/app/rpc/permissions.clj b/backend/src/app/rpc/permissions.clj
index ef1d71072a..0704d70ed7 100644
--- a/backend/src/app/rpc/permissions.clj
+++ b/backend/src/app/rpc/permissions.clj
@@ -15,11 +15,11 @@
(sm/register! ::permissions
[:map {:title "Permissions"}
[:type {:gen/elements [:membership :share-link]} :keyword]
- [:is-owner :boolean]
- [:is-admin :boolean]
- [:can-edit :boolean]
- [:can-read :boolean]
- [:is-logged :boolean]])
+ [:is-owner ::sm/boolean]
+ [:is-admin ::sm/boolean]
+ [:can-edit ::sm/boolean]
+ [:can-read ::sm/boolean]
+ [:is-logged ::sm/boolean]])
(s/def ::role #{:admin :owner :editor :viewer})
diff --git a/backend/src/app/rpc/quotes.clj b/backend/src/app/rpc/quotes.clj
index 87f9bf7f77..888a5e9abe 100644
--- a/backend/src/app/rpc/quotes.clj
+++ b/backend/src/app/rpc/quotes.clj
@@ -7,16 +7,13 @@
(ns app.rpc.quotes
"Penpot resource usage quotes."
(:require
- [app.common.data.macros :as dm]
[app.common.exceptions :as ex]
[app.common.logging :as l]
[app.common.schema :as sm]
- [app.common.spec :as us]
[app.config :as cf]
[app.db :as db]
[app.util.time :as dt]
[app.worker :as wrk]
- [clojure.spec.alpha :as s]
[cuerdas.core :as str]))
(defmulti check-quote ::id)
@@ -26,14 +23,16 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(def ^:private schema:quote
- (sm/define
- [:map {:title "Quote"}
- [::team-id {:optional true} ::sm/uuid]
- [::project-id {:optional true} ::sm/uuid]
- [::file-id {:optional true} ::sm/uuid]
- [::incr {:optional true} [:int {:min 0}]]
- [::id :keyword]
- [::profile-id ::sm/uuid]]))
+ [:map {:title "Quote"}
+ [::team-id {:optional true} ::sm/uuid]
+ [::project-id {:optional true} ::sm/uuid]
+ [::file-id {:optional true} ::sm/uuid]
+ [::incr {:optional true} [::sm/int {:min 0}]]
+ [::id :keyword]
+ [::profile-id ::sm/uuid]])
+
+(def valid-quote?
+ (sm/lazy-validator schema:quote))
(def ^:private enabled (volatile! true))
@@ -47,20 +46,31 @@
[]
(vswap! enabled (constantly false)))
-(defn check-quote!
- [ds quote]
- (dm/assert!
- "expected valid quote map"
- (sm/validate schema:quote quote))
+(defn- check
+ [cfg quote]
+ (let [quote (merge cfg quote)
+ id (::id quote)]
- (when (contains? cf/flags :quotes)
- (when @enabled
- ;; This approach add flexibility on how and where the
- ;; check-quote! can be called (in or out of transaction)
- (db/run! ds (fn [cfg]
- (-> (merge cfg quote)
- (assoc ::target (name (::id quote)))
- (check-quote)))))))
+ (when-not (valid-quote? quote)
+ (ex/raise :type :internal
+ :code :invalid-quote-definition
+ :hint "found invalid data for quote schema"
+ :quote (name id)))
+
+ (-> (assoc quote ::target (name id))
+ (check-quote))))
+
+(defn check!
+ ([cfg]
+ (when (contains? cf/flags :quotes)
+ (when @enabled
+ (db/run! cfg check {}))))
+
+ ([cfg & others]
+ (when (contains? cf/flags :quotes)
+ (when @enabled
+ (db/run! cfg (fn [cfg]
+ (run! (partial check cfg) others)))))))
(defn- send-notification!
[{:keys [::db/conn] :as params}]
@@ -101,7 +111,7 @@
(map :quote)
(reduce max (- Integer/MAX_VALUE)))
quote (if (pos? quote) quote default)
- total (->> (db/exec! conn count-sql) first :total)]
+ total (:total (db/exec-one! conn count-sql))]
(when (> (+ total incr) quote)
(if (contains? cf/flags :soft-quotes)
@@ -113,72 +123,81 @@
:count total)))))
(def ^:private sql:get-quotes-1
- "select id, quote from usage_quote
- where target = ?
- and profile_id = ?
- and team_id is null
- and project_id is null
- and file_id is null;")
+ "SELECT id, quote
+ FROM usage_quote
+ WHERE target = ?
+ AND profile_id = ?
+ AND team_id IS NULL
+ AND project_id IS NULL
+ AND file_id IS NULL;")
(def ^:private sql:get-quotes-2
- "select id, quote from usage_quote
- where target = ?
- and ((team_id = ? and (profile_id = ? or profile_id is null)) or
- (profile_id = ? and team_id is null and project_id is null and file_id is null));")
+ "SELECT id, quote
+ FROM usage_quote
+ WHERE target = ?
+ AND ((team_id = ? AND (profile_id = ? OR profile_id IS NULL)) OR
+ (profile_id = ? AND team_id IS NULL AND project_id IS NULL AND file_id IS NULL));")
(def ^:private sql:get-quotes-3
- "select id, quote from usage_quote
- where target = ?
- and ((project_id = ? and (profile_id = ? or profile_id is null)) or
- (team_id = ? and (profile_id = ? or profile_id is null)) or
- (profile_id = ? and team_id is null and project_id is null and file_id is null));")
+ "SELECT id, quote
+ FROM usage_quote
+ WHERE target = ?
+ AND ((project_id = ? AND (profile_id = ? OR profile_id IS NULL)) OR
+ (team_id = ? AND (profile_id = ? OR profile_id IS NULL)) OR
+ (profile_id = ? AND team_id IS NULL AND project_id IS NULL AND file_id IS NULL));")
(def ^:private sql:get-quotes-4
- "select id, quote from usage_quote
- where target = ?
- and ((file_id = ? and (profile_id = ? or profile_id is null)) or
- (project_id = ? and (profile_id = ? or profile_id is null)) or
- (team_id = ? and (profile_id = ? or profile_id is null)) or
- (profile_id = ? and team_id is null and project_id is null and file_id is null));")
+ "SELECT id, quote
+ FROM usage_quote
+ WHERE target = ?
+ AND ((file_id = ? AND (profile_id = ? OR profile_id IS NULL)) OR
+ (project_id = ? AND (profile_id = ? OR profile_id IS NULL)) OR
+ (team_id = ? AND (profile_id = ? OR profile_id IS NULL)) OR
+ (profile_id = ? AND team_id IS NULL AND project_id IS NULL AND file_id IS NULL));")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; QUOTE: TEAMS-PER-PROFILE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-teams-per-profile
- "select count(*) as total
- from team_profile_rel
- where profile_id = ?")
+(def ^:private schema:teams-per-profile
+ [:map [::profile-id ::sm/uuid]])
-(s/def ::profile-id ::us/uuid)
-(s/def ::teams-per-profile
- (s/keys :req [::profile-id ::target]))
+(def ^:private valid-teams-per-profile-quote?
+ (sm/lazy-validator schema:teams-per-profile))
+
+(def ^:private sql:get-teams-per-profile
+ "SELECT count(*) AS total
+ FROM team_profile_rel
+ WHERE profile_id = ?")
(defmethod check-quote ::teams-per-profile
[{:keys [::profile-id ::target] :as quote}]
- (us/assert! ::teams-per-profile quote)
+ (assert (valid-teams-per-profile-quote? quote) "invalid quote parameters")
(-> quote
(assoc ::default (cf/get :quotes-teams-per-profile Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-1 target profile-id])
(assoc ::count-sql [sql:get-teams-per-profile profile-id])
(generic-check!)))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; QUOTE: ACCESS-TOKENS-PER-PROFILE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-access-tokens-per-profile
- "select count(*) as total
- from access_token
- where profile_id = ?")
+(def ^:private schema:access-tokens-per-profile
+ [:map [::profile-id ::sm/uuid]])
-(s/def ::access-tokens-per-profile
- (s/keys :req [::profile-id ::target]))
+(def ^:private valid-access-tokens-per-profile-quote?
+ (sm/lazy-validator schema:access-tokens-per-profile))
+
+(def ^:private sql:get-access-tokens-per-profile
+ "SELECT count(*) AS total
+ FROM access_token
+ WHERE profile_id = ?")
(defmethod check-quote ::access-tokens-per-profile
[{:keys [::profile-id ::target] :as quote}]
- (us/assert! ::access-tokens-per-profile quote)
+ (assert (valid-access-tokens-per-profile-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-access-tokens-per-profile Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-1 target profile-id])
@@ -189,40 +208,51 @@
;; QUOTE: PROJECTS-PER-TEAM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-projects-per-team
- "select count(*) as total
- from project as p
- where p.team_id = ?
- and p.deleted_at is null")
+(def ^:private schema:projects-per-team
+ [:map
+ [::profile-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
-(s/def ::team-id ::us/uuid)
-(s/def ::projects-per-team
- (s/keys :req [::profile-id ::team-id ::target]))
+(def ^:private valid-projects-per-team-quote?
+ (sm/lazy-validator schema:projects-per-team))
+
+(def ^:private sql:get-projects-per-team
+ "SELECT count(*) AS total
+ FROM project AS p
+ WHERE p.team_id = ?
+ AND p.deleted_at IS NULL")
(defmethod check-quote ::projects-per-team
[{:keys [::profile-id ::team-id ::target] :as quote}]
+ (assert (valid-projects-per-team-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-projects-per-team Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-2 target team-id profile-id profile-id])
(assoc ::count-sql [sql:get-projects-per-team team-id])
(generic-check!)))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; QUOTE: FONT-VARIANTS-PER-TEAM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-font-variants-per-team
- "select count(*) as total
- from team_font_variant as v
- where v.team_id = ?")
+(def ^:private schema:font-variants-per-team
+ [:map
+ [::profile-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
-(s/def ::font-variants-per-team
- (s/keys :req [::profile-id ::team-id ::target]))
+(def ^:private valid-font-variant-per-team-quote?
+ (sm/lazy-validator schema:font-variants-per-team))
+
+(def ^:private sql:get-font-variants-per-team
+ "SELECT count(*) AS total
+ FROM team_font_variant AS v
+ WHERE v.team_id = ?")
(defmethod check-quote ::font-variants-per-team
[{:keys [::profile-id ::team-id ::target] :as quote}]
- (us/assert! ::font-variants-per-team quote)
+ (assert (valid-font-variant-per-team-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-font-variants-per-team Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-2 target team-id profile-id profile-id])
@@ -234,70 +264,86 @@
;; QUOTE: INVITATIONS-PER-TEAM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-invitations-per-team
- "select count(*) as total
- from team_invitation
- where team_id = ?")
+(def ^:private schema:invitations-per-team
+ [:map
+ [::profile-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
-(s/def ::invitations-per-team
- (s/keys :req [::profile-id ::team-id ::target]))
+(def ^:private valid-invitations-per-team-quote?
+ (sm/lazy-validator schema:invitations-per-team))
+
+(def ^:private sql:get-invitations-per-team
+ "SELECT count(*) AS total
+ FROM team_invitation
+ WHERE team_id = ?")
(defmethod check-quote ::invitations-per-team
[{:keys [::profile-id ::team-id ::target] :as quote}]
- (us/assert! ::invitations-per-team quote)
+ (assert (valid-invitations-per-team-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-invitations-per-team Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-2 target team-id profile-id profile-id])
(assoc ::count-sql [sql:get-invitations-per-team team-id])
(generic-check!)))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; QUOTE: PROFILES-PER-TEAM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(def ^:private schema:profiles-per-team
+ [:map
+ [::profile-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
+
+(def ^:private valid-profiles-per-team-quote?
+ (sm/lazy-validator schema:profiles-per-team))
+
(def ^:private sql:get-profiles-per-team
- "select (select count(*)
- from team_profile_rel
- where team_id = ?) +
- (select count(*)
- from team_invitation
- where team_id = ?
- and valid_until > now()) as total;")
+ "SELECT (SELECT count(*)
+ FROM team_profile_rel
+ WHERE team_id = ?) +
+ (SELECT count(*)
+ FROM team_invitation
+ WHERE team_id = ?
+ AND valid_until > now()) AS total;")
;; NOTE: the total number of profiles is determined by the number of
;; effective members plus ongoing valid invitations.
-(s/def ::profiles-per-team
- (s/keys :req [::profile-id ::team-id ::target]))
-
(defmethod check-quote ::profiles-per-team
[{:keys [::profile-id ::team-id ::target] :as quote}]
- (us/assert! ::profiles-per-team quote)
+ (assert (valid-profiles-per-team-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-profiles-per-team Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-2 target team-id profile-id profile-id])
(assoc ::count-sql [sql:get-profiles-per-team team-id team-id])
(generic-check!)))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; QUOTE: FILES-PER-PROJECT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-files-per-project
- "select count(*) as total
- from file as f
- where f.project_id = ?
- and f.deleted_at is null")
+(def ^:private schema:files-per-project
+ [:map
+ [::profile-id ::sm/uuid]
+ [::project-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
-(s/def ::project-id ::us/uuid)
-(s/def ::files-per-project
- (s/keys :req [::profile-id ::project-id ::team-id ::target]))
+(def ^:private valid-files-per-project-quote?
+ (sm/lazy-validator schema:files-per-project))
+
+(def ^:private sql:get-files-per-project
+ "SELECT count(*) AS total
+ FROM file AS f
+ WHERE f.project_id = ?
+ AND f.deleted_at IS NULL")
(defmethod check-quote ::files-per-project
[{:keys [::profile-id ::project-id ::team-id ::target] :as quote}]
- (us/assert! ::files-per-project quote)
+ (assert (valid-files-per-project-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-files-per-project Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-3 target project-id profile-id team-id profile-id profile-id])
@@ -308,17 +354,24 @@
;; QUOTE: COMMENT-THREADS-PER-FILE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-comment-threads-per-file
- "select count(*) as total
- from comment_thread as ct
- where ct.file_id = ?")
+(def ^:private schema:comment-threads-per-file
+ [:map
+ [::profile-id ::sm/uuid]
+ [::project-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
-(s/def ::comment-threads-per-file
- (s/keys :req [::profile-id ::project-id ::team-id ::target]))
+(def ^:private valid-comment-threads-per-file-quote?
+ (sm/lazy-validator schema:comment-threads-per-file))
+
+(def ^:private sql:get-comment-threads-per-file
+ "SELECT count(*) AS total
+ FROM comment_thread AS ct
+ WHERE ct.file_id = ?")
(defmethod check-quote ::comment-threads-per-file
[{:keys [::profile-id ::file-id ::team-id ::project-id ::target] :as quote}]
- (us/assert! ::files-per-project quote)
+ (assert (valid-comment-threads-per-file-quote? quote) "invalid quote parameters")
+
(-> quote
(assoc ::default (cf/get :quotes-comment-threads-per-file Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-4 target file-id profile-id project-id
@@ -326,23 +379,28 @@
(assoc ::count-sql [sql:get-comment-threads-per-file file-id])
(generic-check!)))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; QUOTE: COMMENTS-PER-FILE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private sql:get-comments-per-file
- "select count(*) as total
- from comment as c
- join comment_thread as ct on (ct.id = c.thread_id)
- where ct.file_id = ?")
+(def ^:private schema:comments-per-file
+ [:map
+ [::profile-id ::sm/uuid]
+ [::project-id ::sm/uuid]
+ [::team-id ::sm/uuid]])
-(s/def ::comments-per-file
- (s/keys :req [::profile-id ::project-id ::team-id ::target]))
+(def ^:private valid-comments-per-file-quote?
+ (sm/lazy-validator schema:comments-per-file))
+
+(def ^:private sql:get-comments-per-file
+ "SELECT count(*) AS total
+ FROM comment AS c
+ JOIN comment_thread AS ct ON (ct.id = c.thread_id)
+ WHERE ct.file_id = ?")
(defmethod check-quote ::comments-per-file
[{:keys [::profile-id ::file-id ::team-id ::project-id ::target] :as quote}]
- (us/assert! ::files-per-project quote)
+ (assert (valid-comments-per-file-quote? quote) "invalid quote parameters")
(-> quote
(assoc ::default (cf/get :quotes-comments-per-file Integer/MAX_VALUE))
(assoc ::quote-sql [sql:get-quotes-4 target file-id profile-id project-id
diff --git a/backend/src/app/setup/templates.clj b/backend/src/app/setup/templates.clj
index 3c70c7dbc6..4d3de1032d 100644
--- a/backend/src/app/setup/templates.clj
+++ b/backend/src/app/setup/templates.clj
@@ -10,6 +10,7 @@
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
+ [app.common.exceptions :as ex]
[app.common.logging :as l]
[app.common.schema :as sm]
[app.http.client :as http]
@@ -19,28 +20,26 @@
[datoteka.fs :as fs]
[integrant.core :as ig]))
-(def ^:private
- schema:template
- (sm/define
- [:map {:title "Template"}
- [:id ::sm/word-string]
- [:name ::sm/word-string]
- [:file-uri ::sm/word-string]]))
+(def ^:private schema:template
+ [:map {:title "Template"}
+ [:id ::sm/word-string]
+ [:name ::sm/word-string]
+ [:file-uri ::sm/word-string]])
-(def ^:private
- schema:templates
- (sm/define
- [:vector schema:template]))
+(def ^:private schema:templates
+ [:vector schema:template])
+
+(def check-templates!
+ (sm/check-fn schema:templates
+ :code :invalid-templates
+ :hint "invalid templates"))
(defmethod ig/init-key ::setup/templates
[_ _]
(let [templates (-> "app/onboarding.edn" io/resource slurp edn/read-string)
+ templates (check-templates! templates)
dest (fs/join fs/*cwd* "builtin-templates")]
- (dm/verify!
- "expected a valid templates file"
- (sm/check! schema:templates templates))
-
(doseq [{:keys [id path] :as template} templates]
(let [path (or path (fs/join dest id))]
(if (fs/exists? path)
@@ -60,9 +59,9 @@
(let [resp (http/req! cfg
{:method :get :uri (:file-uri template)}
{:response-type :input-stream :sync? true})]
-
- (dm/verify!
- "unexpected response found on fetching template"
- (= 200 (:status resp)))
+ (when-not (= 200 (:status resp))
+ (ex/raise :type :internal
+ :code :unexpected-status-code
+ :hint (str "unable to download template, recevied status " (:status resp))))
(io/input-stream (:body resp)))))))
diff --git a/backend/src/app/setup/welcome_file.clj b/backend/src/app/setup/welcome_file.clj
new file mode 100644
index 0000000000..8de4acaa76
--- /dev/null
+++ b/backend/src/app/setup/welcome_file.clj
@@ -0,0 +1,64 @@
+;; 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.setup.welcome-file
+ (:require
+ [app.common.logging :as l]
+ [app.db :as db]
+ [app.rpc :as-alias rpc]
+ [app.rpc.climit :as-alias climit]
+ [app.rpc.commands.files-update :as fupdate]
+ [app.rpc.commands.management :as management]
+ [app.rpc.commands.profile :as profile]
+ [app.rpc.doc :as-alias doc]
+ [app.setup :as-alias setup]
+ [app.setup.templates :as tmpl]
+ [app.worker :as-alias wrk]))
+
+(def ^:private page-id #uuid "2c6952ee-d00e-8160-8004-d2250b7210cb")
+(def ^:private shape-id #uuid "765e9f82-c44e-802e-8004-d72a10b7b445")
+
+(def ^:private update-path
+ [:data :pages-index page-id :objects shape-id
+ :content :children 0 :children 0 :children 0])
+
+(def ^:private sql:mark-file-object-thumbnails-deleted
+ "UPDATE file_tagged_object_thumbnail
+ SET deleted_at = now()
+ WHERE file_id = ?")
+
+(def ^:private sql:mark-file-thumbnail-deleted
+ "UPDATE file_thumbnail
+ SET deleted_at = now()
+ WHERE file_id = ?")
+
+(defn- update-welcome-shape
+ [_ file name]
+ (let [text (str "Welcome to Penpot, " name "!")]
+ (-> file
+ (update-in update-path assoc :text text)
+ (update-in [:data :pages-index page-id :objects shape-id] assoc :name "Welcome to Penpot!")
+ (update-in [:data :pages-index page-id :objects shape-id] dissoc :position-data))))
+
+(defn create-welcome-file
+ [cfg {:keys [id fullname] :as profile}]
+ (try
+ (let [cfg (dissoc cfg ::db/conn)
+ params {:profile-id (:id profile)
+ :project-id (:default-project-id profile)}
+ template-stream (tmpl/get-template-stream cfg "welcome")
+ file-id (-> (management/clone-template cfg params template-stream)
+ first)]
+
+ (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
+ (fupdate/update-file! cfg file-id update-welcome-shape fullname)
+ (profile/update-profile-props cfg id {:welcome-file-id file-id})
+ (db/exec-one! conn [sql:mark-file-object-thumbnails-deleted file-id])
+ (db/exec-one! conn [sql:mark-file-thumbnail-deleted file-id]))))
+
+ (catch Throwable cause
+ (l/error :hint "unexpected error on create welcome file " :cause cause))))
+
diff --git a/backend/src/app/srepl/helpers.clj b/backend/src/app/srepl/helpers.clj
index 38ea61dd89..702790ebac 100644
--- a/backend/src/app/srepl/helpers.clj
+++ b/backend/src/app/srepl/helpers.clj
@@ -75,6 +75,7 @@
:created-at (:created-at file)
:modified-at (:modified-at file)
:data-backend nil
+ :data-ref-id nil
:has-media-trimmed false}
{:id (:id file)})))
diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj
index a5f002b8dd..97294927dd 100644
--- a/backend/src/app/srepl/main.clj
+++ b/backend/src/app/srepl/main.clj
@@ -155,9 +155,10 @@
(defn enable-team-feature!
[team-id feature]
- (dm/verify!
- "feature should be supported"
- (contains? cfeat/supported-features feature))
+ (when-not (contains? cfeat/supported-features feature)
+ (ex/raise :type :assertion
+ :code :feature-not-supported
+ :hint (str "feature '" feature "' not supported")))
(let [team-id (h/parse-uuid team-id)]
(db/tx-run! main/system
@@ -173,9 +174,11 @@
(defn disable-team-feature!
[team-id feature]
- (dm/verify!
- "feature should be supported"
- (contains? cfeat/supported-features feature))
+
+ (when-not (contains? cfeat/supported-features feature)
+ (ex/raise :type :assertion
+ :code :feature-not-supported
+ :hint (str "feature '" feature "' not supported")))
(let [team-id (h/parse-uuid team-id)]
(db/tx-run! main/system
@@ -203,9 +206,11 @@
[{:keys [::mbus/msgbus ::db/pool]} & {:keys [dest code message level]
:or {code :generic level :info}
:as params}]
- (dm/verify!
- ["invalid level %" level]
- (contains? #{:success :error :info :warning} level))
+
+ (when-not (contains? #{:success :error :info :warning} level)
+ (ex/raise :type :assertion
+ :code :incorrect-level
+ :hint (str "level '" level "' not supported")))
(letfn [(send [dest]
(l/inf :hint "sending notification" :dest (str dest))
@@ -727,13 +732,15 @@
deleted 0
total 0]
(if-let [email (first emails)]
- (if-let [profile (db/get* system :profile
- {:email (str/lower email)}
- {::db/remove-deleted false})]
+ (if-let [profile (some-> (db/get* system :profile
+ {:email (str/lower email)}
+ {::db/remove-deleted false})
+ (profile/decode-row))]
(do
(audit/insert! system
{::audit/name "delete-profile"
::audit/type "action"
+ ::audit/profile-id (:id profile)
::audit/tracked-at deleted-at
::audit/props (audit/profile->props profile)
::audit/context {:triggered-by "srepl"
diff --git a/backend/src/app/storage.clj b/backend/src/app/storage.clj
index c818b03fa1..861730e336 100644
--- a/backend/src/app/storage.clj
+++ b/backend/src/app/storage.clj
@@ -6,11 +6,13 @@
(ns app.storage
"Objects storage abstraction layer."
+ (:refer-clojure :exclude [resolve])
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.spec :as us]
[app.common.uuid :as uuid]
+ [app.config :as cf]
[app.db :as db]
[app.storage.fs :as sfs]
[app.storage.impl :as impl]
@@ -18,16 +20,23 @@
[app.util.time :as dt]
[clojure.spec.alpha :as s]
[datoteka.fs :as fs]
- [integrant.core :as ig]
- [promesa.core :as p])
+ [integrant.core :as ig])
(:import
java.io.InputStream))
+(defn get-legacy-backend
+ []
+ (let [name (cf/get :assets-storage-backend)]
+ (case name
+ :assets-fs :fs
+ :assets-s3 :s3
+ :fs)))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Storage Module State
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(s/def ::id #{:assets-fs :assets-s3})
+(s/def ::id #{:assets-fs :assets-s3 :fs :s3})
(s/def ::s3 ::ss3/backend)
(s/def ::fs ::sfs/backend)
(s/def ::type #{:fs :s3})
@@ -45,11 +54,13 @@
[_ {:keys [::backends ::db/pool] :as cfg}]
(-> (d/without-nils cfg)
(assoc ::backends (d/without-nils backends))
- (assoc ::db/pool-or-conn pool)))
+ (assoc ::backend (or (get-legacy-backend)
+ (cf/get :objects-storage-backend :fs)))
+ (assoc ::db/connectable pool)))
(s/def ::backend keyword?)
(s/def ::storage
- (s/keys :req [::backends ::db/pool ::db/pool-or-conn]
+ (s/keys :req [::backends ::db/pool ::db/connectable]
:opt [::backend]))
(s/def ::storage-with-backend
@@ -61,23 +72,26 @@
(defn get-metadata
[params]
- (into {}
- (remove (fn [[k _]] (qualified-keyword? k)))
- params))
+ (reduce-kv (fn [res k _]
+ (if (qualified-keyword? k)
+ (dissoc res k)
+ res))
+ params
+ params))
(defn- get-database-object-by-hash
- [pool-or-conn backend bucket hash]
+ [connectable backend bucket hash]
(let [sql (str "select * from storage_object "
" where (metadata->>'~:hash') = ? "
" and (metadata->>'~:bucket') = ? "
" and backend = ?"
" and deleted_at is null"
" limit 1")]
- (some-> (db/exec-one! pool-or-conn [sql hash bucket (name backend)])
+ (some-> (db/exec-one! connectable [sql hash bucket (name backend)])
(update :metadata db/decode-transit-pgobject))))
(defn- create-database-object
- [{:keys [::backend ::db/pool-or-conn]} {:keys [::content ::expired-at ::touched-at] :as params}]
+ [{:keys [::backend ::db/connectable]} {:keys [::content ::expired-at ::touched-at ::touch] :as params}]
(let [id (or (:id params) (uuid/random))
mdata (cond-> (get-metadata params)
(satisfies? impl/IContentHash content)
@@ -86,7 +100,9 @@
:always
(dissoc :id))
- ;; FIXME: touch object on deduplicated put operation ??
+ touched-at (if touch
+ (or touched-at (dt/now))
+ touched-at)
;; NOTE: for now we don't reuse the deleted objects, but in
;; futute we can consider reusing deleted objects if we
@@ -95,10 +111,20 @@
result (when (and (::deduplicate? params)
(:hash mdata)
(:bucket mdata))
- (get-database-object-by-hash pool-or-conn backend (:bucket mdata) (:hash mdata)))
+ (let [result (get-database-object-by-hash connectable backend
+ (:bucket mdata)
+ (:hash mdata))]
+ (if touch
+ (do
+ (db/update! connectable :storage-object
+ {:touched-at touched-at}
+ {:id (:id result)}
+ {::db/return-keys false})
+ (assoc result :touced-at touched-at))
+ result)))
result (or result
- (-> (db/insert! pool-or-conn :storage-object
+ (-> (db/insert! connectable :storage-object
{:id id
:size (impl/get-size content)
:backend (name backend)
@@ -154,9 +180,9 @@
(dm/export impl/object?)
(defn get-object
- [{:keys [::db/pool-or-conn] :as storage} id]
+ [{:keys [::db/connectable] :as storage} id]
(us/assert! ::storage storage)
- (retrieve-database-object pool-or-conn id))
+ (retrieve-database-object connectable id))
(defn put-object!
"Creates a new object with the provided content."
@@ -172,10 +198,10 @@
(defn touch-object!
"Mark object as touched."
- [{:keys [::db/pool-or-conn] :as storage} object-or-id]
+ [{:keys [::db/connectable] :as storage} object-or-id]
(us/assert! ::storage storage)
(let [id (if (impl/object? object-or-id) (:id object-or-id) object-or-id)]
- (-> (db/update! pool-or-conn :storage-object
+ (-> (db/update! connectable :storage-object
{:touched-at (dt/now)}
{:id id})
(db/get-update-count)
@@ -195,11 +221,10 @@
"Returns a byte array of object content."
[storage object]
(us/assert! ::storage storage)
- (if (or (nil? (:expired-at object))
- (dt/is-after? (:expired-at object) (dt/now)))
+ (when (or (nil? (:expired-at object))
+ (dt/is-after? (:expired-at object) (dt/now)))
(-> (impl/resolve-backend storage (:backend object))
- (impl/get-object-bytes object))
- (p/resolved nil)))
+ (impl/get-object-bytes object))))
(defn get-object-url
([storage object]
@@ -223,13 +248,26 @@
(-> (impl/get-object-url backend object nil) file-url->path))))
(defn del-object!
- [{:keys [::db/pool-or-conn] :as storage} object-or-id]
+ [{:keys [::db/connectable] :as storage} object-or-id]
(us/assert! ::storage storage)
(let [id (if (impl/object? object-or-id) (:id object-or-id) object-or-id)
- res (db/update! pool-or-conn :storage-object
+ res (db/update! connectable :storage-object
{:deleted-at (dt/now)}
{:id id})]
(pos? (db/get-update-count res))))
-(dm/export impl/resolve-backend)
(dm/export impl/calculate-hash)
+
+(defn configure
+ [storage connectable]
+ (assoc storage ::db/connectable connectable))
+
+(defn resolve
+ "Resolves the storage instance with preconfigured backend. You can
+ specify to reuse the database connection from provided
+ cfg/system (default false)."
+ [cfg & {:as opts}]
+ (let [storage (::storage cfg)]
+ (if (::db/reuse-conn opts false)
+ (configure storage (db/get-connectable cfg))
+ storage)))
diff --git a/backend/src/app/storage/gc_deleted.clj b/backend/src/app/storage/gc_deleted.clj
index 52cdce4b15..7f903b0000 100644
--- a/backend/src/app/storage/gc_deleted.clj
+++ b/backend/src/app/storage/gc_deleted.clj
@@ -121,5 +121,3 @@
:total total)
{:deleted total}))))))
-
-
diff --git a/backend/src/app/storage/gc_touched.clj b/backend/src/app/storage/gc_touched.clj
index bd499bb655..03fe0f426c 100644
--- a/backend/src/app/storage/gc_touched.clj
+++ b/backend/src/app/storage/gc_touched.clj
@@ -28,58 +28,80 @@
[clojure.spec.alpha :as s]
[integrant.core :as ig]))
-(def ^:private sql:get-team-font-variant-nrefs
- "SELECT ((SELECT count(*) FROM team_font_variant WHERE woff1_file_id = ?) +
- (SELECT count(*) FROM team_font_variant WHERE woff2_file_id = ?) +
- (SELECT count(*) FROM team_font_variant WHERE otf_file_id = ?) +
- (SELECT count(*) FROM team_font_variant WHERE ttf_file_id = ?)) AS nrefs")
+(def ^:private sql:has-team-font-variant-refs
+ "SELECT ((SELECT EXISTS (SELECT 1 FROM team_font_variant WHERE woff1_file_id = ?)) OR
+ (SELECT EXISTS (SELECT 1 FROM team_font_variant WHERE woff2_file_id = ?)) OR
+ (SELECT EXISTS (SELECT 1 FROM team_font_variant WHERE otf_file_id = ?)) OR
+ (SELECT EXISTS (SELECT 1 FROM team_font_variant WHERE ttf_file_id = ?))) AS has_refs")
-(defn- get-team-font-variant-nrefs
+(defn- has-team-font-variant-refs?
[conn id]
- (-> (db/exec-one! conn [sql:get-team-font-variant-nrefs id id id id])
- (get :nrefs)))
-
+ (-> (db/exec-one! conn [sql:has-team-font-variant-refs id id id id])
+ (get :has-refs)))
(def ^:private
- sql:get-file-media-object-nrefs
- "SELECT ((SELECT count(*) FROM file_media_object WHERE media_id = ?) +
- (SELECT count(*) FROM file_media_object WHERE thumbnail_id = ?)) AS nrefs")
+ sql:has-file-media-object-refs
+ "SELECT ((SELECT EXISTS (SELECT 1 FROM file_media_object WHERE media_id = ?)) OR
+ (SELECT EXISTS (SELECT 1 FROM file_media_object WHERE thumbnail_id = ?))) AS has_refs")
-(defn- get-file-media-object-nrefs
+(defn- has-file-media-object-refs?
[conn id]
- (-> (db/exec-one! conn [sql:get-file-media-object-nrefs id id])
- (get :nrefs)))
+ (-> (db/exec-one! conn [sql:has-file-media-object-refs id id])
+ (get :has-refs)))
+(def ^:private sql:has-profile-refs
+ "SELECT ((SELECT EXISTS (SELECT 1 FROM profile WHERE photo_id = ?)) OR
+ (SELECT EXISTS (SELECT 1 FROM team WHERE photo_id = ?))) AS has_refs")
-(def ^:private sql:get-profile-nrefs
- "SELECT ((SELECT count(*) FROM profile WHERE photo_id = ?) +
- (SELECT count(*) FROM team WHERE photo_id = ?)) AS nrefs")
-
-(defn- get-profile-nrefs
+(defn- has-profile-refs?
[conn id]
- (-> (db/exec-one! conn [sql:get-profile-nrefs id id])
- (get :nrefs)))
-
+ (-> (db/exec-one! conn [sql:has-profile-refs id id])
+ (get :has-refs)))
(def ^:private
- sql:get-file-object-thumbnail-nrefs
- "SELECT (SELECT count(*) FROM file_tagged_object_thumbnail WHERE media_id = ?) AS nrefs")
+ sql:has-file-object-thumbnail-refs
+ "SELECT EXISTS (SELECT 1 FROM file_tagged_object_thumbnail WHERE media_id = ?) AS has_refs")
-(defn- get-file-object-thumbnails
+(defn- has-file-object-thumbnails-refs?
[conn id]
- (-> (db/exec-one! conn [sql:get-file-object-thumbnail-nrefs id])
- (get :nrefs)))
-
+ (-> (db/exec-one! conn [sql:has-file-object-thumbnail-refs id])
+ (get :has-refs)))
(def ^:private
- sql:get-file-thumbnail-nrefs
- "SELECT (SELECT count(*) FROM file_thumbnail WHERE media_id = ?) AS nrefs")
+ sql:has-file-thumbnail-refs
+ "SELECT EXISTS (SELECT 1 FROM file_thumbnail WHERE media_id = ?) AS has_refs")
-(defn- get-file-thumbnails
+(defn- has-file-thumbnails-refs?
[conn id]
- (-> (db/exec-one! conn [sql:get-file-thumbnail-nrefs id])
- (get :nrefs)))
+ (-> (db/exec-one! conn [sql:has-file-thumbnail-refs id])
+ (get :has-refs)))
+(def ^:private
+ sql:has-file-data-refs
+ "SELECT EXISTS (SELECT 1 FROM file WHERE data_ref_id = ?) AS has_refs")
+
+(defn- has-file-data-refs?
+ [conn id]
+ (-> (db/exec-one! conn [sql:has-file-data-refs id])
+ (get :has-refs)))
+
+(def ^:private
+ sql:has-file-data-fragment-refs
+ "SELECT EXISTS (SELECT 1 FROM file_data_fragment WHERE data_ref_id = ?) AS has_refs")
+
+(defn- has-file-data-fragment-refs?
+ [conn id]
+ (-> (db/exec-one! conn [sql:has-file-data-fragment-refs id])
+ (get :has-refs)))
+
+(def ^:private
+ sql:has-file-change-refs
+ "SELECT EXISTS (SELECT 1 FROM file_change WHERE data_ref_id = ?) AS has_refs")
+
+(defn- has-file-change-refs?
+ [conn id]
+ (-> (db/exec-one! conn [sql:has-file-change-refs id])
+ (get :has-refs)))
(def ^:private sql:mark-freeze-in-bulk
"UPDATE storage_object
@@ -91,7 +113,6 @@
(let [ids (db/create-array conn "uuid" ids)]
(db/exec-one! conn [sql:mark-freeze-in-bulk ids])))
-
(def ^:private sql:mark-delete-in-bulk
"UPDATE storage_object
SET deleted_at = now(),
@@ -123,25 +144,24 @@
"file-media-object"))
(defn- process-objects!
- [conn get-fn ids bucket]
+ [conn has-refs? ids bucket]
(loop [to-freeze #{}
to-delete #{}
ids (seq ids)]
(if-let [id (first ids)]
- (let [nrefs (get-fn conn id)]
- (if (pos? nrefs)
- (do
- (l/debug :hint "processing object"
- :id (str id)
- :status "freeze"
- :bucket bucket :refs nrefs)
- (recur (conj to-freeze id) to-delete (rest ids)))
- (do
- (l/debug :hint "processing object"
- :id (str id)
- :status "delete"
- :bucket bucket :refs nrefs)
- (recur to-freeze (conj to-delete id) (rest ids)))))
+ (if (has-refs? conn id)
+ (do
+ (l/debug :hint "processing object"
+ :id (str id)
+ :status "freeze"
+ :bucket bucket)
+ (recur (conj to-freeze id) to-delete (rest ids)))
+ (do
+ (l/debug :hint "processing object"
+ :id (str id)
+ :status "delete"
+ :bucket bucket)
+ (recur to-freeze (conj to-delete id) (rest ids))))
(do
(some->> (seq to-freeze) (mark-freeze-in-bulk! conn))
(some->> (seq to-delete) (mark-delete-in-bulk! conn))
@@ -150,15 +170,26 @@
(defn- process-bucket!
[conn bucket ids]
(case bucket
- "file-media-object" (process-objects! conn get-file-media-object-nrefs ids bucket)
- "team-font-variant" (process-objects! conn get-team-font-variant-nrefs ids bucket)
- "file-object-thumbnail" (process-objects! conn get-file-object-thumbnails ids bucket)
- "file-thumbnail" (process-objects! conn get-file-thumbnails ids bucket)
- "profile" (process-objects! conn get-profile-nrefs ids bucket)
+ "file-media-object" (process-objects! conn has-file-media-object-refs? ids bucket)
+ "team-font-variant" (process-objects! conn has-team-font-variant-refs? ids bucket)
+ "file-object-thumbnail" (process-objects! conn has-file-object-thumbnails-refs? ids bucket)
+ "file-thumbnail" (process-objects! conn has-file-thumbnails-refs? ids bucket)
+ "profile" (process-objects! conn has-profile-refs? ids bucket)
+ "file-data" (process-objects! conn has-file-data-refs? ids bucket)
+ "file-data-fragment" (process-objects! conn has-file-data-fragment-refs? ids bucket)
+ "file-change" (process-objects! conn has-file-change-refs? ids bucket)
(ex/raise :type :internal
:code :unexpected-unknown-reference
- :hint (dm/fmt "unknown reference %" bucket))))
+ :hint (dm/fmt "unknown reference '%'" bucket))))
+(defn process-chunk!
+ [{:keys [::db/conn]} chunk]
+ (reduce-kv (fn [[nfo ndo] bucket ids]
+ (let [[nfo' ndo'] (process-bucket! conn bucket ids)]
+ [(+ nfo nfo')
+ (+ ndo ndo')]))
+ [0 0]
+ (d/group-by lookup-bucket :id #{} chunk)))
(def ^:private
sql:get-touched-storage-objects
@@ -167,29 +198,22 @@
WHERE so.touched_at IS NOT NULL
ORDER BY touched_at ASC
FOR UPDATE
- SKIP LOCKED")
+ SKIP LOCKED
+ LIMIT 10")
-(defn- group-by-bucket
- [row]
- (d/group-by lookup-bucket :id #{} row))
-
-(defn- get-buckets
+(defn get-chunk
[conn]
- (sequence
- (comp (map impl/decode-row)
- (partition-all 25)
- (mapcat group-by-bucket))
- (db/cursor conn sql:get-touched-storage-objects)))
+ (->> (db/exec! conn [sql:get-touched-storage-objects])
+ (map impl/decode-row)
+ (not-empty)))
(defn- process-touched!
- [{:keys [::db/conn]}]
- (loop [buckets (get-buckets conn)
- freezed 0
+ [{:keys [::db/pool] :as cfg}]
+ (loop [freezed 0
deleted 0]
- (if-let [[bucket ids] (first buckets)]
- (let [[nfo ndo] (process-bucket! conn bucket ids)]
- (recur (rest buckets)
- (+ freezed nfo)
+ (if-let [chunk (get-chunk pool)]
+ (let [[nfo ndo] (db/tx-run! cfg process-chunk! chunk)]
+ (recur (+ freezed nfo)
(+ deleted ndo)))
(do
(l/inf :hint "task finished"
@@ -198,11 +222,14 @@
{:freeze freezed :delete deleted}))))
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; HANDLER
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
(defmethod ig/pre-init-spec ::handler [_]
(s/keys :req [::db/pool]))
(defmethod ig/init-key ::handler
[_ cfg]
- (fn [_]
- (db/tx-run! cfg process-touched!)))
+ (fn [_] (process-touched! cfg)))
diff --git a/backend/src/app/storage/impl.clj b/backend/src/app/storage/impl.clj
index 156d86b872..6de48b6822 100644
--- a/backend/src/app/storage/impl.clj
+++ b/backend/src/app/storage/impl.clj
@@ -207,15 +207,13 @@
(str "blake2b:" result)))
(defn resolve-backend
- [{:keys [::db/pool] :as storage} backend-id]
+ [storage backend-id]
(let [backend (get-in storage [::sto/backends backend-id])]
(when-not backend
(ex/raise :type :internal
:code :backend-not-configured
:hint (dm/fmt "backend '%' not configured" backend-id)))
- (-> backend
- (assoc ::sto/id backend-id)
- (assoc ::db/pool pool))))
+ (assoc backend ::sto/id backend-id)))
(defrecord StorageObject [id size created-at expired-at touched-at backend])
diff --git a/backend/src/app/tasks/file_gc.clj b/backend/src/app/tasks/file_gc.clj
index 79f5ff8b97..a903a6730e 100644
--- a/backend/src/app/tasks/file_gc.clj
+++ b/backend/src/app/tasks/file_gc.clj
@@ -21,78 +21,31 @@
[app.config :as cf]
[app.db :as db]
[app.features.fdata :as feat.fdata]
- [app.media :as media]
[app.storage :as sto]
[app.util.blob :as blob]
[app.util.pointer-map :as pmap]
[app.util.time :as dt]
+ [app.worker :as wrk]
[clojure.set :as set]
[clojure.spec.alpha :as s]
[integrant.core :as ig]))
-(declare ^:private clean-file!)
+(declare ^:private get-file)
+(declare ^:private decode-file)
+(declare ^:private persist-file!)
-(defn- decode-file
- [cfg {:keys [id] :as file}]
- (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)]
- (-> file
- (update :features db/decode-pgarray #{})
- (update :data blob/decode)
- (update :data feat.fdata/process-pointers deref)
- (update :data feat.fdata/process-objects (partial into {}))
- (update :data assoc :id id)
- (fmg/migrate-file))))
-
-(defn- update-file!
- [{:keys [::db/conn] :as cfg} {:keys [id] :as file}]
- (let [file (if (contains? (:features file) "fdata/objects-map")
- (feat.fdata/enable-objects-map file)
- file)
-
- file (if (contains? (:features file) "fdata/pointer-map")
- (binding [pmap/*tracked* (pmap/create-tracked)]
- (let [file (feat.fdata/enable-pointer-map file)]
- (feat.fdata/persist-pointers! cfg id)
- file))
- file)
-
- file (-> file
- (update :features db/encode-pgarray conn "text")
- (update :data blob/encode))]
-
- (db/update! conn :file
- {:has-media-trimmed true
- :features (:features file)
- :version (:version file)
- :data (:data file)}
- {:id id}
- {::db/return-keys true})))
-
-(def ^:private
- sql:get-candidates
- "SELECT f.id,
+(def ^:private sql:get-snapshots
+ "SELECT f.file_id AS id,
f.data,
f.revn,
f.version,
f.features,
- f.modified_at
- FROM file AS f
- WHERE f.has_media_trimmed IS false
- AND f.modified_at < now() - ?::interval
- AND f.deleted_at IS NULL
- ORDER BY f.modified_at DESC
- FOR UPDATE
- SKIP LOCKED")
-
-(defn- get-candidates
- [{:keys [::db/conn ::min-age ::file-id]}]
- (if (uuid? file-id)
- (do
- (l/warn :hint "explicit file id passed on params" :file-id (str file-id))
- (db/query conn :file {:id file-id}))
-
- (let [min-age (db/interval min-age)]
- (db/cursor conn [sql:get-candidates min-age] {:chunk-size 1}))))
+ f.data_backend,
+ f.data_ref_id
+ FROM file_change AS f
+ WHERE f.file_id = ?
+ AND f.label IS NOT NULL
+ ORDER BY f.created_at ASC")
(def ^:private sql:mark-file-media-object-deleted
"UPDATE file_media_object
@@ -100,10 +53,17 @@
WHERE file_id = ? AND id != ALL(?::uuid[])
RETURNING id")
+(def ^:private xf:collect-used-media
+ (comp (map :data) (mapcat bfc/collect-used-media)))
+
(defn- clean-file-media!
"Performs the garbage collection of file media objects."
- [{:keys [::db/conn]} {:keys [id data] :as file}]
- (let [used (bfc/collect-used-media data)
+ [{:keys [::db/conn] :as cfg} {:keys [id] :as file}]
+ (let [used (into #{}
+ xf:collect-used-media
+ (cons file
+ (->> (db/cursor conn [sql:get-snapshots id])
+ (map (partial decode-file cfg)))))
ids (db/create-array conn "uuid" used)
unused (->> (db/exec! conn [sql:mark-file-media-object-deleted id ids])
(into #{} (map :id)))]
@@ -172,9 +132,14 @@
file))
-
(def ^:private sql:get-files-for-library
- "SELECT f.id, f.data, f.modified_at, f.features, f.version
+ "SELECT f.id,
+ f.data,
+ f.modified_at,
+ f.features,
+ f.version,
+ f.data_backend,
+ f.data_ref_id
FROM file AS f
LEFT JOIN file_library_rel AS fl ON (fl.file_id = f.id)
WHERE fl.library_file_id = ?
@@ -230,11 +195,6 @@
(l/dbg :hint "clean" :rel "components" :file-id (str file-id) :total (count unused))
file))
-(def ^:private sql:get-changes
- "SELECT id, data FROM file_change
- WHERE file_id = ? AND data IS NOT NULL
- ORDER BY created_at ASC")
-
(def ^:private sql:mark-deleted-data-fragments
"UPDATE file_data_fragment
SET deleted_at = now()
@@ -250,8 +210,7 @@
(defn- clean-data-fragments!
[{:keys [::db/conn]} {:keys [id] :as file}]
- (let [used (into #{} xf:collect-pointers
- (cons file (db/cursor conn [sql:get-changes id])))
+ (let [used (into #{} xf:collect-pointers [file])
unused (let [ids (db/create-array conn "uuid" used)]
(->> (db/exec! conn [sql:mark-deleted-data-fragments id ids])
@@ -274,17 +233,83 @@
(cfv/validate-file-schema! file)
file))
+(def ^:private sql:get-file
+ "SELECT f.id,
+ f.data,
+ f.revn,
+ f.version,
+ f.features,
+ f.modified_at,
+ f.data_backend,
+ f.data_ref_id
+ FROM file AS f
+ WHERE f.has_media_trimmed IS false
+ AND f.modified_at < now() - ?::interval
+ AND f.deleted_at IS NULL
+ AND f.id = ?
+ FOR UPDATE
+ SKIP LOCKED")
+
+(defn- get-file
+ [{:keys [::db/conn ::min-age ::file-id]}]
+ (->> (db/exec! conn [sql:get-file min-age file-id])
+ (first)))
+
+(defn- decode-file
+ [cfg {:keys [id] :as file}]
+ (binding [pmap/*load-fn* (partial feat.fdata/load-pointer cfg id)]
+ (-> (feat.fdata/resolve-file-data cfg file)
+ (update :features db/decode-pgarray #{})
+ (update :data blob/decode)
+ (update :data feat.fdata/process-pointers deref)
+ (update :data feat.fdata/process-objects (partial into {}))
+ (update :data assoc :id id)
+ (fmg/migrate-file))))
+
+(defn- persist-file!
+ [{:keys [::db/conn ::sto/storage] :as cfg} {:keys [id] :as file}]
+ (let [file (if (contains? (:features file) "fdata/objects-map")
+ (feat.fdata/enable-objects-map file)
+ file)
+
+ file (if (contains? (:features file) "fdata/pointer-map")
+ (binding [pmap/*tracked* (pmap/create-tracked)]
+ (let [file (feat.fdata/enable-pointer-map file)]
+ (feat.fdata/persist-pointers! cfg id)
+ file))
+ file)
+
+ file (-> file
+ (update :features db/encode-pgarray conn "text")
+ (update :data blob/encode))]
+
+ ;; If file was already offloaded, we touch the underlying storage
+ ;; object for properly trigger storage-gc-touched task
+ (when (feat.fdata/offloaded? file)
+ (some->> (:data-ref-id file) (sto/touch-object! storage)))
+
+ (db/update! conn :file
+ {:has-media-trimmed true
+ :features (:features file)
+ :version (:version file)
+ :data (:data file)
+ :data-backend nil
+ :data-ref-id nil}
+ {:id id}
+ {::db/return-keys true})))
+
(defn- process-file!
- [cfg file]
- (try
+ [cfg]
+ (if-let [file (get-file cfg)]
(let [file (decode-file cfg file)
file (clean-media! cfg file)
- file (update-file! cfg file)]
- (clean-data-fragments! cfg file))
- (catch Throwable cause
- (l/err :hint "error on cleaning file (skiping)"
- :file-id (str (:id file))
- :cause cause))))
+ file (persist-file! cfg file)]
+ (clean-data-fragments! cfg file)
+ true)
+
+ (do
+ (l/dbg :hint "skip" :file-id (str (::file-id cfg)))
+ false)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HANDLER
@@ -293,33 +318,29 @@
(defmethod ig/pre-init-spec ::handler [_]
(s/keys :req [::db/pool ::sto/storage]))
-(defmethod ig/prep-key ::handler
- [_ cfg]
- (assoc cfg ::min-age (cf/get-deletion-delay)))
-
(defmethod ig/init-key ::handler
[_ cfg]
(fn [{:keys [props] :as task}]
- (db/tx-run! cfg
- (fn [{:keys [::db/conn] :as 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 props))
- (assoc ::min-age min-age))
+ (let [min-age (dt/duration (or (:min-age props)
+ (cf/get-deletion-delay)))
+ cfg (-> cfg
+ (assoc ::db/rollback (:rollback? props))
+ (assoc ::file-id (:file-id props))
+ (assoc ::min-age (db/interval min-age)))]
- total (reduce (fn [total file]
- (process-file! cfg file)
- (inc total))
- 0
- (get-candidates cfg))]
+ (try
+ (db/tx-run! cfg (fn [{:keys [::db/conn] :as cfg}]
+ (let [cfg (update cfg ::sto/storage sto/configure conn)
+ processed? (process-file! cfg)]
+ (when (and processed? (contains? cf/flags :tiered-file-data-storage))
+ (wrk/submit! (-> cfg
+ (assoc ::wrk/task :offload-file-data)
+ (assoc ::wrk/params props)
+ (assoc ::wrk/priority 10)
+ (assoc ::wrk/delay 1000))))
+ processed?)))
- (l/inf :hint "finished"
- :min-age (dt/format-duration min-age)
- :processed total)
-
- ;; Allow optional rollback passed by params
- (when (:rollback? props)
- (db/rollback! conn))
-
- {:processed total})))))
+ (catch Throwable cause
+ (l/err :hint "error on cleaning file"
+ :file-id (str (:file-id props))
+ :cause cause))))))
diff --git a/backend/src/app/tasks/file_gc_scheduler.clj b/backend/src/app/tasks/file_gc_scheduler.clj
new file mode 100644
index 0000000000..a133b6c412
--- /dev/null
+++ b/backend/src/app/tasks/file_gc_scheduler.clj
@@ -0,0 +1,64 @@
+;; 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.file-gc-scheduler
+ "A maintenance task that is responsible of properly scheduling the
+ file-gc task for all files that matches the eligibility threshold."
+ (:require
+ [app.config :as cf]
+ [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-candidates
+ "SELECT f.id,
+ f.modified_at
+ FROM file AS f
+ WHERE f.has_media_trimmed IS false
+ AND f.modified_at < now() - ?::interval
+ AND f.deleted_at IS NULL
+ ORDER BY f.modified_at DESC
+ FOR UPDATE
+ SKIP LOCKED")
+
+(defn- get-candidates
+ [{:keys [::db/conn ::min-age] :as cfg}]
+ (let [min-age (db/interval min-age)]
+ (db/cursor conn [sql:get-candidates min-age] {:chunk-size 10})))
+
+(defn- schedule!
+ [{:keys [::min-age] :as cfg}]
+ (let [total (reduce (fn [total {:keys [id]}]
+ (let [params {:file-id id :min-age min-age}]
+ (wrk/submit! (assoc cfg ::wrk/params params))
+ (inc total)))
+ 0
+ (get-candidates cfg))]
+
+ {:processed total}))
+
+(defmethod ig/pre-init-spec ::handler [_]
+ (s/keys :req [::db/pool]))
+
+(defmethod ig/prep-key ::handler
+ [_ cfg]
+ (assoc cfg ::min-age (cf/get-deletion-delay)))
+
+(defmethod ig/init-key ::handler
+ [_ cfg]
+ (fn [{:keys [props] :as task}]
+ (let [min-age (dt/duration (or (:min-age props) (::min-age cfg)))]
+ (-> cfg
+ (assoc ::db/rollback (:rollback? props))
+ (assoc ::min-age min-age)
+ (assoc ::wrk/task :file-gc)
+ (assoc ::wrk/priority 10)
+ (assoc ::wrk/mark-retries 0)
+ (assoc ::wrk/delay 1000)
+ (db/tx-run! schedule!)))))
diff --git a/backend/src/app/tasks/file_xlog_gc.clj b/backend/src/app/tasks/file_xlog_gc.clj
index 4e240d7f76..6bbacd250f 100644
--- a/backend/src/app/tasks/file_xlog_gc.clj
+++ b/backend/src/app/tasks/file_xlog_gc.clj
@@ -10,35 +10,59 @@
(:require
[app.common.logging :as l]
[app.db :as db]
+ [app.features.fdata :as feat.fdata]
+ [app.storage :as sto]
[app.util.time :as dt]
[clojure.spec.alpha :as s]
[integrant.core :as ig]))
(def ^:private
sql:delete-files-xlog
- "delete from file_change
- where created_at < now() - ?::interval
- and label is NULL")
+ "DELETE FROM file_change
+ WHERE id IN (SELECT id FROM file_change
+ WHERE label IS NULL
+ AND created_at < ?
+ ORDER BY created_at LIMIT ?)
+ RETURNING id, data_backend, data_ref_id")
+
+(def xf:filter-offloded
+ (comp
+ (filter feat.fdata/offloaded?)
+ (keep :data-ref-id)))
+
+(defn- delete-in-chunks
+ [{:keys [::chunk-size ::threshold] :as cfg}]
+ (let [storage (sto/resolve cfg ::db/reuse-conn true)]
+ (loop [total 0]
+ (let [chunk (db/exec! cfg [sql:delete-files-xlog threshold chunk-size])
+ length (count chunk)]
+
+ ;; touch all references on offloaded changes entries
+ (doseq [data-ref-id (sequence xf:filter-offloded chunk)]
+ (l/trc :hint "touching referenced storage object"
+ :storage-object-id (str data-ref-id))
+ (sto/touch-object! storage data-ref-id))
+
+ (if (pos? length)
+ (recur (+ total length))
+ total)))))
(defmethod ig/pre-init-spec ::handler [_]
(s/keys :req [::db/pool]))
-(defmethod ig/prep-key ::handler
- [_ cfg]
- (assoc cfg ::min-age (dt/duration {:hours 72})))
-
(defmethod ig/init-key ::handler
- [_ {:keys [::db/pool] :as cfg}]
+ [_ 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])
- result (db/get-update-count result)]
+ (let [min-age (or (:min-age props)
+ (dt/duration "72h"))
+ chunk-size (:chunk-size props 5000)
+ threshold (dt/minus (dt/now) min-age)]
- (l/info :hint "task finished" :min-age (dt/format-duration min-age) :total result)
-
- (when (:rollback? props)
- (db/rollback! conn))
-
- result)))))
+ (-> cfg
+ (assoc ::db/rollback (:rollback props false))
+ (assoc ::threshold threshold)
+ (assoc ::chunk-size chunk-size)
+ (db/tx-run! (fn [cfg]
+ (let [total (delete-in-chunks cfg)]
+ (l/trc :hint "file xlog cleaned" :total total)
+ total)))))))
diff --git a/backend/src/app/tasks/objects_gc.clj b/backend/src/app/tasks/objects_gc.clj
index 9858585cce..67ed8f9aa0 100644
--- a/backend/src/app/tasks/objects_gc.clj
+++ b/backend/src/app/tasks/objects_gc.clj
@@ -11,7 +11,6 @@
[app.common.logging :as l]
[app.config :as cf]
[app.db :as db]
- [app.media :as media]
[app.storage :as sto]
[app.util.time :as dt]
[clojure.spec.alpha :as s]
@@ -126,7 +125,7 @@
0)))
(def ^:private sql:get-files
- "SELECT id, deleted_at, project_id
+ "SELECT id, deleted_at, project_id, data_backend, data_ref_id
FROM file
WHERE deleted_at IS NOT NULL
AND deleted_at < now() - ?::interval
@@ -136,15 +135,18 @@
SKIP LOCKED")
(defn- delete-files!
- [{:keys [::db/conn ::min-age ::chunk-size] :as cfg}]
+ [{:keys [::db/conn ::sto/storage ::min-age ::chunk-size] :as cfg}]
(->> (db/cursor conn [sql:get-files min-age chunk-size] {:chunk-size 1})
- (reduce (fn [total {:keys [id deleted-at project-id]}]
+ (reduce (fn [total {:keys [id deleted-at project-id] :as file}]
(l/trc :hint "permanently delete"
:rel "file"
:id (str id)
:project-id (str project-id)
:deleted-at (dt/format-instant deleted-at))
+ (when (= "objects-storage" (:data-backend file))
+ (sto/touch-object! storage (:data-ref-id file)))
+
;; And finally, permanently delete the file.
(db/delete! conn :file {:id id})
@@ -210,7 +212,7 @@
0)))
(def ^:private sql:get-file-data-fragments
- "SELECT file_id, id, deleted_at
+ "SELECT file_id, id, deleted_at, data_ref_id
FROM file_data_fragment
WHERE deleted_at IS NOT NULL
AND deleted_at < now() - ?::interval
@@ -220,15 +222,16 @@
SKIP LOCKED")
(defn- delete-file-data-fragments!
- [{:keys [::db/conn ::min-age ::chunk-size] :as cfg}]
+ [{:keys [::db/conn ::sto/storage ::min-age ::chunk-size] :as cfg}]
(->> (db/cursor conn [sql:get-file-data-fragments min-age chunk-size] {:chunk-size 1})
- (reduce (fn [total {:keys [file-id id deleted-at]}]
+ (reduce (fn [total {:keys [file-id id deleted-at data-ref-id]}]
(l/trc :hint "permanently delete"
:rel "file-data-fragment"
:id (str id)
:file-id (str file-id)
:deleted-at (dt/format-instant deleted-at))
+ (some->> data-ref-id (sto/touch-object! storage))
(db/delete! conn :file-data-fragment {:file-id file-id :id id})
(inc total))
@@ -299,9 +302,7 @@
[_ 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))]
+ cfg (assoc cfg ::min-age (db/interval min-age))]
(loop [procs (map deref deletion-proc-vars)
total 0]
diff --git a/backend/src/app/tasks/offload_file_data.clj b/backend/src/app/tasks/offload_file_data.clj
new file mode 100644
index 0000000000..cfe50970f2
--- /dev/null
+++ b/backend/src/app/tasks/offload_file_data.clj
@@ -0,0 +1,124 @@
+;; 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.offload-file-data
+ "A maintenance task responsible of moving file data from hot
+ storage (the database row) to a cold storage (fs or s3)."
+ (:require
+ [app.common.exceptions :as ex]
+ [app.common.logging :as l]
+ [app.db :as db]
+ [app.db.sql :as-alias sql]
+ [app.storage :as sto]
+ [clojure.spec.alpha :as s]
+ [integrant.core :as ig]))
+
+(defn- offload-file-data!
+ [{:keys [::db/conn ::sto/storage ::file-id] :as cfg}]
+ (let [file (db/get conn :file {:id file-id}
+ {::sql/for-update true})]
+ (when (nil? (:data file))
+ (ex/raise :hint "file already offloaded"
+ :type :internal
+ :code :file-already-offloaded
+ :file-id file-id))
+
+ (let [data (sto/content (:data file))
+ sobj (sto/put-object! storage
+ {::sto/content data
+ ::sto/touch true
+ :bucket "file-data"
+ :content-type "application/octet-stream"
+ :file-id file-id})]
+
+ (l/trc :hint "offload file data"
+ :file-id (str file-id)
+ :storage-id (str (:id sobj)))
+
+ (db/update! conn :file
+ {:data-backend "objects-storage"
+ :data-ref-id (:id sobj)
+ :data nil}
+ {:id file-id}
+ {::db/return-keys false}))))
+
+(defn- offload-file-data-fragments!
+ [{:keys [::db/conn ::sto/storage ::file-id] :as cfg}]
+ (doseq [fragment (db/query conn :file-data-fragment
+ {:file-id file-id
+ :deleted-at nil
+ :data-backend nil}
+ {::db/for-update true})]
+ (let [data (sto/content (:data fragment))
+ sobj (sto/put-object! storage
+ {::sto/content data
+ ::sto/touch true
+ :bucket "file-data-fragment"
+ :content-type "application/octet-stream"
+ :file-id file-id
+ :file-fragment-id (:id fragment)})]
+
+ (l/trc :hint "offload file data fragment"
+ :file-id (str file-id)
+ :file-fragment-id (str (:id fragment))
+ :storage-id (str (:id sobj)))
+
+ (db/update! conn :file-data-fragment
+ {:data-backend "objects-storage"
+ :data-ref-id (:id sobj)
+ :data nil}
+ {:id (:id fragment)}
+ {::db/return-keys false}))))
+
+(def sql:get-snapshots
+ "SELECT fc.*
+ FROM file_change AS fc
+ WHERE fc.file_id = ?
+ AND fc.label IS NOT NULL
+ AND fc.data IS NOT NULL
+ AND fc.data_backend IS NULL")
+
+(defn- offload-file-snapshots!
+ [{:keys [::db/conn ::sto/storage ::file-id] :as cfg}]
+ (doseq [snapshot (db/exec! conn [sql:get-snapshots file-id])]
+ (let [data (sto/content (:data snapshot))
+ sobj (sto/put-object! storage
+ {::sto/content data
+ ::sto/touch true
+ :bucket "file-change"
+ :content-type "application/octet-stream"
+ :file-id file-id
+ :file-change-id (:id snapshot)})]
+
+ (l/trc :hint "offload file change"
+ :file-id (str file-id)
+ :file-change-id (str (:id snapshot))
+ :storage-id (str (:id sobj)))
+
+ (db/update! conn :file-change
+ {:data-backend "objects-storage"
+ :data-ref-id (:id sobj)
+ :data nil}
+ {:id (:id snapshot)}
+ {::db/return-keys false}))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; HANDLER
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defmethod ig/pre-init-spec ::handler [_]
+ (s/keys :req [::db/pool ::sto/storage]))
+
+(defmethod ig/init-key ::handler
+ [_ cfg]
+ (fn [{:keys [props] :as task}]
+ (-> cfg
+ (assoc ::db/rollback (:rollback? props))
+ (assoc ::file-id (:file-id props))
+ (db/tx-run! (fn [cfg]
+ (offload-file-data! cfg)
+ (offload-file-data-fragments! cfg)
+ (offload-file-snapshots! cfg))))))
diff --git a/backend/src/app/tasks/telemetry.clj b/backend/src/app/tasks/telemetry.clj
index 410595f722..204d6be0c1 100644
--- a/backend/src/app/tasks/telemetry.clj
+++ b/backend/src/app/tasks/telemetry.clj
@@ -62,19 +62,25 @@
[conn]
(-> (db/exec-one! conn ["SELECT count(*) AS count FROM file"]) :count))
+(def ^:private sql:num-file-changes
+ "SELECT count(*) AS count
+ FROM file_change
+ WHERE created_at < date_trunc('day', now()) + '24 hours'::interval
+ AND created_at > date_trunc('day', now())")
+
(defn- get-num-file-changes
[conn]
- (let [sql (str "SELECT count(*) AS count "
- " FROM file_change "
- " where date_trunc('day', created_at) = date_trunc('day', now())")]
- (-> (db/exec-one! conn [sql]) :count)))
+ (-> (db/exec-one! conn [sql:num-file-changes]) :count))
+
+(def ^:private sql:num-touched-files
+ "SELECT count(distinct file_id) AS count
+ FROM file_change
+ WHERE created_at < date_trunc('day', now()) + '24 hours'::interval
+ AND created_at > date_trunc('day', now())")
(defn- get-num-touched-files
[conn]
- (let [sql (str "SELECT count(distinct file_id) AS count "
- " FROM file_change "
- " where date_trunc('day', created_at) = date_trunc('day', now())")]
- (-> (db/exec-one! conn [sql]) :count)))
+ (-> (db/exec-one! conn [sql:num-touched-files]) :count))
(defn- get-num-users
[conn]
diff --git a/backend/src/app/util/overrides.clj b/backend/src/app/util/overrides.clj
index 8f88427182..71b2c0c23f 100644
--- a/backend/src/app/util/overrides.clj
+++ b/backend/src/app/util/overrides.clj
@@ -13,7 +13,6 @@
[clojure.pprint :as pprint]
[datoteka.fs :as fs]))
-
(prefer-method print-method
clojure.lang.IRecord
clojure.lang.IDeref)
@@ -26,7 +25,6 @@
clojure.lang.IPersistentMap
clojure.lang.IDeref)
-
(sm/register! ::fs/path
{:type ::fs/path
:pred fs/path?
@@ -36,6 +34,6 @@
:error/message "expected a valid fs path instance"
:error/code "errors.invalid-path"
:gen/gen (sg/generator :string)
+ :decode/string fs/path
::oapi/type "string"
- ::oapi/format "unix-path"
- ::oapi/decode fs/path}})
+ ::oapi/format "unix-path"}})
diff --git a/backend/src/app/util/time.clj b/backend/src/app/util/time.clj
index 4c8f6d40ee..c1526bfb4f 100644
--- a/backend/src/app/util/time.clj
+++ b/backend/src/app/util/time.clj
@@ -141,21 +141,22 @@
;; --- INSTANT
+(defn instant?
+ [v]
+ (instance? Instant v))
+
(defn instant
([s]
- (if (int? s)
- (Instant/ofEpochMilli s)
- (Instant/parse s)))
+ (cond
+ (instant? s) s
+ (int? s) (Instant/ofEpochMilli s)
+ :else (Instant/parse s)))
([s fmt]
(case fmt
:rfc1123 (Instant/from (.parse DateTimeFormatter/RFC_1123_DATE_TIME ^String s))
:iso (Instant/from (.parse DateTimeFormatter/ISO_INSTANT ^String s))
:iso8601 (Instant/from (.parse DateTimeFormatter/ISO_INSTANT ^String s)))))
-(defn instant?
- [v]
- (instance? Instant v))
-
(defn is-after?
[da db]
(.isAfter ^Instant da ^Instant db))
@@ -374,7 +375,10 @@
:type-properties
{:error/message "should be an instant"
:title "instant"
- ::sm/decode instant
+ :decode/string instant
+ :encode/string format-instant
+ :decode/json instant
+ :encode/json format-instant
:gen/gen (tgen/fmap (fn [i] (in-past i)) tgen/pos-int)
::oapi/type "string"
::oapi/format "iso"}})
@@ -386,6 +390,9 @@
{:error/message "should be a duration"
:gen/gen (tgen/fmap duration tgen/pos-int)
:title "duration"
- ::sm/decode duration
+ :decode/string duration
+ :encode/string format-duration
+ :decode/json duration
+ :encode/json format-duration
::oapi/type "string"
::oapi/format "duration"}})
diff --git a/backend/test/backend_tests/helpers.clj b/backend/test/backend_tests/helpers.clj
index 8380ea13e0..e77b51d6a5 100644
--- a/backend/test/backend_tests/helpers.clj
+++ b/backend/test/backend_tests/helpers.clj
@@ -76,7 +76,7 @@
:enable-feature-fdata-pointer-map
:enable-feature-fdata-objets-map
:enable-feature-components-v2
- :enable-file-snapshot
+ :enable-auto-file-snapshot
:disable-file-validation])
(defn state-init
@@ -304,16 +304,18 @@
([params] (update-file* *system* params))
([system {:keys [file-id changes session-id profile-id revn]
:or {session-id (uuid/next) revn 0}}]
- (db/tx-run! system (fn [{:keys [::db/conn] :as system}]
- (let [file (files.update/get-file conn file-id)]
- (files.update/update-file system
+ (-> system
+ (assoc ::files.update/timestamp (dt/now))
+ (db/tx-run! (fn [{:keys [::db/conn] :as system}]
+ (let [file (files.update/get-file conn file-id)]
+ (#'files.update/update-file* system
{:id file-id
:revn revn
:file file
:features (:features file)
:changes changes
:session-id session-id
- :profile-id profile-id}))))))
+ :profile-id profile-id})))))))
(declare command!)
diff --git a/backend/test/backend_tests/loggers_webhooks_test.clj b/backend/test/backend_tests/loggers_webhooks_test.clj
index d0a8e7475c..c34df71543 100644
--- a/backend/test/backend_tests/loggers_webhooks_test.clj
+++ b/backend/test/backend_tests/loggers_webhooks_test.clj
@@ -21,10 +21,9 @@
(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
- {:event
- {:type "command"
- :name "create-project"
- :props {:team-id (:default-team-id prof)}}})]
+ {:type "command"
+ :name "create-project"
+ :props {:team-id (:default-team-id prof)}})]
(t/is (= 0 (:call-count @submit-mock)))
(t/is (nil? res)))))
@@ -34,10 +33,9 @@
(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
- {:event
- {:type "command"
- :name "create-project"
- :props {:team-id (:default-team-id prof)}}})]
+ {:type "command"
+ :name "create-project"
+ :props {:team-id (:default-team-id prof)}})]
(t/is (= 1 (:call-count @submit-mock)))
(t/is (nil? res)))))
diff --git a/backend/test/backend_tests/rpc_cond_middleware_test.clj b/backend/test/backend_tests/rpc_cond_middleware_test.clj
index e74a9c5497..e737fc5f5e 100644
--- a/backend/test/backend_tests/rpc_cond_middleware_test.clj
+++ b/backend/test/backend_tests/rpc_cond_middleware_test.clj
@@ -39,7 +39,6 @@
(t/is (nil? error))
(t/is (map? result))
(t/is (contains? (meta result) :app.http/headers))
- (t/is (contains? (meta result) :app.rpc.cond/key))
(let [etag (-> result meta :app.http/headers (get "etag"))
{:keys [error result]} (th/command! (assoc params ::cond/key etag))]
diff --git a/backend/test/backend_tests/rpc_file_test.clj b/backend/test/backend_tests/rpc_file_test.clj
index 5d1fe18242..9a072eaa83 100644
--- a/backend/test/backend_tests/rpc_file_test.clj
+++ b/backend/test/backend_tests/rpc_file_test.clj
@@ -25,6 +25,20 @@
(t/use-fixtures :once th/state-init)
(t/use-fixtures :each th/database-reset)
+(defn- update-file!
+ [& {:keys [profile-id file-id changes revn] :or {revn 0}}]
+ (let [params {::th/type :update-file
+ ::rpc/profile-id profile-id
+ :id file-id
+ :session-id (uuid/random)
+ :revn revn
+ :features cfeat/supported-features
+ :changes changes}
+ out (th/command! params)]
+ ;; (th/print-result! out)
+ (t/is (nil? (:error out)))
+ (:result out)))
+
(t/deftest files-crud
(let [prof (th/create-profile* 1 {:is-active true})
team-id (:default-team-id prof)
@@ -149,8 +163,7 @@
shape-id (uuid/random)]
;; Preventive file-gc
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; Check the number of fragments before adding the page
(let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
@@ -171,8 +184,7 @@
(t/is (= 3 (count rows))))
;; The file-gc should mark for remove unused fragments
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; Check the number of fragments
(let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
@@ -210,15 +222,13 @@
(t/is (= 3 (count rows))))
;; The file-gc should mark for remove unused fragments
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; The objects-gc should remove unused fragments
(let [res (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 3 (:processed res))))
- ;; Check the number of fragments; should be 3 because changes
- ;; are also holding pointers to fragments;
+ ;; Check the number of fragments;
(let [rows (th/db-query :file-data-fragment {:file-id (:id file)
:deleted-at nil})]
(t/is (= 2 (count rows))))
@@ -231,8 +241,7 @@
;; The file-gc should remove fragments related to changes
;; snapshots previously deleted.
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; Check the number of fragments;
(let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
@@ -325,12 +334,10 @@
(t/is (= 0 (:delete res))))
;; run the file-gc task immediately without forced min-age
- (let [res (th/run-task! :file-gc)]
- (t/is (= 0 (:processed res))))
+ (t/is (false? (th/run-task! :file-gc {:file-id (:id file)})))
;; run the task again
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; retrieve file and check trimmed attribute
(let [row (th/db-get :file {:id (:id file)})]
@@ -367,8 +374,7 @@
;; Now, we have deleted the usage of pointers to the
;; file-media-objects, if we paste file-gc, they should be marked
;; as deleted.
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [res (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 3 (:processed res))))
@@ -490,12 +496,10 @@
:strokes [{:opacity 1 :stroke-image {:id (:id fmo5) :width 100 :height 100 :mtype "image/jpeg"}}]})}])
;; run the file-gc task immediately without forced min-age
- (let [res (th/run-task! :file-gc)]
- (t/is (= 0 (:processed res))))
+ (t/is (false? (th/run-task! :file-gc {:file-id (:id file)})))
;; run the task again
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [res (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 2 (:processed res))))
@@ -534,9 +538,7 @@
;; Now, we have deleted the usage of pointers to the
;; file-media-objects, if we paste file-gc, they should be marked
;; as deleted.
-
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [res (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 7 (:processed res))))
@@ -581,18 +583,18 @@
(t/is (nil? (:error out)))
(:result out)))
- (update-file! [& {:keys [profile-id file-id changes revn] :or {revn 0}}]
- (let [params {::th/type :update-file
- ::rpc/profile-id profile-id
- :id file-id
- :session-id (uuid/random)
- :revn revn
- :features cfeat/supported-features
- :changes changes}
- out (th/command! params)]
+ #_(update-file! [& {:keys [profile-id file-id changes revn] :or {revn 0}}]
+ (let [params {::th/type :update-file
+ ::rpc/profile-id profile-id
+ :id file-id
+ :session-id (uuid/random)
+ :revn revn
+ :features cfeat/supported-features
+ :changes changes}
+ out (th/command! params)]
;; (th/print-result! out)
- (t/is (nil? (:error out)))
- (:result out)))]
+ (t/is (nil? (:error out)))
+ (:result out)))]
(let [storage (:app.storage/storage th/*system*)
profile (th/create-profile* 1)
@@ -616,7 +618,6 @@
:frame-id frame-id-2)]
;; Add a two frames
-
(update-file!
:file-id (:id file)
:profile-id (:id profile)
@@ -659,12 +660,10 @@
(t/is (= 0 (:delete res))))
;; run the file-gc task immediately without forced min-age
- (let [res (th/run-task! :file-gc)]
- (t/is (= 0 (:processed res))))
+ (t/is (false? (th/run-task! :file-gc {:file-id (:id file)})))
;; run the task again
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; retrieve file and check trimmed attribute
(let [row (th/db-get :file {:id (:id file)})]
@@ -693,8 +692,7 @@
:page-id page-id
:id frame-id-2}])
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [rows (th/db-query :file-tagged-object-thumbnail {:file-id file-id})]
(t/is (= 2 (count rows)))
@@ -727,8 +725,7 @@
:page-id page-id
:id frame-id-1}])
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [rows (th/db-query :file-tagged-object-thumbnail {:file-id file-id})]
(t/is (= 1 (count rows)))
@@ -1127,8 +1124,7 @@
(th/sleep 300)
;; run the task
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; check that object thumbnails are still here
(let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})]
@@ -1157,8 +1153,7 @@
(t/is (= 2 (count rows))))
;; run the task again
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
;; check that we have all object thumbnails
(let [rows (th/db-query :file-tagged-object-thumbnail {:file-id (:id file)})]
@@ -1220,8 +1215,7 @@
(t/is (= 2 (count rows)))))
(t/testing "gc task"
- (let [res (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed res))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [rows (th/db-query :file-thumbnail {:file-id (:id file)})]
(t/is (= 2 (count rows)))
@@ -1232,3 +1226,98 @@
(let [rows (th/db-query :file-thumbnail {:file-id (:id file)})]
(t/is (= 1 (count rows)))))))
+
+(t/deftest file-tiered-storage
+ (let [profile (th/create-profile* 1)
+ file (th/create-file* 1 {:profile-id (:id profile)
+ :project-id (:default-project-id profile)
+ :is-shared false})
+
+ page-id (uuid/random)
+ shape-id (uuid/random)]
+
+ ;; Preventive file-gc
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
+
+ ;; Preventive objects-gc
+ (let [result (th/run-task! :objects-gc {:min-age 0})]
+ (t/is (= 1 (:processed result))))
+
+ ;; Check the number of fragments before adding the page
+ (let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
+ (t/is (= 1 (count rows)))
+ (t/is (every? #(some? (:data %)) rows)))
+
+ ;; Mark the file ellegible again for GC
+ (th/db-update! :file
+ {:has-media-trimmed false}
+ {:id (:id file)})
+
+ ;; Run FileGC again, with tiered storage activated
+ (with-redefs [app.config/flags (conj app.config/flags :tiered-file-data-storage)]
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
+
+ ;; The FileGC task will schedule an inner taskq
+ (th/run-pending-tasks!))
+
+ ;; Clean objects after file-gc
+ (let [result (th/run-task! :objects-gc {:min-age 0})]
+ (t/is (= 1 (:processed result))))
+
+ ;; Check the number of fragments before adding the page
+ (let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
+ (t/is (= 1 (count rows)))
+ (t/is (every? #(nil? (:data %)) rows))
+ (t/is (every? #(uuid? (:data-ref-id %)) rows))
+ (t/is (every? #(= "objects-storage" (:data-backend %)) rows)))
+
+ (let [file (th/db-get :file {:id (:id file)})
+ storage (sto/resolve th/*system*)]
+ (t/is (= "objects-storage" (:data-backend file)))
+ (t/is (nil? (:data file)))
+ (t/is (uuid? (:data-ref-id file)))
+
+ (let [sobj (sto/get-object storage (:data-ref-id file))]
+ (t/is (= "file-data" (:bucket (meta sobj))))
+ (t/is (= (:id file) (:file-id (meta sobj))))))
+
+ ;; Add shape to page that should load from cold storage again into the hot storage (db)
+ (update-file!
+ :file-id (:id file)
+ :profile-id (:id profile)
+ :revn 0
+ :changes
+ [{:type :add-page
+ :name "test"
+ :id page-id}])
+
+ ;; Check the number of fragments
+ (let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
+ (t/is (= 2 (count rows))))
+
+ ;; Check the number of fragments
+ (let [[row1 row2 :as rows]
+ (th/db-query :file-data-fragment
+ {:file-id (:id file)
+ :deleted-at nil}
+ {:order-by [:created-at]})]
+ ;; (pp/pprint rows)
+ (t/is (= 2 (count rows)))
+ (t/is (nil? (:data row1)))
+ (t/is (= "objects-storage" (:data-backend row1)))
+ (t/is (bytes? (:data row2)))
+ (t/is (nil? (:data-backend row2))))
+
+ ;; The file-gc should mark for remove unused fragments
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
+
+ ;; The objects-gc should remove unused fragments
+ (let [res (th/run-task! :objects-gc {:min-age 0})]
+ (t/is (= 2 (:processed res))))
+
+ ;; Check the number of fragments before adding the page
+ (let [rows (th/db-query :file-data-fragment {:file-id (:id file)})]
+ (t/is (= 2 (count rows)))
+ (t/is (every? #(bytes? (:data %)) rows))
+ (t/is (every? #(nil? (:data-ref-id %)) rows))
+ (t/is (every? #(nil? (:data-backend %)) rows)))))
diff --git a/backend/test/backend_tests/rpc_file_thumbnails_test.clj b/backend/test/backend_tests/rpc_file_thumbnails_test.clj
index c73941aff8..2ceffbddfa 100644
--- a/backend/test/backend_tests/rpc_file_thumbnails_test.clj
+++ b/backend/test/backend_tests/rpc_file_thumbnails_test.clj
@@ -114,8 +114,7 @@
;; Run the File GC task that should remove unused file object
;; thumbnails
- (let [result (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed result))))
+ (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})
(let [result (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 3 (:processed result))))
@@ -134,7 +133,7 @@
(t/is (some? (sto/get-object storage (:media-id row2))))
;; run the task again
- (let [res (th/run-task! "storage-gc-touched" {:min-age 0})]
+ (let [res (th/run-task! :storage-gc-touched {:min-age 0})]
(t/is (= 1 (:delete res)))
(t/is (= 0 (:freeze res))))
@@ -217,8 +216,7 @@
;; Run the File GC task that should remove unused file object
;; thumbnails
- (let [result (th/run-task! :file-gc {:min-age 0})]
- (t/is (= 1 (:processed result))))
+ (t/is (true? (th/run-task! :file-gc {:min-age 0 :file-id (:id file)})))
(let [result (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 2 (:processed result))))
diff --git a/backend/test/backend_tests/rpc_font_test.clj b/backend/test/backend_tests/rpc_font_test.clj
index 2d64044351..f20796943f 100644
--- a/backend/test/backend_tests/rpc_font_test.clj
+++ b/backend/test/backend_tests/rpc_font_test.clj
@@ -21,7 +21,7 @@
(t/use-fixtures :each th/database-reset)
(t/deftest ttf-font-upload-1
- (with-mocks [mock {:target 'app.rpc.quotes/check-quote! :return nil}]
+ (with-mocks [mock {:target 'app.rpc.quotes/check! :return nil}]
(let [prof (th/create-profile* 1 {:is-active true})
team-id (:default-team-id prof)
proj-id (:default-project-id prof)
@@ -145,7 +145,7 @@
(t/is (nil? (:result out))))
(let [res (th/run-task! :storage-gc-touched {:min-age 0})]
- (t/is (= 6 (:freeze res)))
+ (t/is (= 0 (:freeze res)))
(t/is (= 0 (:delete res))))
(let [res (th/run-task! :objects-gc {:min-age 0})]
@@ -207,7 +207,7 @@
(t/is (nil? (:result out))))
(let [res (th/run-task! :storage-gc-touched {:min-age 0})]
- (t/is (= 3 (:freeze res)))
+ (t/is (= 0 (:freeze res)))
(t/is (= 0 (:delete res))))
(let [res (th/run-task! :objects-gc {:min-age 0})]
@@ -268,7 +268,7 @@
(t/is (nil? (:result out))))
(let [res (th/run-task! :storage-gc-touched {:min-age 0})]
- (t/is (= 3 (:freeze res)))
+ (t/is (= 0 (:freeze res)))
(t/is (= 0 (:delete res))))
(let [res (th/run-task! :objects-gc {:min-age 0})]
diff --git a/backend/test/backend_tests/rpc_profile_test.clj b/backend/test/backend_tests/rpc_profile_test.clj
index 7a90c9a817..1bd49db485 100644
--- a/backend/test/backend_tests/rpc_profile_test.clj
+++ b/backend/test/backend_tests/rpc_profile_test.clj
@@ -505,6 +505,54 @@
(t/is (nil? (:error out)))
(t/is (= 0 (:call-count @mock))))))))
+(t/deftest prepare-and-register-with-invitation-and-enabled-registration-1
+ (let [sprops (:app.setup/props th/*system*)
+ itoken (tokens/generate sprops
+ {:iss :team-invitation
+ :exp (dt/in-future "48h")
+ :role :editor
+ :team-id uuid/zero
+ :member-email "user@example.com"})
+ data {::th/type :prepare-register-profile
+ :invitation-token itoken
+ :email "user@example.com"
+ :password "foobar"}
+
+ {:keys [result error] :as out} (th/command! data)]
+ (t/is (nil? error))
+ (t/is (map? result))
+ (t/is (string? (:token result)))
+
+ (let [rtoken (:token result)
+ data {::th/type :register-profile
+ :token rtoken
+ :fullname "foobar"}
+
+ {:keys [result error] :as out} (th/command! data)]
+ ;; (th/print-result! out)
+ (t/is (nil? error))
+ (t/is (map? result))
+ (t/is (string? (:invitation-token result))))))
+
+(t/deftest prepare-and-register-with-invitation-and-enabled-registration-2
+ (let [sprops (:app.setup/props th/*system*)
+ itoken (tokens/generate sprops
+ {:iss :team-invitation
+ :exp (dt/in-future "48h")
+ :role :editor
+ :team-id uuid/zero
+ :member-email "user2@example.com"})
+
+ data {::th/type :prepare-register-profile
+ :invitation-token itoken
+ :email "user@example.com"
+ :password "foobar"}
+ out (th/command! data)]
+
+ (t/is (not (th/success? out)))
+ (let [edata (-> out :error ex-data)]
+ (t/is (= :restriction (:type edata)))
+ (t/is (= :email-does-not-match-invitation (:code edata))))))
(t/deftest prepare-and-register-with-invitation-and-disabled-registration-1
(with-redefs [app.config/flags [:disable-registration]]
@@ -519,22 +567,12 @@
:invitation-token itoken
:email "user@example.com"
:password "foobar"}
+ out (th/command! data)]
- {:keys [result error] :as out} (th/command! data)]
- (t/is (nil? error))
- (t/is (map? result))
- (t/is (string? (:token result)))
-
- (let [rtoken (:token result)
- data {::th/type :register-profile
- :token rtoken
- :fullname "foobar"}
-
- {:keys [result error] :as out} (th/command! data)]
- ;; (th/print-result! out)
- (t/is (nil? error))
- (t/is (map? result))
- (t/is (string? (:invitation-token result)))))))
+ (t/is (not (th/success? out)))
+ (let [edata (-> out :error ex-data)]
+ (t/is (= :restriction (:type edata)))
+ (t/is (= :registration-disabled (:code edata)))))))
(t/deftest prepare-and-register-with-invitation-and-disabled-registration-2
(with-redefs [app.config/flags [:disable-registration]]
@@ -555,7 +593,28 @@
(t/is (not (th/success? out)))
(let [edata (-> out :error ex-data)]
(t/is (= :restriction (:type edata)))
- (t/is (= :email-does-not-match-invitation (:code edata)))))))
+ (t/is (= :registration-disabled (:code edata)))))))
+
+(t/deftest prepare-and-register-with-invitation-and-disabled-login-with-password
+ (with-redefs [app.config/flags [:disable-login-with-password]]
+ (let [sprops (:app.setup/props th/*system*)
+ itoken (tokens/generate sprops
+ {:iss :team-invitation
+ :exp (dt/in-future "48h")
+ :role :editor
+ :team-id uuid/zero
+ :member-email "user2@example.com"})
+
+ data {::th/type :prepare-register-profile
+ :invitation-token itoken
+ :email "user@example.com"
+ :password "foobar"}
+ out (th/command! data)]
+
+ (t/is (not (th/success? out)))
+ (let [edata (-> out :error ex-data)]
+ (t/is (= :restriction (:type edata)))
+ (t/is (= :registration-disabled (:code edata)))))))
(t/deftest prepare-register-with-registration-disabled
(with-redefs [app.config/flags #{}]
diff --git a/backend/test/backend_tests/rpc_team_test.clj b/backend/test/backend_tests/rpc_team_test.clj
index 8b4ccda3f2..dd614151e8 100644
--- a/backend/test/backend_tests/rpc_team_test.clj
+++ b/backend/test/backend_tests/rpc_team_test.clj
@@ -260,6 +260,7 @@
(th/reset-mock! mock)
(let [data (assoc data :emails [(:email profile2)])
out (th/command! data)]
+ ;; (th/print-result! out)
(t/is (th/success? out))
(t/is (= 0 (:call-count (deref mock)))))
@@ -467,3 +468,146 @@
(let [result (th/run-task! :objects-gc {:min-age 0})]
(t/is (= 5 (:processed result))))))
+
+(t/deftest create-team-access-request
+ (with-mocks [mock {:target 'app.email/send! :return nil}]
+ (let [owner (th/create-profile* 1 {:is-active true :email "owner@bar.com"})
+ requester (th/create-profile* 3 {:is-active true :email "requester@bar.com"})
+ team (th/create-team* 1 {:profile-id (:id owner)})
+ proj (th/create-project* 1 {:profile-id (:id owner)
+ :team-id (:id team)})
+ file (th/create-file* 1 {:profile-id (:id owner)
+ :project-id (:id proj)})
+
+ data {::th/type :create-team-access-request
+ ::rpc/profile-id (:id requester)
+ :file-id (:id file)}]
+
+ ;; request success
+ (let [out (th/command! data)
+ ;; retrieve the value from the database and check its content
+ request (db/exec-one!
+ th/*pool*
+ ["select count(*) as num from team_access_request where team_id = ? and requester_id = ?"
+ (:id team) (:id requester)])]
+
+ (t/is (th/success? out))
+ (t/is (= 1 (:call-count @mock)))
+ (t/is (= 1 (:num request))))
+
+ ;; request again fails
+ (th/reset-mock! mock)
+ (let [out (th/command! data)
+ edata (-> out :error ex-data)]
+ (t/is (not (th/success? out)))
+ (t/is (= 0 (:call-count @mock)))
+
+ (t/is (= :validation (:type edata)))
+ (t/is (= :request-already-sent (:code edata))))
+
+
+ ;; request again when is expired success
+ (th/reset-mock! mock)
+
+ (db/exec-one!
+ th/*pool*
+ ["update team_access_request set valid_until = ? where team_id = ? and requester_id = ?"
+ (dt/in-past "1h") (:id team) (:id requester)])
+
+ (t/is (th/success? (th/command! data)))
+ (t/is (= 1 (:call-count @mock))))))
+
+
+(t/deftest create-team-access-request-owner-muted
+ (with-mocks [mock {:target 'app.email/send! :return nil}]
+ (let [owner (th/create-profile* 1 {:is-active true :is-muted true :email "owner@bar.com"})
+ requester (th/create-profile* 2 {:is-active true :email "requester@bar.com"})
+ team (th/create-team* 1 {:profile-id (:id owner)})
+ proj (th/create-project* 1 {:profile-id (:id owner)
+ :team-id (:id team)})
+ file (th/create-file* 1 {:profile-id (:id owner)
+ :project-id (:id proj)})
+
+ data {::th/type :create-team-access-request
+ ::rpc/profile-id (:id requester)
+ :file-id (:id file)}]
+
+ ;; request to team with owner muted should success
+ (t/is (th/success? (th/command! data)))
+ (t/is (= 1 (:call-count @mock))))))
+
+
+(t/deftest create-team-access-request-requester-muted
+ (with-mocks [mock {:target 'app.email/send! :return nil}]
+ (let [owner (th/create-profile* 1 {:is-active true :email "owner@bar.com"})
+ requester (th/create-profile* 2 {:is-active true :is-muted true :email "requester@bar.com"})
+ team (th/create-team* 1 {:profile-id (:id owner)})
+ proj (th/create-project* 1 {:profile-id (:id owner)
+ :team-id (:id team)})
+ file (th/create-file* 1 {:profile-id (:id owner)
+ :project-id (:id proj)})
+
+ data {::th/type :create-team-access-request
+ ::rpc/profile-id (:id requester)
+ :file-id (:id file)}
+
+ out (th/command! data)
+ edata (-> out :error ex-data)]
+
+ ;; request with requester muted should fail
+ (t/is (not (th/success? out)))
+ (t/is (= 0 (:call-count @mock)))
+
+ (t/is (= :validation (:type edata)))
+ (t/is (= :member-is-muted (:code edata)))
+ (t/is (= (:email requester) (:email edata))))))
+
+
+(t/deftest create-team-access-request-owner-bounce
+ (with-mocks [mock {:target 'app.email/send! :return nil}]
+ (let [owner (th/create-profile* 1 {:is-active true :email "owner@bar.com"})
+ requester (th/create-profile* 2 {:is-active true :email "requester@bar.com"})
+ team (th/create-team* 1 {:profile-id (:id owner)})
+ proj (th/create-project* 1 {:profile-id (:id owner)
+ :team-id (:id team)})
+ file (th/create-file* 1 {:profile-id (:id owner)
+ :project-id (:id proj)})
+
+ pool (:app.db/pool th/*system*)
+ data {::th/type :create-team-access-request
+ ::rpc/profile-id (:id requester)
+ :file-id (:id file)}]
+
+
+ (th/create-global-complaint-for pool {:type :bounce :email "owner@bar.com"})
+ (let [out (th/command! data)
+ edata (-> out :error ex-data)]
+
+ ;; request with owner bounce should fail
+ (t/is (not (th/success? out)))
+ (t/is (= 0 (:call-count @mock)))
+
+ (t/is (= :restriction (:type edata)))
+ (t/is (= :email-has-permanent-bounces (:code edata)))
+ (t/is (= "private" (:email edata)))))))
+
+(t/deftest create-team-access-request-requester-bounce
+ (with-mocks [mock {:target 'app.email/send! :return nil}]
+ (let [owner (th/create-profile* 1 {:is-active true :email "owner@bar.com"})
+ requester (th/create-profile* 2 {:is-active true :email "requester@bar.com"})
+ team (th/create-team* 1 {:profile-id (:id owner)})
+ proj (th/create-project* 1 {:profile-id (:id owner)
+ :team-id (:id team)})
+ file (th/create-file* 1 {:profile-id (:id owner)
+ :project-id (:id proj)})
+
+ pool (:app.db/pool th/*system*)
+ data {::th/type :create-team-access-request
+ ::rpc/profile-id (:id requester)
+ :file-id (:id file)}]
+
+ ;; request with requester bounce should success
+ (th/create-global-complaint-for pool {:type :bounce :email "requester@bar.com"})
+ (t/is (th/success? (th/command! data)))
+ (t/is (= 1 (:call-count @mock))))))
+
diff --git a/backend/test/backend_tests/rpc_webhooks_test.clj b/backend/test/backend_tests/rpc_webhooks_test.clj
index f47472a73f..c020c54854 100644
--- a/backend/test/backend_tests/rpc_webhooks_test.clj
+++ b/backend/test/backend_tests/rpc_webhooks_test.clj
@@ -166,7 +166,6 @@
out9 (th/command! params)]
(t/is (= 8 (:call-count @http-mock)))
-
(t/is (nil? (:error out1)))
(t/is (nil? (:error out2)))
(t/is (nil? (:error out3)))
diff --git a/backend/test/backend_tests/util_objects_map_test.clj b/backend/test/backend_tests/util_objects_map_test.clj
index 29a954597d..56c589f6b8 100644
--- a/backend/test/backend_tests/util_objects_map_test.clj
+++ b/backend/test/backend_tests/util_objects_map_test.clj
@@ -8,6 +8,7 @@
(:require
[app.common.fressian :as fres]
[app.common.schema.generators :as sg]
+ [app.common.schema.test :as smt]
[app.common.transit :as transit]
[app.common.types.shape :as cts]
[app.common.uuid :as uuid]
@@ -84,54 +85,56 @@
(t/is (= (hash obj1) (hash obj2))))))
(t/deftest internal-encode-decode
- (sg/check!
- (sg/for [data (->> (cg/map cg/uuid (sg/generator ::cts/shape))
- (cg/not-empty))]
+ (smt/check!
+ (smt/for [data (->> (cg/map cg/uuid (sg/generator ::cts/shape))
+ (cg/not-empty))]
(let [obj1 (omap/wrap data)
obj2 (omap/create (deref obj1))
obj3 (assoc obj2 uuid/zero 1)
obj4 (omap/create (deref obj3))]
;; (app.common.pprint/pprint data)
- (t/is (= (hash obj1) (hash obj2)))
- (t/is (not= (hash obj2) (hash obj3)))
- (t/is (bytes? (deref obj3)))
- (t/is (pos? (alength (deref obj3))))
- (t/is (= (hash obj3) (hash obj4)))))))
+
+ (and (= (hash obj1) (hash obj2))
+ (not= (hash obj2) (hash obj3))
+ (bytes? (deref obj3))
+ (pos? (alength (deref obj3)))
+ (= (hash obj3) (hash obj4)))))
+ {:num 50}))
(t/deftest fressian-encode-decode
- (sg/check!
- (sg/for [data (->> (cg/map cg/uuid (sg/generator ::cts/shape))
- (cg/not-empty)
- (cg/fmap omap/wrap)
- (cg/fmap (fn [o] {:objects o})))]
+ (smt/check!
+ (smt/for [data (->> (cg/map cg/uuid (sg/generator ::cts/shape))
+ (cg/not-empty)
+ (cg/fmap omap/wrap)
+ (cg/fmap (fn [o] {:objects o})))]
(let [res (-> data fres/encode fres/decode)]
- (t/is (contains? res :objects))
- (t/is (omap/objects-map? (:objects res)))
- (t/is (= (count (:objects data))
- (count (:objects res))))
- (t/is (= (hash (:objects data))
- (hash (:objects res))))))))
+ (and (contains? res :objects)
+ (omap/objects-map? (:objects res))
+ (= (count (:objects data))
+ (count (:objects res)))
+ (= (hash (:objects data))
+ (hash (:objects res))))))
+ {:num 50}))
(t/deftest transit-encode-decode
- (sg/check!
- (sg/for [data (->> (cg/map cg/uuid (sg/generator ::cts/shape))
- (cg/not-empty)
- (cg/fmap omap/wrap)
- (cg/fmap (fn [o] {:objects o})))]
+ (smt/check!
+ (smt/for [data (->> (cg/map cg/uuid (sg/generator ::cts/shape))
+ (cg/not-empty)
+ (cg/fmap omap/wrap)
+ (cg/fmap (fn [o] {:objects o})))]
(let [res (-> data transit/encode transit/decode)]
;; (app.common.pprint/pprint data)
;; (app.common.pprint/pprint res)
- (doseq [[k v] (:objects res)]
- (t/is (= v (get-in data [:objects k]))))
-
- (t/is (contains? res :objects))
- (t/is (contains? data :objects))
-
- (t/is (omap/objects-map? (:objects data)))
- (t/is (not (omap/objects-map? (:objects res))))
-
- (t/is (= (count (:objects data))
- (count (:objects res))))))))
+ (and (every? (fn [[k v]]
+ (= v (get-in data [:objects k])))
+ (:objects res))
+ (contains? res :objects)
+ (contains? data :objects)
+ (omap/objects-map? (:objects data))
+ (not (omap/objects-map? (:objects res)))
+ (= (count (:objects data))
+ (count (:objects res))))))
+ {:num 50}))
diff --git a/common/dev/user.clj b/common/dev/user.clj
index c558def7b5..cb907fade0 100644
--- a/common/dev/user.clj
+++ b/common/dev/user.clj
@@ -8,11 +8,14 @@
(:require
[app.common.data :as d]
[app.common.fressian :as fres]
+ [app.common.json :as json]
[app.common.pprint :as pp]
[app.common.schema :as sm]
[app.common.schema.desc-js-like :as smdj]
[app.common.schema.desc-native :as smdn]
[app.common.schema.generators :as sg]
+ [malli.core :as m]
+ [malli.util :as mu]
[clojure.java.io :as io]
[clojure.pprint :refer [pprint print-table]]
[clojure.repl :refer :all]
diff --git a/common/src/app/common/data.cljc b/common/src/app/common/data.cljc
index 89687c7aab..06c61664b4 100644
--- a/common/src/app/common/data.cljc
+++ b/common/src/app/common/data.cljc
@@ -65,7 +65,7 @@
[o [k & ks] v]
(if ks
(oassoc o k (oassoc-in (get o k) ks v))
- (oassoc o k v)))
+ (oassoc o k v)))
(defn oupdate-in
[m ks f & args]
@@ -616,7 +616,6 @@
new-elems
(remove p? after))))
-;; TODO: remove this
(defn addm-at-index
"Insert an element in an ordered map at an arbitrary index"
[coll index key element]
diff --git a/common/src/app/common/data/macros.cljc b/common/src/app/common/data/macros.cljc
index 7740ef3626..31a89e61c0 100644
--- a/common/src/app/common/data/macros.cljc
+++ b/common/src/app/common/data/macros.cljc
@@ -108,14 +108,6 @@
`(do ~@body)
(reverse (partition 2 bindings))))
-(defmacro check
- "Applies a predicate to the value, if result is true, return the
- value if not, returns nil."
- [pred-fn value]
- `(if (~pred-fn ~value)
- ~value
- nil))
-
(defmacro get-prop
"A macro based, optimized variant of `get` that access the property
directly on CLJS, on CLJ works as get."
@@ -124,47 +116,32 @@
(list 'js* (c/str "(~{}?." (str/snake prop) "?? ~{})") obj (list 'cljs.core/get obj prop))
(list `c/get obj prop)))
-(def ^:dynamic *assert-context* nil)
+(defn runtime-assert
+ [hint f]
+ (try
+ (when-not (f)
+ (throw (ex-info hint {:type :assertion
+ :code :expr-validation
+ :hint hint})))
+ (catch #?(:clj Throwable :cljs :default) cause
+ (let [data (-> (ex-data cause)
+ (assoc :type :assertion)
+ (assoc :code :expr-validation)
+ (assoc :hint hint))]
+ (throw (ex-info hint data cause))))))
(defmacro assert!
([expr]
`(assert! nil ~expr))
([hint expr]
- (let [hint (cond
- (vector? hint)
- `(str/ffmt ~@hint)
+ (let [hint (cond
+ (vector? hint)
+ `(str/ffmt ~@hint)
- (some? hint)
- hint
+ (some? hint)
+ hint
- :else
- (str "expr assert: " (pr-str expr)))]
+ :else
+ (str "expr assert: " (pr-str expr)))]
(when *assert*
- `(binding [*assert-context* ~hint]
- (when-not ~expr
- (let [hint# ~hint
- params# {:type :assertion
- :code :expr-validation
- :hint hint#}]
- (throw (ex-info hint# params#)))))))))
-
-(defmacro verify!
- ([expr]
- `(verify! nil ~expr))
- ([hint expr]
- (let [hint (cond
- (vector? hint)
- `(str/ffmt ~@hint)
-
- (some? hint)
- hint
-
- :else
- (str "expr assert: " (pr-str expr)))]
- `(binding [*assert-context* ~hint]
- (when-not ~expr
- (let [hint# ~hint
- params# {:type :assertion
- :code :expr-validation
- :hint hint#}]
- (throw (ex-info hint# params#))))))))
+ `(runtime-assert ~hint (fn [] ~expr))))))
diff --git a/common/src/app/common/features.cljc b/common/src/app/common/features.cljc
index 8062c8c6d3..bd6cb6b7b5 100644
--- a/common/src/app/common/features.cljc
+++ b/common/src/app/common/features.cljc
@@ -50,7 +50,8 @@
"styles/v2"
"layout/grid"
"plugins/runtime"
- "design-tokens/v1"})
+ "design-tokens/v1"
+ "text-editor/v2"})
;; A set of features enabled by default
(def default-features
@@ -65,7 +66,8 @@
;; team feature field
(def frontend-only-features
#{"styles/v2"
- "plugins/runtime"})
+ "plugins/runtime"
+ "text-editor/v2"})
;; Features that are mainly backend only or there are a proper
;; fallback when frontend reports no support for it
@@ -83,7 +85,8 @@
"layout/grid"
"fdata/shape-data-type"
"plugins/runtime"
- "design-tokens/v1"}
+ "design-tokens/v1"
+ "text-editor/v2"}
(into frontend-only-features)))
(sm/register! ::features
@@ -91,7 +94,7 @@
{:title "FileFeatures"
::smdj/inline true
:gen/gen (smg/subseq supported-features)}
- ::sm/set-of-strings])
+ [::sm/set :string]])
(defn- flag->feature
"Translate a flag to a feature name"
@@ -104,6 +107,7 @@
:feature-fdata-pointer-map "fdata/pointer-map"
:feature-plugins "plugins/runtime"
:feature-design-tokens "design-tokens/v1"
+ :feature-text-editor-v2 "text-editor/v2"
nil))
(defn migrate-legacy-features
diff --git a/common/src/app/common/files/builder.cljc b/common/src/app/common/files/builder.cljc
index 988164c20a..5d93c515f8 100644
--- a/common/src/app/common/files/builder.cljc
+++ b/common/src/app/common/files/builder.cljc
@@ -53,7 +53,7 @@
valid? (or (and components-v2
(nil? (:component-id change))
(nil? (:page-id change)))
- (ch/check-change! change))]
+ (ch/valid-change? change))]
(when-not valid?
(let [explain (sm/explain ::ch/change change)]
@@ -741,46 +741,36 @@
(defn add-guide
[file guide]
-
(let [guide (cond-> guide
(nil? (:id guide))
(assoc :id (uuid/next)))
- page-id (:current-page-id file)
- old-guides (or (dm/get-in file [:data :pages-index page-id :options :guides]) {})
- new-guides (assoc old-guides (:id guide) guide)]
+ page-id (:current-page-id file)]
(-> file
(commit-change
- {:type :set-option
+ {:type :set-guide
:page-id page-id
- :option :guides
- :value new-guides})
+ :id (:id guide)
+ :params guide})
(assoc :last-id (:id guide)))))
(defn delete-guide
[file id]
- (let [page-id (:current-page-id file)
- old-guides (or (dm/get-in file [:data :pages-index page-id :options :guides]) {})
- new-guides (dissoc old-guides id)]
- (-> file
- (commit-change
- {:type :set-option
- :page-id page-id
- :option :guides
- :value new-guides}))))
+ (let [page-id (:current-page-id file)]
+ (commit-change file
+ {:type :set-guide
+ :page-id page-id
+ :id id
+ :params nil})))
(defn update-guide
[file guide]
-
- (let [page-id (:current-page-id file)
- old-guides (or (dm/get-in file [:data :pages-index page-id :options :guides]) {})
- new-guides (assoc old-guides (:id guide) guide)]
- (-> file
- (commit-change
- {:type :set-option
- :page-id page-id
- :option :guides
- :value new-guides}))))
+ (let [page-id (:current-page-id file)]
+ (commit-change file
+ {:type :set-guide
+ :page-id page-id
+ :id (:id guide)
+ :params guide})))
(defn strip-image-extension [filename]
(let [image-extensions-re #"(\.png)|(\.jpg)|(\.jpeg)|(\.webp)|(\.gif)|(\.svg)$"]
diff --git a/common/src/app/common/files/changes.cljc b/common/src/app/common/files/changes.cljc
index 3e19a80371..dbb7d34b44 100644
--- a/common/src/app/common/files/changes.cljc
+++ b/common/src/app/common/files/changes.cljc
@@ -10,15 +10,18 @@
[app.common.data.macros :as dm]
[app.common.exceptions :as ex]
[app.common.files.helpers :as cfh]
+ [app.common.geom.point :as gpt]
[app.common.geom.shapes :as gsh]
[app.common.schema :as sm]
[app.common.schema.desc-native :as smd]
+ [app.common.schema.generators :as sg]
[app.common.types.color :as ctc]
[app.common.types.colors-list :as ctcl]
[app.common.types.component :as ctk]
[app.common.types.components-list :as ctkl]
[app.common.types.container :as ctn]
[app.common.types.file :as ctf]
+ [app.common.types.grid :as ctg]
[app.common.types.page :as ctp]
[app.common.types.pages-list :as ctpl]
[app.common.types.shape :as cts]
@@ -28,15 +31,26 @@
[app.common.types.tokens-lib :as ctob]
[app.common.types.typographies-list :as ctyl]
[app.common.types.typography :as ctt]
+ [app.common.uuid :as uuid]
[clojure.set :as set]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; SCHEMAS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(def ^:private
- schema:operation
- [:multi {:dispatch :type :title "Operation" ::smd/simplified true}
+(def schema:operation
+ [:multi {:dispatch :type
+ :title "Operation"
+ :decode/json #(update % :type keyword)
+ ::smd/simplified true}
+ [:assign
+ [:map {:title "AssignOperation"}
+ [:type [:= :assign]]
+ ;; NOTE: the full decoding is happening on the handler because it
+ ;; needs a proper context of the current shape and its type
+ [:value [:map-of :keyword :any]]
+ [:ignore-touched {:optional true} :boolean]
+ [:ignore-geometry {:optional true} :boolean]]]
[:set
[:map {:title "SetOperation"}
[:type [:= :set]]
@@ -53,17 +67,130 @@
[:type [:= :set-remote-synced]]
[:remote-synced {:optional true} [:maybe :boolean]]]]])
-(sm/register! ::change
+(def schema:set-default-grid-change
+ (let [gen (->> (sg/elements #{:square :column :row})
+ (sg/mcat (fn [grid-type]
+ (sg/fmap (fn [params]
+ {:page-id (uuid/next)
+ :type :set-default-grid
+ :grid-type grid-type
+ :params params})
+
+ (case grid-type
+ :square (sg/generator ctg/schema:square-params)
+ :column (sg/generator ctg/schema:column-params)
+ :row (sg/generator ctg/schema:column-params))))))]
+
+ [:multi {:decode/json #(update % :grid-type keyword)
+ :gen/gen gen
+ :dispatch :grid-type
+ ::smd/simplified true}
+ [:square
+ [:map
+ [:type [:= :set-default-grid]]
+ [:page-id ::sm/uuid]
+ [:grid-type [:= :square]]
+ [:params [:maybe ctg/schema:square-params]]]]
+
+ [:column
+ [:map
+ [:type [:= :set-default-grid]]
+ [:page-id ::sm/uuid]
+ [:grid-type [:= :column]]
+ [:params [:maybe ctg/schema:column-params]]]]
+
+ [:row
+ [:map
+ [:type [:= :set-default-grid]]
+ [:page-id ::sm/uuid]
+ [:grid-type [:= :row]]
+ [:params [:maybe ctg/schema:column-params]]]]]))
+
+(def schema:set-guide-change
+ (let [schema [:map {:title "SetGuideChange"}
+ [:type [:= :set-guide]]
+ [:page-id ::sm/uuid]
+ [:id ::sm/uuid]
+ [:params [:maybe ::ctp/guide]]]
+ gen (->> (sg/generator schema)
+ (sg/fmap (fn [change]
+ (if (some? (:params change))
+ (update change :params assoc :id (:id change))
+ change))))]
+ [:schema {:gen/gen gen} schema]))
+
+(def schema:set-flow-change
+ (let [schema [:map {:title "SetFlowChange"}
+ [:type [:= :set-flow]]
+ [:page-id ::sm/uuid]
+ [:id ::sm/uuid]
+ [:params [:maybe ::ctp/flow]]]
+
+ gen (->> (sg/generator schema)
+ (sg/fmap (fn [change]
+ (if (some? (:params change))
+ (update change :params assoc :id (:id change))
+ change))))]
+
+ [:schema {:gen/gen gen} schema]))
+
+(def schema:set-plugin-data-change
+ (let [types #{:file :page :shape :color :typography :component}
+
+ schema [:map {:title "SetPagePluginData"}
+ [:type [:= :set-plugin-data]]
+ [:object-type [::sm/one-of types]]
+ ;; It's optional because files don't need the id for type :file
+ [:object-id {:optional true} ::sm/uuid]
+ [:page-id {:optional true} ::sm/uuid]
+ [:namespace {:gen/gen (sg/word-keyword)} :keyword]
+ [:key {:gen/gen (sg/word-string)} :string]
+ [:value [:maybe [:string {:gen/gen (sg/word-string)}]]]]
+
+ check1 [:fn {:error/path [:page-id]
+ :error/message "missing page-id"}
+ (fn [{:keys [object-type] :as change}]
+ (if (= :shape object-type)
+ (uuid? (:page-id change))
+ true))]
+
+ gen (->> (sg/generator schema)
+ (sg/filter :object-id)
+ (sg/filter :page-id)
+ (sg/fmap (fn [{:keys [object-type] :as change}]
+ (cond
+ (= :file object-type)
+ (-> change
+ (dissoc :object-id)
+ (dissoc :page-id))
+
+ (= :shape object-type)
+ change
+
+ :else
+ (dissoc change :page-id)))))]
+
+ [:and {:gen/gen gen} schema check1]))
+
+(def schema:change
[:schema
- [:multi {:dispatch :type :title "Change" ::smd/simplified true}
+ [:multi {:dispatch :type
+ :title "Change"
+ :decode/json #(update % :type keyword)
+ ::smd/simplified true}
[:set-option
- [:map {:title "SetOptionChange"}
- [:type [:= :set-option]]
+
+ ;; DEPRECATED: remove before 2.3 release
+ ;;
+ ;; Is still there for not cause error when event is received
+ [:map {:title "SetOptionChange"}]]
+
+ [:set-comment-thread-position
+ [:map
+ [:comment-thread-id ::sm/uuid]
[:page-id ::sm/uuid]
- [:option [:union
- [:keyword]
- [:vector {:gen/max 10} :keyword]]]
- [:value :any]]]
+ [:frame-id [:maybe ::sm/uuid]]
+ [:position [:maybe ::gpt/point]]]]
[:add-obj
[:map {:title "AddObjChange"}
@@ -93,6 +220,10 @@
[:component-id {:optional true} ::sm/uuid]
[:ignore-touched {:optional true} :boolean]]]
+ [:set-guide schema:set-guide-change]
+ [:set-flow schema:set-flow-change]
+ [:set-default-grid schema:set-default-grid-change]
+
[:fix-obj
[:map {:title "FixObjChange"}
[:type [:= :fix-obj]]
@@ -133,19 +264,12 @@
[:map {:title "ModPageChange"}
[:type [:= :mod-page]]
[:id ::sm/uuid]
- [:name :string]]]
+ ;; All props are optional, background can be nil because is the
+ ;; way to remove already set background
+ [:background {:optional true} [:maybe ::ctc/rgb-color]]
+ [:name {:optional true} :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]]]]
+ [:set-plugin-data schema:set-plugin-data-change]
[:del-page
[:map {:title "DelPageChange"}
@@ -168,22 +292,21 @@
[:add-color
[:map {:title "AddColorChange"}
[:type [:= :add-color]]
- [:color :any]]]
+ [:color ::ctc/color]]]
[:mod-color
[:map {:title "ModColorChange"}
[:type [:= :mod-color]]
- [:color :any]]]
+ [:color ::ctc/color]]]
[:del-color
[:map {:title "DelColorChange"}
[:type [:= :del-color]]
[:id ::sm/uuid]]]
+ ;; DEPRECATED: remove before 2.3
[:add-recent-color
- [:map {:title "AddRecentColorChange"}
- [:type [:= :add-recent-color]]
- [:color ::ctc/recent-color]]]
+ [:map {:title "AddRecentColorChange"}]]
[:add-media
[:map {:title "AddMediaChange"}
@@ -328,14 +451,17 @@
[:set-name :string]
[:name :string]]]]])
-(sm/register! ::changes
- [:sequential {:gen/max 2} ::change])
+(def schema:changes
+ [:sequential {:gen/max 5 :gen/min 1} schema:change])
-(def check-change!
- (sm/check-fn ::change))
+(sm/register! ::change schema:change)
+(sm/register! ::changes schema:changes)
+
+(def valid-change?
+ (sm/lazy-validator schema:change))
(def check-changes!
- (sm/check-fn ::changes))
+ (sm/check-fn schema:changes))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Specific helpers
@@ -350,6 +476,16 @@
;; Page Transformation Changes
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(def ^:dynamic *touched-changes*
+ "A dynamic var that used for track changes that touch shapes on
+ first processing phase of changes. Should be set to a hash-set
+ instance and will contain changes that caused the touched
+ modification."
+ nil)
+
+(defmulti process-change (fn [_ change] (:type change)))
+(defmulti process-operation (fn [_ op] (:type op)))
+
;; Changes Processing Impl
(defn validate-shapes!
@@ -361,10 +497,11 @@
;; If object has changed or is new verify is correct
(when (and (some? shape-new)
(not= shape-old shape-new))
- (dm/verify!
- "expected valid shape"
- (and (cts/check-shape! shape-new)
- (cts/shape? shape-new))))))]
+ (when-not (and (cts/valid-shape? shape-new)
+ (cts/shape? shape-new))
+ (ex/raise :type :assertion
+ :code :data-validation
+ :hint "invalid shape found after applying changes")))))]
(->> (into #{} (map :page-id) items)
(mapcat (fn [page-id]
@@ -378,34 +515,105 @@
nil))))
(run! validate-shape!))))
-(defmulti process-change (fn [_ change] (:type change)))
-(defmulti process-operation (fn [_ _ op] (:type op)))
+(defn- process-touched-change
+ [data {:keys [id page-id component-id]}]
+ (let [objects (if page-id
+ (-> data :pages-index (get page-id) :objects)
+ (-> data :components (get component-id) :objects))
+ shape (get objects id)
+ croot (ctn/get-component-shape objects shape {:allow-main? true})]
+
+ (if (and (some? croot) (ctk/main-instance? croot))
+ (ctkl/set-component-modified data (:component-id croot))
+ (if (some? component-id)
+ (ctkl/set-component-modified data component-id)
+ data))))
(defn process-changes
([data items]
(process-changes data items true))
([data items verify?]
- ;; When verify? false we spec the schema validation. Currently used to make just
- ;; 1 validation even if the changes are applied twice
+ ;; When verify? false we spec the schema validation. Currently used
+ ;; to make just 1 validation even if the changes are applied twice
(when verify?
- (dm/verify!
- "expected valid changes"
- (check-changes! items)))
+ (check-changes! items))
- (let [result (reduce #(or (process-change %1 %2) %1) data items)]
- ;; Validate result shapes (only on the backend)
- #?(:clj (validate-shapes! data result items))
- result)))
+ (binding [*touched-changes* (volatile! #{})]
+ (let [result (reduce #(or (process-change %1 %2) %1) data items)
+ result (reduce process-touched-change result @*touched-changes*)]
+ ;; Validate result shapes (only on the backend)
+ ;;
+ ;; TODO: (PERF) add changed shapes tracking and only validate
+ ;; the tracked changes instead of iterate over all shapes
+ #?(:clj (validate-shapes! data result items))
+ result))))
+;; DEPRECATED: remove before 2.3 release
(defmethod process-change :set-option
- [data {:keys [page-id option value]}]
+ [data _]
+ data)
+
+;; --- Comment Threads
+
+(defmethod process-change :set-comment-thread-position
+ [data {:keys [page-id comment-thread-id position frame-id]}]
(d/update-in-when data [:pages-index page-id]
- (fn [data]
- (let [path (if (seqable? option) option [option])]
- (if value
- (assoc-in data (into [:options] path) value)
- (assoc data :options (d/dissoc-in (:options data) path)))))))
+ (fn [page]
+ (if (and position frame-id)
+ (update page :comment-thread-positions assoc
+ comment-thread-id {:frame-id frame-id
+ :position position})
+ (update page :comment-thread-positions dissoc
+ comment-thread-id)))))
+
+;; --- Guides
+
+(defmethod process-change :set-guide
+ [data {:keys [page-id id params]}]
+ (if (nil? params)
+ (d/update-in-when data [:pages-index page-id]
+ (fn [page]
+ (let [guides (get page :guides)
+ guides (dissoc guides id)]
+ (if (empty? guides)
+ (dissoc page :guides)
+ (assoc page :guides guides)))))
+
+ (let [params (assoc params :id id)]
+ (d/update-in-when data [:pages-index page-id] update :guides assoc id params))))
+
+;; --- Flows
+
+(defmethod process-change :set-flow
+ [data {:keys [page-id id params]}]
+ (if (nil? params)
+ (d/update-in-when data [:pages-index page-id]
+ (fn [page]
+ (let [flows (get page :flows)
+ flows (dissoc flows id)]
+ (if (empty? flows)
+ (dissoc page :flows)
+ (assoc page :flows flows)))))
+
+ (let [params (assoc params :id id)]
+ (d/update-in-when data [:pages-index page-id] update :flows assoc id params))))
+
+;; --- Grids
+
+(defmethod process-change :set-default-grid
+ [data {:keys [page-id grid-type params]}]
+ (if (nil? params)
+ (d/update-in-when data [:pages-index page-id]
+ (fn [page]
+ (let [default-grids (get page :default-grids)
+ default-grids (dissoc default-grids grid-type)]
+ (if (empty? default-grids)
+ (dissoc page :default-grids)
+ (assoc page :default-grids default-grids)))))
+ (d/update-in-when data [:pages-index page-id] update :default-grids assoc grid-type params)))
+
+;; --- Shape / Obj
(defmethod process-change :add-obj
[data {:keys [id obj page-id component-id frame-id parent-id index ignore-touched]}]
@@ -417,83 +625,51 @@
(d/update-in-when data [:pages-index page-id] update-container)
(d/update-in-when data [:components component-id] update-container))))
+(defn- process-operations
+ [objects {:keys [id operations] :as change}]
+ (if-let [shape (get objects id)]
+ (let [shape (reduce process-operation shape operations)
+ touched? (-> shape meta ::ctn/touched)]
+ ;; NOTE: processing operation functions can assign
+ ;; the ::ctn/touched metadata on shapes, in this case we
+ ;; need to report them for to be used in the second
+ ;; phase of changes procesing
+ (when touched? (some-> *touched-changes* (vswap! conj change)))
+ (assoc objects id shape))
+
+ objects))
+
(defmethod process-change :mod-obj
- [data {:keys [id page-id component-id operations]}]
- (let [changed? (atom false)
+ [data {:keys [page-id component-id] :as change}]
+ (if page-id
+ (d/update-in-when data [:pages-index page-id :objects] process-operations change)
+ (d/update-in-when data [:components component-id :objects] process-operations change)))
- process-and-register (partial process-operation
- (fn [_shape] (reset! changed? true)))
+(defn- process-children-reordering
+ [objects {:keys [parent-id shapes] :as change}]
+ (if-let [old-shapes (dm/get-in objects [parent-id :shapes])]
+ (let [id->idx
+ (update-vals
+ (->> (d/enumerate shapes)
+ (group-by second))
+ (comp first first))
- update-fn (fn [objects]
- (d/update-when objects id
- #(reduce process-and-register % operations)))
+ new-shapes
+ (vec (sort-by #(d/nilv (id->idx %) -1) < old-shapes))]
- check-modify-component (fn [data]
- (if @changed?
- ;; When a shape is modified, if it belongs to a main component instance,
- ;; the component needs to be marked as modified.
- (let [objects (if page-id
- (-> data :pages-index (get page-id) :objects)
- (-> data :components (get component-id) :objects))
- shape (get objects id)
- component-root (ctn/get-component-shape objects shape {:allow-main? true})]
- (if (and (some? component-root) (ctk/main-instance? component-root))
- (ctkl/set-component-modified data (:component-id component-root))
- (if (some? component-id)
- (ctkl/set-component-modified data component-id)
- data)))
- data))]
+ (if (not= old-shapes new-shapes)
+ (do
+ (some-> *touched-changes* (vswap! conj change))
+ (update objects parent-id assoc :shapes new-shapes))
+ objects))
- (as-> data $
- (if page-id
- (d/update-in-when $ [:pages-index page-id :objects] update-fn)
- (d/update-in-when $ [:components component-id :objects] update-fn))
- (check-modify-component $))))
+ objects))
(defmethod process-change :reorder-children
- [data {:keys [parent-id shapes page-id component-id]}]
- (let [changed? (atom false)
-
- update-fn
- (fn [objects]
- (let [old-shapes (dm/get-in objects [parent-id :shapes])
-
- id->idx
- (update-vals
- (->> shapes
- d/enumerate
- (group-by second))
- (comp first first))
-
- new-shapes
- (into [] (sort-by #(d/nilv (id->idx %) -1) < old-shapes))]
-
- (reset! changed? (not= old-shapes new-shapes))
-
- (cond-> objects
- @changed?
- (d/assoc-in-when [parent-id :shapes] new-shapes))))
-
- check-modify-component
- (fn [data]
- (if @changed?
- ;; When a shape is modified, if it belongs to a main component instance,
- ;; the component needs to be marked as modified.
- (let [objects (if page-id
- (-> data :pages-index (get page-id) :objects)
- (-> data :components (get component-id) :objects))
- shape (get objects parent-id)
- component-root (ctn/get-component-shape objects shape {:allow-main? true})]
- (if (and (some? component-root) (ctk/main-instance? component-root))
- (ctkl/set-component-modified data (:component-id component-root))
- data))
- data))]
-
- (as-> data $
- (if page-id
- (d/update-in-when $ [:pages-index page-id :objects] update-fn)
- (d/update-in-when $ [:components component-id :objects] update-fn))
- (check-modify-component $))))
+ [data {:keys [page-id component-id] :as change}]
+ (if page-id
+ (d/update-in-when data [:pages-index page-id :objects] process-children-reordering change)
+ (d/update-in-when data [:components component-id :objects] process-children-reordering change)))
(defmethod process-change :del-obj
[data {:keys [page-id component-id id ignore-touched]}]
@@ -619,6 +795,7 @@
(d/update-in-when [pid :shapes] d/without-obj sid)
(d/update-in-when [pid :shapes] d/vec-without-nils)
(cond-> component? (d/update-when pid #(dissoc % :remote-synced))))))))
+
(update-parent-id [objects id]
(-> objects
(d/update-when id assoc :parent-id parent-id)))
@@ -677,26 +854,34 @@
(ctpl/add-page data page)))
(defmethod process-change :mod-page
- [data {:keys [id name]}]
- (d/update-in-when data [:pages-index id] assoc :name name))
+ [data {:keys [id] :as params}]
+ (d/update-in-when data [:pages-index id]
+ (fn [page]
+ (let [name (get params :name)
+ bg (get params :background :not-found)]
+ (cond-> page
+ (string? name)
+ (assoc :name name)
-(defmethod process-change :mod-plugin-data
+ (string? bg)
+ (assoc :background bg)
+
+ (nil? bg)
+ (dissoc :background))))))
+
+(defmethod process-change :set-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]
+ (letfn [(update-fn [data]
(if (some? value)
(assoc-in data [:plugin-data namespace key] value)
- (update-in data [:plugin-data namespace] (fnil dissoc {}) key)))]
+ (update-in data [:plugin-data namespace] dissoc key)))]
+
(case object-type
:file
(update-fn data)
:page
- (d/update-in-when data [:pages-index object-id :options] update-fn)
+ (d/update-in-when data [:pages-index object-id] update-fn)
:shape
(d/update-in-when data [:pages-index page-id :objects object-id] update-fn)
@@ -730,18 +915,11 @@
[data {:keys [id]}]
(ctcl/delete-color data id))
+;; DEPRECATED: remove before 2.3
(defmethod process-change :add-recent-color
- [data {:keys [color]}]
- ;; Moves the color to the top of the list and then truncates up to 15
- (update
- data
- :recent-colors
- (fn [rc]
- (let [rc (->> rc (d/removev (partial ctc/eq-recent-color? color)))
- rc (-> rc (conj color))]
- (cond-> rc
- (> (count rc) 15)
- (subvec 1))))))
+ [data _]
+ data)
+
;; -- Media
@@ -891,33 +1069,49 @@
(ctob/delete-set name))))
;; === Operations
+
+(def ^:private decode-shape
+ (sm/decoder cts/schema:shape sm/json-transformer))
+
+(defmethod process-operation :assign
+ [{:keys [type] :as shape} {:keys [value] :as op}]
+ (let [modifications (assoc value :type type)
+ modifications (decode-shape modifications)]
+ (reduce-kv (fn [shape k v]
+ (process-operation shape {:type :set
+ :attr k
+ :val v
+ :ignore-touched (:ignore-touched op)
+ :ignore-geometry (:ignore-geometry op)}))
+ shape
+ modifications)))
+
(defmethod process-operation :set
- [on-changed shape op]
+ [shape op]
(ctn/set-shape-attr shape
(:attr op)
(:val op)
- :on-changed on-changed
:ignore-touched (:ignore-touched op)
:ignore-geometry (:ignore-geometry op)))
(defmethod process-operation :set-touched
- [_ shape op]
- (let [touched (:touched op)
+ [shape op]
+ (let [touched (:touched op)
in-copy? (ctk/in-component-copy? shape)]
(if (or (not in-copy?) (nil? touched) (empty? touched))
(dissoc shape :touched)
(assoc shape :touched touched))))
(defmethod process-operation :set-remote-synced
- [_ shape op]
+ [shape op]
(let [remote-synced (:remote-synced op)
- in-copy? (ctk/in-component-copy? shape)]
+ in-copy? (ctk/in-component-copy? shape)]
(if (or (not in-copy?) (not remote-synced))
(dissoc shape :remote-synced)
(assoc shape :remote-synced true))))
(defmethod process-operation :default
- [_ _ op]
+ [_ op]
(ex/raise :type :not-implemented
:code :operation-not-implemented
:context {:type (:type op)}))
diff --git a/common/src/app/common/files/changes_builder.cljc b/common/src/app/common/files/changes_builder.cljc
index 27f30b344e..8513df71de 100644
--- a/common/src/app/common/files/changes_builder.cljc
+++ b/common/src/app/common/files/changes_builder.cljc
@@ -136,12 +136,6 @@
(or (contains? (meta changes) ::page-id)
(contains? (meta changes) ::component-id))))
-(defn- assert-page!
- [changes]
- (dm/assert!
- "Call (with-page) before using this function"
- (contains? (meta changes) ::page)))
-
(defn- assert-objects!
[changes]
(dm/assert!
@@ -196,41 +190,85 @@
(apply-changes-local)))
(defn mod-page
- [changes page new-name]
- (-> changes
- (update :redo-changes conj {:type :mod-page :id (:id page) :name new-name})
- (update :undo-changes conj {:type :mod-page :id (:id page) :name (:name page)})
- (apply-changes-local)))
+ ([changes options]
+ (let [page (::page (meta changes))]
+ (mod-page changes page options)))
-(defn mod-plugin-data
+ ([changes page {:keys [name background]}]
+ (let [change {:type :mod-page :id (:id page)}
+ redo (cond-> change
+ (some? name)
+ (assoc :name name)
+
+ (some? background)
+ (assoc :background background))
+
+ undo (cond-> change
+ (some? name)
+ (assoc :name (:name page))
+
+ (some? background)
+ (assoc :background (:background page)))]
+
+ (-> changes
+ (update :redo-changes conj redo)
+ (update :undo-changes conj undo)
+ (apply-changes-local)))))
+
+(defn set-plugin-data
([changes namespace key value]
- (mod-plugin-data changes :file nil nil namespace key value))
+ (set-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))
+ (set-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])
+ (dm/get-in data [:plugin-data namespace key])
:page
- (get-in data [:pages-index id :options :plugin-data namespace key])
+ (dm/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])
+ (dm/get-in data [:pages-index page-id :objects id :plugin-data namespace key])
:color
- (get-in data [:colors id :plugin-data namespace key])
+ (dm/get-in data [:colors id :plugin-data namespace key])
:typography
- (get-in data [:typographies id :plugin-data namespace key])
+ (dm/get-in data [:typographies id :plugin-data namespace key])
:component
- (get-in data [:components id :plugin-data namespace key]))]
+ (dm/get-in data [:components id :plugin-data namespace key]))
+
+ redo-change
+ (cond-> {:type :set-plugin-data
+ :object-type type
+ :namespace namespace
+ :key key
+ :value value}
+ (uuid? id)
+ (assoc :object-id id)
+
+ (uuid? page-id)
+ (assoc :page-id page-id))
+
+ undo-change
+ (cond-> {:type :set-plugin-data
+ :object-type type
+ :namespace namespace
+ :key key
+ :value old-val}
+ (uuid? id)
+ (assoc :object-id id)
+
+ (uuid? page-id)
+ (assoc :page-id page-id))]
+
(-> 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})
+ (update :redo-changes conj redo-change)
+ (update :undo-changes conj undo-change)
(apply-changes-local)))))
(defn del-page
@@ -247,42 +285,76 @@
(update :undo-changes conj {:type :mov-page :id page-id :index prev-index})
(apply-changes-local)))
-(defn set-page-option
- [changes option-key option-val]
- (assert-page! changes)
+(defn set-guide
+ [changes id guide]
(let [page-id (::page-id (meta changes))
- page (::page (meta changes))
- old-val (get-in page [:options option-key])]
+ page (::page (meta changes))
+ old-val (dm/get-in page [:guides id])]
(-> changes
- (update :redo-changes conj {:type :set-option
+ (update :redo-changes conj {:type :set-guide
:page-id page-id
- :option option-key
- :value option-val})
- (update :undo-changes conj {:type :set-option
+ :id id
+ :params guide})
+ (update :undo-changes conj {:type :set-guide
:page-id page-id
- :option option-key
- :value old-val})
- (apply-changes-local))))
-
-(defn update-page-option
- [changes option-key update-fn & args]
- (assert-page! changes)
+ :id id
+ :params old-val}))))
+(defn set-flow
+ [changes id flow]
(let [page-id (::page-id (meta changes))
- page (::page (meta changes))
- old-val (get-in page [:options option-key])
- new-val (apply update-fn old-val args)]
+ page (::page (meta changes))
+ old-val (dm/get-in page [:flows id])
- (-> changes
- (update :redo-changes conj {:type :set-option
- :page-id page-id
- :option option-key
- :value new-val})
- (update :undo-changes conj {:type :set-option
- :page-id page-id
- :option option-key
- :value old-val})
- (apply-changes-local))))
+ changes (-> changes
+ (update :redo-changes conj {:type :set-flow
+ :page-id page-id
+ :id id
+ :params flow})
+ (update :undo-changes conj {:type :set-flow
+ :page-id page-id
+ :id id
+ :params old-val}))]
+ ;; FIXME: not sure if we need this
+ (apply-changes-local changes)))
+
+(defn set-comment-thread-position
+ [changes {:keys [id frame-id position] :as thread}]
+ (let [page-id (::page-id (meta changes))
+ page (::page (meta changes))
+
+ old-val (dm/get-in page [:comment-thread-positions id])
+
+ changes (-> changes
+ (update :redo-changes conj {:type :set-comment-thread-position
+ :comment-thread-id id
+ :page-id page-id
+ :frame-id frame-id
+ :position position})
+ (update :undo-changes conj {:type :set-comment-thread-position
+ :page-id page-id
+ :comment-thread-id id
+ :frame-id (:frame-id old-val)
+ :position (:position old-val)}))]
+ ;; FIXME: not sure if we need this
+ (apply-changes-local changes)))
+
+(defn set-default-grid
+ [changes type params]
+ (let [page-id (::page-id (meta changes))
+ page (::page (meta changes))
+ old-val (dm/get-in page [:grids type])
+
+ changes (update changes :redo-changes conj {:type :set-default-grid
+ :page-id page-id
+ :grid-type type
+ :params params})
+ changes (update changes :undo-changes conj {:type :set-default-grid
+ :page-id page-id
+ :grid-type type
+ :params old-val})]
+ ;; FIXME: not sure if we need this
+ (apply-changes-local changes)))
;; Shape tree changes
@@ -608,13 +680,6 @@
(reduce resize-parent changes all-parents)))
;; Library changes
-
-(defn add-recent-color
- [changes color]
- (-> changes
- (update :redo-changes conj {:type :add-recent-color :color color})
- (apply-changes-local)))
-
(defn add-color
[changes color]
(-> changes
diff --git a/common/src/app/common/files/defaults.cljc b/common/src/app/common/files/defaults.cljc
index 6ef70b5ea5..fb70a81ee3 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 51)
+(def version 55)
diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc
index 111d050726..2b6c4b4506 100644
--- a/common/src/app/common/files/migrations.cljc
+++ b/common/src/app/common/files/migrations.cljc
@@ -863,11 +863,9 @@
(assoc shadow :color color)))
(update-object [object]
- (d/update-when object :shadow
- #(into []
- (comp (map fix-shadow)
- (filter valid-shadow?))
- %)))
+ (let [xform (comp (map fix-shadow)
+ (filter valid-shadow?))]
+ (d/update-when object :shadow #(into [] xform %))))
(update-container [container]
(d/update-when container :objects update-vals update-object))]
@@ -1010,13 +1008,73 @@
(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)))
+(defn migrate-up-52
+ "Fixes incorrect value on `layout-wrap-type` prop"
+ [data]
+ (letfn [(update-shape [shape]
+ (if (= :no-wrap (:layout-wrap-type shape))
+ (assoc shape :layout-wrap-type :nowrap)
+ shape))
+
+ (update-page [page]
+ (d/update-when page :objects update-vals update-shape))]
+
+ (update data :pages-index update-vals update-page)))
+
+(defn migrate-up-54
+ "Fixes shapes with invalid colors in shadow: it first tries a non
+ destructive fix, and if it is not possible, then, shadow is removed"
+ [data]
+ (letfn [(fix-shadow [shadow]
+ (update shadow :color d/without-nils))
+
+ (update-shape [shape]
+ (let [xform (comp (map fix-shadow)
+ (filter valid-shadow?))]
+ (d/update-when shape :shadow #(into [] xform %))))
+
+ (update-container [container]
+ (d/update-when container :objects update-vals update-shape))]
+
+ (-> data
+ (update :pages-index update-vals update-container)
+ (update :components update-vals update-container))))
+
+(defn migrate-up-55
+ "This migration moves page options to the page level"
+ [data]
+ (let [update-page
+ (fn [{:keys [options] :as page}]
+ (cond-> page
+ (and (some? (:saved-grids options))
+ (not (contains? page :default-grids)))
+ (assoc :default-grids (:saved-grids options))
+
+ (and (some? (:background options))
+ (not (contains? page :background)))
+ (assoc :background (:background options))
+
+ (and (some? (:flows options))
+ (or (not (contains? page :flows))
+ (not (map? (:flows page)))))
+ (assoc :flows (d/index-by :id (:flows options)))
+
+ (and (some? (:guides options))
+ (not (contains? page :guides)))
+ (assoc :guides (:guides options))
+
+ (and (some? (:comment-threads-position options))
+ (not (contains? page :comment-thread-positions)))
+ (assoc :comment-thread-positions (:comment-threads-position options))))]
+
+ (update data :pages-index d/update-vals update-page)))
+
(def migrations
"A vector of all applicable migrations"
[{:id 2 :migrate-up migrate-up-2}
@@ -1059,4 +1117,8 @@
{:id 48 :migrate-up migrate-up-48}
{:id 49 :migrate-up migrate-up-49}
{:id 50 :migrate-up migrate-up-50}
- {:id 51 :migrate-up migrate-up-51}])
+ {:id 51 :migrate-up migrate-up-51}
+ {:id 52 :migrate-up migrate-up-52}
+ {:id 53 :migrate-up migrate-up-26}
+ {:id 54 :migrate-up migrate-up-54}
+ {:id 55 :migrate-up migrate-up-55}])
diff --git a/common/src/app/common/files/page_diff.cljc b/common/src/app/common/files/page_diff.cljc
index e347309eca..821238b957 100644
--- a/common/src/app/common/files/page_diff.cljc
+++ b/common/src/app/common/files/page_diff.cljc
@@ -15,10 +15,10 @@
[old-page page check-attrs]
(let [old-objects (get old-page :objects)
- old-guides (or (get-in old-page [:options :guides]) [])
+ old-guides (or (get old-page :guides) [])
new-objects (get page :objects)
- new-guides (or (get-in page [:options :guides]) [])
+ new-guides (or (get page :guides) [])
changed-object?
(fn [id]
diff --git a/common/src/app/common/files/validate.cljc b/common/src/app/common/files/validate.cljc
index 5eb708ab34..79e6cf3017 100644
--- a/common/src/app/common/files/validate.cljc
+++ b/common/src/app/common/files/validate.cljc
@@ -57,16 +57,17 @@
:misplaced-slot
:missing-slot})
-(def ^:private
- schema:error
- (sm/define
- [:map {:title "ValidationError"}
- [:code {:optional false} [::sm/one-of error-codes]]
- [:hint {:optional false} :string]
- [: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 {:optional true} [:maybe ::sm/uuid]]]))
+(def ^:private schema:error
+ [:map {:title "ValidationError"}
+ [:code {:optional false} [::sm/one-of error-codes]]
+ [:hint {:optional false} :string]
+ [: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 {:optional true} [:maybe ::sm/uuid]]])
+
+(def check-error!
+ (sm/check-fn schema:error))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ERROR HANDLING
@@ -95,7 +96,7 @@
(dm/assert!
"expected valid error"
- (sm/check! schema:error error))
+ (check-error! error))
(vswap! *errors* conj error)))
diff --git a/common/src/app/common/geom/matrix.cljc b/common/src/app/common/geom/matrix.cljc
index 7c090a2d65..d6e545cd90 100644
--- a/common/src/app/common/geom/matrix.cljc
+++ b/common/src/app/common/geom/matrix.cljc
@@ -67,16 +67,6 @@
([a b c d e f]
(pos->Matrix a b c d e f)))
-(def number-regex
- #"[+-]?\d*(\.\d+)?([eE][+-]?\d+)?")
-
-(defn str->matrix
- [matrix-str]
- (let [params (->> (re-seq number-regex matrix-str)
- (filter #(-> % first seq))
- (map (comp d/parse-double first)))]
- (apply matrix params)))
-
(def ^:private schema:matrix-attrs
[:map {:title "MatrixAttrs"}
[:a ::sm/safe-double]
@@ -87,41 +77,70 @@
[:f ::sm/safe-double]])
(def valid-matrix?
- (sm/lazy-validator
+ (sm/validator
[:and [:fn matrix?] schema:matrix-attrs]))
-(sm/register! ::matrix
- (letfn [(decode [o]
- (if (map? o)
- (map->Matrix o)
- (if (string? o)
- (str->matrix o)
- o)))
- (encode [o]
- (dm/str (dm/get-prop o :a) ","
- (dm/get-prop o :b) ","
- (dm/get-prop o :c) ","
- (dm/get-prop o :d) ","
- (dm/get-prop o :e) ","
- (dm/get-prop o :f) ","))]
+(defn matrix-generator
+ []
+ (->> (sg/tuple (sg/small-double)
+ (sg/small-double)
+ (sg/small-double)
+ (sg/small-double)
+ (sg/small-double)
+ (sg/small-double))
+ (sg/fmap #(apply pos->Matrix %))))
- {:type ::matrix
- :pred valid-matrix?
- :type-properties
- {:title "matrix"
- :description "Matrix instance"
- :error/message "expected a valid point"
- :gen/gen (->> (sg/tuple (sg/small-double)
- (sg/small-double)
- (sg/small-double)
- (sg/small-double)
- (sg/small-double)
- (sg/small-double))
- (sg/fmap #(apply pos->Matrix %)))
- ::oapi/type "string"
- ::oapi/format "matrix"
- ::oapi/decode decode
- ::oapi/encode encode}}))
+(def ^:private number-regex
+ #"[+-]?\d*(\.\d+)?([eE][+-]?\d+)?")
+
+(defn str->matrix
+ [matrix-str]
+ (let [params (->> (re-seq number-regex matrix-str)
+ (filter #(-> % first seq))
+ (map (comp d/parse-double first)))]
+ (apply matrix params)))
+
+(defn- matrix->str
+ [o]
+ (if (matrix? o)
+ (dm/str (dm/get-prop o :a) ","
+ (dm/get-prop o :b) ","
+ (dm/get-prop o :c) ","
+ (dm/get-prop o :d) ","
+ (dm/get-prop o :e) ","
+ (dm/get-prop o :f) ",")
+ o))
+
+(defn- matrix->json
+ [o]
+ (if (matrix? o)
+ (into {} o)
+ o))
+
+(defn- decode-matrix
+ [o]
+ (if (map? o)
+ (map->Matrix o)
+ (if (string? o)
+ (str->matrix o)
+ o)))
+
+(def schema:matrix
+ {:type :map
+ :pred valid-matrix?
+ :type-properties
+ {:title "matrix"
+ :description "Matrix instance"
+ :error/message "expected a valid matrix instance"
+ :gen/gen (matrix-generator)
+ :decode/json decode-matrix
+ :decode/string decode-matrix
+ :encode/json matrix->json
+ :encode/string matrix->str
+ ::oapi/type "string"
+ ::oapi/format "matrix"}})
+
+(sm/register! ::matrix schema:matrix)
;; FIXME: deprecated
(s/def ::a ::us/safe-float)
diff --git a/common/src/app/common/geom/point.cljc b/common/src/app/common/geom/point.cljc
index 560f30a5b1..2ac57cdbc3 100644
--- a/common/src/app/common/geom/point.cljc
+++ b/common/src/app/common/geom/point.cljc
@@ -51,41 +51,55 @@
(s/def ::point
(s/and ::point-attrs point?))
-
(def ^:private schema:point-attrs
[:map {:title "PointAttrs"}
[:x ::sm/safe-number]
[:y ::sm/safe-number]])
(def valid-point?
- (sm/lazy-validator
+ (sm/validator
[:and [:fn point?] schema:point-attrs]))
-(sm/register! ::point
- (letfn [(decode [p]
- (if (map? p)
- (map->Point p)
- (if (string? p)
- (let [[x y] (->> (str/split p #",") (mapv parse-double))]
- (pos->Point x y))
- p)))
+(defn decode-point
+ [p]
+ (if (map? p)
+ (map->Point p)
+ (if (string? p)
+ (let [[x y] (->> (str/split p #",") (mapv parse-double))]
+ (pos->Point x y))
+ p)))
- (encode [p]
- (dm/str (dm/get-prop p :x) ","
- (dm/get-prop p :y)))]
+(defn point->str
+ [p]
+ (if (point? p)
+ (dm/str (dm/get-prop p :x) ","
+ (dm/get-prop p :y))
+ p))
- {:type ::point
- :pred valid-point?
- :type-properties
- {:title "point"
- :description "Point"
- :error/message "expected a valid point"
- :gen/gen (->> (sg/tuple (sg/small-int) (sg/small-int))
- (sg/fmap #(apply pos->Point %)))
- ::oapi/type "string"
- ::oapi/format "point"
- ::oapi/decode decode
- ::oapi/encode encode}}))
+(defn point->json
+ [p]
+ (if (point? p)
+ (into {} p)
+ p))
+
+;; FIXME: make like matrix
+(def schema:point
+ {:type :map
+ :pred valid-point?
+ :type-properties
+ {:title "point"
+ :description "Point"
+ :error/message "expected a valid point"
+ :gen/gen (->> (sg/tuple (sg/small-int) (sg/small-int))
+ (sg/fmap #(apply pos->Point %)))
+ ::oapi/type "string"
+ ::oapi/format "point"
+ :decode/json decode-point
+ :decode/string decode-point
+ :encode/json point->json
+ :encode/string point->str}})
+
+(sm/register! ::point schema:point)
(defn point-like?
[{:keys [x y] :as v}]
diff --git a/common/src/app/common/geom/rect.cljc b/common/src/app/common/geom/rect.cljc
index c23f9942b1..3308b92561 100644
--- a/common/src/app/common/geom/rect.cljc
+++ b/common/src/app/common/geom/rect.cljc
@@ -80,19 +80,38 @@
[:x2 ::sm/safe-number]
[:y2 ::sm/safe-number]])
-(sm/register! ::rect
- [:and
- {:gen/gen (->> (sg/tuple (sg/small-double)
- (sg/small-double)
- (sg/small-double)
- (sg/small-double))
- (sg/fmap #(apply make-rect %)))}
- [:fn rect?]
- schema:rect-attrs])
+(defn- rect-generator
+ []
+ (->> (sg/tuple (sg/small-double)
+ (sg/small-double)
+ (sg/small-double)
+ (sg/small-double))
+ (sg/fmap #(apply make-rect %))))
+
+(defn- decode-rect
+ [o]
+ (if (map? o)
+ (map->Rect o)
+ o))
+
+(defn- rect->json
+ [o]
+ (if (rect? o)
+ (into {} o)
+ o))
+
+(def schema:rect
+ [:and {:error/message "errors.invalid-rect"
+ :gen/gen (rect-generator)
+ :decode/json {:leave decode-rect}
+ :encode/json rect->json}
+ schema:rect-attrs
+ [:fn rect?]])
(def valid-rect?
- (sm/lazy-validator
- [:and [:fn rect?] schema:rect-attrs]))
+ (sm/validator schema:rect))
+
+(sm/register! ::rect schema:rect)
(def empty-rect
(make-rect 0 0 0.01 0.01))
diff --git a/common/src/app/common/geom/shapes/bounds.cljc b/common/src/app/common/geom/shapes/bounds.cljc
index 5612837b4f..869b7503b6 100644
--- a/common/src/app/common/geom/shapes/bounds.cljc
+++ b/common/src/app/common/geom/shapes/bounds.cljc
@@ -10,6 +10,7 @@
[app.common.data.macros :as dm]
[app.common.files.helpers :as cfh]
[app.common.geom.rect :as grc]
+ [app.common.geom.shapes :as gsh]
[app.common.math :as mth]))
(defn shape-stroke-margin
@@ -60,6 +61,7 @@
filter-y (mth/min y (+ y offset-y (- spread) (- blur) -5))
filter-w (+ w (mth/abs offset-x) (* spread 2) (* blur 2) 10)
filter-h (+ h (mth/abs offset-y) (* spread 2) (* blur 2) 10)]
+
(grc/make-rect filter-x filter-y filter-w filter-h)))
(defn get-rect-filter-bounds
@@ -96,12 +98,15 @@
([shape ignore-margin?]
(let [strokes (:strokes shape)
+ open-path? (and ^boolean (cfh/path-shape? shape)
+ ^boolean (gsh/open-path? shape))
+
stroke-width
(->> strokes
(map #(case (get % :stroke-alignment :center)
:center (/ (:stroke-width % 0) 2)
:outer (:stroke-width % 0)
- 0))
+ (if open-path? (:stroke-width % 0) 0)))
(reduce d/max 0))
stroke-margin
diff --git a/common/src/app/common/geom/shapes/path.cljc b/common/src/app/common/geom/shapes/path.cljc
index 9295c421d9..c9863d9f3d 100644
--- a/common/src/app/common/geom/shapes/path.cljc
+++ b/common/src/app/common/geom/shapes/path.cljc
@@ -852,8 +852,10 @@
(defn ray-overlaps?
[ray-point {selrect :selrect}]
- (and (>= (:y ray-point) (:y1 selrect))
- (<= (:y ray-point) (:y2 selrect))))
+ (and (or (> (:y ray-point) (:y1 selrect))
+ (mth/almost-zero? (- (:y ray-point) (:y1 selrect))))
+ (or (< (:y ray-point) (:y2 selrect))
+ (mth/almost-zero? (- (:y ray-point) (:y2 selrect))))))
(defn content->geom-data
[content]
@@ -893,6 +895,7 @@
(reduce +)
(not= 0))))
+;; FIXME: this should be on upc/ namespace
(defn split-line-to
"Given a point and a line-to command will create a two new line-to commands
that will split the original line into two given a value between 0-1"
@@ -901,6 +904,7 @@
sp (gpt/lerp from-p to-p t-val)]
[(upc/make-line-to sp) cmd]))
+;; FIXME: this should be on upc/ namespace
(defn split-curve-to
"Given the point and a curve-to command will split the curve into two new
curve-to commands given a value between 0-1"
diff --git a/common/src/app/common/json.cljc b/common/src/app/common/json.cljc
new file mode 100644
index 0000000000..2b6fd0e6b5
--- /dev/null
+++ b/common/src/app/common/json.cljc
@@ -0,0 +1,106 @@
+;; 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.json
+ (:refer-clojure :exclude [read clj->js js->clj])
+ (:require
+ #?(:clj [clojure.data.json :as j])
+ [cuerdas.core :as str]))
+
+#?(:clj
+ (defn read
+ [reader & {:as opts}]
+ (j/read reader opts)))
+
+#?(:clj
+ (defn write
+ [writer data & {:as opts}]
+ (j/write data writer opts)))
+
+(defn read-kebab-key
+ [k]
+ (if (and (string? k) (not (str/includes? k "/")))
+ (-> k str/kebab keyword)
+ k))
+
+(defn write-camel-key
+ [k]
+ (if (or (keyword? k) (symbol? k))
+ (str/camel k)
+ (str k)))
+
+#?(:cljs
+ (defn ->js
+ [x & {:keys [key-fn]
+ :or {key-fn write-camel-key} :as opts}]
+ (let [f (fn this-fn [x]
+ (cond
+ (nil? x)
+ nil
+
+ (satisfies? cljs.core/IEncodeJS x)
+ (cljs.core/-clj->js x)
+
+ (or (keyword? x)
+ (symbol? x))
+ (name x)
+
+ (number? x)
+ x
+
+ (boolean? x)
+ x
+
+ (map? x)
+ (reduce-kv (fn [m k v]
+ (let [k (key-fn k)]
+ (unchecked-set m k (this-fn v))
+ m))
+ #js {}
+ x)
+
+ (coll? x)
+ (reduce (fn [arr v]
+ (.push arr (this-fn v))
+ arr)
+ (array)
+ x)
+
+ :else
+ (str x)))]
+ (f x))))
+
+#?(:cljs
+ (defn ->clj
+ [o & {:keys [key-fn val-fn] :or {key-fn read-kebab-key val-fn identity}}]
+ (let [f (fn this-fn [x]
+ (let [x (val-fn x)]
+ (cond
+ (array? x)
+ (persistent!
+ (.reduce ^js/Array x
+ #(conj! %1 (this-fn %2))
+ (transient [])))
+
+ (identical? (type x) js/Object)
+ (persistent!
+ (.reduce ^js/Array (js-keys x)
+ #(assoc! %1 (key-fn %2) (this-fn (unchecked-get x %2)))
+ (transient {})))
+
+ :else
+ x)))]
+ (f o))))
+
+(defn encode
+ [data & {:as opts}]
+ #?(:clj (j/write-str data opts)
+ :cljs (.stringify js/JSON (->js data opts))))
+
+(defn decode
+ [data & {:as opts}]
+ #?(:clj (j/read-str data opts)
+ :cljs (->clj (.parse js/JSON data) opts)))
diff --git a/common/src/app/common/logic/libraries.cljc b/common/src/app/common/logic/libraries.cljc
index 85382be2c1..25cf38ccaf 100644
--- a/common/src/app/common/logic/libraries.cljc
+++ b/common/src/app/common/logic/libraries.cljc
@@ -1947,54 +1947,54 @@
(defn generate-duplicate-flows
[changes shapes page ids-map]
- (let [flows (-> page :options :flows)
- unames (volatile! (into #{} (map :name flows)))
- frames-with-flow (->> shapes
- (filter #(= (:type %) :frame))
- (filter #(some? (ctp/get-frame-flow flows (:id %)))))]
- (if-not (empty? frames-with-flow)
- (let [update-flows (fn [flows]
- (reduce
- (fn [flows frame]
- (let [name (cfh/generate-unique-name @unames "Flow 1")
- _ (vswap! unames conj name)
- new-flow {:id (uuid/next)
- :name name
- :starting-frame (get ids-map (:id frame))}]
- (ctp/add-flow flows new-flow)))
- flows
- frames-with-flow))]
- (pcb/update-page-option changes :flows update-flows))
- changes)))
+ (let [flows (get page :flows)
+ unames (volatile! (cfh/get-used-names (vals flows)))
+ has-flow? (partial ctp/get-frame-flow flows)]
+
+ (reduce (fn [changes frame-id]
+ (let [name (cfh/generate-unique-name @unames "Flow 1")
+ frame-id (get ids-map frame-id)
+ flow-id (uuid/next)
+ new-flow {:id flow-id
+ :name name
+ :starting-frame frame-id}]
+
+ (vswap! unames conj name)
+ (pcb/set-flow changes flow-id new-flow)))
+
+ changes
+ (->> shapes
+ (filter cfh/frame-shape?)
+ (map :id)
+ (filter has-flow?)))))
(defn generate-duplicate-guides
[changes shapes page ids-map delta]
- (let [guides (get-in page [:options :guides])
- frames (->> shapes (filter cfh/frame-shape?))
+ (let [guides (get page :guides)
+ frames (filter cfh/frame-shape? shapes)]
- new-guides
- (reduce
- (fn [g frame]
- (let [new-id (ids-map (:id frame))
- new-frame (-> frame (gsh/move delta))
+ ;; FIXME: this can be implemented efficiently just indexing guides
+ ;; by frame-id instead of iterate over all guides all the time
- new-guides
- (->> guides
- (vals)
- (filter #(= (:frame-id %) (:id frame)))
- (map #(-> %
- (assoc :id (uuid/next))
- (assoc :frame-id new-id)
- (assoc :position (if (= (:axis %) :x)
- (+ (:position %) (- (:x new-frame) (:x frame)))
- (+ (:position %) (- (:y new-frame) (:y frame))))))))]
- (cond-> g
- (not-empty new-guides)
- (conj (into {} (map (juxt :id identity) new-guides))))))
- guides
- frames)]
- (-> (pcb/with-page changes page)
- (pcb/set-page-option :guides new-guides))))
+ (reduce (fn [changes frame]
+ (let [new-id (get ids-map (:id frame))
+ new-frame (gsh/move frame delta)]
+
+ (reduce-kv (fn [changes _ guide]
+ (if (= (:id frame) (:frame-id guide))
+ (let [guide-id (uuid/next)
+ position (if (= (:axis guide) :x)
+ (+ (:position guide) (- (:x new-frame) (:x frame)))
+ (+ (:position guide) (- (:y new-frame) (:y frame))))
+ guide {:id guide-id
+ :frame-id new-id
+ :position position}]
+ (pcb/set-guide changes guide-id guide))
+ changes))
+ changes
+ guides)))
+ (pcb/with-page changes page)
+ frames)))
(defn generate-duplicate-component-change
[changes objects page component-root parent-id frame-id delta libraries library-data]
diff --git a/common/src/app/common/logic/shapes.cljc b/common/src/app/common/logic/shapes.cljc
index f5d38f0c27..0e292847fd 100644
--- a/common/src/app/common/logic/shapes.cljc
+++ b/common/src/app/common/logic/shapes.cljc
@@ -7,13 +7,11 @@
(ns app.common.logic.shapes
(: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]
[app.common.geom.shapes :as gsh]
[app.common.types.component :as ctk]
[app.common.types.container :as ctn]
- [app.common.types.page :as ctp]
[app.common.types.shape.interactions :as ctsi]
[app.common.types.shape.layout :as ctl]
[app.common.uuid :as uuid]))
@@ -85,7 +83,9 @@
(pcb/with-page page)
(pcb/with-objects objects)
(pcb/with-library-data file))
+
lookup (d/getf objects)
+
groups-to-unmask
(reduce (fn [group-ids id]
;; When the shape to delete is the mask of a masked group,
@@ -110,30 +110,21 @@
interactions)))
(vals objects))
- ids-set (set ids-to-delete)
- guides-to-remove
- (->> (dm/get-in page [:options :guides])
- (vals)
- (filter #(contains? ids-set (:frame-id %)))
- (map :id))
+ changes
+ (reduce (fn [changes {:keys [id] :as flow}]
+ (if (contains? ids-to-delete (:starting-frame flow))
+ (pcb/set-flow changes id nil)
+ changes))
+ changes
+ (:flows page))
- guides
- (->> guides-to-remove
- (reduce dissoc (dm/get-in page [:options :guides])))
-
- starting-flows
- (filter (fn [flow]
- ;; If any of the deleted is a frame that starts a flow,
- ;; this must be deleted, too.
- (contains? ids-to-delete (:starting-frame flow)))
- (-> page :options :flows))
all-parents
(reduce (fn [res id]
;; All parents of any deleted shape must be resized.
(into res (cfh/get-parent-ids objects id)))
(d/ordered-set)
- ids-to-delete)
+ (concat ids-to-delete ids-to-hide))
all-children
(->> ids-to-delete ;; Children of deleted shapes must be also deleted.
@@ -158,7 +149,11 @@
empty-parents
;; Any parent whose children are all deleted, must be deleted too.
- (into (d/ordered-set) (find-all-empty-parents #{}))
+ ;; Unless we are during a component swap: in this case we are replacing a shape by
+ ;; other one, so must not delete empty parents.
+ (if-not component-swap
+ (into (d/ordered-set) (find-all-empty-parents #{}))
+ #{})
components-to-delete
(if components-v2
@@ -172,8 +167,18 @@
(into ids-to-delete all-children))
[])
- changes (-> changes
- (pcb/set-page-option :guides guides))
+ ids-set (set ids-to-delete)
+
+ guides-to-delete
+ (->> (:guides page)
+ (vals)
+ (filter #(contains? ids-set (:frame-id %)))
+ (map :id))
+
+ changes (reduce (fn [changes guide-id]
+ (pcb/set-flow changes guide-id nil))
+ changes
+ guides-to-delete)
changes (reduce (fn [changes component-id]
;; It's important to delete the component before the main instance, because we
@@ -181,6 +186,7 @@
(pcb/delete-component changes component-id (:id page)))
changes
components-to-delete)
+
changes (-> changes
(generate-update-shape-flags ids-to-hide objects {:hidden true})
(pcb/remove-objects all-children {:ignore-touched true})
@@ -197,11 +203,7 @@
(into []
(remove #(and (ctsi/has-destination %)
(contains? ids-to-delete (:destination %))))
- interactions)))))
- (cond-> (seq starting-flows)
- (pcb/update-page-option :flows (fn [flows]
- (->> (map :id starting-flows)
- (reduce ctp/remove-flow flows))))))]
+ interactions))))))]
[all-parents changes]))
@@ -406,17 +408,12 @@
;; Resize parent containers that need to
(pcb/resize-parents 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)))
+ (assoc shape :hide-in-viewer hide?))
(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)))
+ (update :interactions ctsi/add-interaction interaction)))
+
+(defn show-in-viewer [shape]
+ (dissoc shape :hide-in-viewer))
diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc
index 691da5f936..c0c9332660 100644
--- a/common/src/app/common/schema.cljc
+++ b/common/src/app/common/schema.cljc
@@ -5,11 +5,10 @@
;; Copyright (c) KALEIDOS INC
(ns app.common.schema
- (:refer-clojure :exclude [deref merge parse-uuid])
+ (:refer-clojure :exclude [deref merge parse-uuid parse-long parse-double parse-boolean])
#?(:cljs (:require-macros [app.common.schema :refer [ignoring]]))
(:require
[app.common.data :as d]
- [app.common.data.macros :as dm]
[app.common.pprint :as pp]
[app.common.schema.generators :as sg]
[app.common.schema.openapi :as-alias oapi]
@@ -29,11 +28,6 @@
[malli.util :as mu]))
(defprotocol ILazySchema
- (-get-schema [_])
- (-get-validator [_])
- (-get-explainer [_])
- (-get-decoder [_])
- (-get-encoder [_])
(-validate [_ o])
(-explain [_ o])
(-decode [_ o]))
@@ -53,27 +47,21 @@
[s]
(m/type-properties s))
-(defn lazy-schema?
+(defn- lazy-schema?
[s]
(satisfies? ILazySchema s))
(defn schema
[s]
- (if (lazy-schema? s)
- (-get-schema s)
- (m/schema s default-options)))
+ (m/schema s default-options))
(defn validate
[s value]
- (if (lazy-schema? s)
- (-validate s value)
- (m/validate s value default-options)))
+ (m/validate s value default-options))
(defn explain
[s value]
- (if (lazy-schema? s)
- (-explain s value)
- (m/explain s value default-options)))
+ (m/explain s value default-options))
(defn simplify
"Given an explain data structure, return a simplified version of it"
@@ -113,34 +101,49 @@
[schema]
(mu/optional-keys schema default-options))
-(def default-transformer
- (let [default-decoder
- {:compile (fn [s _registry]
- (let [props (m/type-properties s)]
- (or (::oapi/decode props)
- (::decode props))))}
+(defn transformer
+ [& transformers]
+ (apply mt/transformer transformers))
- default-encoder
- {:compile (fn [s _]
- (let [props (m/type-properties s)]
- (or (::oapi/encode props)
- (::encode props))))}
+;; (defn key-transformer
+;; [& {:as opts}]
+;; (mt/key-transformer opts))
- coders {:vector mt/-sequential-or-set->vector
- :sequential mt/-sequential-or-set->seq
- :set mt/-sequential->set
- :tuple mt/-sequential->vector}]
+;; (defn- transform-map-keys
+;; [f o]
+;; (cond
+;; (record? o)
+;; (reduce-kv (fn [res k v]
+;; (let [k' (f k)]
+;; (if (= k k')
+;; res
+;; (-> res
+;; (assoc k' v)
+;; (dissoc k)))))
+;; o
+;; o)
- (mt/transformer
- {:name :penpot
- :default-decoder default-decoder
- :default-encoder default-encoder}
- {:name :string
- :decoders (mt/-string-decoders)
- :encoders (mt/-string-encoders)}
- {:name :collections
- :decoders coders
- :encoders coders})))
+;; (map? o)
+;; (persistent!
+;; (reduce-kv (fn [res k v]
+;; (assoc! res (f k) v))
+;; (transient {})
+;; o))
+
+;; :else
+;; o))
+
+(defn json-transformer
+ []
+ (mt/transformer
+ (mt/json-transformer)
+ (mt/collection-transformer)))
+
+(defn string-transformer
+ []
+ (mt/transformer
+ (mt/string-transformer)
+ (mt/collection-transformer)))
(defn encode
([s val transformer]
@@ -149,8 +152,6 @@
(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]
@@ -158,31 +159,19 @@
(defn validator
[s]
- (if (lazy-schema? s)
- (-get-validator s)
- (-> s schema m/validator)))
+ (-> s schema m/validator))
(defn explainer
[s]
- (if (lazy-schema? s)
- (-get-explainer s)
- (-> s schema m/explainer)))
+ (-> s schema m/explainer))
(defn encoder
- ([s]
- (if (lazy-schema? s)
- (-get-decoder s)
- (encoder s default-options default-transformer)))
([s transformer]
(m/encoder s default-options transformer))
([s options transformer]
(m/encoder s options transformer)))
(defn decoder
- ([s]
- (if (lazy-schema? s)
- (-get-decoder s)
- (decoder s default-options default-transformer)))
([s transformer]
(m/decoder s default-options transformer))
([s options transformer]
@@ -199,10 +188,9 @@
(fn [v] (@vfn v))))
(defn lazy-decoder
- ([s] (lazy-decoder s default-transformer))
- ([s transformer]
- (let [vfn (delay (decoder (if (delay? s) (deref s) s) transformer))]
- (fn [v] (@vfn v)))))
+ [s transformer]
+ (let [vfn (delay (decoder (if (delay? s) (deref s) s) transformer))]
+ (fn [v] (@vfn v))))
(defn humanize-explain
"Returns a string representation of the explain data structure"
@@ -232,6 +220,8 @@
(v/-block "Schema" (v/-visit schema printer) printer)]})
(defn pretty-explain
+ "A helper that allows print a console-friendly output for the
+ explain; should not be used for other purposes"
[explain & {:keys [variant message]
:or {variant ::explain
message "Validation Error"}}]
@@ -244,129 +234,55 @@
`(try ~expr (catch :default e# nil))
`(try ~expr (catch Throwable e# nil))))
-(defn simple-schema
- [& {:keys [pred] :as options}]
- (cond-> options
- (contains? options :type-properties)
- (update :type-properties (fn [props]
- (cond-> props
- (contains? props :decode/string)
- (update :decode/string (fn [decode-fn]
- (fn [s]
- (if (pred s)
- s
- (or (ignoring (decode-fn s)) s)))))
- (contains? props ::decode)
- (update ::decode (fn [decode-fn]
- (fn [s]
- (if (pred s)
- s
- (or (ignoring (decode-fn s)) s))))))))
- :always
- (m/-simple-schema)))
-
(defn lookup
"Lookups schema from registry."
([s] (lookup sr/default-registry s))
([registry s] (schema (mr/schema registry s))))
-(defn fast-check!
+(defn- fast-check!
"A fast path for checking process, assumes the ILazySchema protocol
implemented on the provided `s` schema. Sould not be used directly."
- [s value]
+ [s type code hint value]
(when-not ^boolean (-validate s value)
- (let [hint (d/nilv dm/*assert-context* "check error")
- explain (-explain s value)]
- (throw (ex-info hint {:type :assertion
- :code :data-validation
+ (let [explain (-explain s value)]
+ (throw (ex-info hint {:type type
+ :code code
:hint hint
::explain explain}))))
- true)
+ value)
-(declare define)
+(declare ^:private lazy-schema)
(defn check-fn
"Create a predefined check function"
- [s]
- (let [schema (if (lazy-schema? s) s (define s))]
- (partial fast-check! schema)))
+ [s & {:keys [hint type code]}]
+ (let [schema (if (lazy-schema? s) s (lazy-schema s))
+ hint (or ^boolean hint "check error")
+ type (or ^boolean type :assertion)
+ code (or ^boolean code :data-validation)]
+ (partial fast-check! schema type code hint)))
(defn check!
"A helper intended to be used on assertions for validate/check the
- schema over provided data. Raises an assertion exception, should be
- used together with `dm/assert!` or `dm/verify!`."
- [s value]
- (if (lazy-schema? s)
- (fast-check! s value)
- (do
- (when-not ^boolean (m/validate s value default-options)
- (let [hint (d/nilv dm/*assert-context* "check error")
- explain (explain s value)]
- (throw (ex-info hint {:type :assertion
- :code :data-validation
- :hint hint
- ::explain explain}))))
- true)))
-
-(defn fast-validate!
- "A fast path for validation process, assumes the ILazySchema protocol
- implemented on the provided `s` schema. Sould not be used directly."
- ([s value] (fast-validate! s value nil))
- ([s value options]
- (when-not ^boolean (-validate s value)
- (let [explain (-explain s value)
- options (into {:type :validation
- :code :data-validation
- ::explain explain}
- options)
- hint (get options :hint "schema validation error")]
- (throw (ex-info hint options))))))
-
-(defn validate-fn
- "Create a predefined validate function that raises an expception"
- [s]
- (let [schema (if (lazy-schema? s) s (define s))]
- (partial fast-validate! schema)))
-
-(defn validate!
- "A generic validation function for predefined schemas."
- ([s value] (validate! s value nil))
- ([s value options]
- (if (lazy-schema? s)
- (fast-validate! s value options)
- (when-not ^boolean (m/validate s value default-options)
- (let [explain (explain s value)
- options (into {:type :validation
- :code :data-validation
- ::explain explain}
- options)
- 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")
- (let [params (-decode schema value)]
- (fast-validate! schema params nil)
- params))
+ schema over provided data. Raises an assertion exception."
+ [s value & {:keys [hint type code]}]
+ (let [s (if (lazy-schema? s) s (lazy-schema s))
+ hint (or ^boolean hint "check error")
+ type (or ^boolean type :assertion)
+ code (or ^boolean code :data-validation)]
+ (fast-check! s type code hint value)))
(defn register! [type s]
- (let [s (if (map? s) (simple-schema s) s)]
+ (let [s (if (map? s) (m/-simple-schema s) s)]
(swap! sr/registry assoc type s)
nil))
-(defn define
+(defn- lazy-schema
"Create ans instance of ILazySchema"
- [s & {:keys [transformer] :as options}]
+ [s]
(let [schema (delay (schema s))
validator (delay (m/validator @schema))
- explainer (delay (m/explainer @schema))
-
- options (c/merge default-options (dissoc options :transformer))
- transformer (or transformer default-transformer)
- decoder (delay (m/decoder @schema options transformer))
- encoder (delay (m/encoder @schema options transformer))]
+ explainer (delay (m/explainer @schema))]
(reify
m/AST
@@ -409,16 +325,6 @@
(m/-form @schema))
ILazySchema
- (-get-schema [_]
- @schema)
- (-get-validator [_]
- @validator)
- (-get-explainer [_]
- @explainer)
- (-get-encoder [_]
- @encoder)
- (-get-decoder [_]
- @decoder)
(-validate [_ o]
(@validator o))
(-explain [_ o]
@@ -448,16 +354,19 @@
:description "UUID formatted string"
:error/message "should be an uuid"
:gen/gen (sg/uuid)
+ :decode/string parse-uuid
+ :decode/json parse-uuid
+ :encode/string str
+ :encode/json str
::oapi/type "string"
- ::oapi/format "uuid"
- ::oapi/decode parse-uuid}})
+ ::oapi/format "uuid"}})
(def email-re #"[a-zA-Z0-9_.+-\\\\]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+")
(defn parse-email
[s]
(if (string? s)
- (re-matches email-re s)
+ (first (re-seq email-re s))
nil))
(defn email-string?
@@ -480,13 +389,12 @@
:description "string with valid email address"
:error/code "errors.invalid-email"
:gen/gen (sg/email)
+ :decode/string (fn [v] (or (parse-email v) v))
+ :decode/json (fn [v] (or (parse-email v) v))
::oapi/type "string"
- ::oapi/format "email"
- ::oapi/decode
- (fn [v]
- (or (parse-email v) v))}})
+ ::oapi/format "email"}})
-(def non-empty-strings-xf
+(def xf:filter-word-strings
(comp
(filter string?)
(remove str/empty?)
@@ -499,41 +407,76 @@
: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))
+ (fn [{:keys [kind max min] :as props} children _]
+ (let [kind (or (last children) kind)
- pred (cond
- (and max min)
- (fn [value]
- (let [size (count value)]
- (and (set? value)
- (<= min size max)
- (every? pred value))))
+ pred
+ (cond
+ (fn? kind) kind
+ (nil? kind) any?
+ :else (validator kind))
- min
- (fn [value]
- (let [size (count value)]
- (and (set? value)
- (<= min size)
- (every? pred value))))
+ pred
+ (cond
+ (and max min)
+ (fn [value]
+ (let [size (count value)]
+ (and (set? value)
+ (<= min size max)
+ (every? pred value))))
- max
- (fn [value]
- (let [size (count value)]
- (and (set? value)
- (<= 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)))
+
+
+ decode-string-child
+ (decoder kind string-transformer)
+
+ decode-string
+ (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)
+ x (comp xf:filter-word-strings (map decode-string-child))]
+ (into #{} x v)))
+
+ decode-json-child
+ (decoder kind json-transformer)
+
+ decode-json
+ (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)
+ x (comp xf:filter-word-strings (map decode-json-child))]
+ (into #{} x v)))
+
+ encode-string-child
+ (encoder kind string-transformer)
+
+ encode-string
+ (fn [o]
+ (if (set? o)
+ (str/join ", " (map encode-string-child o))
+ o))
+
+ encode-json
+ (fn [o]
+ (if (set? o)
+ (vec o)
+ o))]
- :else
- (fn [value]
- (every? pred value)))]
{:pred pred
:type-properties
@@ -541,13 +484,14 @@
:description "Set of Strings"
:error/message "should be a set of strings"
:gen/gen (-> kind sg/generator sg/set)
+ :decode/string decode-string
+ :decode/json decode-json
+ :encode/string encode-string
+ :encode/json encode-json
::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)))}}))})
+ ::oapi/unique-items true}}))})
(register! ::vec
@@ -555,42 +499,67 @@
: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)
+ (fn [{:keys [kind max min] :as props} children _]
+ (let [kind (or (last children) kind)
+ pred
+ (cond
+ (fn? kind) kind
+ (nil? kind) any?
+ :else (validator kind))
- 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))))
- 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))))
- 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))))
- max
- (fn [value]
- (let [size (count value)]
- (and (set? value)
- (<= size max)
- (every? pred value))))
+ :else
+ (fn [value]
+ (every? pred value)))
- :else
- (fn [value]
- (every? pred value)))]
+ decode-string-child
+ (decoder kind string-transformer)
+
+ decode-json-child
+ (decoder kind json-transformer)
+
+ decode-string
+ (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)
+ x (comp xf:filter-word-strings (map decode-string-child))]
+ (into #{} x v)))
+
+ decode-json
+ (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)
+ x (comp xf:filter-word-strings (map decode-json-child))]
+ (into #{} x v)))
+
+ encode-string-child
+ (encoder kind string-transformer)
+
+ encode-string
+ (fn [o]
+ (if (vector? o)
+ (str/join ", " (map encode-string-child o))
+ o))]
{:pred pred
:type-properties
@@ -598,14 +567,13 @@
:description "Set of Strings"
:error/message "should be a set of strings"
:gen/gen (-> kind sg/generator sg/set)
+ :decode/string decode-string
+ :decode/json decode-json
+ :encode/string encode-string
::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)))}}))})
-
+ ::oapi/unique-items true}}))})
(register! ::set-of-strings
{:type ::set-of-strings
@@ -615,13 +583,13 @@
:description "Set of Strings"
:error/message "should be a set of strings"
:gen/gen (-> :string sg/generator sg/set)
+ :decode/string (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)]
+ (into #{} xf:filter-word-strings v)))
::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 #{} non-empty-strings-xf v)))}})
+ ::oapi/unique-items true}})
(register! ::set-of-keywords
{:type ::set-of-keywords
@@ -631,29 +599,13 @@
:description "Set of Strings"
:error/message "should be a set of strings"
:gen/gen (-> :keyword sg/generator sg/set)
+ :decode/string (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)]
+ (into #{} (comp xf:filter-word-strings (map keyword)) v)))
::oapi/type "array"
::oapi/format "set"
::oapi/items {:type "string" :format "keyword"}
- ::oapi/unique-items true
- ::oapi/decode (fn [v]
- (let [v (if (string? v) (str/split v #"[\s,]+") v)]
- (into #{} (comp non-empty-strings-xf (map keyword)) v)))}})
-
-(register! ::set-of-emails
- {:type ::set-of-emails
- :pred #(and (set? %) (every? string? %))
- :type-properties
- {:title "set[email]"
- :description "Set of Emails"
- :error/message "should be a set of emails"
- :gen/gen (-> ::email sg/generator sg/set)
- ::oapi/type "array"
- ::oapi/format "set"
- ::oapi/items {:type "string" :format "email"}
- ::oapi/unique-items true
- ::decode (fn [v]
- (let [v (if (string? v) (str/split v #"[\s,]+") v)]
- (into #{} (keep parse-email) v)))}})
+ ::oapi/unique-items true}})
(register! ::set-of-uuid
{:type ::set-of-uuid
@@ -663,13 +615,13 @@
:description "Set of UUID"
:error/message "should be a set of UUID instances"
:gen/gen (-> ::uuid sg/generator sg/set)
+ :decode/string (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)]
+ (into #{} (keep parse-uuid) v)))
::oapi/type "array"
::oapi/format "set"
::oapi/items {:type "string" :format "uuid"}
- ::oapi/unique-items true
- ::oapi/decode (fn [v]
- (let [v (if (string? v) (str/split v #"[\s,]+") v)]
- (into #{} (keep parse-uuid) v)))}})
+ ::oapi/unique-items true}})
(register! ::coll-of-uuid
{:type ::set-of-uuid
@@ -679,13 +631,13 @@
:description "Coll of UUID"
:error/message "should be a coll of UUID instances"
:gen/gen (-> ::uuid sg/generator sg/set)
+ :decode/string (fn [v]
+ (let [v (if (string? v) (str/split v #"[\s,]+") v)]
+ (into [] (keep parse-uuid) v)))
::oapi/type "array"
::oapi/format "array"
::oapi/items {:type "string" :format "uuid"}
- ::oapi/unique-items false
- ::oapi/decode (fn [v]
- (let [v (if (string? v) (str/split v #"[\s,]+") v)]
- (into [] (keep parse-uuid) v)))}})
+ ::oapi/unique-items false}})
(register! ::one-of
{:type ::one-of
@@ -693,70 +645,168 @@
:max 1
:compile (fn [props children _]
(let [options (into #{} (last children))
- format (:format props "keyword")]
+ format (:format props "keyword")
+ decode (if (= format "keyword")
+ keyword
+ identity)]
{:pred #(contains? options %)
:type-properties
{:title "one-of"
:description "One of the Set"
:gen/gen (sg/elements options)
+ :decode/string decode
+ :decode/json decode
::oapi/type "string"
- ::oapi/format (:format props "keyword")
- ::oapi/decode (if (= format "keyword")
- keyword
- identity)}}))})
+ ::oapi/format (:format props "keyword")}}))})
;; Integer/MAX_VALUE
(def max-safe-int 2147483647)
;; Integer/MIN_VALUE
(def min-safe-int -2147483648)
-(register! ::safe-int
- {:type ::safe-int
- :pred #(and (int? %) (>= max-safe-int %) (>= % min-safe-int))
- :type-properties
- {:title "int"
- :description "Safe Integer"
- :error/message "expected to be int in safe range"
- :gen/gen (sg/small-int)
- ::oapi/type "integer"
- ::oapi/format "int64"
- ::oapi/decode (fn [s]
- (if (string? s)
- (parse-long s)
- s))}})
+(defn parse-long
+ [v]
+ (or (ignoring
+ (if (string? v)
+ (c/parse-long v)
+ v))
+ v))
-(register! ::safe-number
- {:type ::safe-number
- :pred #(and (number? %) (>= max-safe-int %) (>= % min-safe-int))
- :type-properties
- {:title "number"
- :description "Safe Number"
- :error/message "expected to be number in safe range"
- :gen/gen (sg/one-of (sg/small-int)
- (sg/small-double))
- ::oapi/type "number"
- ::oapi/format "double"
- ::oapi/decode (fn [s]
- (if (string? s)
- (parse-double s)
- s))}})
+(def type:int
+ {:type :int
+ :min 0
+ :max 0
+ :compile
+ (fn [{:keys [max min] :as props} _ _]
+ (let [pred int?
+ pred (if (some? min)
+ (fn [v]
+ (and (>= v min)
+ (pred v)))
+ pred)
+ pred (if (some? max)
+ (fn [v]
+ (and (>= max v)
+ (pred v)))
+ pred)]
-(register! ::safe-double
- {:type ::safe-double
- :pred #(and (double? %) (>= max-safe-int %) (>= % min-safe-int))
- :type-properties
- {:title "number"
- :description "Safe Number"
- :error/message "expected to be number in safe range"
- :gen/gen (sg/small-double)
- ::oapi/type "number"
- ::oapi/format "double"
- ::oapi/decode (fn [s]
- (if (string? s)
- (parse-double s)
- s))}})
+ {:pred pred
+ :type-properties
+ {:title "int"
+ :description "int"
+ :error/message "expected to be int/long"
+ :error/code "errors.invalid-integer"
+ :gen/gen (sg/small-int :max max :min min)
+ :decode/string parse-long
+ :decode/json parse-long
+ ::oapi/type "integer"
+ ::oapi/format "int64"}}))})
-(register! ::contains-any
+(defn parse-double
+ [v]
+ (or (ignoring
+ (if (string? v)
+ (c/parse-double v)
+ v))
+ v))
+
+(def type:double
+ {:type :double
+ :min 0
+ :max 0
+ :compile
+ (fn [{:keys [max min] :as props} _ _]
+ (let [pred double?
+ pred (if (some? min)
+ (fn [v]
+ (and (>= v min)
+ (pred v)))
+ pred)
+ pred (if (some? max)
+ (fn [v]
+ (and (>= max v)
+ (pred v)))
+ pred)]
+
+ {:pred pred
+ :type-properties
+ {:title "doble"
+ :description "double number"
+ :error/message "expected to be double"
+ :error/code "errors.invalid-double"
+ :gen/gen (sg/small-double :max max :min min)
+ :decode/string parse-double
+ :decode/json parse-double
+ ::oapi/type "number"
+ ::oapi/format "double"}}))})
+
+(def type:number
+ {:type :number
+ :min 0
+ :max 0
+ :compile
+ (fn [{:keys [max min] :as props} _ _]
+ (let [pred number?
+ pred (if (some? min)
+ (fn [v]
+ (and (>= v min)
+ (pred v)))
+ pred)
+ pred (if (some? max)
+ (fn [v]
+ (and (>= max v)
+ (pred v)))
+ pred)
+
+ gen (sg/one-of
+ (sg/small-int :max max :min min)
+ (sg/small-double :max max :min min))]
+
+ {:pred pred
+ :type-properties
+ {:title "int"
+ :description "int"
+ :error/message "expected to be number"
+ :error/code "errors.invalid-number"
+ :gen/gen gen
+ :decode/string parse-double
+ :decode/json parse-double
+ ::oapi/type "number"}}))})
+
+(register! ::int type:int)
+(register! ::double type:double)
+(register! ::number type:number)
+
+(register! ::safe-int [::int {:max max-safe-int :min min-safe-int}])
+(register! ::safe-double [::double {:max max-safe-int :min min-safe-int}])
+(register! ::safe-number [::number {:max max-safe-int :min min-safe-int}])
+
+(defn parse-boolean
+ [v]
+ (if (string? v)
+ (case v
+ ("true" "t" "1") true
+ ("false" "f" "0") false
+ v)
+ v))
+
+(def type:boolean
+ {:type :boolean
+ :pred boolean?
+ :type-properties
+ {:title "boolean"
+ :description "boolean"
+ :error/message "expected boolean"
+ :error/code "errors.invalid-boolean"
+ :gen/gen sg/boolean
+ :decode/string parse-boolean
+ :decode/json parse-boolean
+ :encode/string str
+ ::oapi/type "boolean"}})
+
+(register! ::boolean type:boolean)
+
+(def type:contains-any
{:type ::contains-any
:min 1
:max 1
@@ -774,20 +824,28 @@
{:title "contains"
:description "contains predicate"}}))})
-(register! ::inst
+(register! ::contains-any type:contains-any)
+
+(def type:inst
{:type ::inst
:pred inst?
:type-properties
{:title "inst"
:description "Satisfies Inst protocol"
- :error/message "expected to be number in safe range"
+ :error/message "should be an instant"
:gen/gen (->> (sg/small-int)
- (sg/fmap (fn [v] (tm/instant v))))
- ::oapi/type "number"
- ::oapi/format "int64"}})
+ (sg/fmap (fn [v] (tm/parse-instant v))))
-(register! ::fn
- [:schema fn?])
+ :decode/string tm/parse-instant
+ :encode/string tm/format-instant
+ :decode/json tm/parse-instant
+ :encode/json tm/format-instant
+ ::oapi/type "string"
+ ::oapi/format "iso"}})
+
+(register! ::inst type:inst)
+
+(register! ::fn [:schema fn?])
;; FIXME: deprecated, replace with ::text
@@ -803,6 +861,13 @@
::oapi/type "string"
::oapi/format "string"}})
+
+(defn decode-uri
+ [val]
+ (if (u/uri? val)
+ val
+ (-> val str/trim u/uri)))
+
(register! ::uri
{:type ::uri
:pred u/uri?
@@ -838,13 +903,10 @@
:description "URI formatted string"
:error/code "errors.invalid-uri"
:gen/gen (sg/uri)
+ :decode/string decode-uri
+ :decode/json decode-uri
::oapi/type "string"
- ::oapi/format "uri"
- ::oapi/decode
- (fn [val]
- (if (u/uri? val)
- val
- (-> val str/trim u/uri)))}})
+ ::oapi/format "uri"}})
(register! ::text
{:type :string
@@ -918,6 +980,12 @@
(def check-email!
(check-fn ::email))
+(def check-uuid!
+ (check-fn ::uuid :hint "expected valid uuid instance"))
+
+(def check-string!
+ (check-fn :string :hint "expected string"))
+
(def check-coll-of-uuid!
(check-fn ::coll-of-uuid))
@@ -925,4 +993,4 @@
(check-fn ::set-of-uuid))
(def check-set-of-emails!
- (check-fn ::set-of-emails))
+ (check-fn [::set ::email]))
diff --git a/common/src/app/common/schema/generators.cljc b/common/src/app/common/schema/generators.cljc
index 081e1d5ca8..57bc3703f6 100644
--- a/common/src/app/common/schema/generators.cljc
+++ b/common/src/app/common/schema/generators.cljc
@@ -5,46 +5,21 @@
;; Copyright (c) KALEIDOS INC
(ns app.common.schema.generators
- (:refer-clojure :exclude [set subseq uuid for filter map let])
+ (:refer-clojure :exclude [set subseq uuid filter map let boolean])
#?(:cljs (:require-macros [app.common.schema.generators]))
(:require
[app.common.schema.registry :as sr]
[app.common.uri :as u]
[app.common.uuid :as uuid]
[clojure.core :as c]
- [clojure.test.check :as tc]
[clojure.test.check.generators :as tg]
- [clojure.test.check.properties :as tp]
[cuerdas.core :as str]
[malli.generator :as mg]))
-(defn default-reporter-fn
- [{:keys [type result] :as args}]
- (case type
- :complete
- (prn (select-keys args [:result :num-tests :seed "time-elapsed-ms"]))
-
- :failure
- (do
- (prn (select-keys args [:num-tests :seed :failed-after-ms]))
- (when #?(:clj (instance? Throwable result)
- :cljs (instance? js/Error result))
- (throw result)))
-
- nil))
-
-(defmacro for
- [& params]
- `(tp/for-all ~@params))
-
(defmacro let
[& params]
`(tg/let ~@params))
-(defn check!
- [p & {:keys [num] :or {num 20} :as options}]
- (tc/quick-check num p (assoc options :reporter-fn default-reporter-fn :max-size 50)))
-
(defn sample
([g]
(mg/sample g {:registry sr/default-registry}))
@@ -77,14 +52,16 @@
(defn word-string
[]
- (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)))
+ (as-> tg/string-ascii $$
+ (tg/resize 10 $$)
+ (tg/fmap (fn [v] (apply str (re-seq #"[A-Za-z]+" v))) $$)
+ (tg/such-that (fn [v] (>= (count v) 4)) $$ 100)
+ (tg/fmap str/lower $$)))
+(defn word-keyword
+ []
+ (->> (word-string)
+ (tg/fmap keyword)))
(defn email
[]
@@ -94,7 +71,6 @@
(tg/fmap (fn [v]
(str v "@example.net")))))
-
(defn uri
[]
(tg/let [scheme (tg/elements ["http" "https"])
@@ -106,8 +82,7 @@
(defn uuid
[]
- (->> tg/small-integer
- (tg/fmap (fn [_] (uuid/next)))))
+ (tg/fmap (fn [_] (uuid/next)) (small-int)))
(defn subseq
"Given a collection, generates \"subsequences\" which are sequences
@@ -125,6 +100,9 @@
(c/map second))
(c/map list bools elements)))))))
+(def any tg/any)
+(def boolean tg/boolean)
+
(defn set
[g]
(tg/set g))
diff --git a/common/src/app/common/schema/test.cljc b/common/src/app/common/schema/test.cljc
new file mode 100644
index 0000000000..7fa774dd15
--- /dev/null
+++ b/common/src/app/common/schema/test.cljc
@@ -0,0 +1,97 @@
+;; 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.schema.test
+ (:refer-clojure :exclude [for])
+ #?(:cljs (:require-macros [app.common.schema.test]))
+
+ (:require
+ [app.common.exceptions :as ex]
+ [app.common.pprint :as pp]
+ [clojure.test :as ct]
+ [clojure.test.check :as tc]
+ [clojure.test.check.properties :as tp]))
+
+(defn- get-testing-var
+ []
+ (let [testing-vars #?(:clj ct/*testing-vars*
+ :cljs (:testing-vars ct/*current-env*))]
+ (first testing-vars)))
+
+(defn- get-testing-sym
+ [var]
+ (let [tmeta (meta var)]
+ (:name tmeta)))
+
+(defn default-reporter-fn
+ "Default function passed as the :reporter-fn to clojure.test.check/quick-check.
+ Delegates to clojure.test/report."
+ [{:keys [type] :as args}]
+ (case type
+ :complete
+ (ct/report {:type ::complete ::params args})
+
+ :trial
+ (ct/report {:type ::trial ::params args})
+
+ :failure
+ (ct/report {:type ::fail ::params args})
+
+ :shrunk
+ (ct/report {:type ::thrunk ::params args})
+
+ nil))
+
+(defmethod ct/report #?(:clj ::complete :cljs [:cljs.test/default ::complete])
+ [{:keys [::params] :as m}]
+ #?(:clj (ct/inc-report-counter :pass)
+ :cljs (ct/inc-report-counter! :pass))
+ (let [tvar (get-testing-var)
+ tsym (get-testing-sym tvar)
+ time (:time-elapsed-ms params)]
+ (println "Generative test:" (str "'" tsym "'")
+ (str "(pass=TRUE, tests=" (:num-tests params) ", seed=" (:seed params) ", elapsed=" time "ms)"))))
+
+(defmethod ct/report #?(:clj ::thrunk :cljs [:cljs.test/default ::thrunk])
+ [{:keys [::params] :as m}]
+ (let [smallest (-> params :shrunk :smallest vec)]
+ (println)
+ (println "Condition failed with the following params:")
+ (println)
+ (pp/pprint smallest)))
+
+(defmethod ct/report #?(:clj ::trial :cljs [:cljs.test/default ::trial])
+ [_]
+ #?(:clj (ct/inc-report-counter :pass)
+ :cljs (ct/inc-report-counter! :pass)))
+
+(defmethod ct/report #?(:clj ::fail :cljs [:cljs.test/default ::fail])
+ [{:keys [::params] :as m}]
+ #?(:clj (ct/inc-report-counter :fail)
+ :cljs (ct/inc-report-counter! :fail))
+ (let [tvar (get-testing-var)
+ tsym (get-testing-sym tvar)
+ res (:result params)]
+ (println)
+ (println "Generative test:" (str "'" tsym "'")
+ (str "(pass=FALSE, tests=" (:num-tests params) ", seed=" (:seed params) ")"))
+
+ (when (ex/exception? res)
+ #?(:clj (ex/print-throwable res)
+ :cljs (js/console.error res)))))
+
+(defmacro for
+ [bindings & body]
+ `(tp/for-all ~bindings ~@body))
+
+(defn check!
+ [p & {:keys [num] :or {num 20} :as options}]
+ (let [result (tc/quick-check num p (assoc options :reporter-fn default-reporter-fn :max-size 50))
+ pass? (:pass? result)
+ total-tests (:num-tests result)]
+
+ (ct/is (= num total-tests))
+ (ct/is (true? pass?))))
diff --git a/common/src/app/common/svg/shapes_builder.cljc b/common/src/app/common/svg/shapes_builder.cljc
index 41f25e1e2f..97d738a3bf 100644
--- a/common/src/app/common/svg/shapes_builder.cljc
+++ b/common/src/app/common/svg/shapes_builder.cljc
@@ -10,6 +10,7 @@
[app.common.colors :as clr]
[app.common.data :as d]
[app.common.data.macros :as dm]
+ [app.common.exceptions :as ex]
[app.common.files.helpers :as cfh]
[app.common.geom.matrix :as gmt]
[app.common.geom.point :as gpt]
@@ -29,12 +30,12 @@
{:x 0 :y 0 :width 1 :height 1})
(defn- assert-valid-num [attr num]
- (dm/verify!
- ["%1 attribute has invalid value: %2" (d/name attr) num]
- (and (d/num? num)
- (<= num max-safe-int)
- (>= num min-safe-int)))
-
+ (when-not (and (d/num? num)
+ (<= num max-safe-int)
+ (>= num min-safe-int))
+ (ex/raise :type :assertion
+ :code :data-validation
+ :hint (str "invalid numeric value for `" attr "`: " num)))
(cond
(and (> num 0) (< num 1)) 1
(and (< num 0) (> num -1)) -1
@@ -43,19 +44,21 @@
(defn- assert-valid-pos-num
[attr num]
- (dm/verify!
- ["%1 attribute should be positive" (d/name attr)]
- (pos? num))
-
+ (when-not (pos? num)
+ (ex/raise :type :assertion
+ :code :data-validation
+ :hint (str "invalid numeric value for `" attr "`: " num " (should be positive)")))
num)
(defn- assert-valid-blend-mode
[mode]
- (let [clean-value (-> mode str/trim str/lower keyword)]
- (dm/verify!
- ["%1 is not a valid blend mode" clean-value]
- (contains? cts/blend-modes clean-value))
- clean-value))
+ (let [value (-> mode str/trim str/lower keyword)]
+
+ (when-not (contains? cts/blend-modes value)
+ (ex/raise :type :assertion
+ :code :data-validation
+ :hint (str "unexpected blend mode: " value)))
+ value))
(defn- svg-dimensions
[{:keys [attrs] :as data}]
diff --git a/common/src/app/common/text.cljc b/common/src/app/common/text.cljc
index c5d14f5498..3a7fdec936 100644
--- a/common/src/app/common/text.cljc
+++ b/common/src/app/common/text.cljc
@@ -78,6 +78,12 @@
(def text-all-attrs (d/concat-set shape-attrs root-attrs paragraph-attrs text-node-attrs))
+(def text-style-attrs
+ (d/concat-vec root-attrs paragraph-attrs text-node-attrs))
+
+(def default-root-attrs
+ {:vertical-align "top"})
+
(def default-text-attrs
{:typography-ref-file nil
:typography-ref-id nil
@@ -92,9 +98,13 @@
:text-transform "none"
:text-align "left"
:text-decoration "none"
+ :text-direction "ltr"
:fills [{:fill-color clr/black
:fill-opacity 1}]})
+(def default-attrs
+ (merge default-root-attrs default-text-attrs))
+
(def typography-fields
[:font-id
:font-family
diff --git a/common/src/app/common/time.cljc b/common/src/app/common/time.cljc
index 8cbfe95414..4f27d0531b 100644
--- a/common/src/app/common/time.cljc
+++ b/common/src/app/common/time.cljc
@@ -5,13 +5,14 @@
;; Copyright (c) KALEIDOS INC
(ns app.common.time
- "A new cross-platform date and time API. It should be prefered over
- a platform specific implementation found on `app.util.time`."
+ "Minimal cross-platoform date time api for specific use cases on types
+ definition and other common code."
#?(:cljs
(:require
["luxon" :as lxn])
:clj
(:import
+ java.time.format.DateTimeFormatter
java.time.Instant
java.time.Duration)))
@@ -31,10 +32,29 @@
[one other]
(.isAfter one other)))
-(defn instant
+(defn instant?
+ [o]
+ #?(:clj (instance? Instant o)
+ :cljs (instance? DateTime o)))
+
+(defn parse-instant
[s]
- #?(:clj (Instant/ofEpochMilli s)
- :cljs (.fromMillis ^js DateTime s #js {:zone "local" :setZone false})))
+ (cond
+ (instant? s)
+ s
+
+ (int? s)
+ #?(:clj (Instant/ofEpochMilli s)
+ :cljs (.fromMillis ^js DateTime s #js {:zone "local" :setZone false}))
+
+ (string? s)
+ #?(:clj (Instant/parse s)
+ :cljs (.fromISO ^js DateTime s))))
+
+(defn format-instant
+ [v]
+ #?(:clj (.format DateTimeFormatter/ISO_INSTANT ^Instant v)
+ :cljs (.toISO ^js v)))
;; To check for valid date time we can just use the core inst? function
diff --git a/common/src/app/common/types/color.cljc b/common/src/app/common/types/color.cljc
index 5ab2dc6355..fd20b0330f 100644
--- a/common/src/app/common/types/color.cljc
+++ b/common/src/app/common/types/color.cljc
@@ -9,48 +9,51 @@
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.schema :as sm]
+ [app.common.schema.generators :as sg]
[app.common.schema.openapi :as-alias oapi]
[app.common.text :as txt]
- [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]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; SCHEMAS
+;; SCHEMAS & TYPES
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(def rgb-color-re
#"^#(?:[0-9a-fA-F]{3}){1,2}$")
-(defn- random-rgb-color
+(defn- generate-rgb-color
[]
- #?(:clj (format "#%06x" (rand-int 16rFFFFFF))
- :cljs
- (let [r (rand-int 255)
- g (rand-int 255)
- b (rand-int 255)]
- (str "#"
- (.. r (toString 16) (padStart 2 "0"))
- (.. g (toString 16) (padStart 2 "0"))
- (.. b (toString 16) (padStart 2 "0"))))))
+ (sg/fmap (fn [_]
+ #?(:clj (format "#%06x" (rand-int 16rFFFFFF))
+ :cljs
+ (let [r (rand-int 255)
+ g (rand-int 255)
+ b (rand-int 255)]
+ (str "#"
+ (.. r (toString 16) (padStart 2 "0"))
+ (.. g (toString 16) (padStart 2 "0"))
+ (.. b (toString 16) (padStart 2 "0"))))))
+ sg/any))
-(sm/register! ::rgb-color
- {:type ::rgb-color
- :pred #(and (string? %) (some? (re-matches rgb-color-re %)))
+(defn rgb-color-string?
+ [o]
+ (and (string? o) (some? (re-matches rgb-color-re o))))
+
+(def ^:private type:rgb-color
+ {:type :string
+ :pred rgb-color-string?
:type-properties
{:title "rgb-color"
:description "RGB Color String"
:error/message "expected a valid RGB color"
- :gen/gen (->> tgen/any (tgen/fmap (fn [_] (random-rgb-color))))
-
+ :error/code "errors.invalid-rgb-color"
+ :gen/gen (generate-rgb-color)
::oapi/type "integer"
::oapi/format "int64"}})
-(sm/register! ::image-color
+(def schema:image-color
[:map {:title "ImageColor"}
[:name {:optional true} :string]
[:width :int]
@@ -59,7 +62,10 @@
[:id ::sm/uuid]
[:keep-aspect-ratio {:optional true} :boolean]])
-(sm/register! ::gradient
+(def gradient-types
+ #{:linear :radial})
+
+(def schema:gradient
[:map {:title "Gradient"}
[:type [::sm/one-of #{:linear :radial}]]
[:start-x ::sm/safe-number]
@@ -74,38 +80,46 @@
[:opacity {:optional true} [:maybe ::sm/safe-number]]
[:offset ::sm/safe-number]]]]])
-(sm/register! ::color
- [:and
- [:map {:title "Color"}
- [:id {:optional true} ::sm/uuid]
- [:name {:optional true} :string]
- [:path {:optional true} [:maybe :string]]
- [:value {:optional true} [:maybe :string]]
- [:color {:optional true} [:maybe ::rgb-color]]
- [:opacity {:optional true} [:maybe ::sm/safe-number]]
- [:modified-at {:optional true} ::sm/inst]
- [:ref-id {:optional true} ::sm/uuid]
- [:ref-file {:optional true} ::sm/uuid]
- [:gradient {:optional true} [:maybe ::gradient]]
- [:image {:optional true} [:maybe ::image-color]]
- [:plugin-data {:optional true}
- [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]
+(def schema:color-attrs
+ [:map {:title "ColorAttrs"}
+ [:id {:optional true} ::sm/uuid]
+ [:name {:optional true} :string]
+ [:path {:optional true} [:maybe :string]]
+ [:value {:optional true} [:maybe :string]]
+ [:color {:optional true} [:maybe ::rgb-color]]
+ [:opacity {:optional true} [:maybe ::sm/safe-number]]
+ [:modified-at {:optional true} ::sm/inst]
+ [:ref-id {:optional true} ::sm/uuid]
+ [:ref-file {:optional true} ::sm/uuid]
+ [:gradient {:optional true} [:maybe schema:gradient]]
+ [:image {:optional true} [:maybe schema:image-color]]
+ [:plugin-data {:optional true} ::ctpg/plugin-data]])
+
+(def schema:color
+ [:and schema:color-attrs
[::sm/contains-any {:strict true} [:color :gradient :image]]])
-(sm/register! ::recent-color
+(def schema:recent-color
[:and
[:map {:title "RecentColor"}
[:opacity {:optional true} [:maybe ::sm/safe-number]]
[:color {:optional true} [:maybe ::rgb-color]]
- [:gradient {:optional true} [:maybe ::gradient]]
- [:image {:optional true} [:maybe ::image-color]]]
+ [:gradient {:optional true} [:maybe schema:gradient]]
+ [:image {:optional true} [:maybe schema:image-color]]]
[::sm/contains-any {:strict true} [:color :gradient :image]]])
+(sm/register! ::rgb-color type:rgb-color)
+(sm/register! ::color schema:color)
+(sm/register! ::gradient schema:gradient)
+(sm/register! ::image-color schema:image-color)
+(sm/register! ::recent-color schema:recent-color)
+(sm/register! ::color-attrs schema:color-attrs)
+
(def check-color!
- (sm/check-fn ::color))
+ (sm/check-fn schema:color :hint "expected valid color struct"))
(def check-recent-color!
- (sm/check-fn ::recent-color))
+ (sm/check-fn schema:recent-color))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HELPERS
@@ -380,13 +394,22 @@
(process-shape-colors shape sync-color)))
-(defn eq-recent-color?
+(defn- eq-recent-color?
[c1 c2]
(or (= c1 c2)
(and (some? (:color c1))
(some? (:color c2))
(= (:color c1) (:color c2)))))
+(defn add-recent-color
+ "Moves the color to the top of the list and then truncates up to 15"
+ [state file-id color]
+ (update state file-id (fn [colors]
+ (let [colors (d/removev (partial eq-recent-color? color) colors)
+ colors (conj colors color)]
+ (cond-> colors
+ (> (count colors) 15)
+ (subvec 1))))))
(defn stroke->color-att
[stroke file-id shared-libs]
diff --git a/common/src/app/common/types/container.cljc b/common/src/app/common/types/container.cljc
index 3a7f88c12f..9cecfac389 100644
--- a/common/src/app/common/types/container.cljc
+++ b/common/src/app/common/types/container.cljc
@@ -37,8 +37,7 @@
[:modified-at {:optional true} ::sm/inst]
[:objects {:optional true}
[:map-of {:gen/max 10} ::sm/uuid :map]]
- [:plugin-data {:optional true}
- [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]])
+ [:plugin-data {:optional true} ::ctpg/plugin-data]])
(def check-container!
(sm/check-fn ::container))
@@ -541,38 +540,51 @@
;; --- SHAPE UPDATE
(defn set-shape-attr
- [shape attr val & {:keys [on-changed ignore-touched ignore-geometry]}]
- (let [group (get ctk/sync-attrs attr)
- shape-val (get shape attr)
- ignore (or ignore-touched (= attr :position-data)) ;; position-data is a derived attribute and
- is-geometry? (and (or (= group :geometry-group) ;; never triggers touched by itself
- (and (= group :content-group) (= (:type shape) :path)))
- (not (#{:width :height} attr))) ;; :content in paths are also considered geometric
- ;; TODO: the check of :width and :height probably may be removed
- ;; after the check added in data/workspace/modifiers/check-delta
- ;; function. Better check it and test toroughly when activating
- ;; components-v2 mode.
- in-copy? (ctk/in-component-copy? shape)
+ "Assign attribute to shape with touched logic.
+
+ The returned shape will contain a metadata associated with it
+ indicating if shape is touched or not."
+ [shape attr val & {:keys [ignore-touched ignore-geometry]}]
+ (let [group (get ctk/sync-attrs attr)
+ shape-val (get shape attr)
+
+ ignore?
+ (or ignore-touched
+ ;; position-data is a derived attribute
+ (= attr :position-data))
+
+ is-geometry?
+ (and (or (= group :geometry-group) ;; never triggers touched by itself
+ (and (= group :content-group)
+ (= (:type shape) :path)))
+ ;; :content in paths are also considered geometric
+ (not (#{:width :height} attr)))
+
+ ;; TODO: the check of :width and :height probably may be
+ ;; removed after the check added in
+ ;; data/workspace/modifiers/check-delta function. Better check
+ ;; it and test toroughly when activating components-v2 mode.
+ in-copy?
+ (ctk/in-component-copy? shape)
;; For geometric attributes, there are cases in that the value changes
;; slightly (e.g. when rounding to pixel, or when recalculating text
;; positions in different zoom levels). To take this into account, we
;; ignore geometric changes smaller than 1 pixel.
- equal? (if is-geometry?
- (gsh/close-attrs? attr val shape-val 1)
- (gsh/close-attrs? attr val shape-val))]
+ equal?
+ (if is-geometry?
+ (gsh/close-attrs? attr val shape-val 1)
+ (gsh/close-attrs? attr val shape-val))
- ;; Notify when value has changed, except when it has not moved relative to the
- ;; component head.
- (when (and on-changed group (not equal?) (not (and ignore-geometry is-geometry?)))
- (on-changed shape))
+ touched?
+ (and group (not equal?) (not (and ignore-geometry is-geometry?)))]
(cond-> shape
;; Depending on the origin of the attribute change, we need or not to
;; set the "touched" flag for the group the attribute belongs to.
;; In some cases we need to ignore touched only if the attribute is
;; geometric (position, width or transformation).
- (and in-copy? group (not ignore) (not equal?)
+ (and in-copy? group (not ignore?) (not equal?)
(not (and ignore-geometry is-geometry?)))
(-> (update :touched ctk/set-touched-group group)
(dissoc :remote-synced))
@@ -581,4 +593,7 @@
(dissoc attr)
(some? val)
- (assoc attr val))))
+ (assoc attr val)
+
+ :always
+ (vary-meta assoc ::touched touched?))))
diff --git a/common/src/app/common/types/file.cljc b/common/src/app/common/types/file.cljc
index 69e57a2594..01f7e32f60 100644
--- a/common/src/app/common/types/file.cljc
+++ b/common/src/app/common/types/file.cljc
@@ -62,8 +62,7 @@
[:map-of {:gen/max 2} ::sm/uuid ::cty/typography]]
[:media {:optional true}
[:map-of {:gen/max 5} ::sm/uuid ::media-object]]
- [:plugin-data {:optional true}
- [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]
+ [:plugin-data {:optional true} ::ctpg/plugin-data]
[:tokens-lib {:optional true} ::ctl/tokens-lib]])
(def check-file-data!
diff --git a/common/src/app/common/types/grid.cljc b/common/src/app/common/types/grid.cljc
index 72a7ceac61..45a73383f1 100644
--- a/common/src/app/common/types/grid.cljc
+++ b/common/src/app/common/types/grid.cljc
@@ -6,6 +6,7 @@
(ns app.common.types.grid
(:require
+ [app.common.colors :as clr]
[app.common.schema :as sm]
[app.common.types.color :as ctc]))
@@ -13,47 +14,74 @@
;; SCHEMA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(sm/register! ::grid-color
+(def schema:grid-color
[:map {:title "PageGridColor"}
[:color ::ctc/rgb-color]
[:opacity ::sm/safe-number]])
-(sm/register! ::column-params
+(def schema:column-params
[:map
- [:color ::grid-color]
+ [:color schema:grid-color]
[:type {:optional true} [::sm/one-of #{:stretch :left :center :right}]]
[:size {:optional true} [:maybe ::sm/safe-number]]
[:margin {:optional true} [:maybe ::sm/safe-number]]
[:item-length {:optional true} [:maybe ::sm/safe-number]]
[:gutter {:optional true} [:maybe ::sm/safe-number]]])
-(sm/register! ::square-params
+(def schema:square-params
[:map
[:size {:optional true} [:maybe ::sm/safe-number]]
- [:color ::grid-color]])
+ [:color schema:grid-color]])
-(sm/register! ::grid
- [:multi {:dispatch :type}
+(def schema:grid
+ [:multi {:title "Grid"
+ :dispatch :type
+ :decode/json #(update % :type keyword)}
[:column
[:map
[:type [:= :column]]
[:display :boolean]
- [:params ::column-params]]]
+ [:params schema:column-params]]]
[:row
[:map
[:type [:= :row]]
[:display :boolean]
- [:params ::column-params]]]
+ [:params schema:column-params]]]
[:square
[:map
[:type [:= :square]]
[:display :boolean]
- [:params ::square-params]]]])
+ [:params schema:square-params]]]])
-(sm/register! ::saved-grids
+(def schema:default-grids
[:map {:title "PageGrid"}
[:square {:optional true} ::square-params]
[:row {:optional true} ::column-params]
[:column {:optional true} ::column-params]])
+
+(sm/register! ::square-params schema:square-params)
+(sm/register! ::column-params schema:column-params)
+(sm/register! ::grid schema:grid)
+(sm/register! ::default-grids schema:default-grids)
+
+(def ^:private default-square-params
+ {:size 16
+ :color {:color clr/info
+ :opacity 0.4}})
+
+(def ^:private default-layout-params
+ {:size 12
+ :type :stretch
+ :item-length nil
+ :gutter 8
+ :margin 0
+ :color {:color clr/default-layout
+ :opacity 0.1}})
+
+(def default-grid-params
+ {:square default-square-params
+ :column default-layout-params
+ :row default-layout-params})
+
diff --git a/common/src/app/common/types/page.cljc b/common/src/app/common/types/page.cljc
index 3b00643ce0..3af84b4066 100644
--- a/common/src/app/common/types/page.cljc
+++ b/common/src/app/common/types/page.cljc
@@ -7,6 +7,7 @@
(ns app.common.types.page
(:require
[app.common.data :as d]
+ [app.common.geom.point :as-alias gpt]
[app.common.schema :as sm]
[app.common.types.color :as-alias ctc]
[app.common.types.grid :as ctg]
@@ -18,41 +19,62 @@
;; SCHEMAS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(sm/register! ::flow
- [:map {:title "PageFlow"}
+(def schema:flow
+ [:map {:title "Flow"}
[:id ::sm/uuid]
[:name :string]
[:starting-frame ::sm/uuid]])
-(sm/register! ::guide
- [:map {:title "PageGuide"}
+(def schema:flows
+ [:map-of {:gen/max 2} ::sm/uuid schema:flow])
+
+(def schema:guide
+ [:map {:title "Guide"}
[:id ::sm/uuid]
[:axis [::sm/one-of #{:x :y}]]
[:position ::sm/safe-number]
+ ;; FIXME: remove maybe?
[:frame-id {:optional true} [:maybe ::sm/uuid]]])
-(sm/register! ::page
+(def schema:guides
+ [:map-of {:gen/max 2} ::sm/uuid schema:guide])
+
+(def schema:objects
+ [:map-of {:gen/max 5} ::sm/uuid ::cts/shape])
+
+(def schema:comment-thread-position
+ [:map {:title "CommentThreadPosition"}
+ [:frame-id ::sm/uuid]
+ [:position ::gpt/point]])
+
+(def schema:page
[:map {:title "FilePage"}
[:id ::sm/uuid]
[:name :string]
- [:objects
- [:map-of {:gen/max 5} ::sm/uuid ::cts/shape]]
+ [:objects schema:objects]
+ [:default-grids {:optional true} ::ctg/default-grids]
+ [:flows {:optional true} schema:flows]
+ [:guides {:optional true} schema:guides]
+ [:plugin-data {:optional true} ::ctpg/plugin-data]
+ [:background {:optional true} ::ctc/rgb-color]
+
+ [:comment-thread-positions {:optional true}
+ [:map-of ::sm/uuid schema:comment-thread-position]]
+
[:options
- [:map {:title "PageOptions"}
- [:background {:optional true} ::ctc/rgb-color]
- [:saved-grids {:optional true} ::ctg/saved-grids]
- [:flows {:optional true}
- [:vector {:gen/max 2} ::flow]]
- [:guides {:optional true}
- [:map-of {:gen/max 2} ::sm/uuid ::guide]]
- [:plugin-data {:optional true}
- [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]]]])
+ ;; DEPERECATED: remove after 2.3 release
+ [:map {:title "PageOptions"}]]])
-(def check-page-guide!
- (sm/check-fn ::guide))
+(sm/register! ::page schema:page)
+(sm/register! ::guide schema:guide)
+(sm/register! ::flow schema:flow)
+(def valid-guide?
+ (sm/lazy-validator schema:guide))
+
+;; FIXME: convert to validator
(def check-page!
- (sm/check-fn ::page))
+ (sm/check-fn schema:page))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; INIT & HELPERS
@@ -77,25 +99,6 @@
(assoc :id (or id (uuid/next)))
(assoc :name (or name "Page 1"))))
-;; --- Helpers for flow
-
-(defn rename-flow
- [flow name]
- (assoc flow :name name))
-
-(defn add-flow
- [flows flow]
- (conj (or flows []) flow))
-
-(defn remove-flow
- [flows flow-id]
- (d/removev #(= (:id %) flow-id) flows))
-
-(defn update-flow
- [flows flow-id update-fn]
- (let [index (d/index-of-pred flows #(= (:id %) flow-id))]
- (update flows index update-fn)))
-
(defn get-frame-flow
[flows frame-id]
- (d/seek #(= (:starting-frame %) frame-id) flows))
+ (d/seek #(= (:starting-frame %) frame-id) (vals flows)))
diff --git a/common/src/app/common/types/plugins.cljc b/common/src/app/common/types/plugins.cljc
index 49d31bf2d6..128c90f7d7 100644
--- a/common/src/app/common/types/plugins.cljc
+++ b/common/src/app/common/types/plugins.cljc
@@ -6,11 +6,48 @@
(ns app.common.types.plugins
(:require
- [app.common.schema :as sm]))
+ [app.common.schema :as sm]
+ [app.common.schema.generators :as sg]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; SCHEMAS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(sm/register! ::plugin-data
- [:map-of {:gen/max 5} :string :string])
+(def ^:private schema:string
+ [:schema {:gen/gen (sg/word-string)} :string])
+
+(def ^:private schema:keyword
+ [:schema {:gen/gen (->> (sg/word-string)
+ (sg/fmap keyword))}
+ :keyword])
+
+(def schema:plugin-data
+ [:map-of {:gen/max 5}
+ schema:keyword
+ [:map-of {:gen/max 5}
+ schema:string
+ schema:string]])
+
+(sm/register! ::plugin-data schema:plugin-data)
+
+
+(def ^:private schema:registry-entry
+ [:map
+ [:plugin-id :string]
+ [:name :string]
+ [:description {:optional true} :string]
+ [:host :string]
+ [:code :string]
+ [:icon {:optional true} :string]
+ [:permissions [:set :string]]])
+
+(def schema:plugin-registry
+ [:map
+ [:ids [:vector :string]]
+ [:data
+ [:map-of {:gen/max 5}
+ :string
+ schema:registry-entry]]])
+
+(sm/register! ::plugin-registry schema:plugin-registry)
+(sm/register! ::registry-entry schema:registry-entry)
diff --git a/common/src/app/common/types/shape.cljc b/common/src/app/common/types/shape.cljc
index 50e27a0af3..379c2bc2e8 100644
--- a/common/src/app/common/types/shape.cljc
+++ b/common/src/app/common/types/shape.cljc
@@ -87,10 +87,15 @@
:exclude
:intersection})
-(sm/register! ::points
+(def grow-types
+ #{:auto-width
+ :auto-height
+ :fixed})
+
+(def schema:points
[:vector {:gen/max 4 :gen/min 4} ::gpt/point])
-(sm/register! ::fill
+(def schema:fill
[:map {:title "Fill"}
[:fill-color {:optional true} ::ctc/rgb-color]
[:fill-opacity {:optional true} ::sm/safe-number]
@@ -99,7 +104,9 @@
[:fill-color-ref-id {:optional true} [:maybe ::sm/uuid]]
[:fill-image {:optional true} ::ctc/image-color]])
-(sm/register! ::stroke
+(sm/register! ::fill schema:fill)
+
+(def ^:private schema:stroke
[:map {:title "Stroke"}
[:stroke-color {:optional true} :string]
[:stroke-color-ref-file {:optional true} ::sm/uuid]
@@ -117,44 +124,46 @@
[:stroke-color-gradient {:optional true} ::ctc/gradient]
[:stroke-image {:optional true} ::ctc/image-color]])
-(sm/register! ::shape-base-attrs
+(sm/register! ::stroke schema:stroke)
+
+(def check-stroke!
+ (sm/check-fn schema:stroke))
+
+(def schema:shape-base-attrs
[:map {:title "ShapeMinimalRecord"}
[:id ::sm/uuid]
[:name :string]
[:type [::sm/one-of shape-types]]
[:selrect ::grc/rect]
- [:points ::points]
+ [:points schema:points]
[:transform ::gmt/matrix]
[:transform-inverse ::gmt/matrix]
[:parent-id ::sm/uuid]
[:frame-id ::sm/uuid]])
-(sm/register! ::shape-geom-attrs
+(def schema:shape-geom-attrs
[:map {:title "ShapeGeometryAttrs"}
[:x ::sm/safe-number]
[:y ::sm/safe-number]
[:width ::sm/safe-number]
[:height ::sm/safe-number]])
-(sm/register! ::shape-attrs
+;; FIXME: rename to shape-generic-attrs
+(def schema:shape-attrs
[:map {:title "ShapeAttrs"}
- [:name {:optional true} :string]
[:component-id {:optional true} ::sm/uuid]
[:component-file {:optional true} ::sm/uuid]
[:component-root {:optional true} :boolean]
[:main-instance {:optional true} :boolean]
[:remote-synced {:optional true} :boolean]
[:shape-ref {:optional true} ::sm/uuid]
- [:selrect {:optional true} ::grc/rect]
- [:points {:optional true} ::points]
[:blocked {:optional true} :boolean]
[:collapsed {:optional true} :boolean]
[:locked {:optional true} :boolean]
[:hidden {:optional true} :boolean]
[:masked-group {:optional true} :boolean]
[:fills {:optional true}
- [:vector {:gen/max 2} ::fill]]
- [:hide-fill-on-export {:optional true} :boolean]
+ [:vector {:gen/max 2} schema:fill]]
[:proportion {:optional true} ::sm/safe-number]
[:proportion-lock {:optional true} :boolean]
[:constraints-h {:optional true}
@@ -168,204 +177,196 @@
[:r2 {:optional true} ::sm/safe-number]
[:r3 {:optional true} ::sm/safe-number]
[:r4 {:optional true} ::sm/safe-number]
- [:x {:optional true} [:maybe ::sm/safe-number]]
- [:y {:optional true} [:maybe ::sm/safe-number]]
- [:width {:optional true} [:maybe ::sm/safe-number]]
- [:height {:optional true} [:maybe ::sm/safe-number]]
[:opacity {:optional true} ::sm/safe-number]
[:grids {:optional true}
[:vector {:gen/max 2} ::ctg/grid]]
[:exports {:optional true}
[:vector {:gen/max 2} ::ctse/export]]
[:strokes {:optional true}
- [:vector {:gen/max 2} ::stroke]]
- [:transform {:optional true} ::gmt/matrix]
- [:transform-inverse {:optional true} ::gmt/matrix]
- [:blend-mode {:optional true} [::sm/one-of blend-modes]]
+ [:vector {:gen/max 2} schema:stroke]]
+ [:blend-mode {:optional true}
+ [::sm/one-of blend-modes]]
[:interactions {:optional true}
[:vector {:gen/max 2} ::ctsi/interaction]]
[:shadow {:optional true}
[: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 grow-types]]
[:applied-tokens {:optional true} ::cto/applied-tokens]
- [:plugin-data {:optional true}
- [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]
+ [:plugin-data {:optional true} ::ctpg/plugin-data]])
-(sm/register! ::group-attrs
+(def schema:group-attrs
[:map {:title "GroupAttrs"}
- [:type [:= :group]]
[:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]]])
-(sm/register! ::frame-attrs
+(def ^:private schema:frame-attrs
[:map {:title "FrameAttrs"}
- [:type [:= :frame]]
[:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]]
[:hide-fill-on-export {:optional true} :boolean]
[:show-content {:optional true} :boolean]
[:hide-in-viewer {:optional true} :boolean]])
-(sm/register! ::bool-attrs
+(def ^:private schema:bool-attrs
[:map {:title "BoolAttrs"}
- [:type [:= :bool]]
[:shapes [:vector {:gen/max 10 :gen/min 1} ::sm/uuid]]
+ [:bool-type [::sm/one-of bool-types]]
+ [:bool-content ::ctsp/content]])
- [: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]]
+(def ^:private schema:rect-attrs
+ [:map {:title "RectAttrs"}])
- [:bool-content
- [:vector {:gen/max 2}
- [:map
- [:command :keyword]
- [:relative {:optional true} :boolean]
- [:prev-pos {:optional true} ::gpt/point]
- [:params {:optional true}
- [:maybe
- [:map-of {:gen/max 5} :keyword ::sm/safe-number]]]]]]])
+(def ^:private schema:circle-attrs
+ [:map {:title "CircleAttrs"}])
-(sm/register! ::rect-attrs
- [:map {:title "RectAttrs"}
- [:type [:= :rect]]])
+(def ^:private schema:svg-raw-attrs
+ [:map {:title "SvgRawAttrs"}])
-(sm/register! ::circle-attrs
- [:map {:title "CircleAttrs"}
- [:type [:= :circle]]])
-
-(sm/register! ::svg-raw-attrs
- [:map {:title "SvgRawAttrs"}
- [:type [:= :svg-raw]]])
-
-(sm/register! ::image-attrs
+(def schema:image-attrs
[:map {:title "ImageAttrs"}
- [:type [:= :image]]
[:metadata
[:map
- [:width :int]
- [:height :int]
- [:mtype {:optional true} [:maybe :string]]
+ [:width {:gen/gen (sg/small-int :min 1)} :int]
+ [:height {:gen/gen (sg/small-int :min 1)} :int]
+ [:mtype {:optional true
+ :gen/gen (sg/elements ["image/jpeg"
+ "image/png"])}
+ [:maybe :string]]
[:id ::sm/uuid]]]])
-(sm/register! ::path-attrs
+(def ^:private schema:path-attrs
[:map {:title "PathAttrs"}
- [:type [:= :path]]
[:content ::ctsp/content]])
-(sm/register! ::text-attrs
+(def ^:private schema:text-attrs
[:map {:title "TextAttrs"}
- [:type [:= :text]]
[:content {:optional true} [:maybe ::ctsx/content]]])
-(sm/register! ::shape-map
- [:multi {:dispatch :type :title "Shape"}
- [:group
- [:and {:title "GroupShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::shape-attrs
- ::group-attrs
- ::ctsl/layout-child-attrs]]
+(defn- decode-shape
+ [o]
+ (if (map? o)
+ (map->Shape o)
+ o))
- [:frame
- [:and {:title "FrameShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::frame-attrs
- ::ctsl/layout-attrs
- ::ctsl/layout-child-attrs]]
+(defn- shape-generator
+ "Get the shape generator."
+ []
+ (->> (sg/generator schema:shape-base-attrs)
+ (sg/mcat (fn [{:keys [type] :as shape}]
+ (sg/let [attrs1 (sg/generator schema:shape-attrs)
+ attrs2 (sg/generator schema:shape-geom-attrs)
+ attrs3 (case type
+ :text (sg/generator schema:text-attrs)
+ :path (sg/generator schema:path-attrs)
+ :svg-raw (sg/generator schema:svg-raw-attrs)
+ :image (sg/generator schema:image-attrs)
+ :circle (sg/generator schema:circle-attrs)
+ :rect (sg/generator schema:rect-attrs)
+ :bool (sg/generator schema:bool-attrs)
+ :group (sg/generator schema:group-attrs)
+ :frame (sg/generator schema:frame-attrs))]
+ (if (or (= type :path)
+ (= type :bool))
+ (merge attrs1 shape attrs3)
+ (merge attrs1 shape attrs2 attrs3)))))
+ (sg/fmap map->Shape)))
- [:bool
- [:and {:title "BoolShape"}
- ::shape-base-attrs
- ::shape-attrs
- ::bool-attrs
- ::ctsl/layout-child-attrs]]
+(def schema:shape
+ [:and {:title "Shape"
+ :gen/gen (shape-generator)
+ :decode/json {:leave decode-shape}}
+ [:fn shape?]
+ [:multi {:dispatch :type
+ :decode/json (fn [shape]
+ (update shape :type keyword))
+ :title "Shape"}
+ [:group
+ [:merge {:title "GroupShape"}
+ ::ctsl/layout-child-attrs
+ schema:group-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]
- [:rect
- [:and {:title "RectShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::shape-attrs
- ::rect-attrs
- ::ctsl/layout-child-attrs]]
+ [:frame
+ [:merge {:title "FrameShape"}
+ ::ctsl/layout-child-attrs
+ ::ctsl/layout-attrs
+ schema:frame-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]
- [:circle
- [:and {:title "CircleShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::shape-attrs
- ::circle-attrs
- ::ctsl/layout-child-attrs]]
+ [:bool
+ [:merge {:title "BoolShape"}
+ ::ctsl/layout-child-attrs
+ schema:bool-attrs
+ schema:shape-attrs
+ schema:shape-base-attrs]]
- [:image
- [:and {:title "ImageShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::shape-attrs
- ::image-attrs
- ::ctsl/layout-child-attrs]]
+ [:rect
+ [:merge {:title "RectShape"}
+ ::ctsl/layout-child-attrs
+ schema:rect-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]
- [:svg-raw
- [:and {:title "SvgRawShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::shape-attrs
- ::svg-raw-attrs
- ::ctsl/layout-child-attrs]]
+ [:circle
+ [:merge {:title "CircleShape"}
+ ::ctsl/layout-child-attrs
+ schema:circle-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]
- [:path
- [:and {:title "PathShape"}
- ::shape-base-attrs
- ::shape-attrs
- ::path-attrs
- ::ctsl/layout-child-attrs]]
+ [:image
+ [:merge {:title "ImageShape"}
+ ::ctsl/layout-child-attrs
+ schema:image-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]
- [:text
- [:and {:title "TextShape"}
- ::shape-base-attrs
- ::shape-geom-attrs
- ::shape-attrs
- ::text-attrs
- ::ctsl/layout-child-attrs]]])
+ [:svg-raw
+ [:merge {:title "SvgRawShape"}
+ ::ctsl/layout-child-attrs
+ schema:svg-raw-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]
-(sm/register! ::shape
- [:and
- {:title "Shape"
- :gen/gen (->> (sg/generator ::shape-base-attrs)
- (sg/mcat (fn [{:keys [type] :as shape}]
- (sg/let [attrs1 (sg/generator ::shape-attrs)
- attrs2 (sg/generator ::shape-geom-attrs)
- attrs3 (case type
- :text (sg/generator ::text-attrs)
- :path (sg/generator ::path-attrs)
- :svg-raw (sg/generator ::svg-raw-attrs)
- :image (sg/generator ::image-attrs)
- :circle (sg/generator ::circle-attrs)
- :rect (sg/generator ::rect-attrs)
- :bool (sg/generator ::bool-attrs)
- :group (sg/generator ::group-attrs)
- :frame (sg/generator ::frame-attrs))]
- (if (or (= type :path)
- (= type :bool))
- (merge attrs1 shape attrs3)
- (merge attrs1 shape attrs2 attrs3)))))
- (sg/fmap map->Shape))}
- ::shape-map
- [:fn shape?]])
+ [:path
+ [:merge {:title "PathShape"}
+ ::ctsl/layout-child-attrs
+ schema:path-attrs
+ schema:shape-attrs
+ schema:shape-base-attrs]]
+
+ [:text
+ [:merge {:title "TextShape"}
+ ::ctsl/layout-child-attrs
+ schema:text-attrs
+ schema:shape-attrs
+ schema:shape-geom-attrs
+ schema:shape-base-attrs]]]])
+
+(sm/register! ::shape schema:shape)
(def check-shape-attrs!
- (sm/check-fn ::shape-attrs))
+ (sm/check-fn schema:shape-attrs))
(def check-shape!
- (sm/check-fn ::shape))
+ (sm/check-fn schema:shape
+ :hint "expected valid shape"))
+
+(def valid-shape?
+ (sm/lazy-validator schema:shape))
(defn has-images?
[{:keys [fills strokes]}]
- (or
- (some :fill-image fills)
- (some :stroke-image strokes)))
+ (or (some :fill-image fills)
+ (some :stroke-image strokes)))
;; --- Initialization
diff --git a/common/src/app/common/types/shape/export.cljc b/common/src/app/common/types/shape/export.cljc
index 7adbf7574e..bd2bee0a51 100644
--- a/common/src/app/common/types/shape/export.cljc
+++ b/common/src/app/common/types/shape/export.cljc
@@ -8,10 +8,12 @@
(:require
[app.common.schema :as sm]))
-(def export-types #{:png :jpeg :svg :pdf})
+(def types #{:png :jpeg :svg :pdf})
-(sm/register! ::export
+(def schema:export
[:map {:title "ShapeExport"}
- [:type [::sm/one-of export-types]]
+ [:type [::sm/one-of types]]
[:scale ::sm/safe-number]
[:suffix :string]])
+
+(sm/register! ::export schema:export)
diff --git a/common/src/app/common/types/shape/interactions.cljc b/common/src/app/common/types/shape/interactions.cljc
index 647e6cf268..29ef5902f3 100644
--- a/common/src/app/common/types/shape/interactions.cljc
+++ b/common/src/app/common/types/shape/interactions.cljc
@@ -11,7 +11,8 @@
[app.common.files.helpers :as cfh]
[app.common.geom.point :as gpt]
[app.common.geom.shapes.bounds :as gsb]
- [app.common.schema :as sm]))
+ [app.common.schema :as sm]
+ [app.common.schema.generators :as sg]))
;; WARNING: options are not deleted when changing event or action type, so it can be
;; restored if the user changes it back later.
@@ -71,81 +72,116 @@
(def animation-types
#{:dissolve :slide :push})
-(sm/register! ::animation
- [:multi {:dispatch :animation-type :title "Animation"}
- [:dissolve
- [:map {:title "AnimationDisolve"}
- [:animation-type [:= :dissolve]]
- [:duration ::sm/safe-int]
- [:easing [::sm/one-of easing-types]]]]
- [:slide
- [:map {:title "AnimationSlide"}
- [:animation-type [:= :slide]]
- [:duration ::sm/safe-int]
- [:easing [::sm/one-of easing-types]]
- [:way [::sm/one-of way-types]]
- [:direction [::sm/one-of direction-types]]
- [:offset-effect :boolean]]]
- [:push
- [:map {:title "AnimationPush"}
- [:animation-type [:= :push]]
- [:duration ::sm/safe-int]
- [:easing [::sm/one-of easing-types]]
- [:direction [::sm/one-of direction-types]]]]])
+(def schema:dissolve-animation
+ [:map {:title "AnimationDisolve"}
+ [:animation-type [:= :dissolve]]
+ [:duration ::sm/safe-int]
+ [:easing [::sm/one-of easing-types]]])
+
+(def schema:slide-animation
+ [:map {:title "AnimationSlide"}
+ [:animation-type [:= :slide]]
+ [:duration ::sm/safe-int]
+ [:easing [::sm/one-of easing-types]]
+ [:way [::sm/one-of way-types]]
+ [:direction [::sm/one-of direction-types]]
+ [:offset-effect :boolean]])
+
+(def schema:push-animation
+ [:map {:title "PushAnimation"}
+ [:animation-type [:= :push]]
+ [:duration ::sm/safe-int]
+ [:easing [::sm/one-of easing-types]]
+ [:direction [::sm/one-of direction-types]]])
+
+(def schema:animation
+ [:multi {:dispatch :animation-type
+ :title "Animation"
+ :gen/gen (sg/one-of (sg/generator schema:dissolve-animation)
+ (sg/generator schema:slide-animation)
+ (sg/generator schema:push-animation))
+ :decode/json #(update % :animation-type keyword)}
+ [:dissolve schema:dissolve-animation]
+ [:slide schema:slide-animation]
+ [:push schema:push-animation]])
+
+(sm/register! ::animation schema:animation)
(def check-animation!
- (sm/check-fn ::animation))
+ (sm/check-fn schema:animation))
-(sm/register! ::interaction
- [:multi {:dispatch :action-type}
- [:navigate
- [:map
- [:action-type [:= :navigate]]
- [:event-type [::sm/one-of event-types]]
- [:destination {:optional true} [:maybe ::sm/uuid]]
- [:preserve-scroll {:optional true} :boolean]
- [:animation {:optional true} ::animation]]]
- [:open-overlay
- [:map
- [:action-type [:= :open-overlay]]
- [:event-type [::sm/one-of event-types]]
- [:overlay-position ::gpt/point]
- [:overlay-pos-type [::sm/one-of overlay-positioning-types]]
- [:destination {:optional true} [:maybe ::sm/uuid]]
- [:close-click-outside {:optional true} :boolean]
- [:background-overlay {:optional true} :boolean]
- [:animation {:optional true} ::animation]
- [:position-relative-to {:optional true} [:maybe ::sm/uuid]]]]
- [:toggle-overlay
- [:map
- [:action-type [:= :toggle-overlay]]
- [:event-type [::sm/one-of event-types]]
- [:overlay-position ::gpt/point]
- [:overlay-pos-type [::sm/one-of overlay-positioning-types]]
- [:destination {:optional true} [:maybe ::sm/uuid]]
- [:close-click-outside {:optional true} :boolean]
- [:background-overlay {:optional true} :boolean]
- [:animation {:optional true} ::animation]
- [:position-relative-to {:optional true} [:maybe ::sm/uuid]]]]
- [:close-overlay
- [:map
- [:action-type [:= :close-overlay]]
- [:event-type [::sm/one-of event-types]]
- [:destination {:optional true} [:maybe ::sm/uuid]]
- [:animation {:optional true} ::animation]
- [:position-relative-to {:optional true} [:maybe ::sm/uuid]]]]
- [:prev-screen
- [:map
- [:action-type [:= :prev-screen]]
- [:event-type [::sm/one-of event-types]]]]
- [:open-url
- [:map
- [:action-type [:= :open-url]]
- [:event-type [::sm/one-of event-types]]
- [:url :string]]]])
+(def schema:navigate-interaction
+ [:map
+ [:action-type [:= :navigate]]
+ [:event-type [::sm/one-of event-types]]
+ [:destination {:optional true} [:maybe ::sm/uuid]]
+ [:preserve-scroll {:optional true} :boolean]
+ [:animation {:optional true} ::animation]])
+
+(def schema:open-overlay-interaction
+ [:map
+ [:action-type [:= :open-overlay]]
+ [:event-type [::sm/one-of event-types]]
+ [:overlay-position ::gpt/point]
+ [:overlay-pos-type [::sm/one-of overlay-positioning-types]]
+ [:destination {:optional true} [:maybe ::sm/uuid]]
+ [:close-click-outside {:optional true} :boolean]
+ [:background-overlay {:optional true} :boolean]
+ [:animation {:optional true} ::animation]
+ [:position-relative-to {:optional true} [:maybe ::sm/uuid]]])
+
+(def schema:toggle-overlay-interaction
+ [:map
+ [:action-type [:= :toggle-overlay]]
+ [:event-type [::sm/one-of event-types]]
+ [:overlay-position ::gpt/point]
+ [:overlay-pos-type [::sm/one-of overlay-positioning-types]]
+ [:destination {:optional true} [:maybe ::sm/uuid]]
+ [:close-click-outside {:optional true} :boolean]
+ [:background-overlay {:optional true} :boolean]
+ [:animation {:optional true} ::animation]
+ [:position-relative-to {:optional true} [:maybe ::sm/uuid]]])
+
+(def schema:close-overlay-interaction
+ [:map
+ [:action-type [:= :close-overlay]]
+ [:event-type [::sm/one-of event-types]]
+ [:destination {:optional true} [:maybe ::sm/uuid]]
+ [:animation {:optional true} ::animation]
+ [:position-relative-to {:optional true} [:maybe ::sm/uuid]]])
+
+(def schema:prev-scren-interaction
+ [:map
+ [:action-type [:= :prev-screen]]
+ [:event-type [::sm/one-of event-types]]])
+
+(def schema:open-url-interaction
+ [:map
+ [:action-type [:= :open-url]]
+ [:event-type [::sm/one-of event-types]]
+ [:url :string]])
+
+(def schema:interaction
+ [:multi {:dispatch :action-type
+ :title "Interaction"
+ :gen/gen (sg/one-of (sg/generator schema:navigate-interaction)
+ (sg/generator schema:open-overlay-interaction)
+ (sg/generator schema:close-overlay-interaction)
+ (sg/generator schema:toggle-overlay-interaction)
+ (sg/generator schema:prev-scren-interaction)
+ (sg/generator schema:open-url-interaction))
+ :decode/json #(update % :action-type keyword)}
+ [:navigate schema:navigate-interaction]
+ [:open-overlay schema:open-overlay-interaction]
+ [:toggle-overlay schema:toggle-overlay-interaction]
+ [:close-overlay schema:close-overlay-interaction]
+ [:prev-screen schema:prev-scren-interaction]
+ [:open-url schema:open-url-interaction]])
+
+(sm/register! ::interaction schema:interaction)
(def check-interaction!
- (sm/check-fn ::interaction))
+ (sm/check-fn schema:interaction))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HELPERS
diff --git a/common/src/app/common/types/shape/layout.cljc b/common/src/app/common/types/shape/layout.cljc
index a999145cbd..9a71931cc0 100644
--- a/common/src/app/common/types/shape/layout.cljc
+++ b/common/src/app/common/types/shape/layout.cljc
@@ -1622,13 +1622,17 @@
(defn remap-grid-cells
"Remaps the shapes ids inside the cells"
[shape ids-map]
- (let [do-remap-cells
+ (let [remap-shape
+ (fn [id]
+ (get ids-map id id))
+
+ remap-cell
(fn [cell]
(-> cell
- (update :shapes #(into [] (keep ids-map) %))))
+ (update :shapes #(into [] (keep remap-shape) %))))
shape
(-> shape
- (update :layout-grid-cells update-vals do-remap-cells))]
+ (update :layout-grid-cells update-vals remap-cell))]
shape))
(defn merge-cells
diff --git a/common/src/app/common/types/shape/path.cljc b/common/src/app/common/types/shape/path.cljc
index f6002a2935..1fd33bd45c 100644
--- a/common/src/app/common/types/shape/path.cljc
+++ b/common/src/app/common/types/shape/path.cljc
@@ -8,40 +8,49 @@
(:require
[app.common.schema :as sm]))
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; SCHEMA
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(def schema:line-to-segment
+ [:map
+ [:command [:= :line-to]]
+ [:params
+ [:map
+ [:x ::sm/safe-number]
+ [:y ::sm/safe-number]]]])
-(sm/register! ::segment
- [:multi {:title "PathSegment" :dispatch :command}
- [:line-to
- [:map
- [:command [:= :line-to]]
- [:params
- [:map
- [:x ::sm/safe-number]
- [:y ::sm/safe-number]]]]]
- [:close-path
- [:map
- [:command [:= :close-path]]]]
- [:move-to
- [:map
- [:command [:= :move-to]]
- [:params
- [:map
- [:x ::sm/safe-number]
- [:y ::sm/safe-number]]]]]
- [:curve-to
- [:map
- [:command [:= :curve-to]]
- [:params
- [:map
- [:x ::sm/safe-number]
- [:y ::sm/safe-number]
- [:c1x ::sm/safe-number]
- [:c1y ::sm/safe-number]
- [:c2x ::sm/safe-number]
- [:c2y ::sm/safe-number]]]]]])
+(def schema:close-path-segment
+ [:map
+ [:command [:= :close-path]]])
-(sm/register! ::content
- [:vector ::segment])
+(def schema:move-to-segment
+ [:map
+ [:command [:= :move-to]]
+ [:params
+ [:map
+ [:x ::sm/safe-number]
+ [:y ::sm/safe-number]]]])
+
+(def schema:curve-to-segment
+ [:map
+ [:command [:= :curve-to]]
+ [:params
+ [:map
+ [:x ::sm/safe-number]
+ [:y ::sm/safe-number]
+ [:c1x ::sm/safe-number]
+ [:c1y ::sm/safe-number]
+ [:c2x ::sm/safe-number]
+ [:c2y ::sm/safe-number]]]])
+
+(def schema:path-segment
+ [:multi {:title "PathSegment"
+ :dispatch :command
+ :decode/json #(update % :command keyword)}
+ [:line-to schema:line-to-segment]
+ [:close-path schema:close-path-segment]
+ [:move-to schema:move-to-segment]
+ [:curve-to schema:curve-to-segment]])
+
+(def schema:path-content
+ [:vector schema:path-segment])
+
+(sm/register! ::segment schema:path-segment)
+(sm/register! ::content schema:path-content)
diff --git a/common/src/app/common/types/shape/shadow.cljc b/common/src/app/common/types/shape/shadow.cljc
index 62bdc2691a..b1ec5342fc 100644
--- a/common/src/app/common/types/shape/shadow.cljc
+++ b/common/src/app/common/types/shape/shadow.cljc
@@ -7,17 +7,26 @@
(ns app.common.types.shape.shadow
(:require
[app.common.schema :as sm]
+ [app.common.schema.generators :as sg]
[app.common.types.color :as ctc]))
(def styles #{:drop-shadow :inner-shadow})
-(sm/register! ::shadow
+(def schema:shadow
[:map {:title "Shadow"}
[:id [:maybe ::sm/uuid]]
- [:style [::sm/one-of styles]]
+ [:style
+ [:and {:gen/gen (sg/elements styles)}
+ :keyword
+ [::sm/one-of styles]]]
[:offset-x ::sm/safe-number]
[:offset-y ::sm/safe-number]
[:blur ::sm/safe-number]
[:spread ::sm/safe-number]
[:hidden :boolean]
[:color ::ctc/color]])
+
+(sm/register! ::shadow schema:shadow)
+
+(def check-shadow!
+ (sm/check-fn schema:shadow))
diff --git a/common/src/app/common/types/typography.cljc b/common/src/app/common/types/typography.cljc
index e143a2b8b7..0685950631 100644
--- a/common/src/app/common/types/typography.cljc
+++ b/common/src/app/common/types/typography.cljc
@@ -31,8 +31,7 @@
[:text-transform :string]
[:modified-at {:optional true} ::sm/inst]
[:path {:optional true} [:maybe :string]]
- [:plugin-data {:optional true}
- [:map-of {:gen/max 5} :keyword ::ctpg/plugin-data]]])
+ [:plugin-data {:optional true} ::ctpg/plugin-data]])
(def check-typography!
(sm/check-fn ::typography))
diff --git a/common/src/app/common/version.cljc b/common/src/app/common/version.cljc
index e73bd42690..20250bcf6d 100644
--- a/common/src/app/common/version.cljc
+++ b/common/src/app/common/version.cljc
@@ -9,7 +9,7 @@
(:require
[cuerdas.core :as str]))
-(def version-re #"^(([A-Za-z]+)\-?)?((\d+)\.(\d+)\.(\d+))(\-?((alpha|prealpha|beta|rc|dev)(\d+)?))?(\-?(\d+))?(\-?g(\w+))$")
+(def version-re #"^(([A-Za-z]+)\-?)?((\d+)\.(\d+)\.(\d+))(\-?((RC|DEV)(\d+)?))?(\-?(\d+))?(\-?g(\w+))?$")
(defn parse
[data]
diff --git a/common/test/common_tests/files_changes_test.cljc b/common/test/common_tests/files_changes_test.cljc
new file mode 100644
index 0000000000..5335df2e4d
--- /dev/null
+++ b/common/test/common_tests/files_changes_test.cljc
@@ -0,0 +1,864 @@
+;; 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.files-changes-test
+ (:require
+ [app.common.features :as ffeat]
+ [app.common.files.changes :as ch]
+ [app.common.schema :as sm]
+ [app.common.schema.generators :as sg]
+ [app.common.schema.test :as smt]
+ [app.common.types.file :as ctf]
+ [app.common.types.shape :as cts]
+ [app.common.uuid :as uuid]
+ [clojure.pprint :refer [pprint]]
+ [clojure.test :as t]
+ [common-tests.types.shape-decode-encode-test :refer [json-roundtrip]]))
+
+(defn- make-file-data
+ [file-id page-id]
+ (binding [ffeat/*current* #{"components/v2"}]
+ (ctf/make-file-data file-id page-id)))
+
+(t/deftest add-obj
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)
+ id-a (uuid/custom 2 1)
+ id-b (uuid/custom 2 2)
+ id-c (uuid/custom 2 3)]
+
+ (t/testing "Adds single object"
+ (let [chg {:type :add-obj
+ :page-id page-id
+ :id id-a
+ :parent-id uuid/zero
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:frame-id uuid/zero
+ :parent-id uuid/zero
+ :id id-a
+ :type :rect
+ :name "rect"})}
+ res (ch/process-changes data [chg])]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= 2 (count objects)))
+ (t/is (= (:obj chg) (get objects id-a)))
+
+ (t/is (= [id-a] (get-in objects [uuid/zero :shapes]))))))
+
+
+ (t/testing "Adds several objects with different indexes"
+ (let [chg (fn [id index]
+ {:type :add-obj
+ :page-id page-id
+ :id id
+ :frame-id uuid/zero
+ :index index
+ :obj (cts/setup-shape
+ {:id id
+ :frame-id uuid/zero
+ :type :rect
+ :name (str id)})})
+ res (ch/process-changes data [(chg id-a 0)
+ (chg id-b 0)
+ (chg id-c 1)])]
+
+ ;; (clojure.pprint/pprint data)
+ ;; (clojure.pprint/pprint res)
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= 4 (count objects)))
+ (t/is (not (nil? (get objects id-a))))
+ (t/is (not (nil? (get objects id-b))))
+ (t/is (not (nil? (get objects id-c))))
+ (t/is (= [id-b id-c id-a] (get-in objects [uuid/zero :shapes]))))))))
+
+(t/deftest mod-obj
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (t/testing "simple mod-obj"
+ (let [chg {:type :mod-obj
+ :page-id page-id
+ :id uuid/zero
+ :operations [{:type :set
+ :attr :name
+ :val "foobar"}]}
+ res (ch/process-changes data [chg])]
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= "foobar" (get-in objects [uuid/zero :name]))))))
+
+ (t/testing "mod-obj for not existing shape"
+ (let [chg {:type :mod-obj
+ :page-id page-id
+ :id (uuid/next)
+ :operations [{:type :set
+ :attr :name
+ :val "foobar"}]}
+ res (ch/process-changes data [chg])]
+ (t/is (= res data))))))
+
+
+(t/deftest del-obj
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ id (uuid/custom 2 1)
+ data (make-file-data file-id page-id)
+ data (-> data
+ (assoc-in [:pages-index page-id :objects uuid/zero :shapes] [id])
+ (assoc-in [:pages-index page-id :objects id]
+ {:id id
+ :frame-id uuid/zero
+ :type :rect
+ :name "rect"}))]
+ (t/testing "delete"
+ (let [chg {:type :del-obj
+ :page-id page-id
+ :id id}
+ res (ch/process-changes data [chg])]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= 1 (count objects)))
+ (t/is (= [] (get-in objects [uuid/zero :shapes]))))))
+
+ (t/testing "delete idempotency"
+ (let [chg {:type :del-obj
+ :page-id page-id
+ :id id}
+ res1 (ch/process-changes data [chg])
+ res2 (ch/process-changes res1 [chg])]
+
+ (t/is (= res1 res2))
+ (let [objects (get-in res1 [:pages-index page-id :objects])]
+ (t/is (= 1 (count objects)))
+ (t/is (= [] (get-in objects [uuid/zero :shapes]))))))))
+
+
+(t/deftest move-objects-1
+ (let [frame-a-id (uuid/custom 0 1)
+ frame-b-id (uuid/custom 0 2)
+ group-a-id (uuid/custom 0 3)
+ group-b-id (uuid/custom 0 4)
+ rect-a-id (uuid/custom 0 5)
+ rect-b-id (uuid/custom 0 6)
+ rect-c-id (uuid/custom 0 7)
+ rect-d-id (uuid/custom 0 8)
+ rect-e-id (uuid/custom 0 9)
+
+ file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)
+
+ data (update-in data [:pages-index page-id :objects]
+ #(-> %
+ (assoc-in [uuid/zero :shapes] [frame-a-id frame-b-id])
+ (assoc-in [frame-a-id]
+ (cts/setup-shape
+ {:id frame-a-id
+ :parent-id uuid/zero
+ :frame-id uuid/zero
+ :name "Frame a"
+ :shapes [group-a-id group-b-id rect-e-id]
+ :type :frame}))
+
+ (assoc-in [frame-b-id]
+ (cts/setup-shape
+ {:id frame-b-id
+ :parent-id uuid/zero
+ :frame-id uuid/zero
+ :name "Frame b"
+ :shapes []
+ :type :frame}))
+
+ ;; Groups
+ (assoc-in [group-a-id]
+ (cts/setup-shape
+ {:id group-a-id
+ :name "Group A"
+ :type :group
+ :parent-id frame-a-id
+ :frame-id frame-a-id
+ :shapes [rect-a-id rect-b-id rect-c-id]}))
+ (assoc-in [group-b-id]
+ (cts/setup-shape
+ {:id group-b-id
+ :name "Group B"
+ :type :group
+ :parent-id frame-a-id
+ :frame-id frame-a-id
+ :shapes [rect-d-id]}))
+
+ ;; Shapes
+ (assoc-in [rect-a-id]
+ (cts/setup-shape
+ {:id rect-a-id
+ :name "Rect A"
+ :type :rect
+ :parent-id group-a-id
+ :frame-id frame-a-id}))
+
+ (assoc-in [rect-b-id]
+ (cts/setup-shape
+ {:id rect-b-id
+ :name "Rect B"
+ :type :rect
+ :parent-id group-a-id
+ :frame-id frame-a-id}))
+
+ (assoc-in [rect-c-id]
+ (cts/setup-shape
+ {:id rect-c-id
+ :name "Rect C"
+ :type :rect
+ :parent-id group-a-id
+ :frame-id frame-a-id}))
+
+ (assoc-in [rect-d-id]
+ (cts/setup-shape
+ {:id rect-d-id
+ :name "Rect D"
+ :parent-id group-b-id
+ :type :rect
+ :frame-id frame-a-id}))
+
+ (assoc-in [rect-e-id]
+ (cts/setup-shape
+ {:id rect-e-id
+ :name "Rect E"
+ :type :rect
+ :parent-id frame-a-id
+ :frame-id frame-a-id}))))]
+
+ (t/testing "Create new group an add objects from the same group"
+ (let [new-group-id (uuid/next)
+ changes [{:type :add-obj
+ :page-id page-id
+ :id new-group-id
+ :frame-id frame-a-id
+ :obj (cts/setup-shape
+ {:id new-group-id
+ :type :group
+ :frame-id frame-a-id
+ :name "Group C"})}
+ {:type :mov-objects
+ :page-id page-id
+ :parent-id new-group-id
+ :shapes [rect-b-id rect-c-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; (clojure.pprint/pprint data)
+ ;; (println "===============")
+ ;; (clojure.pprint/pprint res)
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= [group-a-id group-b-id rect-e-id new-group-id]
+ (get-in objects [frame-a-id :shapes])))
+ (t/is (= [rect-b-id rect-c-id]
+ (get-in objects [new-group-id :shapes])))
+ (t/is (= [rect-a-id]
+ (get-in objects [group-a-id :shapes]))))))
+
+ (t/testing "Move elements to an existing group at index"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-b-id
+ :index 0
+ :shapes [rect-a-id rect-c-id]}]
+ res (ch/process-changes data changes)]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= [group-a-id group-b-id rect-e-id]
+ (get-in objects [frame-a-id :shapes])))
+ (t/is (= [rect-b-id]
+ (get-in objects [group-a-id :shapes])))
+ (t/is (= [rect-a-id rect-c-id rect-d-id]
+ (get-in objects [group-b-id :shapes]))))))
+
+ (t/testing "Move elements from group and frame to an existing group at index"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-b-id
+ :index 0
+ :shapes [rect-a-id rect-e-id]}]
+ res (ch/process-changes data changes)]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= [group-a-id group-b-id]
+ (get-in objects [frame-a-id :shapes])))
+ (t/is (= [rect-b-id rect-c-id]
+ (get-in objects [group-a-id :shapes])))
+ (t/is (= [rect-a-id rect-e-id rect-d-id]
+ (get-in objects [group-b-id :shapes]))))))
+
+ (t/testing "Move elements from several groups"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-b-id
+ :index 0
+ :shapes [rect-a-id rect-e-id]}]
+ res (ch/process-changes data changes)]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= [group-a-id group-b-id]
+ (get-in objects [frame-a-id :shapes])))
+ (t/is (= [rect-b-id rect-c-id]
+ (get-in objects [group-a-id :shapes])))
+ (t/is (= [rect-a-id rect-e-id rect-d-id]
+ (get-in objects [group-b-id :shapes]))))))
+
+ (t/testing "Move all elements from a group"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-a-id
+ :shapes [rect-d-id]}]
+ res (ch/process-changes data changes)]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= [group-a-id group-b-id rect-e-id]
+ (get-in objects [frame-a-id :shapes])))
+ (t/is (empty? (get-in objects [group-b-id :shapes]))))))
+
+ (t/testing "Move elements to a group with different frame"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id frame-b-id
+ :shapes [group-a-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; (pprint (get-in data [:pages-index page-id :objects]))
+ ;; (println "==========")
+ ;; (pprint (get-in res [:pages-index page-id :objects]))
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ (t/is (= [group-b-id rect-e-id] (get-in objects [frame-a-id :shapes])))
+ (t/is (= [group-a-id] (get-in objects [frame-b-id :shapes])))
+ (t/is (= frame-b-id (get-in objects [group-a-id :frame-id])))
+ (t/is (= frame-b-id (get-in objects [rect-a-id :frame-id])))
+ (t/is (= frame-b-id (get-in objects [rect-b-id :frame-id])))
+ (t/is (= frame-b-id (get-in objects [rect-c-id :frame-id]))))))
+
+ (t/testing "Move elements to frame zero"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id uuid/zero
+ :shapes [group-a-id]
+ :index 0}]
+ res (ch/process-changes data changes)]
+
+ (let [objects (get-in res [:pages-index page-id :objects])]
+ ;; (pprint (get-in data [:objects uuid/zero]))
+ ;; (println "==========")
+ ;; (pprint (get-in objects [uuid/zero]))
+
+ (t/is (= [group-a-id frame-a-id frame-b-id]
+ (get-in objects [uuid/zero :shapes]))))))
+
+ (t/testing "Don't allow to move inside self"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-a-id
+ :shapes [group-a-id]}]
+ res (ch/process-changes data changes)]
+ (t/is (= data res))))))
+
+
+(t/deftest mov-objects-regression-1
+ (let [shape-1-id (uuid/custom 2 1)
+ shape-2-id (uuid/custom 2 2)
+ shape-3-id (uuid/custom 2 3)
+ frame-id (uuid/custom 1 1)
+ file-id (uuid/custom 4 4)
+ page-id (uuid/custom 0 1)
+
+ changes [{:type :add-obj
+ :id frame-id
+ :page-id page-id
+ :parent-id uuid/zero
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:type :frame
+ :name "Frame"})}
+ {:type :add-obj
+ :page-id page-id
+ :frame-id frame-id
+ :parent-id frame-id
+ :id shape-1-id
+ :obj (cts/setup-shape
+ {:type :rect
+ :name "Shape 1"})}
+ {:type :add-obj
+ :page-id page-id
+ :id shape-2-id
+ :parent-id uuid/zero
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:type :rect
+ :name "Shape 2"})}
+
+ {:type :add-obj
+ :page-id page-id
+ :id shape-3-id
+ :parent-id uuid/zero
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:type :rect
+ :name "Shape 3"})}]
+ data (make-file-data file-id page-id)
+ data (ch/process-changes data changes)]
+
+ (t/testing "preserve order on multiple shape mov 1"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :shapes [shape-2-id shape-3-id]
+ :parent-id uuid/zero
+ :index 0}]
+ res (ch/process-changes data changes)]
+
+ ;; (println "==> BEFORE")
+ ;; (pprint (get-in data [:objects]))
+ ;; (println "==> AFTER")
+ ;; (pprint (get-in res [:objects]))
+
+ (t/is (= [frame-id shape-2-id shape-3-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+ (t/is (= [shape-2-id shape-3-id frame-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))))
+
+ (t/testing "preserve order on multiple shape mov 1"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :shapes [shape-3-id shape-2-id]
+ :parent-id uuid/zero
+ :index 0}]
+ res (ch/process-changes data changes)]
+
+ ;; (println "==> BEFORE")
+ ;; (pprint (get-in data [:objects]))
+ ;; (println "==> AFTER")
+ ;; (pprint (get-in res [:objects]))
+
+ (t/is (= [frame-id shape-2-id shape-3-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+ (t/is (= [shape-3-id shape-2-id frame-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))))
+
+ (t/testing "move inside->outside-inside"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :shapes [shape-2-id]
+ :parent-id frame-id}
+ {:type :mov-objects
+ :page-id page-id
+ :shapes [shape-2-id]
+ :parent-id uuid/zero}]
+ res (ch/process-changes data changes)]
+
+ (t/is (= (get-in res [:pages-index page-id :objects shape-1-id :frame-id])
+ (get-in data [:pages-index page-id :objects shape-1-id :frame-id])))
+ (t/is (= (get-in res [:pages-index page-id :objects shape-2-id :frame-id])
+ (get-in data [:pages-index page-id :objects shape-2-id :frame-id])))))))
+
+
+(t/deftest move-objects-2
+ (let [shape-1-id (uuid/custom 1 1)
+ shape-2-id (uuid/custom 1 2)
+ shape-3-id (uuid/custom 1 3)
+ shape-4-id (uuid/custom 1 4)
+ group-1-id (uuid/custom 1 5)
+ file-id (uuid/custom 1 6)
+ page-id (uuid/custom 0 1)
+
+ changes [{:type :add-obj
+ :page-id page-id
+ :id shape-1-id
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:id shape-1-id
+ :type :rect
+ :name "Shape a"})}
+ {:type :add-obj
+ :page-id page-id
+ :id shape-2-id
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:id shape-2-id
+ :type :rect
+ :name "Shape b"})}
+ {:type :add-obj
+ :page-id page-id
+ :id shape-3-id
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:id shape-3-id
+ :type :rect
+ :name "Shape c"})}
+ {:type :add-obj
+ :page-id page-id
+ :id shape-4-id
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:id shape-4-id
+ :type :rect
+ :name "Shape d"})}
+ {:type :add-obj
+ :page-id page-id
+ :id group-1-id
+ :frame-id uuid/zero
+ :obj (cts/setup-shape
+ {:id group-1-id
+ :type :group
+ :name "Group"})}
+ {:type :mov-objects
+ :page-id page-id
+ :parent-id group-1-id
+ :shapes [shape-1-id shape-2-id]}]
+
+ data (make-file-data file-id page-id)
+ data (ch/process-changes data changes)]
+
+ (t/testing "case 1"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id uuid/zero
+ :index 2
+ :shapes [shape-3-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; Before
+
+ (t/is (= [shape-3-id shape-4-id group-1-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+
+ ;; After
+
+ (t/is (= [shape-4-id shape-3-id group-1-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
+
+ ;; (pprint (get-in data [:pages-index page-id :objects uuid/zero]))
+ ;; (pprint (get-in res [:pages-index page-id :objects uuid/zero]))
+ ))
+
+ (t/testing "case 2"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-1-id
+ :index 2
+ :shapes [shape-3-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; Before
+
+ (t/is (= [shape-3-id shape-4-id group-1-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-2-id]
+ (get-in data [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; After:
+
+ (t/is (= [shape-4-id group-1-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-2-id shape-3-id]
+ (get-in res [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
+ ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
+ ))
+
+ (t/testing "case 3"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-1-id
+ :index 1
+ :shapes [shape-3-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; Before
+
+ (t/is (= [shape-3-id shape-4-id group-1-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-2-id]
+ (get-in data [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; After
+
+ (t/is (= [shape-4-id group-1-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-3-id shape-2-id]
+ (get-in res [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
+ ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
+ ))
+
+ (t/testing "case 4"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id group-1-id
+ :index 0
+ :shapes [shape-3-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; Before
+
+ (t/is (= [shape-3-id shape-4-id group-1-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-2-id]
+ (get-in data [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; After
+
+ (t/is (= [shape-4-id group-1-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-3-id shape-1-id shape-2-id]
+ (get-in res [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
+ ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
+ ))
+
+ (t/testing "case 5"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id uuid/zero
+ :index 0
+ :shapes [shape-2-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; (pprint (get-in data [:pages-index page-id :objects uuid/zero]))
+ ;; (pprint (get-in res [:pages-index page-id :objects uuid/zero]))
+
+ ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
+ ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
+
+ ;; Before
+
+ (t/is (= [shape-3-id shape-4-id group-1-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-2-id]
+ (get-in data [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; After
+
+ (t/is (= [shape-2-id shape-3-id shape-4-id group-1-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id]
+ (get-in res [:pages-index page-id :objects group-1-id :shapes])))))
+
+ (t/testing "case 6"
+ (let [changes [{:type :mov-objects
+ :page-id page-id
+ :parent-id uuid/zero
+ :index 0
+ :shapes [shape-2-id shape-1-id]}]
+ res (ch/process-changes data changes)]
+
+ ;; (pprint (get-in data [:pages-index page-id :objects uuid/zero]))
+ ;; (pprint (get-in res [:pages-index page-id :objects uuid/zero]))
+
+ ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
+ ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
+
+ ;; Before
+
+ (t/is (= [shape-3-id shape-4-id group-1-id]
+ (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (= [shape-1-id shape-2-id]
+ (get-in data [:pages-index page-id :objects group-1-id :shapes])))
+
+ ;; After
+
+ (t/is (= [shape-2-id shape-1-id shape-3-id shape-4-id group-1-id]
+ (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
+
+ (t/is (not= nil
+ (get-in res [:pages-index page-id :objects group-1-id])))))))
+
+(t/deftest set-guide-json-encode-decode
+ (let [schema ch/schema:set-guide-change
+ encode (sm/encoder schema (sm/json-transformer))
+ decode (sm/decoder schema (sm/json-transformer))]
+ (smt/check!
+ (smt/for [data (sg/generator schema)]
+ (let [data-1 (encode data)
+ data-2 (json-roundtrip data-1)
+ data-3 (decode data-2)]
+ ;; (app.common.pprint/pprint data-2)
+ ;; (app.common.pprint/pprint data-3)
+ (= data data-3)))
+ {:num 1000})))
+
+(t/deftest set-guide-1
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (smt/check!
+ (smt/for [change (sg/generator ch/schema:set-guide-change)]
+ (let [change (assoc change :page-id page-id)
+ result (ch/process-changes data [change])]
+ (= (:params change)
+ (get-in result [:pages-index page-id :guides (:id change)]))))
+ {:num 1000})))
+
+(t/deftest set-guide-2
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (smt/check!
+ (smt/for [change (->> (sg/generator ch/schema:set-guide-change)
+ (sg/filter :params))]
+ (let [change1 (assoc change :page-id page-id)
+ result1 (ch/process-changes data [change1])
+
+ change2 (assoc change1 :params nil)
+ result2 (ch/process-changes result1 [change2])]
+
+ (and (some? (:params change1))
+ (= (:params change1)
+ (get-in result1 [:pages-index page-id :guides (:id change1)]))
+
+ (nil? (:params change2))
+ (nil? (get-in result2 [:pages-index page-id :guides])))))
+
+ {:num 1000})))
+
+(t/deftest set-plugin-data-json-encode-decode
+ (let [schema ch/schema:set-plugin-data-change
+ encode (sm/encoder schema (sm/json-transformer))
+ decode (sm/decoder schema (sm/json-transformer))]
+ (smt/check!
+ (smt/for [data (sg/generator schema)]
+ (let [data-1 (encode data)
+ data-2 (json-roundtrip data-1)
+ data-3 (decode data-2)]
+ (= data data-3)))
+ {:num 1000})))
+
+(t/deftest set-plugin-data-gen-and-validate
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+ (smt/check!
+ (smt/for [change (sg/generator ch/schema:set-plugin-data-change)]
+ (sm/validate ch/schema:set-plugin-data-change change))
+ {:num 1000})))
+
+(t/deftest set-flow-json-encode-decode
+ (let [schema ch/schema:set-flow-change
+ encode (sm/encoder schema (sm/json-transformer))
+ decode (sm/decoder schema (sm/json-transformer))]
+ (smt/check!
+ (smt/for [data (sg/generator schema)]
+ (let [data-1 (encode data)
+ data-2 (json-roundtrip data-1)
+ data-3 (decode data-2)]
+ ;; (app.common.pprint/pprint data-2)
+ ;; (app.common.pprint/pprint data-3)
+ (= data data-3)))
+ {:num 1000})))
+
+(t/deftest set-flow-1
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (smt/check!
+ (smt/for [change (sg/generator ch/schema:set-flow-change)]
+ (let [change (assoc change :page-id page-id)
+ result (ch/process-changes data [change])]
+ (= (:params change)
+ (get-in result [:pages-index page-id :flows (:id change)]))))
+ {:num 1000})))
+
+(t/deftest set-flow-2
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (smt/check!
+ (smt/for [change (->> (sg/generator ch/schema:set-flow-change)
+ (sg/filter :params))]
+ (let [change1 (assoc change :page-id page-id)
+ result1 (ch/process-changes data [change1])
+
+ change2 (assoc change1 :params nil)
+ result2 (ch/process-changes result1 [change2])]
+
+ (and (some? (:params change1))
+ (= (:params change1)
+ (get-in result1 [:pages-index page-id :flows (:id change1)]))
+
+ (nil? (:params change2))
+ (nil? (get-in result2 [:pages-index page-id :flows])))))
+
+ {:num 1000})))
+
+(t/deftest set-default-grid-json-encode-decode
+ (let [schema ch/schema:set-default-grid-change
+ encode (sm/encoder schema (sm/json-transformer))
+ decode (sm/decoder schema (sm/json-transformer))]
+ (smt/check!
+ (smt/for [data (sg/generator schema)]
+ (let [data-1 (encode data)
+ data-2 (json-roundtrip data-1)
+ data-3 (decode data-2)]
+ ;; (println "==========")
+ ;; (app.common.pprint/pprint data-2)
+ ;; (app.common.pprint/pprint data-3)
+ ;; (println "==========")
+ (= data data-3)))
+ {:num 1000})))
+
+(t/deftest set-default-grid-1
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (smt/check!
+ (smt/for [change (sg/generator ch/schema:set-default-grid-change)]
+ (let [change (assoc change :page-id page-id)
+ result (ch/process-changes data [change])]
+ ;; (app.common.pprint/pprint change)
+ (= (:params change)
+ (get-in result [:pages-index page-id :default-grids (:grid-type change)]))))
+ {:num 1000})))
+
+(t/deftest set-default-grid-2
+ (let [file-id (uuid/custom 2 2)
+ page-id (uuid/custom 1 1)
+ data (make-file-data file-id page-id)]
+
+ (smt/check!
+ (smt/for [change (->> (sg/generator ch/schema:set-default-grid-change)
+ (sg/filter :params))]
+ (let [change1 (assoc change :page-id page-id)
+ result1 (ch/process-changes data [change1])
+
+ change2 (assoc change1 :params nil)
+ result2 (ch/process-changes result1 [change2])]
+
+ ;; (app.common.pprint/pprint change1)
+
+ (and (some? (:params change1))
+ (= (:params change1)
+ (get-in result1 [:pages-index page-id :default-grids (:grid-type change1)]))
+
+ (nil? (:params change2))
+ (nil? (get-in result2 [:pages-index page-id :default-grids])))))
+
+ {:num 1000})))
diff --git a/common/test/common_tests/logic/comp_touched_test.cljc b/common/test/common_tests/logic/comp_touched_test.cljc
index 1f16a21070..bb615f7ae2 100644
--- a/common/test/common_tests/logic/comp_touched_test.cljc
+++ b/common/test/common_tests/logic/comp_touched_test.cljc
@@ -289,42 +289,3 @@
(t/is (= (:fill-opacity fill') 1))
(t/is (= (:touched copy2-root') nil))
(t/is (= (:touched copy2-child') #{:fill-group}))))
-
-(t/deftest test-touched-when-changing-lower
- (let [;; ==== Setup
- file (-> (thf/sample-file :file1)
- (tho/add-nested-component-with-copy :component1
- :main1-root
- :main1-child
- :component2
- :main2-root
- :main2-nested-head
- :copy2-root
- :copy2-root-params {:children-labels [:copy2-child]}))
- page (thf/current-page file)
- copy2-child (ths/get-shape file :copy2-child)
-
- ;; ==== Action
- changes (cls/generate-update-shapes (pcb/empty-changes nil (:id page))
- #{(:id copy2-child)}
- (fn [shape]
- (assoc shape :fills (ths/sample-fills-color :fill-color "#fabada")))
- (:objects page)
- {})
-
- file' (thf/apply-changes file changes)
-
- ;; ==== Get
- copy2-root' (ths/get-shape file' :copy2-root)
- copy2-child' (ths/get-shape file' :copy2-child)
- fills' (:fills copy2-child')
- fill' (first fills')]
-
- ;; ==== Check
- (t/is (some? copy2-root'))
- (t/is (some? copy2-child'))
- (t/is (= (count fills') 1))
- (t/is (= (:fill-color fill') "#fabada"))
- (t/is (= (:fill-opacity fill') 1))
- (t/is (= (:touched copy2-root') nil))
- (t/is (= (:touched copy2-child') #{:fill-group}))))
\ No newline at end of file
diff --git a/common/test/common_tests/logic/hide_in_viewer_test.cljc b/common/test/common_tests/logic/hide_in_viewer_test.cljc
deleted file mode 100644
index 051a4732ea..0000000000
--- a/common/test/common_tests/logic/hide_in_viewer_test.cljc
+++ /dev/null
@@ -1,75 +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 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/common/test/common_tests/pages_test.cljc b/common/test/common_tests/pages_test.cljc
deleted file mode 100644
index 146242c262..0000000000
--- a/common/test/common_tests/pages_test.cljc
+++ /dev/null
@@ -1,740 +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 common-tests.pages-test
- (:require
- [app.common.features :as ffeat]
- [app.common.files.changes :as ch]
- [app.common.types.file :as ctf]
- [app.common.types.shape :as cts]
- [app.common.uuid :as uuid]
- [clojure.pprint :refer [pprint]]
- [clojure.test :as t]))
-
-(defn- make-file-data
- [file-id page-id]
- (binding [ffeat/*current* #{"components/v2"}]
- (ctf/make-file-data file-id page-id)))
-
-(t/deftest process-change-set-option
- (let [file-id (uuid/custom 2 2)
- page-id (uuid/custom 1 1)
- data (make-file-data file-id page-id)]
- (t/testing "Sets option single"
- (let [chg {:type :set-option
- :page-id page-id
- :option :test
- :value "test"}
- res (ch/process-changes data [chg])]
- (t/is (= "test" (get-in res [:pages-index page-id :options :test])))))
-
- (t/testing "Sets option nested"
- (let [chgs [{:type :set-option
- :page-id page-id
- :option [:values :test :a]
- :value "a"}
- {:type :set-option
- :page-id page-id
- :option [:values :test :b]
- :value "b"}]
- res (ch/process-changes data chgs)]
- (t/is (= {:a "a" :b "b"}
- (get-in res [:pages-index page-id :options :values :test])))))
-
- (t/testing "Remove option single"
- (let [chg {:type :set-option
- :page-id page-id
- :option :test
- :value nil}
- res (ch/process-changes data [chg])]
- (t/is (empty? (keys (get-in res [:pages-index page-id :options]))))))
-
- (t/testing "Remove option nested 1"
- (let [chgs [{:type :set-option
- :page-id page-id
- :option [:values :test :a]
- :value "a"}
- {:type :set-option
- :page-id page-id
- :option [:values :test :b]
- :value "b"}
- {:type :set-option
- :page-id page-id
- :option [:values :test]
- :value nil}]
- res (ch/process-changes data chgs)]
- (t/is (empty? (keys (get-in res [:pages-index page-id :options]))))))
-
- (t/testing "Remove option nested 2"
- (let [chgs [{:type :set-option
- :option [:values :test1 :a]
- :page-id page-id
- :value "a"}
- {:type :set-option
- :option [:values :test2 :b]
- :page-id page-id
- :value "b"}
- {:type :set-option
- :page-id page-id
- :option [:values :test2]
- :value nil}]
- res (ch/process-changes data chgs)]
- (t/is (= [:test1] (keys (get-in res [:pages-index page-id :options :values]))))))))
-
-(t/deftest process-change-add-obj
- (let [file-id (uuid/custom 2 2)
- page-id (uuid/custom 1 1)
- data (make-file-data file-id page-id)
- id-a (uuid/custom 2 1)
- id-b (uuid/custom 2 2)
- id-c (uuid/custom 2 3)]
-
- (t/testing "Adds single object"
- (let [chg {:type :add-obj
- :page-id page-id
- :id id-a
- :parent-id uuid/zero
- :frame-id uuid/zero
- :obj (cts/setup-shape
- {:frame-id uuid/zero
- :parent-id uuid/zero
- :id id-a
- :type :rect
- :name "rect"})}
- res (ch/process-changes data [chg])]
-
- (let [objects (get-in res [:pages-index page-id :objects])]
- (t/is (= 2 (count objects)))
- (t/is (= (:obj chg) (get objects id-a)))
-
- (t/is (= [id-a] (get-in objects [uuid/zero :shapes]))))))
-
-
- (t/testing "Adds several objects with different indexes"
- (let [chg (fn [id index]
- {:type :add-obj
- :page-id page-id
- :id id
- :frame-id uuid/zero
- :index index
- :obj (cts/setup-shape
- {:id id
- :frame-id uuid/zero
- :type :rect
- :name (str id)})})
- res (ch/process-changes data [(chg id-a 0)
- (chg id-b 0)
- (chg id-c 1)])]
-
- ;; (clojure.pprint/pprint data)
- ;; (clojure.pprint/pprint res)
- (let [objects (get-in res [:pages-index page-id :objects])]
- (t/is (= 4 (count objects)))
- (t/is (not (nil? (get objects id-a))))
- (t/is (not (nil? (get objects id-b))))
- (t/is (not (nil? (get objects id-c))))
- (t/is (= [id-b id-c id-a] (get-in objects [uuid/zero :shapes]))))))))
-
-(t/deftest process-change-mod-obj
- (let [file-id (uuid/custom 2 2)
- page-id (uuid/custom 1 1)
- data (make-file-data file-id page-id)]
-
- (t/testing "simple mod-obj"
- (let [chg {:type :mod-obj
- :page-id page-id
- :id uuid/zero
- :operations [{:type :set
- :attr :name
- :val "foobar"}]}
- res (ch/process-changes data [chg])]
- (let [objects (get-in res [:pages-index page-id :objects])]
- (t/is (= "foobar" (get-in objects [uuid/zero :name]))))))
-
- (t/testing "mod-obj for not existing shape"
- (let [chg {:type :mod-obj
- :page-id page-id
- :id (uuid/next)
- :operations [{:type :set
- :attr :name
- :val "foobar"}]}
- res (ch/process-changes data [chg])]
- (t/is (= res data))))))
-
-
-;; (t/deftest process-change-del-obj
-;; (let [file-id (uuid/custom 2 2)
-;; page-id (uuid/custom 1 1)
-;; id (uuid/custom 2 1)
-;; data (make-file-data file-id page-id)
-;; data (-> data
-;; (assoc-in [:pages-index page-id :objects uuid/zero :shapes] [id])
-;; (assoc-in [:pages-index page-id :objects id]
-;; {:id id
-;; :frame-id uuid/zero
-;; :type :rect
-;; :name "rect"}))]
-;; (t/testing "delete"
-;; (let [chg {:type :del-obj
-;; :page-id page-id
-;; :id id}
-;; res (ch/process-changes data [chg])]
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= 1 (count objects)))
-;; (t/is (= [] (get-in objects [uuid/zero :shapes]))))))
-
-;; (t/testing "delete idempotency"
-;; (let [chg {:type :del-obj
-;; :page-id page-id
-;; :id id}
-;; res1 (ch/process-changes data [chg])
-;; res2 (ch/process-changes res1 [chg])]
-
-;; (t/is (= res1 res2))
-;; (let [objects (get-in res1 [:pages-index page-id :objects])]
-;; (t/is (= 1 (count objects)))
-;; (t/is (= [] (get-in objects [uuid/zero :shapes]))))))))
-
-
-;; (t/deftest process-change-move-objects
-;; (let [frame-a-id (uuid/custom 0 1)
-;; frame-b-id (uuid/custom 0 2)
-;; group-a-id (uuid/custom 0 3)
-;; group-b-id (uuid/custom 0 4)
-;; rect-a-id (uuid/custom 0 5)
-;; rect-b-id (uuid/custom 0 6)
-;; rect-c-id (uuid/custom 0 7)
-;; rect-d-id (uuid/custom 0 8)
-;; rect-e-id (uuid/custom 0 9)
-
-;; file-id (uuid/custom 2 2)
-;; page-id (uuid/custom 1 1)
-;; data (make-file-data file-id page-id)
-
-;; data (update-in data [:pages-index page-id :objects]
-;; #(-> %
-;; (assoc-in [uuid/zero :shapes] [frame-a-id frame-b-id])
-;; (assoc-in [frame-a-id]
-;; {:id frame-a-id
-;; :parent-id uuid/zero
-;; :frame-id uuid/zero
-;; :name "Frame a"
-;; :shapes [group-a-id group-b-id rect-e-id]
-;; :type :frame})
-
-;; (assoc-in [frame-b-id]
-;; {:id frame-b-id
-;; :parent-id uuid/zero
-;; :frame-id uuid/zero
-;; :name "Frame b"
-;; :shapes []
-;; :type :frame})
-
-;; ;; Groups
-;; (assoc-in [group-a-id]
-;; {:id group-a-id
-;; :name "Group A"
-;; :type :group
-;; :parent-id frame-a-id
-;; :frame-id frame-a-id
-;; :shapes [rect-a-id rect-b-id rect-c-id]})
-;; (assoc-in [group-b-id]
-;; {:id group-b-id
-;; :name "Group B"
-;; :type :group
-;; :parent-id frame-a-id
-;; :frame-id frame-a-id
-;; :shapes [rect-d-id]})
-
-;; ;; Shapes
-;; (assoc-in [rect-a-id]
-;; {:id rect-a-id
-;; :name "Rect A"
-;; :type :rect
-;; :parent-id group-a-id
-;; :frame-id frame-a-id})
-
-;; (assoc-in [rect-b-id]
-;; {:id rect-b-id
-;; :name "Rect B"
-;; :type :rect
-;; :parent-id group-a-id
-;; :frame-id frame-a-id})
-
-;; (assoc-in [rect-c-id]
-;; {:id rect-c-id
-;; :name "Rect C"
-;; :type :rect
-;; :parent-id group-a-id
-;; :frame-id frame-a-id})
-
-;; (assoc-in [rect-d-id]
-;; {:id rect-d-id
-;; :name "Rect D"
-;; :parent-id group-b-id
-;; :type :rect
-;; :frame-id frame-a-id})
-
-;; (assoc-in [rect-e-id]
-;; {:id rect-e-id
-;; :name "Rect E"
-;; :type :rect
-;; :parent-id frame-a-id
-;; :frame-id frame-a-id})))]
-
-;; (t/testing "Create new group an add objects from the same group"
-;; (let [new-group-id (uuid/next)
-;; changes [{:type :add-obj
-;; :page-id page-id
-;; :id new-group-id
-;; :frame-id frame-a-id
-;; :obj {:id new-group-id
-;; :type :group
-;; :frame-id frame-a-id
-;; :name "Group C"}}
-;; {:type :mov-objects
-;; :page-id page-id
-;; :parent-id new-group-id
-;; :shapes [rect-b-id rect-c-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; (clojure.pprint/pprint data)
-;; ;; (println "===============")
-;; ;; (clojure.pprint/pprint res)
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= [group-a-id group-b-id rect-e-id new-group-id]
-;; (get-in objects [frame-a-id :shapes])))
-;; (t/is (= [rect-b-id rect-c-id]
-;; (get-in objects [new-group-id :shapes])))
-;; (t/is (= [rect-a-id]
-;; (get-in objects [group-a-id :shapes]))))))
-
-;; (t/testing "Move elements to an existing group at index"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-b-id
-;; :index 0
-;; :shapes [rect-a-id rect-c-id]}]
-;; res (ch/process-changes data changes)]
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= [group-a-id group-b-id rect-e-id]
-;; (get-in objects [frame-a-id :shapes])))
-;; (t/is (= [rect-b-id]
-;; (get-in objects [group-a-id :shapes])))
-;; (t/is (= [rect-a-id rect-c-id rect-d-id]
-;; (get-in objects [group-b-id :shapes]))))))
-
-;; (t/testing "Move elements from group and frame to an existing group at index"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-b-id
-;; :index 0
-;; :shapes [rect-a-id rect-e-id]}]
-;; res (ch/process-changes data changes)]
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= [group-a-id group-b-id]
-;; (get-in objects [frame-a-id :shapes])))
-;; (t/is (= [rect-b-id rect-c-id]
-;; (get-in objects [group-a-id :shapes])))
-;; (t/is (= [rect-a-id rect-e-id rect-d-id]
-;; (get-in objects [group-b-id :shapes]))))))
-
-;; (t/testing "Move elements from several groups"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-b-id
-;; :index 0
-;; :shapes [rect-a-id rect-e-id]}]
-;; res (ch/process-changes data changes)]
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= [group-a-id group-b-id]
-;; (get-in objects [frame-a-id :shapes])))
-;; (t/is (= [rect-b-id rect-c-id]
-;; (get-in objects [group-a-id :shapes])))
-;; (t/is (= [rect-a-id rect-e-id rect-d-id]
-;; (get-in objects [group-b-id :shapes]))))))
-
-;; (t/testing "Move all elements from a group"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-a-id
-;; :shapes [rect-d-id]}]
-;; res (ch/process-changes data changes)]
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= [group-a-id group-b-id rect-e-id]
-;; (get-in objects [frame-a-id :shapes])))
-;; (t/is (empty? (get-in objects [group-b-id :shapes]))))))
-
-;; (t/testing "Move elements to a group with different frame"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id frame-b-id
-;; :shapes [group-a-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects]))
-;; ;; (println "==========")
-;; ;; (pprint (get-in res [:pages-index page-id :objects]))
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; (t/is (= [group-b-id rect-e-id] (get-in objects [frame-a-id :shapes])))
-;; (t/is (= [group-a-id] (get-in objects [frame-b-id :shapes])))
-;; (t/is (= frame-b-id (get-in objects [group-a-id :frame-id])))
-;; (t/is (= frame-b-id (get-in objects [rect-a-id :frame-id])))
-;; (t/is (= frame-b-id (get-in objects [rect-b-id :frame-id])))
-;; (t/is (= frame-b-id (get-in objects [rect-c-id :frame-id]))))))
-
-;; (t/testing "Move elements to frame zero"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id uuid/zero
-;; :shapes [group-a-id]
-;; :index 0}]
-;; res (ch/process-changes data changes)]
-
-;; (let [objects (get-in res [:pages-index page-id :objects])]
-;; ;; (pprint (get-in data [:objects uuid/zero]))
-;; ;; (println "==========")
-;; ;; (pprint (get-in objects [uuid/zero]))
-
-;; (t/is (= [group-a-id frame-a-id frame-b-id]
-;; (get-in objects [uuid/zero :shapes]))))))
-
-;; (t/testing "Don't allow to move inside self"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-a-id
-;; :shapes [group-a-id]}]
-;; res (ch/process-changes data changes)]
-;; (t/is (= data res))))
-;; ))
-
-
-;; (t/deftest process-change-mov-objects-regression
-;; (let [shape-1-id (uuid/custom 2 1)
-;; shape-2-id (uuid/custom 2 2)
-;; shape-3-id (uuid/custom 2 3)
-;; frame-id (uuid/custom 1 1)
-;; file-id (uuid/custom 4 4)
-;; page-id (uuid/custom 0 1)
-
-;; changes [{:type :add-obj
-;; :id frame-id
-;; :page-id page-id
-;; :parent-id uuid/zero
-;; :frame-id uuid/zero
-;; :obj {:type :frame
-;; :name "Frame"}}
-;; {:type :add-obj
-;; :page-id page-id
-;; :frame-id frame-id
-;; :parent-id frame-id
-;; :id shape-1-id
-;; :obj {:type :rect
-;; :name "Shape 1"}}
-;; {:type :add-obj
-;; :page-id page-id
-;; :id shape-2-id
-;; :parent-id uuid/zero
-;; :frame-id uuid/zero
-;; :obj {:type :rect
-;; :name "Shape 2"}}
-
-;; {:type :add-obj
-;; :page-id page-id
-;; :id shape-3-id
-;; :parent-id uuid/zero
-;; :frame-id uuid/zero
-;; :obj {:type :rect
-;; :name "Shape 3"}}
-;; ]
-;; data (make-file-data file-id page-id)
-;; data (ch/process-changes data changes)]
-
-;; (t/testing "preserve order on multiple shape mov 1"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :shapes [shape-2-id shape-3-id]
-;; :parent-id uuid/zero
-;; :index 0}]
-;; res (ch/process-changes data changes)]
-
-;; ;; (println "==> BEFORE")
-;; ;; (pprint (get-in data [:objects]))
-;; ;; (println "==> AFTER")
-;; ;; (pprint (get-in res [:objects]))
-
-;; (t/is (= [frame-id shape-2-id shape-3-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-;; (t/is (= [shape-2-id shape-3-id frame-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))))
-
-;; (t/testing "preserve order on multiple shape mov 1"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :shapes [shape-3-id shape-2-id]
-;; :parent-id uuid/zero
-;; :index 0}]
-;; res (ch/process-changes data changes)]
-
-;; ;; (println "==> BEFORE")
-;; ;; (pprint (get-in data [:objects]))
-;; ;; (println "==> AFTER")
-;; ;; (pprint (get-in res [:objects]))
-
-;; (t/is (= [frame-id shape-2-id shape-3-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-;; (t/is (= [shape-3-id shape-2-id frame-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))))
-
-;; (t/testing "move inside->outside-inside"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :shapes [shape-2-id]
-;; :parent-id frame-id}
-;; {:type :mov-objects
-;; :page-id page-id
-;; :shapes [shape-2-id]
-;; :parent-id uuid/zero}]
-;; res (ch/process-changes data changes)]
-
-;; (t/is (= (get-in res [:pages-index page-id :objects shape-1-id :frame-id])
-;; (get-in data [:pages-index page-id :objects shape-1-id :frame-id])))
-;; (t/is (= (get-in res [:pages-index page-id :objects shape-2-id :frame-id])
-;; (get-in data [:pages-index page-id :objects shape-2-id :frame-id])))))
-
-;; ))
-
-
-;; (t/deftest process-change-move-objects-2
-;; (let [shape-1-id (uuid/custom 1 1)
-;; shape-2-id (uuid/custom 1 2)
-;; shape-3-id (uuid/custom 1 3)
-;; shape-4-id (uuid/custom 1 4)
-;; group-1-id (uuid/custom 1 5)
-;; file-id (uuid/custom 1 6)
-;; page-id (uuid/custom 0 1)
-
-;; changes [{:type :add-obj
-;; :page-id page-id
-;; :id shape-1-id
-;; :frame-id uuid/zero
-;; :obj {:id shape-1-id
-;; :type :rect
-;; :name "Shape a"}}
-;; {:type :add-obj
-;; :page-id page-id
-;; :id shape-2-id
-;; :frame-id uuid/zero
-;; :obj {:id shape-2-id
-;; :type :rect
-;; :name "Shape b"}}
-;; {:type :add-obj
-;; :page-id page-id
-;; :id shape-3-id
-;; :frame-id uuid/zero
-;; :obj {:id shape-3-id
-;; :type :rect
-;; :name "Shape c"}}
-;; {:type :add-obj
-;; :page-id page-id
-;; :id shape-4-id
-;; :frame-id uuid/zero
-;; :obj {:id shape-4-id
-;; :type :rect
-;; :name "Shape d"}}
-;; {:type :add-obj
-;; :page-id page-id
-;; :id group-1-id
-;; :frame-id uuid/zero
-;; :obj {:id group-1-id
-;; :type :group
-;; :name "Group"}}
-;; {:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-1-id
-;; :shapes [shape-1-id shape-2-id]}]
-
-;; data (make-file-data file-id page-id)
-;; data (ch/process-changes data changes)]
-
-;; (t/testing "case 1"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id uuid/zero
-;; :index 2
-;; :shapes [shape-3-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; Before
-
-;; (t/is (= [shape-3-id shape-4-id group-1-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; ;; After
-
-;; (t/is (= [shape-4-id shape-3-id group-1-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects uuid/zero]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects uuid/zero]))
-;; ))
-
-;; (t/testing "case 2"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-1-id
-;; :index 2
-;; :shapes [shape-3-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; Before
-
-;; (t/is (= [shape-3-id shape-4-id group-1-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-2-id]
-;; (get-in data [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; After:
-
-;; (t/is (= [shape-4-id group-1-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-2-id shape-3-id]
-;; (get-in res [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
-;; ))
-
-;; (t/testing "case 3"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-1-id
-;; :index 1
-;; :shapes [shape-3-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; Before
-
-;; (t/is (= [shape-3-id shape-4-id group-1-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-2-id]
-;; (get-in data [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; After
-
-;; (t/is (= [shape-4-id group-1-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-3-id shape-2-id]
-;; (get-in res [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
-;; ))
-
-;; (t/testing "case 4"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id group-1-id
-;; :index 0
-;; :shapes [shape-3-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; Before
-
-;; (t/is (= [shape-3-id shape-4-id group-1-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-2-id]
-;; (get-in data [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; After
-
-;; (t/is (= [shape-4-id group-1-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-3-id shape-1-id shape-2-id]
-;; (get-in res [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
-;; ))
-
-;; (t/testing "case 5"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id uuid/zero
-;; :index 0
-;; :shapes [shape-2-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects uuid/zero]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects uuid/zero]))
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
-
-;; ;; Before
-
-;; (t/is (= [shape-3-id shape-4-id group-1-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-2-id]
-;; (get-in data [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; After
-
-;; (t/is (= [shape-2-id shape-3-id shape-4-id group-1-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id]
-;; (get-in res [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ))
-
-;; (t/testing "case 6"
-;; (let [changes [{:type :mov-objects
-;; :page-id page-id
-;; :parent-id uuid/zero
-;; :index 0
-;; :shapes [shape-2-id shape-1-id]}]
-;; res (ch/process-changes data changes)]
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects uuid/zero]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects uuid/zero]))
-
-;; ;; (pprint (get-in data [:pages-index page-id :objects group-1-id]))
-;; ;; (pprint (get-in res [:pages-index page-id :objects group-1-id]))
-
-;; ;; Before
-
-;; (t/is (= [shape-3-id shape-4-id group-1-id]
-;; (get-in data [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (= [shape-1-id shape-2-id]
-;; (get-in data [:pages-index page-id :objects group-1-id :shapes])))
-
-;; ;; After
-
-;; (t/is (= [shape-2-id shape-1-id shape-3-id shape-4-id group-1-id]
-;; (get-in res [:pages-index page-id :objects uuid/zero :shapes])))
-
-;; (t/is (not= nil
-;; (get-in res [:pages-index page-id :objects group-1-id])))
-
-;; ))
-
-;; ))
diff --git a/common/test/common_tests/schema_test.cljc b/common/test/common_tests/schema_test.cljc
new file mode 100644
index 0000000000..05b2c2ae65
--- /dev/null
+++ b/common/test/common_tests/schema_test.cljc
@@ -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 common-tests.schema-test
+ (:require
+ [app.common.schema :as sm]
+ [app.common.schema.generators :as sg]
+ [clojure.test :as t]))
+
+(t/deftest test-set-of-email
+ (t/testing "decoding"
+ (let [candidate1 "a@b.com a@c.net"
+ schema [::sm/set ::sm/email]
+ result1 (sm/decode schema candidate1 sm/string-transformer)
+ result2 (sm/decode schema candidate1 sm/json-transformer)]
+ (t/is (= result1 #{"a@b.com" "a@c.net"}))
+ (t/is (= result2 #{"a@b.com" "a@c.net"}))))
+
+ (t/testing "encoding"
+ (let [candidate #{"a@b.com" "a@c.net"}
+ schema [::sm/set ::sm/email]
+ result1 (sm/encode schema candidate sm/string-transformer)
+ result2 (sm/decode schema candidate sm/json-transformer)]
+ (t/is (= result1 "a@b.com, a@c.net"))
+ (t/is (= result2 candidate))))
+
+ (t/testing "validate"
+ (let [candidate #{"a@b.com" "a@c.net"}
+ schema [::sm/set ::sm/email]]
+
+ (t/is (true? (sm/validate schema candidate)))
+ (t/is (true? (sm/validate schema #{})))
+ (t/is (false? (sm/validate schema #{"a"})))))
+
+ (t/testing "generate"
+ (let [schema [::sm/set ::sm/email]
+ value (sg/generate schema)]
+ (t/is (true? (sm/validate schema (sg/generate schema)))))))
diff --git a/common/test/common_tests/types/shape_decode_encode_test.cljc b/common/test/common_tests/types/shape_decode_encode_test.cljc
new file mode 100644
index 0000000000..2434f5fc64
--- /dev/null
+++ b/common/test/common_tests/types/shape_decode_encode_test.cljc
@@ -0,0 +1,151 @@
+;; 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.shape-decode-encode-test
+ (:require
+ [app.common.json :as json]
+ [app.common.pprint :as pp]
+ [app.common.schema :as sm]
+ [app.common.schema.generators :as sg]
+ [app.common.schema.test :as smt]
+ [app.common.types.color :refer [schema:color schema:gradient]]
+ [app.common.types.plugins :refer [schema:plugin-data]]
+ [app.common.types.shape :as tsh]
+ [app.common.types.shape.interactions :refer [schema:animation schema:interaction]]
+ [app.common.types.shape.path :refer [schema:path-content]]
+ [app.common.types.shape.shadow :refer [schema:shadow]]
+ [app.common.uuid :as uuid]
+ [clojure.test :as t]))
+
+(defn json-roundtrip
+ [data]
+ (-> data
+ (json/encode :key-fn json/write-camel-key)
+ (json/decode :key-fn json/read-kebab-key)))
+
+(t/deftest map-of-with-strings
+ (let [schema [:map [:data [:map-of :string :int]]]
+ encode (sm/encoder schema (sm/json-transformer))
+ decode (sm/decoder schema (sm/json-transformer))
+
+ data1 {:data {"foo/bar" 1
+ "foo-baz" 2}}
+
+ data2 (encode data1)
+ data3 (json-roundtrip data2)
+ data4 (decode data3)]
+
+ ;; (pp/pprint data1)
+ ;; (pp/pprint data2)
+ ;; (pp/pprint data3)
+ ;; (pp/pprint data4)
+
+ (t/is (= data1 data2))
+ (t/is (= data1 data4))
+ (t/is (not= data1 data3))))
+
+(t/deftest gradient-json-roundtrip
+ (let [encode (sm/encoder schema:gradient (sm/json-transformer))
+ decode (sm/decoder schema:gradient (sm/json-transformer))]
+ (smt/check!
+ (smt/for [gradient (sg/generator schema:gradient)]
+ (let [gradient-1 (encode gradient)
+ gradient-2 (json-roundtrip gradient-1)
+ gradient-3 (decode gradient-2)]
+ ;; (app.common.pprint/pprint gradient)
+ ;; (app.common.pprint/pprint gradient-3)
+ (= gradient gradient-3)))
+ {:num 500})))
+
+(t/deftest color-json-roundtrip
+ (let [encode (sm/encoder schema:color (sm/json-transformer))
+ decode (sm/decoder schema:color (sm/json-transformer))]
+ (smt/check!
+ (smt/for [color (sg/generator schema:color)]
+ (let [color-1 (encode color)
+ color-2 (json-roundtrip color-1)
+ color-3 (decode color-2)]
+ ;; (app.common.pprint/pprint color)
+ ;; (app.common.pprint/pprint color-3)
+ (= color color-3)))
+ {:num 500})))
+
+(t/deftest shape-shadow-json-roundtrip
+ (let [encode (sm/encoder schema:shadow (sm/json-transformer))
+ decode (sm/decoder schema:shadow (sm/json-transformer))]
+ (smt/check!
+ (smt/for [shadow (sg/generator schema:shadow)]
+ (let [shadow-1 (encode shadow)
+ shadow-2 (json-roundtrip shadow-1)
+ shadow-3 (decode shadow-2)]
+ ;; (app.common.pprint/pprint shadow)
+ ;; (app.common.pprint/pprint shadow-3)
+ (= shadow shadow-3)))
+ {:num 500})))
+
+(t/deftest shape-animation-json-roundtrip
+ (let [encode (sm/encoder schema:animation (sm/json-transformer))
+ decode (sm/decoder schema:animation (sm/json-transformer))]
+ (smt/check!
+ (smt/for [animation (sg/generator schema:animation)]
+ (let [animation-1 (encode animation)
+ animation-2 (json-roundtrip animation-1)
+ animation-3 (decode animation-2)]
+ ;; (app.common.pprint/pprint animation)
+ ;; (app.common.pprint/pprint animation-3)
+ (= animation animation-3)))
+ {:num 500})))
+
+(t/deftest shape-interaction-json-roundtrip
+ (let [encode (sm/encoder schema:interaction (sm/json-transformer))
+ decode (sm/decoder schema:interaction (sm/json-transformer))]
+ (smt/check!
+ (smt/for [interaction (sg/generator schema:interaction)]
+ (let [interaction-1 (encode interaction)
+ interaction-2 (json-roundtrip interaction-1)
+ interaction-3 (decode interaction-2)]
+ ;; (app.common.pprint/pprint interaction)
+ ;; (app.common.pprint/pprint interaction-3)
+ (= interaction interaction-3)))
+ {:num 500})))
+
+
+(t/deftest shape-path-content-json-roundtrip
+ (let [encode (sm/encoder schema:path-content (sm/json-transformer))
+ decode (sm/decoder schema:path-content (sm/json-transformer))]
+ (smt/check!
+ (smt/for [path-content (sg/generator schema:path-content)]
+ (let [path-content-1 (encode path-content)
+ path-content-2 (json-roundtrip path-content-1)
+ path-content-3 (decode path-content-2)]
+ ;; (app.common.pprint/pprint path-content)
+ ;; (app.common.pprint/pprint path-content-3)
+ (= path-content path-content-3)))
+ {:num 500})))
+
+(t/deftest plugin-data-json-roundtrip
+ (let [encode (sm/encoder schema:plugin-data (sm/json-transformer))
+ decode (sm/decoder schema:plugin-data (sm/json-transformer))]
+ (smt/check!
+ (smt/for [data (sg/generator schema:plugin-data)]
+ (let [data-1 (encode data)
+ data-2 (json-roundtrip data-1)
+ data-3 (decode data-2)]
+ (= data data-3)))
+ {:num 500})))
+
+(t/deftest shape-json-roundtrip
+ (let [encode (sm/encoder ::tsh/shape (sm/json-transformer))
+ decode (sm/decoder ::tsh/shape (sm/json-transformer))]
+ (smt/check!
+ (smt/for [shape (sg/generator ::tsh/shape)]
+ (let [shape-1 (encode shape)
+ shape-2 (json-roundtrip shape-1)
+ shape-3 (decode shape-2)]
+ ;; (app.common.pprint/pprint shape)
+ ;; (app.common.pprint/pprint shape-3)
+ (= shape shape-3)))
+ {:num 1000})))
diff --git a/common/test/common_tests/types_test.cljc b/common/test/common_tests/types_test.cljc
deleted file mode 100644
index e5326250da..0000000000
--- a/common/test/common_tests/types_test.cljc
+++ /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
-
-(ns common-tests.types-test
- (:require
- [app.common.schema :as sm]
- [app.common.schema.generators :as sg]
- [app.common.transit :as transit]
- [app.common.types.file :as ctf]
- [app.common.types.page :as ctp]
- [app.common.types.shape :as cts]
- [clojure.test :as t]))
-
-(t/deftest transit-encode-decode-with-shape
- (sg/check!
- (sg/for [fdata (sg/generator ::cts/shape)]
- (let [res (-> fdata transit/encode-str transit/decode-str)]
- (t/is (= res fdata))))
- {:num 18 :seed 1683548002439}))
-
-(t/deftest types-shape-spec
- (sg/check!
- (sg/for [fdata (sg/generator ::cts/shape)]
- (binding [app.common.data.macros/*assert-context* true]
- (t/is (sm/validate ::cts/shape fdata))))))
-
-(t/deftest types-page-spec
- (-> (sg/for [fdata (sg/generator ::ctp/page)]
- (t/is (sm/validate ::ctp/page fdata)))
- (sg/check! {:num 30})))
diff --git a/common/test/common_tests/uuid_test.cljc b/common/test/common_tests/uuid_test.cljc
deleted file mode 100644
index c747b82dbe..0000000000
--- a/common/test/common_tests/uuid_test.cljc
+++ /dev/null
@@ -1,18 +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 common-tests.uuid-test
- (:require
- [app.common.schema :as sm]
- [app.common.schema.generators :as sg]
- [clojure.test :as t]))
-
-(t/deftest non-repeating-uuid-next-1-schema
- (sg/check!
- (sg/for [uuid1 (sg/generator ::sm/uuid)
- uuid2 (sg/generator ::sm/uuid)]
- (t/is (not= uuid1 uuid2)))
- {:num 100}))
diff --git a/docker/devenv/Dockerfile b/docker/devenv/Dockerfile
index 7182905a64..3b292c69e4 100644
--- a/docker/devenv/Dockerfile
+++ b/docker/devenv/Dockerfile
@@ -1,5 +1,5 @@
FROM debian:bookworm
-LABEL maintainer="Andrey Antukh "
+LABEL maintainer="Penpot "
ARG DEBIAN_FRONTEND=noninteractive
@@ -8,6 +8,8 @@ ENV NODE_VERSION=v20.11.1 \
CLJKONDO_VERSION=2024.03.13 \
BABASHKA_VERSION=1.3.189 \
CLJFMT_VERSION=0.12.0 \
+ RUSTUP_VERSION=1.27.1 \
+ RUST_VERSION=1.81.0 \
LANG=en_US.UTF-8 \
LC_ALL=en_US.UTF-8
@@ -242,6 +244,27 @@ RUN set -ex; \
mv /tmp/mc /usr/local/bin/; \
chmod +x /usr/local/bin/mc;
+# Install Rust toolchain
+ENV RUSTUP_HOME=/usr/local/rustup \
+ CARGO_HOME=/usr/local/cargo \
+ PATH=/usr/local/cargo/bin:$PATH;
+
+RUN set -eux; \
+ # Same steps as in Rust official Docker image https://github.com/rust-lang/docker-rust/blob/9f287282d513a84cb7c7f38f197838f15d37b6a9/1.81.0/bookworm/Dockerfile
+ dpkgArch="$(dpkg --print-architecture)"; \
+ case "${dpkgArch##*-}" in \
+ amd64) rustArch='x86_64-unknown-linux-gnu'; rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' ;; \
+ arm64) rustArch='aarch64-unknown-linux-gnu'; rustupSha256='1cffbf51e63e634c746f741de50649bbbcbd9dbe1de363c9ecef64e278dba2b2' ;; \
+ *) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; \
+ esac; \
+ url="https://static.rust-lang.org/rustup/archive/${RUSTUP_VERSION}/${rustArch}/rustup-init"; \
+ wget "$url"; \
+ echo "${rustupSha256} *rustup-init" | sha256sum -c -; \
+ chmod +x rustup-init; \
+ ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; \
+ rm rustup-init; \
+ chmod -R a+w $RUSTUP_HOME $CARGO_HOME;
+
WORKDIR /home
COPY files/nginx.conf /etc/nginx/nginx.conf
diff --git a/docker/devenv/docker-compose.yaml b/docker/devenv/docker-compose.yaml
index 0d6aa068f4..f4e9b0e792 100644
--- a/docker/devenv/docker-compose.yaml
+++ b/docker/devenv/docker-compose.yaml
@@ -125,3 +125,7 @@ services:
ports:
- "10389:10389"
- "10636:10636"
+ ulimits:
+ nofile:
+ soft: "1024"
+ hard: "1024"
\ No newline at end of file
diff --git a/docker/devenv/files/bashrc b/docker/devenv/files/bashrc
index 745e3f901a..da3fdfde08 100644
--- a/docker/devenv/files/bashrc
+++ b/docker/devenv/files/bashrc
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
export PATH=/usr/lib/jvm/openjdk/bin:/usr/local/nodejs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
-export JAVA_OPTS="-Xmx1000m -Xms50m"
+export JAVA_OPTS=${JAVA_OPTS:-"-Xmx1000m -Xms200m"};
alias l='ls --color -GFlh'
alias rm='rm -r'
@@ -9,6 +9,9 @@ alias ls='ls --color -F'
alias lsd='ls -d *(/)'
alias lsf='ls -h *(.)'
+# init Cargo / Rust env
+. "/usr/local/cargo/env"
+
# include .bashrc if it exists
if [ -f "$HOME/.bashrc.local" ]; then
. "$HOME/.bashrc.local"
diff --git a/docker/images/Dockerfile.backend b/docker/images/Dockerfile.backend
index db789dfd25..c68e5181c8 100644
--- a/docker/images/Dockerfile.backend
+++ b/docker/images/Dockerfile.backend
@@ -1,6 +1,6 @@
FROM ubuntu:22.04
+LABEL maintainer="Penpot "
-LABEL maintainer="Andrey Antukh "
ENV LANG='en_US.UTF-8' \
LC_ALL='en_US.UTF-8' \
JAVA_HOME="/opt/jdk" \
diff --git a/docker/images/Dockerfile.exporter b/docker/images/Dockerfile.exporter
index e4fceec85f..3b62176fcd 100644
--- a/docker/images/Dockerfile.exporter
+++ b/docker/images/Dockerfile.exporter
@@ -1,5 +1,5 @@
FROM ubuntu:22.04
-LABEL maintainer="Andrey Antukh "
+LABEL maintainer="Penpot "
ENV LANG=en_US.UTF-8 \
LC_ALL=en_US.UTF-8 \
diff --git a/docker/images/Dockerfile.frontend b/docker/images/Dockerfile.frontend
index 0edc1b2d9d..25ee128cef 100644
--- a/docker/images/Dockerfile.frontend
+++ b/docker/images/Dockerfile.frontend
@@ -1,5 +1,7 @@
-FROM nginx:1.23
-LABEL maintainer="Andrey Antukh "
+FROM nginxinc/nginx-unprivileged:1.27.1
+LABEL maintainer="Penpot "
+
+USER root
RUN set -ex; \
useradd -U -M -u 1001 -s /bin/false -d /opt/penpot penpot; \
@@ -12,5 +14,13 @@ ADD ./files/nginx.conf /etc/nginx/nginx.conf.template
ADD ./files/nginx-mime.types /etc/nginx/mime.types
ADD ./files/nginx-entrypoint.sh /entrypoint.sh
+RUN chown -R 1001:0 /var/cache/nginx; \
+ chmod -R g+w /var/cache/nginx; \
+ chown -R 1001:0 /etc/nginx; \
+ chmod -R g+w /etc/nginx; \
+ chown -R 1001:0 /var/www; \
+ chmod -R g+w /var/www;
+
+USER penpot:penpot
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
diff --git a/docker/images/docker-compose.yaml b/docker/images/docker-compose.yaml
index d16402ce54..ccc1021739 100644
--- a/docker/images/docker-compose.yaml
+++ b/docker/images/docker-compose.yaml
@@ -1,3 +1,34 @@
+## Common flags:
+# demo-users
+# email-verification
+# log-emails
+# log-invitation-tokens
+# login-with-github
+# login-with-gitlab
+# login-with-google
+# login-with-ldap
+# login-with-oidc
+# login-with-password
+# prepl-server
+# registration
+# secure-session-cookies
+# smtp
+# smtp-debug
+# telemetry
+# webhooks
+##
+## You can read more about all available flags and other
+## environment variables here:
+## https://help.penpot.app/technical-guide/configuration/#advanced-configuration
+#
+# WARNING: if you're exposing Penpot to the internet, you should remove the flags
+# 'disable-secure-session-cookies' and 'disable-email-verification'
+x-flags: &penpot-flags
+ PENPOT_FLAGS: disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies
+
+x-uri: &penpot-public-uri
+ PENPOT_PUBLIC_URI: http://localhost:9001
+
networks:
penpot:
@@ -35,7 +66,7 @@ services:
image: "penpotapp/frontend:latest"
restart: always
ports:
- - 9001:80
+ - 9001:8080
volumes:
- penpot_assets:/opt/data/assets
@@ -71,26 +102,8 @@ services:
# - "traefik.http.routers.penpot-https.tls=true"
# - "traefik.http.routers.penpot-https.tls.certresolver=letsencrypt"
- ## 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.
-
environment:
- ## Relevant flags for frontend:
- ## - demo-users
- ## - login-with-github
- ## - login-with-gitlab
- ## - login-with-google
- ## - login-with-ldap
- ## - login-with-oidc
- ## - login-with-password
- ## - registration
- ## - webhooks
- ##
- ## You can read more about all available flags on:
- ## https://help.penpot.app/technical-guide/configuration/#advanced-configuration
-
- - PENPOT_FLAGS=enable-registration enable-login-with-password
+ << : *penpot-flags
penpot-backend:
image: "penpotapp/backend:latest"
@@ -110,31 +123,7 @@ services:
## container.
environment:
-
- ## Relevant flags for backend:
- ## - demo-users
- ## - email-verification
- ## - log-emails
- ## - log-invitation-tokens
- ## - login-with-github
- ## - login-with-gitlab
- ## - login-with-google
- ## - login-with-ldap
- ## - login-with-oidc
- ## - login-with-password
- ## - registration
- ## - secure-session-cookies
- ## - smtp
- ## - smtp-debug
- ## - telemetry
- ## - webhooks
- ## - prepl-server
- ##
- ## You can read more about all available flags and other
- ## environment variables for the backend here:
- ## https://help.penpot.app/technical-guide/configuration/#advanced-configuration
-
- - PENPOT_FLAGS=enable-registration enable-login-with-password disable-email-verification enable-smtp enable-prepl-server
+ << : [*penpot-flags, *penpot-public-uri]
## Penpot SECRET KEY. It serves as a master key from which other keys for subsystems
## (eg http sessions, or invitations) are derived.
@@ -147,70 +136,61 @@ services:
##
## python3 -c "import secrets; print(secrets.token_urlsafe(64))"
- # - PENPOT_SECRET_KEY=my-insecure-key
+ # PENPOT_SECRET_KEY: my-insecure-key
## The PREPL host. Mainly used for external programatic access to penpot backend
## (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 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
- ## not going to serve penpot under HTTPS.
-
- - PENPOT_PUBLIC_URI=http://localhost:9001
+ # PENPOT_PREPL_HOST: 0.0.0.0
## Database connection parameters. Don't touch them unless you are using custom
## postgresql connection parameters.
- - PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot
- - PENPOT_DATABASE_USERNAME=penpot
- - PENPOT_DATABASE_PASSWORD=penpot
+ PENPOT_DATABASE_URI: postgresql://penpot-postgres/penpot
+ PENPOT_DATABASE_USERNAME: penpot
+ PENPOT_DATABASE_PASSWORD: penpot
## Redis is used for the websockets notifications. Don't touch unless the redis
## container has different parameters or different name.
- - PENPOT_REDIS_URI=redis://penpot-redis/0
+ PENPOT_REDIS_URI: redis://penpot-redis/0
## Default configuration for assets storage: using filesystem based with all files
## stored in a docker volume.
- - PENPOT_ASSETS_STORAGE_BACKEND=assets-fs
- - PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets
+ PENPOT_ASSETS_STORAGE_BACKEND: assets-fs
+ PENPOT_STORAGE_ASSETS_FS_DIRECTORY: /opt/data/assets
## Also can be configured to to use a S3 compatible storage
## service like MiniIO. Look below for minio service setup.
- # - AWS_ACCESS_KEY_ID=
- # - AWS_SECRET_ACCESS_KEY=
- # - PENPOT_ASSETS_STORAGE_BACKEND=assets-s3
- # - PENPOT_STORAGE_ASSETS_S3_ENDPOINT=http://penpot-minio:9000
- # - PENPOT_STORAGE_ASSETS_S3_BUCKET=
+ # AWS_ACCESS_KEY_ID:
+ # AWS_SECRET_ACCESS_KEY:
+ # PENPOT_ASSETS_STORAGE_BACKEND: assets-s3
+ # PENPOT_STORAGE_ASSETS_S3_ENDPOINT: http://penpot-minio:9000
+ # 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 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.
- - PENPOT_TELEMETRY_ENABLED=true
+ PENPOT_TELEMETRY_ENABLED: true
## Example SMTP/Email configuration. By default, emails are sent to the mailcatch
## 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 the mailcatch service is configured.
- - PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com
- - PENPOT_SMTP_DEFAULT_REPLY_TO=no-reply@example.com
- - PENPOT_SMTP_HOST=penpot-mailcatch
- - PENPOT_SMTP_PORT=1025
- - PENPOT_SMTP_USERNAME=
- - PENPOT_SMTP_PASSWORD=
- - PENPOT_SMTP_TLS=false
- - PENPOT_SMTP_SSL=false
+ PENPOT_SMTP_DEFAULT_FROM: no-reply@example.com
+ PENPOT_SMTP_DEFAULT_REPLY_TO: no-reply@example.com
+ PENPOT_SMTP_HOST: penpot-mailcatch
+ PENPOT_SMTP_PORT: 1025
+ PENPOT_SMTP_USERNAME:
+ PENPOT_SMTP_PASSWORD:
+ PENPOT_SMTP_TLS: false
+ PENPOT_SMTP_SSL: false
penpot-exporter:
image: "penpotapp/exporter:latest"
@@ -221,10 +201,10 @@ services:
environment:
# Don't touch it; this uses an internal docker network to
# communicate with the frontend.
- - PENPOT_PUBLIC_URI=http://penpot-frontend
+ PENPOT_PUBLIC_URI: http://penpot-frontend
## Redis is used for the websockets notifications.
- - PENPOT_REDIS_URI=redis://penpot-redis/0
+ PENPOT_REDIS_URI: redis://penpot-redis/0
penpot-postgres:
image: "postgres:15"
diff --git a/docker/images/files/nginx.conf b/docker/images/files/nginx.conf
index 8d0fff0a24..ee2f641750 100644
--- a/docker/images/files/nginx.conf
+++ b/docker/images/files/nginx.conf
@@ -1,6 +1,5 @@
-user www-data;
worker_processes auto;
-pid /run/nginx.pid;
+pid /tmp/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
@@ -9,6 +8,12 @@ events {
}
http {
+ client_body_temp_path /tmp/client_temp;
+ proxy_temp_path /tmp/proxy_temp_path;
+ fastcgi_temp_path /tmp/fastcgi_temp;
+ uwsgi_temp_path /tmp/uwsgi_temp;
+ scgi_temp_path /tmp/scgi_temp;
+
sendfile on;
tcp_nopush on;
tcp_nodelay on;
@@ -38,7 +43,10 @@ http {
gzip_types text/plain text/css text/javascript application/javascript application/json application/transit+json;
- resolver $PENPOT_INTERNAL_RESOLVER;
+ proxy_buffer_size 16k;
+ proxy_busy_buffers_size 24k; # essentially, proxy_buffer_size + 2 small buffers of 4k
+ proxy_buffers 32 4k;
+ resolver $PENPOT_INTERNAL_RESOLVER ipv6=off;
map $http_upgrade $connection_upgrade {
default upgrade;
@@ -53,7 +61,7 @@ http {
include /etc/nginx/overrides.d/*.conf;
server {
- listen 80 default_server;
+ listen 8080 default_server;
server_name _;
client_max_body_size 100M;
diff --git a/exporter/scripts/build b/exporter/scripts/build
index 0044605847..7ad0aecf52 100755
--- a/exporter/scripts/build
+++ b/exporter/scripts/build
@@ -10,7 +10,7 @@ rm -rf target
export NODE_ENV=production;
# Build the application
-clojure -J-Xms100M -J-Xmx1000M -J-XX:+UseSerialGC -M:dev:shadow-cljs release main;
+clojure -M:dev:shadow-cljs release main;
# Remove source
rm -rf target/app;
diff --git a/exporter/shadow-cljs.edn b/exporter/shadow-cljs.edn
index 1c24414c61..9107cbcb7a 100644
--- a/exporter/shadow-cljs.edn
+++ b/exporter/shadow-cljs.edn
@@ -15,8 +15,7 @@
:output-wrapper false}
:release
- {:closure-defines {goog.debug.LOGGING_ENABLED true}
- :compiler-options
+ {:compiler-options
{:fn-invoke-direct true
:source-map true
:optimizations #shadow/env ["PENPOT_BUILD_OPTIMIZATIONS" :as :keyword :default :simple]
diff --git a/exporter/src/app/config.cljs b/exporter/src/app/config.cljs
index 4c00880776..6ca84f584c 100644
--- a/exporter/src/app/config.cljs
+++ b/exporter/src/app/config.cljs
@@ -26,16 +26,24 @@
(def ^:private
schema:config
- (sm/define
- [:map {:title "config"}
- [:public-uri {:optional true} ::sm/uri]
- [:host {:optional true} :string]
- [:tenant {:optional true} :string]
- [:flags {:optional true} ::sm/set-of-keywords]
- [:redis-uri {:optional true} :string]
- [:tempdir {:optional true} :string]
- [:browser-pool-max {:optional true} :int]
- [:browser-pool-min {:optional true} :int]]))
+ [:map {:title "config"}
+ [:public-uri {:optional true} ::sm/uri]
+ [:host {:optional true} :string]
+ [:tenant {:optional true} :string]
+ [:flags {:optional true} [::sm/set :keyword]]
+ [:redis-uri {:optional true} :string]
+ [:tempdir {:optional true} :string]
+ [:browser-pool-max {:optional true} ::sm/int]
+ [:browser-pool-min {:optional true} ::sm/int]])
+
+(def ^:private decode-config
+ (sm/decoder schema:config sm/string-transformer))
+
+(def ^:private explain-config
+ (sm/explainer schema:config))
+
+(def ^:private valid-config?
+ (sm/validator schema:config))
(defn- parse-flags
[config]
@@ -60,15 +68,15 @@
[]
(let [env (read-env "penpot")
env (d/without-nils env)
- data (merge defaults env)]
+ data (merge defaults env)
+ data (decode-config data)]
- (try
- (sm/conform! schema:config data)
- (catch :default cause
- (if-let [explain (some->> cause ex-data ::sm/explain)]
- (println (sm/humanize-explain explain))
- (js/console.error cause))
- (process/exit -1)))))
+ (when-not (valid-config? data)
+ (let [explain (explain-config data)]
+ (println (sm/humanize-explain explain))
+ (process/exit -1)))
+
+ data))
(def config
(prepare-config))
diff --git a/frontend/.nvmrc b/frontend/.nvmrc
index 55d1782166..ee09fac75c 100644
--- a/frontend/.nvmrc
+++ b/frontend/.nvmrc
@@ -1 +1 @@
-v14.15.0
+v20.11.1
diff --git a/frontend/deps.edn b/frontend/deps.edn
index ec67bf5624..f13d93fc2f 100644
--- a/frontend/deps.edn
+++ b/frontend/deps.edn
@@ -20,8 +20,8 @@
:git/url "https://github.com/funcool/beicon.git"}
funcool/rumext
- {:git/tag "v2.12"
- :git/sha "ab819f5"
+ {:git/tag "v2.14"
+ :git/sha "0016623"
:git/url "https://github.com/funcool/rumext.git"}
instaparse/instaparse {:mvn/version "1.5.0"}
diff --git a/frontend/package.json b/frontend/package.json
index 047329918a..8c9ce3954d 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -5,9 +5,7 @@
"author": "Kaleidos INC",
"private": true,
"packageManager": "yarn@4.3.1",
- "browserslist": [
- "defaults"
- ],
+ "browserslist": ["defaults"],
"type": "module",
"repository": {
"type": "git",
@@ -20,9 +18,9 @@
"build:app:assets": "node ./scripts/build-app-assets.js",
"build:storybook": "yarn run build:storybook:assets && yarn run build:storybook:cljs && storybook build",
"build:storybook:assets": "node ./scripts/build-storybook-assets.js",
- "build:storybook:cljs": "clojure -M:dev:shadow-cljs release storybook",
+ "build:storybook:cljs": "clojure -M:dev:shadow-cljs compile storybook",
+ "build:renderer": "yarn run wasm-pack build ./renderer --target web --out-dir ../resources/public/js/renderer --release",
"e2e:server": "node ./scripts/e2e-server.js",
- "e2e:test": "playwright test --project default",
"fmt:clj": "cljfmt fix --parallel=true src/ test/",
"fmt:clj:check": "cljfmt check --parallel=false src/ test/",
"fmt:js": "yarn run prettier -c src/**/*.stories.jsx -c playwright/**/*.js -c scripts/**/*.js -w",
@@ -39,6 +37,7 @@
"token-test:watch": "clojure -M:dev:shadow-cljs watch test-esm",
"token-test:nodemon": "nodemon --watch ./target/tests-esm.cjs --exec 'bun run token-test:run'",
"token-test": "yarn run token-test:compile && yarn run token-test:run",
+ "test:e2e": "playwright test --project default",
"translations": "node ./scripts/translations.js",
"watch": "yarn run watch:app:assets",
"watch:app:assets": "node ./scripts/watch.js",
@@ -91,6 +90,7 @@
"typescript": "^5.4.5",
"vite": "^5.1.4",
"vitest": "^1.3.1",
+ "wasm-pack": "^0.13.0",
"watcher": "^2.3.1",
"workerpool": "^9.1.1"
},
@@ -103,6 +103,7 @@
"highlight.js": "^11.9.0",
"js-beautify": "^1.15.1",
"jszip": "^3.10.1",
+ "lodash": "^4.17.21",
"luxon": "^3.4.4",
"mousetrap": "^1.6.5",
"opentype.js": "^1.3.4",
@@ -110,6 +111,7 @@
"randomcolor": "^0.6.2",
"react": "18.3.1",
"react-dom": "18.3.1",
+ "react-error-boundary": "^4.0.13",
"react-virtualized": "^9.22.5",
"rxjs": "8.0.0-alpha.14",
"sax": "^1.4.1",
diff --git a/frontend/playwright.config.js b/frontend/playwright.config.js
index 6196826df5..03dcb027f5 100644
--- a/frontend/playwright.config.js
+++ b/frontend/playwright.config.js
@@ -56,7 +56,7 @@ export default defineConfig({
/* Run your local dev server before starting the tests */
webServer: {
timeout: 2 * 60 * 1000,
- command: "yarn e2e:server",
+ command: "yarn run e2e:server",
url: "http://localhost:3000",
reuseExistingServer: !process.env.CI,
},
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
index 4f8cfb6300..053031eb5e 100644
--- a/frontend/playwright/data/assets/get-file-fragment-with-assets-components.json
+++ b/frontend/playwright/data/assets/get-file-fragment-with-assets-components.json
@@ -2,7 +2,7 @@
"~:id": "~u015fda4f-caa6-8103-8004-862a9e4b4d4b",
"~:file-id": "~u015fda4f-caa6-8103-8004-862a00dd4f31",
"~:created-at": "~m1718718436639",
- "~:content": {
+ "~:data": {
"~ue117f7f6-433c-807e-8004-862a38e1823d": {
"~:id": "~ue117f7f6-433c-807e-8004-862a38e1823d",
"~:name": "Button",
@@ -28,4 +28,4 @@
"~: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
index 99e01ce342..bae8fd54ef 100644
--- a/frontend/playwright/data/assets/get-file-fragmnet-with-assets-page.json
+++ b/frontend/playwright/data/assets/get-file-fragmnet-with-assets-page.json
@@ -2,7 +2,7 @@
"~:id": "~u015fda4f-caa6-8103-8004-862a9e4ad279",
"~:file-id": "~u015fda4f-caa6-8103-8004-862a00dd4f31",
"~:created-at": "~m1718718436639",
- "~:content": {
+ "~:data": {
"~:options": {},
"~:objects": {
"~u00000000-0000-0000-0000-000000000000": {
@@ -627,4 +627,4 @@
"~:id": "~u015fda4f-caa6-8103-8004-862a00ddbe94",
"~:name": "Page 1"
}
-}
\ No newline at end of file
+}
diff --git a/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json b/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json
index 1a055d7d15..0fe5f6a2c5 100644
--- a/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json
+++ b/frontend/playwright/data/design/get-file-fragment-multiple-constraints.json
@@ -2,7 +2,7 @@
"~:id": "~u03bff843-920f-81a1-8004-7563acdc8ca1",
"~:file-id": "~u03bff843-920f-81a1-8004-756365e1eb6a",
"~:created-at": "~m1717592543081",
- "~:content": {
+ "~:data": {
"~:options": {},
"~:objects": {
"~u00000000-0000-0000-0000-000000000000": {
@@ -360,4 +360,4 @@
"~:id": "~u03bff843-920f-81a1-8004-756365e1eb6b",
"~:name": "Page 1"
}
-}
\ No newline at end of file
+}
diff --git a/frontend/playwright/data/viewer/get-file-fragment-empty-file.json b/frontend/playwright/data/viewer/get-file-fragment-empty-file.json
index 544c559f74..c4fc2086e8 100644
--- a/frontend/playwright/data/viewer/get-file-fragment-empty-file.json
+++ b/frontend/playwright/data/viewer/get-file-fragment-empty-file.json
@@ -2,7 +2,7 @@
"~:id": "~u0515a066-e303-8169-8004-73eb58e899c2",
"~:file-id": "~uc7ce0794-0992-8105-8004-38f280443849",
"~:created-at": "~m1717493890966",
- "~:content": {
+ "~:data": {
"~:options": {},
"~:objects": {
"~u00000000-0000-0000-0000-000000000000": {
@@ -94,4 +94,4 @@
"~:id": "~uc7ce0794-0992-8105-8004-38f28044384a",
"~:name": "Page 1"
}
-}
\ No newline at end of file
+}
diff --git a/frontend/playwright/data/viewer/get-file-fragment-single-board.json b/frontend/playwright/data/viewer/get-file-fragment-single-board.json
index 8c1e62a151..cf00a2900f 100644
--- a/frontend/playwright/data/viewer/get-file-fragment-single-board.json
+++ b/frontend/playwright/data/viewer/get-file-fragment-single-board.json
@@ -2,7 +2,7 @@
"~:id": "~udd5cc0bb-91ff-81b9-8004-77dfae2d9e7c",
"~:file-id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb1",
"~:created-at": "~m1717759268004",
- "~:content": {
+ "~:data": {
"~:options": {},
"~:objects": {
"~u00000000-0000-0000-0000-000000000000": {
@@ -183,4 +183,4 @@
"~:id": "~udd5cc0bb-91ff-81b9-8004-77df9cd3edb2",
"~:name": "Page 1"
}
-}
\ No newline at end of file
+}
diff --git a/frontend/playwright/data/workspace/get-file-fragment-7760.json b/frontend/playwright/data/workspace/get-file-fragment-7760.json
index 0c8011553d..c07d487026 100644
--- a/frontend/playwright/data/workspace/get-file-fragment-7760.json
+++ b/frontend/playwright/data/workspace/get-file-fragment-7760.json
@@ -2,7 +2,7 @@
"~:id": "~ucd90e028-326a-80b4-8004-7cdeefa23ece",
"~:file-id": "~ucd90e028-326a-80b4-8004-7cdec16ffad5",
"~:created-at": "~m1718094617214",
- "~:content": {
+ "~:data": {
"~:options": {},
"~:objects": {
"~u00000000-0000-0000-0000-000000000000": {
diff --git a/frontend/playwright/data/workspace/get-file-fragment-blank.json b/frontend/playwright/data/workspace/get-file-fragment-blank.json
index fe357c5002..7760aaa927 100644
--- a/frontend/playwright/data/workspace/get-file-fragment-blank.json
+++ b/frontend/playwright/data/workspace/get-file-fragment-blank.json
@@ -2,7 +2,7 @@
"~:id": "~ude58c8f6-c5c2-8196-8004-3df9e2e52d88",
"~:file-id": "~uc7ce0794-0992-8105-8004-38f280443849",
"~:created-at": "~m1713873823631",
- "~:content": {
+ "~:data": {
"~:options": {},
"~:objects": {
"~u00000000-0000-0000-0000-000000000000": {
@@ -94,4 +94,4 @@
"~:id": "~uc7ce0794-0992-8105-8004-38f28044384a",
"~:name": "Page 1"
}
-}
\ No newline at end of file
+}
diff --git a/frontend/playwright/ui/pages/WorkspacePage.js b/frontend/playwright/ui/pages/WorkspacePage.js
index 7e5bf6b36f..60b7408596 100644
--- a/frontend/playwright/ui/pages/WorkspacePage.js
+++ b/frontend/playwright/ui/pages/WorkspacePage.js
@@ -168,7 +168,7 @@ export class WorkspacePage extends BaseWebSocketPage {
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.viewport.getByText(name).first().hover({ force: true });
await this.page.mouse.up();
}
diff --git a/frontend/playwright/ui/specs/workspace.spec.js b/frontend/playwright/ui/specs/workspace.spec.js
index 066486f50c..8ce047fe3a 100644
--- a/frontend/playwright/ui/specs/workspace.spec.js
+++ b/frontend/playwright/ui/specs/workspace.spec.js
@@ -177,3 +177,15 @@ test("Bug 7489 - Workspace-palette items stay hidden when opening with keyboard-
),
).toBeVisible();
});
+
+test("Bug 8784 - Use keyboard arrow to move inside a text input does not change tabs", async ({
+ page,
+}) => {
+ const workspacePage = new WorkspacePage(page);
+ await workspacePage.setupEmptyFile();
+ await workspacePage.goToWorkspace();
+ await workspacePage.pageName.click();
+ await page.keyboard.press("ArrowLeft");
+
+ await expect(workspacePage.pageName).toHaveText("Page 1");
+});
diff --git a/frontend/playwright/ui/visual-specs/visual-viewer.spec.js b/frontend/playwright/ui/visual-specs/visual-viewer.spec.js
index a3eeddc82b..ef6901f702 100644
--- a/frontend/playwright/ui/visual-specs/visual-viewer.spec.js
+++ b/frontend/playwright/ui/visual-specs/visual-viewer.spec.js
@@ -117,7 +117,7 @@ test("User goes to the Viewer Inspect code, code tab", async ({ page }) => {
});
await viewerPage.showCode();
- await viewerPage.page.getByTestId("code").click();
+ await viewerPage.page.getByRole("tab", { name: "code" }).click();
await expect(
viewerPage.page.getByRole("button", { name: "Copy all code" }),
diff --git a/frontend/renderer/.gitignore b/frontend/renderer/.gitignore
new file mode 100644
index 0000000000..391ed4d660
--- /dev/null
+++ b/frontend/renderer/.gitignore
@@ -0,0 +1,5 @@
+target/
+debug/
+
+**/*.rs.bk
+
diff --git a/frontend/renderer/Cargo.lock b/frontend/renderer/Cargo.lock
new file mode 100644
index 0000000000..c14faa4add
--- /dev/null
+++ b/frontend/renderer/Cargo.lock
@@ -0,0 +1,324 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "cc"
+version = "1.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476"
+dependencies = [
+ "shlex",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "log"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+
+[[package]]
+name = "minicov"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169"
+dependencies = [
+ "cc",
+ "walkdir",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "renderer"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "syn"
+version = "2.0.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68497a05fb21143a08a7d24fc81763384a3072ee43c44e86aad1744d6adef9d9"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "minicov",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "winapi-util"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
diff --git a/frontend/renderer/Cargo.toml b/frontend/renderer/Cargo.toml
new file mode 100644
index 0000000000..56724cc1ac
--- /dev/null
+++ b/frontend/renderer/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+name = "renderer"
+version = "0.1.0"
+edition = "2021"
+repository = "https://github.com/penpot/penpot"
+license-file = "../../../../LICENSE"
+description = "Wasm-based canvas renderer for Penpot"
+
+[lib]
+crate-type = ["cdylib"]
+
+[dependencies]
+wasm-bindgen = "0.2.93"
+
+[profile.release]
+opt-level = "s"
+
+[dev-dependencies]
+wasm-bindgen-test = "0.3.43"
diff --git a/frontend/renderer/src/lib.rs b/frontend/renderer/src/lib.rs
new file mode 100644
index 0000000000..e4b08cfb01
--- /dev/null
+++ b/frontend/renderer/src/lib.rs
@@ -0,0 +1,36 @@
+use wasm_bindgen::prelude::*;
+
+pub fn add(left: u64, right: u64) -> u64 {
+ left + right
+}
+
+#[wasm_bindgen]
+extern "C" {
+ #[wasm_bindgen(js_namespace = console)]
+ fn log(s: &str);
+}
+
+#[wasm_bindgen]
+pub fn print(msg: &str) {
+ log(msg);
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use wasm_bindgen_test::*;
+
+ wasm_bindgen_test_configure!(run_in_browser);
+
+ #[test]
+ fn it_works() {
+ let result = add(2, 2);
+ assert_eq!(result, 4);
+ }
+
+ #[wasm_bindgen_test]
+ fn it_works_in_wasm() {
+ let result = add(2, 2);
+ assert_eq!(result, 4);
+ }
+}
diff --git a/frontend/resources/images/email/logo-linkedin.png b/frontend/resources/images/email/logo-linkedin.png
new file mode 100644
index 0000000000..ee24f90dbd
Binary files /dev/null and b/frontend/resources/images/email/logo-linkedin.png differ
diff --git a/frontend/resources/images/email/logo-mastodon.png b/frontend/resources/images/email/logo-mastodon.png
new file mode 100644
index 0000000000..f0a14cf61f
Binary files /dev/null and b/frontend/resources/images/email/logo-mastodon.png differ
diff --git a/frontend/resources/images/email/logo-x.png b/frontend/resources/images/email/logo-x.png
new file mode 100644
index 0000000000..cdaf322475
Binary files /dev/null and b/frontend/resources/images/email/logo-x.png differ
diff --git a/frontend/resources/images/features/2.3-img-slide-1.gif b/frontend/resources/images/features/2.3-img-slide-1.gif
new file mode 100644
index 0000000000..9eea1236f4
Binary files /dev/null and b/frontend/resources/images/features/2.3-img-slide-1.gif differ
diff --git a/frontend/resources/images/features/2.3-img-slide-2.gif b/frontend/resources/images/features/2.3-img-slide-2.gif
new file mode 100644
index 0000000000..200fa5f323
Binary files /dev/null and b/frontend/resources/images/features/2.3-img-slide-2.gif differ
diff --git a/frontend/resources/images/features/2.3-slide-0.png b/frontend/resources/images/features/2.3-slide-0.png
new file mode 100644
index 0000000000..b1db57f339
Binary files /dev/null and b/frontend/resources/images/features/2.3-slide-0.png differ
diff --git a/frontend/resources/images/icons/info.svg b/frontend/resources/images/icons/info.svg
new file mode 100644
index 0000000000..ff916bf3f4
--- /dev/null
+++ b/frontend/resources/images/icons/info.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/frontend/resources/plugins-runtime/index.js b/frontend/resources/plugins-runtime/index.js
index bd841634dd..4f538445b6 100644
--- a/frontend/resources/plugins-runtime/index.js
+++ b/frontend/resources/plugins-runtime/index.js
@@ -1,144 +1,140 @@
-var Hn = (t, e, r) => {
- if (!e.has(t))
- throw TypeError("Cannot " + r);
+var zn = (t) => {
+ throw TypeError(t);
};
-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) => (Hn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r);
-const k = globalThis, {
- Array: Bs,
- Date: Hs,
- FinalizationRegistry: kt,
- Float32Array: Vs,
+var Bn = (t, e, r) => e.has(t) || zn("Cannot " + r);
+var Y = (t, e, r) => (Bn(t, e, "read from private field"), r ? r.call(t) : e.get(t)), dr = (t, e, r) => e.has(t) ? zn("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, r), fr = (t, e, r, n) => (Bn(t, e, "write to private field"), n ? n.call(t, r) : e.set(t, r), r);
+const T = globalThis, {
+ Array: Gs,
+ Date: Vs,
+ FinalizationRegistry: At,
+ Float32Array: Hs,
JSON: Ws,
- Map: Pe,
+ Map: Re,
Math: qs,
- Number: So,
- Object: _n,
+ Number: xo,
+ Object: vn,
Promise: Ks,
- Proxy: Cr,
+ Proxy: Lr,
Reflect: Ys,
- RegExp: We,
- Set: Ct,
- String: pe,
+ RegExp: Xe,
+ Set: Ot,
+ String: be,
Symbol: St,
- WeakMap: Me,
- WeakSet: $t
+ WeakMap: je,
+ WeakSet: Mt
} = 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,
+ Error: ce,
RangeError: Js,
- ReferenceError: lt,
- SyntaxError: tr,
+ ReferenceError: Bt,
+ SyntaxError: sr,
TypeError: v,
- AggregateError: Hr
+ AggregateError: Yr
} = globalThis, {
- assign: $r,
- create: Z,
- defineProperties: F,
- entries: re,
+ assign: Fr,
+ create: H,
+ defineProperties: B,
+ entries: ge,
freeze: y,
- getOwnPropertyDescriptor: J,
+ getOwnPropertyDescriptor: ne,
getOwnPropertyDescriptors: Ze,
- getOwnPropertyNames: Dt,
- getPrototypeOf: j,
- is: Nr,
- isFrozen: jl,
- isSealed: Zl,
- isExtensible: zl,
- keys: Eo,
- prototype: bn,
- seal: Gl,
+ getOwnPropertyNames: It,
+ getPrototypeOf: V,
+ is: Dr,
+ isFrozen: zl,
+ isSealed: Bl,
+ isExtensible: Gl,
+ keys: So,
+ prototype: _n,
+ seal: Vl,
preventExtensions: Xs,
- setPrototypeOf: xo,
+ setPrototypeOf: Eo,
values: ko,
- fromEntries: mt
-} = _n, {
- species: Vr,
- toStringTag: qe,
- iterator: rr,
+ fromEntries: yt
+} = vn, {
+ species: Jr,
+ toStringTag: Qe,
+ iterator: ar,
matchAll: Po,
unscopables: Qs,
keyFor: ea,
for: ta
-} = St, { isInteger: ra } = So, { stringify: To } = Ws, { defineProperty: na } = _n, M = (t, e, r) => {
+} = St, { isInteger: ra } = xo, { stringify: To } = Ws, { defineProperty: na } = vn, U = (t, e, r) => {
const n = na(t, e, r);
if (n !== t)
throw v(
`Please report that the original defineProperty silently failed to set ${To(
- pe(e)
+ be(e)
)}. (SES_DEFINE_PROPERTY_FAILED_SILENTLY)`
);
return n;
}, {
- apply: ne,
- construct: mr,
+ apply: ue,
+ construct: br,
get: oa,
getOwnPropertyDescriptor: sa,
has: Ao,
isExtensible: aa,
- ownKeys: De,
+ ownKeys: Ve,
preventExtensions: ia,
set: Io
-} = 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(
+} = Ys, { isArray: Et, prototype: Pe } = Gs, { prototype: Lt } = Re, { prototype: Ur } = RegExp, { prototype: ir } = Ot, { prototype: ze } = be, { prototype: jr } = je, { prototype: Co } = Mt, { prototype: bn } = Function, { prototype: Ro } = Ks, { prototype: $o } = V(
// eslint-disable-next-line no-empty-function, func-names
function* () {
}
-), 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 = (
+), ca = V(Uint8Array.prototype), { bind: sn } = bn, A = sn.bind(sn.call), de = A(_n.hasOwnProperty), et = A(Pe.filter), ft = A(Pe.forEach), Zr = A(Pe.includes), Ft = A(Pe.join), fe = (
/** @type {any} */
- P(_e.map)
-), Ro = (
+ A(Pe.map)
+), No = (
/** @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[rr]), $e = P(Nt.set), Ue = P(Nt.get), Lr = P(Nt.has), fa = P(Nt.delete), pa = P(Nt.entries), ha = P(Nt[rr]), Sn = P(nr.add);
-P(nr.delete);
-const Vn = P(nr.forEach), En = P(nr.has), ma = 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 = (
+ A(Pe.flatMap)
+), wr = A(Pe.pop), oe = A(Pe.push), la = A(Pe.slice), ua = A(Pe.some), Oo = A(Pe.sort), da = A(Pe[ar]), he = A(Lt.set), He = A(Lt.get), zr = A(Lt.has), fa = A(Lt.delete), pa = A(Lt.entries), ha = A(Lt[ar]), wn = A(ir.add);
+A(ir.delete);
+const Gn = A(ir.forEach), xn = A(ir.has), ma = A(ir[ar]), Sn = A(Ur.test), En = A(Ur.exec), ga = A(Ur[Po]), Mo = A(ze.endsWith), Lo = A(ze.includes), ya = A(ze.indexOf);
+A(ze.match);
+const xr = A($o.next), Fo = A($o.throw), Sr = (
/** @type {any} */
- P(Le.replace)
-), 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);
+ A(ze.replace)
+), va = A(ze.search), kn = A(ze.slice), Pn = A(ze.split), Do = A(ze.startsWith), _a = A(ze[ar]), ba = A(jr.delete), z = A(jr.get), kt = A(jr.has), me = A(jr.set), Br = A(Co.add), cr = A(Co.has), wa = A(bn.toString), xa = A(sn);
+A(Ro.catch);
const Uo = (
/** @type {any} */
- P($o.then)
-), Ea = kt && P(kt.prototype.register);
-kt && P(kt.prototype.unregister);
-const In = y(Z(null)), Ye = (t) => _n(t) === t, Dr = (t) => t instanceof ue, jo = eval, ve = Function, xa = () => {
+ A(Ro.then)
+), Sa = At && A(At.prototype.register);
+At && A(At.prototype.unregister);
+const Tn = y(H(null)), ke = (t) => vn(t) === t, Gr = (t) => t instanceof ce, jo = eval, Ee = Function, Ea = () => {
throw v('Cannot eval with evalTaming set to "noEval" (SES_NO_EVAL)');
-}, He = J(Error("er1"), "stack"), Wr = J(v("er2"), "stack");
+}, Ye = ne(Error("er1"), "stack"), Xr = ne(v("er2"), "stack");
let Zo, zo;
-if (He && Wr && He.get)
+if (Ye && Xr && Ye.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 === Wr.get && typeof He.set == "function" && He.set === Wr.set
+ typeof Ye.get == "function" && Ye.get === Xr.get && typeof Ye.set == "function" && Ye.set === Xr.set
)
- Zo = y(He.get), zo = y(He.set);
+ Zo = y(Ye.get), zo = y(Ye.set);
else
throw v(
"Unexpected Error own stack accessor functions (SES_UNEXPECTED_ERROR_OWN_STACK_ACCESSOR)"
);
-const qr = Zo, ka = zo;
+const Qr = Zo, ka = zo;
function Pa() {
return this;
}
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, ir = (t, ...e) => {
+const { freeze: lt } = Object, { apply: Ta } = Reflect, An = (t) => (e, ...r) => Ta(t, e, r), Aa = An(Array.prototype.push), Vn = An(Array.prototype.includes), Ia = An(String.prototype.split), at = JSON.stringify, pr = (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) => {
+}, Bo = (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" || pr`Environment option name ${at(c)} must be a string.`, typeof l == "string" || pr`Environment option default setting ${at(
l
)} must be a string.`;
let d = l;
@@ -146,54 +142,54 @@ const { freeze: at } = Object, { apply: Ta } = Reflect, Cn = (t) => (e, ...r) =>
if (typeof h == "object" && c in h) {
e || Aa(r, c);
const p = h[c];
- typeof p == "string" || ir`Environment option named ${nt(
+ typeof p == "string" || pr`Environment option named ${at(
c
- )}, if present, must have a corresponding string value, got ${nt(
+ )}, if present, must have a corresponding string value, got ${at(
p
)}`, d = p;
}
- return u === void 0 || d === l || Wn(u, d) || ir`Unrecognized ${nt(c)} value ${nt(
+ return u === void 0 || d === l || Vn(u, d) || pr`Unrecognized ${at(c)} value ${at(
d
- )}. Expected one of ${nt([l, ...u])}`, d;
+ )}. Expected one of ${at([l, ...u])}`, d;
};
- at(n);
+ lt(n);
const o = (c) => {
const l = n(c, "");
- return at(l === "" ? [] : Ia(l, ","));
+ return lt(l === "" ? [] : Ia(l, ","));
};
- at(o);
- const a = (c, l) => Wn(o(c), l), i = () => at([...r]);
- return at(i), at({
+ lt(o);
+ const s = (c, l) => Vn(o(c), l), i = () => lt([...r]);
+ return lt(i), lt({
getEnvironmentOption: n,
getEnvironmentOptionsList: o,
- environmentOptionsListHas: a,
+ environmentOptionsListHas: s,
getCapturedEnvironmentOptionNames: i
});
};
-at(Go);
+lt(Bo);
const {
- getEnvironmentOption: le,
- getEnvironmentOptionsList: Bl,
- environmentOptionsListHas: Hl
-} = Go(globalThis, !0), _r = (t) => (t = `${t}`, t.length >= 1 && Lo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`);
-y(_r);
-const Bo = (t, e = void 0) => {
- const r = new Ct(), n = (o, a) => {
- switch (typeof a) {
+ getEnvironmentOption: ve,
+ getEnvironmentOptionsList: Hl,
+ environmentOptionsListHas: Wl
+} = Bo(globalThis, !0), Er = (t) => (t = `${t}`, t.length >= 1 && Lo("aeiouAEIOU", t[0]) ? `an ${t}` : `a ${t}`);
+y(Er);
+const Go = (t, e = void 0) => {
+ const r = new Ot(), n = (o, s) => {
+ switch (typeof s) {
case "object": {
- if (a === null)
+ if (s === null)
return null;
- if (En(r, a))
+ if (xn(r, s))
return "[Seen]";
- 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 = Eo(a);
+ if (wn(r, s), Gr(s))
+ return `[${s.name}: ${s.message}]`;
+ if (Qe in s)
+ return `[${s[Qe]}]`;
+ if (Et(s))
+ return s;
+ const i = So(s);
if (i.length < 2)
- return a;
+ return s;
let c = !0;
for (let u = 1; u < i.length; u += 1)
if (i[u - 1] >= i[u]) {
@@ -201,24 +197,24 @@ const Bo = (t, e = void 0) => {
break;
}
if (c)
- return a;
+ return s;
Oo(i);
- const l = se(i, (u) => [u, a[u]]);
- return mt(l);
+ const l = fe(i, (u) => [u, s[u]]);
+ return yt(l);
}
case "function":
- return `[Function ${a.name || ""}]`;
+ return `[Function ${s.name || ""}]`;
case "string":
- return Do(a, "[") ? `[${a}]` : a;
+ return Do(s, "[") ? `[${s}]` : s;
case "undefined":
case "symbol":
- return `[${pe(a)}]`;
+ return `[${be(s)}]`;
case "bigint":
- return `[${a}n]`;
+ return `[${s}n]`;
case "number":
- return Nr(a, NaN) ? "[NaN]" : a === 1 / 0 ? "[Infinity]" : a === -1 / 0 ? "[-Infinity]" : a;
+ return Dr(s, NaN) ? "[NaN]" : s === 1 / 0 ? "[Infinity]" : s === -1 / 0 ? "[-Infinity]" : s;
default:
- return a;
+ return s;
}
};
try {
@@ -227,252 +223,252 @@ const Bo = (t, e = void 0) => {
return "[Something that failed to stringify]";
}
};
-y(Bo);
-const { isSafeInteger: Ca } = Number, { freeze: vt } = Object, { toStringTag: $a } = Symbol, qn = (t) => {
+y(Go);
+const { isSafeInteger: Ca } = Number, { freeze: bt } = Object, { toStringTag: Ra } = Symbol, Hn = (t) => {
const r = {
next: void 0,
prev: void 0,
data: t
};
return r.next = r, r.prev = r, r;
-}, Kn = (t, e) => {
+}, Wn = (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;
-}, Kr = (t) => {
+}, en = (t) => {
const { prev: e, next: r } = t;
e.next = r, r.prev = e, t.prev = t, t.next = t;
-}, Ho = (t) => {
+}, Vo = (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 = qn(void 0), o = (d) => {
+ const n = Hn(void 0), o = (d) => {
const f = e.get(d);
if (!(f === void 0 || f.data === void 0))
- return Kr(f), Kn(n, f), f;
- }, a = (d) => o(d) !== void 0;
- vt(a);
+ return en(f), Wn(n, f), f;
+ }, s = (d) => o(d) !== void 0;
+ bt(s);
const i = (d) => {
const f = o(d);
return f && f.data && f.data.get(d);
};
- vt(i);
+ bt(i);
const c = (d, f) => {
if (t < 1)
return u;
let h = o(d);
- if (h === void 0 && (h = qn(void 0), Kn(n, h)), !h.data)
+ if (h === void 0 && (h = Hn(void 0), Wn(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;
+ en(p), p.data = void 0, r -= 1;
}
return h.data.set(d, f), u;
};
- vt(c);
+ bt(c);
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);
+ return f === void 0 || (en(f), e.delete(d), f.data === void 0) ? !1 : (f.data = void 0, r -= 1, !0);
};
- vt(l);
- const u = vt({
- has: a,
+ bt(l);
+ const u = bt({
+ has: s,
get: i,
set: c,
delete: l,
// eslint-disable-next-line jsdoc/check-types
[
/** @type {typeof Symbol.toStringTag} */
- $a
+ Ra
]: "LRUCacheMap"
});
return u;
};
-vt(Ho);
-const { freeze: pr } = Object, { isSafeInteger: Na } = Number, Ra = 1e3, Oa = 100, Vo = (t = Ra, e = Oa) => {
- if (!Na(e) || e < 1)
+bt(Vo);
+const { freeze: vr } = Object, { isSafeInteger: $a } = Number, Na = 1e3, Oa = 100, Ho = (t = Na, e = Oa) => {
+ if (!$a(e) || e < 1)
throw TypeError(
"argsPerErrorBudget must be a safe positive integer number"
);
- 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]);
+ const r = Vo(t), n = (s, i) => {
+ const c = r.get(s);
+ c !== void 0 ? (c.length >= e && c.shift(), c.push(i)) : r.set(s, [i]);
};
- pr(n);
- const o = (a) => {
- const i = r.get(a);
- return r.delete(a), i;
+ vr(n);
+ const o = (s) => {
+ const i = r.get(s);
+ return r.delete(s), i;
};
- return pr(o), pr({
+ return vr(o), vr({
addLogArgs: n,
takeLogArgsArray: o
});
};
-pr(Vo);
-const Pt = new Me(), Je = (t, e = void 0) => {
+vr(Ho);
+const Ct = new je(), Z = (t, e = void 0) => {
const r = y({
- toString: y(() => Bo(t, e))
+ toString: y(() => Go(t, e))
});
- return ie(Pt, r, t), r;
+ return me(Ct, r, t), r;
};
-y(Je);
-const Ma = y(/^[\w:-]( ?[\w:-])*$/), rn = (t, e = void 0) => {
- if (typeof t != "string" || !xn(Ma, t))
- return Je(t, e);
+y(Z);
+const Ma = y(/^[\w:-]( ?[\w:-])*$/), kr = (t, e = void 0) => {
+ if (typeof t != "string" || !Sn(Ma, t))
+ return Z(t, e);
const r = y({
toString: y(() => t)
});
- return ie(Pt, r, t), r;
+ return me(Ct, r, t), r;
};
-y(rn);
-const Ur = new Me(), Wo = ({ template: t, args: e }) => {
+y(kr);
+const Vr = new je(), Wo = ({ template: t, args: e }) => {
const r = [t[0]];
for (let n = 0; n < e.length; n += 1) {
const o = e[n];
- let a;
- An(Pt, o) ? a = `${o}` : Dr(o) ? a = `(${_r(o.name)})` : a = `(${_r(typeof o)})`, X(r, a, t[n + 1]);
+ let s;
+ kt(Ct, o) ? s = `${o}` : Gr(o) ? s = `(${Er(o.name)})` : s = `(${Er(typeof o)})`, oe(r, s, t[n + 1]);
}
- return Rt(r, "");
+ return Ft(r, "");
}, qo = y({
toString() {
- const t = L(Ur, this);
+ const t = z(Vr, this);
return t === void 0 ? "[Not a DetailsToken]" : Wo(t);
}
});
y(qo.toString);
-const ft = (t, ...e) => {
+const le = (t, ...e) => {
const r = y({ __proto__: qo });
- return ie(Ur, r, { template: t, args: e }), /** @type {DetailsToken} */
+ return me(Vr, r, { template: t, args: e }), /** @type {DetailsToken} */
/** @type {unknown} */
r;
};
-y(ft);
-const Ko = (t, ...e) => (e = se(
+y(le);
+const Ko = (t, ...e) => (e = fe(
e,
- (r) => An(Pt, r) ? r : Je(r)
-), ft(t, ...e));
+ (r) => kt(Ct, r) ? r : Z(r)
+), le(t, ...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];
- An(Pt, o) && (o = L(Pt, o));
- const a = vr(gr(r) || "", / $/, "");
- a !== "" && X(r, a);
- const i = vr(t[n + 1], /^ /, "");
- X(r, o, i);
+ kt(Ct, o) && (o = z(Ct, o));
+ const s = Sr(wr(r) || "", / $/, "");
+ s !== "" && oe(r, s);
+ const i = Sr(t[n + 1], /^ /, "");
+ oe(r, o, i);
}
- return r[r.length - 1] === "" && gr(r), r;
-}, hr = new Me();
-let nn = 0;
-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;
+ return r[r.length - 1] === "" && wr(r), r;
+}, _r = new je();
+let an = 0;
+const qn = new je(), Jo = (t, e = t.name) => {
+ let r = z(qn, t);
+ return r !== void 0 || (an += 1, r = `${e}#${an}`, me(qn, t, r)), r;
}, La = (t) => {
const e = Ze(t), {
name: r,
message: n,
errors: o = void 0,
- cause: a = void 0,
+ cause: s = void 0,
stack: i = void 0,
...c
- } = e, l = De(c);
+ } = e, l = Ve(c);
if (l.length >= 1) {
for (const d of l)
delete t[d];
- const u = Z(bn, c);
- $n(
+ const u = H(_n, c);
+ Hr(
t,
- ft`originally with properties ${Je(u)}`
+ le`originally with properties ${Z(u)}`
);
}
- for (const u of De(t)) {
+ for (const u of Ve(t)) {
const d = e[u];
- d && oe(d, "get") && M(t, u, {
+ d && de(d, "get") && U(t, u, {
value: t[u]
// invoke the getter to convert to data property
});
}
y(t);
-}, on = (t = ft`Assert failed`, e = k.Error, {
+}, Le = (t = le`Assert failed`, e = T.Error, {
errorName: r = void 0,
cause: n = void 0,
errors: o = void 0,
- sanitize: a = !0
+ sanitize: s = !0
} = {}) => {
- typeof t == "string" && (t = ft([t]));
- const i = L(Ur, t);
+ typeof t == "string" && (t = le([t]));
+ const i = z(Vr, t);
if (i === void 0)
- throw v(`unrecognized details ${Je(t)}`);
+ throw v(`unrecognized details ${Z(t)}`);
const c = Wo(i), l = n && { cause: n };
let u;
- return typeof Hr < "u" && e === Hr ? u = Hr(o || [], c, l) : (u = /** @type {ErrorConstructor} */
+ return typeof Yr < "u" && e === Yr ? u = Yr(o || [], c, l) : (u = /** @type {ErrorConstructor} */
e(
c,
l
- ), o !== void 0 && M(u, "errors", {
+ ), o !== void 0 && U(u, "errors", {
value: o,
writable: !0,
enumerable: !1,
configurable: !0
- })), ie(hr, u, Yo(i)), r !== void 0 && Jo(u, r), a && La(u), u;
+ })), me(_r, u, Yo(i)), r !== void 0 && Jo(u, r), s && La(u), u;
};
-y(on);
-const { addLogArgs: Fa, takeLogArgsArray: Da } = Vo(), sn = new Me(), $n = (t, e) => {
- typeof e == "string" && (e = ft([e]));
- const r = L(Ur, e);
+y(Le);
+const { addLogArgs: Fa, takeLogArgsArray: Da } = Ho(), cn = new je(), Hr = (t, e) => {
+ typeof e == "string" && (e = le([e]));
+ const r = z(Vr, e);
if (r === void 0)
- throw v(`unrecognized details ${Je(e)}`);
- const n = Yo(r), o = L(sn, t);
+ throw v(`unrecognized details ${Z(e)}`);
+ const n = Yo(r), o = z(cn, t);
if (o !== void 0)
- for (const a of o)
- a(t, n);
+ for (const s of o)
+ s(t, n);
else
Fa(t, n);
};
-y($n);
+y(Hr);
const Ua = (t) => {
if (!("stack" in t))
return "";
const e = `${t.stack}`, r = ya(e, `
`);
- return Do(e, " ") || r === -1 ? e : Pn(e, r + 1);
-}, br = {
- getStackString: k.getStackString || Ua,
+ return Do(e, " ") || r === -1 ? e : kn(e, r + 1);
+}, Pr = {
+ getStackString: T.getStackString || Ua,
tagError: (t) => Jo(t),
resetErrorTagNum: () => {
- nn = 0;
+ an = 0;
},
- getMessageLogArgs: (t) => L(hr, t),
+ getMessageLogArgs: (t) => z(_r, t),
takeMessageLogArgs: (t) => {
- const e = L(hr, t);
- return ba(hr, t), e;
+ const e = z(_r, t);
+ return ba(_r, t), e;
},
takeNoteLogArgsArray: (t, e) => {
const r = Da(t);
if (e !== void 0) {
- const n = L(sn, t);
- n ? X(n, e) : ie(sn, t, [e]);
+ const n = z(cn, t);
+ n ? oe(n, e) : me(cn, t, [e]);
}
return r || [];
}
};
-y(br);
-const jr = (t = void 0, e = !1) => {
- const r = e ? Ko : ft, n = r`Check failed`, o = (f = n, h = void 0, p = void 0) => {
- const m = on(f, h, p);
+y(Pr);
+const Wr = (t = void 0, e = !1) => {
+ const r = e ? Ko : le, n = r`Check failed`, o = (f = n, h = void 0, p = void 0) => {
+ const m = Le(f, h, p);
throw t !== void 0 && t(m), m;
};
y(o);
- const a = (f, ...h) => o(r(f, ...h));
+ const s = (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, h, p = void 0, m = void 0, _ = void 0) => {
- Nr(f, h) || o(
+ Dr(f, h) || o(
p || r`Expected ${f} is same as ${h}`,
m || Js,
_
@@ -481,102 +477,102 @@ const jr = (t = void 0, e = !1) => {
y(c);
const l = (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)}`;
+ if (typeof h == "string" || s`${Z(h)} must be a string`, p === void 0) {
+ const m = Er(h);
+ p = r`${f} must be ${kr(m)}`;
}
o(p, v);
}
};
y(l);
- const d = $r(i, {
- error: on,
+ const d = Fr(i, {
+ error: Le,
fail: o,
equal: c,
typeof: l,
string: (f, h = void 0) => l(f, "string", h),
- note: $n,
+ note: Hr,
details: r,
- Fail: a,
- quote: Je,
- bare: rn,
- makeAssert: jr
+ Fail: s,
+ quote: Z,
+ bare: kr,
+ makeAssert: Wr
});
return y(d);
};
-y(jr);
-const z = jr(), Xo = J(
+y(Wr);
+const ee = Wr(), Kn = ee.equal, Xo = ne(
ca,
- qe
+ Qe
);
-z(Xo);
+ee(Xo);
const Qo = Xo.get;
-z(Qo);
-const ja = (t) => ne(Qo, t, []) !== void 0, Za = (t) => {
- const e = +pe(t);
- return ra(e) && pe(e) === t;
+ee(Qo);
+const ja = (t) => ue(Qo, t, []) !== void 0, Za = (t) => {
+ const e = +be(t);
+ return ra(e) && be(e) === t;
}, za = (t) => {
- Xs(t), ut(De(t), (e) => {
- const r = J(t, e);
- z(r), Za(e) || M(t, e, {
+ Xs(t), ft(Ve(t), (e) => {
+ const r = ne(t, e);
+ ee(r), Za(e) || U(t, e, {
...r,
writable: !1,
configurable: !1
});
});
-}, Ga = () => {
- if (typeof k.harden == "function")
- return k.harden;
- const t = new $t(), { harden: e } = {
+}, Ba = () => {
+ if (typeof T.harden == "function")
+ return T.harden;
+ const t = new Mt(), { harden: e } = {
/**
* @template T
* @param {T} root
* @returns {T}
*/
harden(r) {
- const n = new Ct();
+ const n = new Ot();
function o(d) {
- if (!Ye(d))
+ if (!ke(d))
return;
const f = typeof d;
if (f !== "object" && f !== "function")
throw v(`Unexpected typeof: ${f}`);
- or(t, d) || En(n, d) || Sn(n, d);
+ cr(t, d) || xn(n, d) || wn(n, d);
}
- const a = (d) => {
+ const s = (d) => {
ja(d) ? za(d) : y(d);
- const f = Ze(d), h = j(d);
- o(h), ut(De(f), (p) => {
+ const f = Ze(d), h = V(d);
+ o(h), ft(Ve(f), (p) => {
const m = f[
/** @type {string} */
p
];
- oe(m, "value") ? o(m.value) : (o(m.get), o(m.set));
+ de(m, "value") ? o(m.value) : (o(m.get), o(m.set));
});
- }, i = qr === void 0 && ka === 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
+ s
) : (d) => {
- if (Dr(d)) {
- const f = J(d, "stack");
- f && f.get === qr && f.configurable && M(d, "stack", {
+ if (Gr(d)) {
+ const f = ne(d, "stack");
+ f && f.get === Qr && f.configurable && U(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(qr, d, [])
+ value: ue(Qr, d, [])
});
}
- return a(d);
+ return s(d);
}, c = () => {
- Vn(n, i);
+ Gn(n, i);
}, l = (d) => {
- Fr(t, d);
+ Br(t, d);
}, u = () => {
- Vn(n, l);
+ Gn(n, l);
};
return o(r), c(), u(), r;
}
@@ -648,7 +644,7 @@ const ja = (t) => ne(Qo, t, []) !== void 0, Za = (t) => {
harden: "harden",
HandledPromise: "HandledPromise"
// TODO: Until Promise.delegate (see below).
-}, Jn = {
+}, Yn = {
// *** Constructor Properties of the Global Object
Date: "%InitialDate%",
Error: "%InitialError%",
@@ -687,26 +683,26 @@ const ja = (t) => ne(Qo, t, []) !== void 0, Za = (t) => {
// Instead, conditional push below.
// AggregateError,
];
-typeof AggregateError < "u" && X(ns, AggregateError);
-const an = {
+typeof AggregateError < "u" && oe(ns, AggregateError);
+const ln = {
"[[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.
-}, Ba = {
+}, Ga = {
// This property is not mentioned in ECMA 262, but is present in V8 and
// necessary for lockdown to succeed.
"[[Proto]]": "%AsyncFunctionPrototype%"
-}, s = an, Xn = Ba, R = {
- get: s,
+}, a = ln, Jn = Ga, M = {
+ get: a,
set: "undefined"
-}, Ie = {
- get: s,
- set: s
-}, Qn = (t) => t === R || t === Ie;
-function ot(t) {
+}, Oe = {
+ get: a,
+ set: a
+}, Xn = (t) => t === M || t === Oe;
+function it(t) {
return {
// Properties of the NativeError Constructors
"[[Proto]]": "%SharedError%",
@@ -714,7 +710,7 @@ function ot(t) {
prototype: t
};
}
-function st(t) {
+function ct(t) {
return {
// Properties of the NativeError Prototype Objects
"[[Proto]]": "%ErrorPrototype%",
@@ -728,7 +724,7 @@ function st(t) {
cause: !1
};
}
-function ge(t) {
+function xe(t) {
return {
// Properties of the TypedArray Constructors
"[[Proto]]": "%TypedArray%",
@@ -736,7 +732,7 @@ function ge(t) {
prototype: t
};
}
-function ye(t) {
+function Se(t) {
return {
// Properties of the TypedArray Prototype Objects
"[[Proto]]": "%TypedArrayPrototype%",
@@ -744,7 +740,7 @@ function ye(t) {
constructor: t
};
}
-const eo = {
+const Qn = {
E: "number",
LN10: "number",
LN2: "number",
@@ -754,40 +750,40 @@ const eo = {
SQRT1_2: "number",
SQRT2: "number",
"@@toStringTag": "string",
- 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,
+ abs: a,
+ acos: a,
+ acosh: a,
+ asin: a,
+ asinh: a,
+ atan: a,
+ atanh: a,
+ atan2: a,
+ cbrt: a,
+ ceil: a,
+ clz32: a,
+ cos: a,
+ cosh: a,
+ exp: a,
+ expm1: a,
+ floor: a,
+ fround: a,
+ hypot: a,
+ imul: a,
+ log: a,
+ log1p: a,
+ log10: a,
+ log2: a,
+ max: a,
+ min: a,
+ pow: a,
+ round: a,
+ sign: a,
+ sin: a,
+ sinh: a,
+ sqrt: a,
+ tan: a,
+ tanh: a,
+ trunc: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
idiv: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
@@ -802,12 +798,12 @@ const eo = {
mod: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505
irandom: !1
-}, wr = {
+}, Tr = {
// ECMA https://tc39.es/ecma262
// The intrinsics object has no prototype to avoid conflicts.
"[[Proto]]": null,
// %ThrowTypeError%
- "%ThrowTypeError%": s,
+ "%ThrowTypeError%": a,
// *** The Global Object
// *** Value Properties of the Global Object
Infinity: "number",
@@ -815,44 +811,44 @@ const eo = {
undefined: "undefined",
// *** Function Properties of the Global Object
// eval
- "%UniqueEval%": s,
- isFinite: s,
- isNaN: s,
- parseFloat: s,
- parseInt: s,
- decodeURI: s,
- decodeURIComponent: s,
- encodeURI: s,
- encodeURIComponent: s,
+ "%UniqueEval%": a,
+ isFinite: a,
+ isNaN: a,
+ parseFloat: a,
+ parseInt: a,
+ decodeURI: a,
+ decodeURIComponent: a,
+ encodeURI: a,
+ encodeURIComponent: a,
// *** Fundamental Objects
Object: {
// Properties of the Object Constructor
"[[Proto]]": "%FunctionPrototype%",
- 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,
+ assign: a,
+ create: a,
+ defineProperties: a,
+ defineProperty: a,
+ entries: a,
+ freeze: a,
+ fromEntries: a,
+ getOwnPropertyDescriptor: a,
+ getOwnPropertyDescriptors: a,
+ getOwnPropertyNames: a,
+ getOwnPropertySymbols: a,
+ getPrototypeOf: a,
+ hasOwn: a,
+ is: a,
+ isExtensible: a,
+ isFrozen: a,
+ isSealed: a,
+ keys: a,
+ preventExtensions: a,
prototype: "%ObjectPrototype%",
- seal: s,
- setPrototypeOf: s,
- values: s,
+ seal: a,
+ setPrototypeOf: a,
+ values: a,
// https://github.com/tc39/proposal-array-grouping
- groupBy: s,
+ groupBy: a,
// Seen on QuickJS
__getClass: !1
},
@@ -860,20 +856,20 @@ const eo = {
// Properties of the Object Prototype Object
"[[Proto]]": null,
constructor: "Object",
- hasOwnProperty: s,
- isPrototypeOf: s,
- propertyIsEnumerable: s,
- toLocaleString: s,
- toString: s,
- valueOf: s,
+ hasOwnProperty: a,
+ isPrototypeOf: a,
+ propertyIsEnumerable: a,
+ toLocaleString: a,
+ toString: a,
+ valueOf: a,
// Annex B: Additional Properties of the Object.prototype Object
// See note in header about the difference between [[Proto]] and --proto--
// special notations.
- "--proto--": Ie,
- __defineGetter__: s,
- __defineSetter__: s,
- __lookupGetter__: s,
- __lookupSetter__: s
+ "--proto--": Oe,
+ __defineGetter__: a,
+ __defineSetter__: a,
+ __lookupGetter__: a,
+ __lookupSetter__: a
},
"%UniqueFunction%": {
// Properties of the Function Constructor
@@ -885,12 +881,12 @@ const eo = {
prototype: "%FunctionPrototype%"
},
"%FunctionPrototype%": {
- apply: s,
- bind: s,
- call: s,
+ apply: a,
+ bind: a,
+ call: a,
constructor: "%InertFunction%",
- toString: s,
- "@@hasInstance": s,
+ toString: a,
+ "@@hasInstance": a,
// proposed but not yet std. To be removed if there
caller: !1,
// proposed but not yet std. To be removed if there
@@ -907,8 +903,8 @@ const eo = {
},
"%BooleanPrototype%": {
constructor: "Boolean",
- toString: s,
- valueOf: s
+ toString: a,
+ valueOf: a
},
"%SharedSymbol%": {
// Properties of the Symbol Constructor
@@ -916,11 +912,11 @@ const eo = {
asyncDispose: "symbol",
asyncIterator: "symbol",
dispose: "symbol",
- for: s,
+ for: a,
hasInstance: "symbol",
isConcatSpreadable: "symbol",
iterator: "symbol",
- keyFor: s,
+ keyFor: a,
match: "symbol",
matchAll: "symbol",
prototype: "%SymbolPrototype%",
@@ -941,10 +937,10 @@ const eo = {
"%SymbolPrototype%": {
// Properties of the Symbol Prototype Object
constructor: "%SharedSymbol%",
- description: R,
- toString: s,
- valueOf: s,
- "@@toPrimitive": s,
+ description: M,
+ toString: a,
+ valueOf: a,
+ "@@toPrimitive": a,
"@@toStringTag": "string"
},
"%InitialError%": {
@@ -952,89 +948,89 @@ const eo = {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%ErrorPrototype%",
// Non standard, v8 only, used by tap
- captureStackTrace: s,
+ captureStackTrace: a,
// Non standard, v8 only, used by tap, tamed to accessor
- stackTraceLimit: Ie,
+ stackTraceLimit: Oe,
// Non standard, v8 only, used by several, tamed to accessor
- prepareStackTrace: Ie
+ prepareStackTrace: Oe
},
"%SharedError%": {
// Properties of the Error Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%ErrorPrototype%",
// Non standard, v8 only, used by tap
- captureStackTrace: s,
+ captureStackTrace: a,
// Non standard, v8 only, used by tap, tamed to accessor
- stackTraceLimit: Ie,
+ stackTraceLimit: Oe,
// Non standard, v8 only, used by several, tamed to accessor
- prepareStackTrace: Ie
+ prepareStackTrace: Oe
},
"%ErrorPrototype%": {
constructor: "%SharedError%",
message: "string",
name: "string",
- toString: s,
+ toString: a,
// proposed de-facto, assumed TODO
// Seen on FF Nightly 88.0a1
at: !1,
// Seen on FF and XS
- stack: Ie,
+ stack: Oe,
// 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: ot("%EvalErrorPrototype%"),
- RangeError: ot("%RangeErrorPrototype%"),
- ReferenceError: ot("%ReferenceErrorPrototype%"),
- SyntaxError: ot("%SyntaxErrorPrototype%"),
- TypeError: ot("%TypeErrorPrototype%"),
- URIError: ot("%URIErrorPrototype%"),
+ EvalError: it("%EvalErrorPrototype%"),
+ RangeError: it("%RangeErrorPrototype%"),
+ ReferenceError: it("%ReferenceErrorPrototype%"),
+ SyntaxError: it("%SyntaxErrorPrototype%"),
+ TypeError: it("%TypeErrorPrototype%"),
+ URIError: it("%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"),
+ AggregateError: it("%AggregateErrorPrototype%"),
+ "%EvalErrorPrototype%": ct("EvalError"),
+ "%RangeErrorPrototype%": ct("RangeError"),
+ "%ReferenceErrorPrototype%": ct("ReferenceError"),
+ "%SyntaxErrorPrototype%": ct("SyntaxError"),
+ "%TypeErrorPrototype%": ct("TypeError"),
+ "%URIErrorPrototype%": ct("URIError"),
// https://github.com/endojs/endo/issues/550
- "%AggregateErrorPrototype%": st("AggregateError"),
+ "%AggregateErrorPrototype%": ct("AggregateError"),
// *** Numbers and Dates
Number: {
// Properties of the Number Constructor
"[[Proto]]": "%FunctionPrototype%",
EPSILON: "number",
- isFinite: s,
- isInteger: s,
- isNaN: s,
- isSafeInteger: s,
+ isFinite: a,
+ isInteger: a,
+ isNaN: a,
+ isSafeInteger: a,
MAX_SAFE_INTEGER: "number",
MAX_VALUE: "number",
MIN_SAFE_INTEGER: "number",
MIN_VALUE: "number",
NaN: "number",
NEGATIVE_INFINITY: "number",
- parseFloat: s,
- parseInt: s,
+ parseFloat: a,
+ parseInt: a,
POSITIVE_INFINITY: "number",
prototype: "%NumberPrototype%"
},
"%NumberPrototype%": {
// Properties of the Number Prototype Object
constructor: "Number",
- toExponential: s,
- toFixed: s,
- toLocaleString: s,
- toPrecision: s,
- toString: s,
- valueOf: s
+ toExponential: a,
+ toFixed: a,
+ toLocaleString: a,
+ toPrecision: a,
+ toString: a,
+ valueOf: a
},
BigInt: {
// Properties of the BigInt Constructor
"[[Proto]]": "%FunctionPrototype%",
- asIntN: s,
- asUintN: s,
+ asIntN: a,
+ asUintN: a,
prototype: "%BigIntPrototype%",
// See https://github.com/Moddable-OpenSource/moddable/issues/523
bitLength: !1,
@@ -1067,174 +1063,174 @@ const eo = {
},
"%BigIntPrototype%": {
constructor: "BigInt",
- toLocaleString: s,
- toString: s,
- valueOf: s,
+ toLocaleString: a,
+ toString: a,
+ valueOf: a,
"@@toStringTag": "string"
},
"%InitialMath%": {
- ...eo,
+ ...Qn,
// `%InitialMath%.random()` has the standard unsafe behavior
- random: s
+ random: a
},
"%SharedMath%": {
- ...eo,
+ ...Qn,
// `%SharedMath%.random()` is tamed to always throw
- random: s
+ random: a
},
"%InitialDate%": {
// Properties of the Date Constructor
"[[Proto]]": "%FunctionPrototype%",
- now: s,
- parse: s,
+ now: a,
+ parse: a,
prototype: "%DatePrototype%",
- UTC: s
+ UTC: a
},
"%SharedDate%": {
// Properties of the Date Constructor
"[[Proto]]": "%FunctionPrototype%",
// `%SharedDate%.now()` is tamed to always throw
- now: s,
- parse: s,
+ now: a,
+ parse: a,
prototype: "%DatePrototype%",
- UTC: s
+ UTC: a
},
"%DatePrototype%": {
constructor: "%SharedDate%",
- 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,
+ getDate: a,
+ getDay: a,
+ getFullYear: a,
+ getHours: a,
+ getMilliseconds: a,
+ getMinutes: a,
+ getMonth: a,
+ getSeconds: a,
+ getTime: a,
+ getTimezoneOffset: a,
+ getUTCDate: a,
+ getUTCDay: a,
+ getUTCFullYear: a,
+ getUTCHours: a,
+ getUTCMilliseconds: a,
+ getUTCMinutes: a,
+ getUTCMonth: a,
+ getUTCSeconds: a,
+ setDate: a,
+ setFullYear: a,
+ setHours: a,
+ setMilliseconds: a,
+ setMinutes: a,
+ setMonth: a,
+ setSeconds: a,
+ setTime: a,
+ setUTCDate: a,
+ setUTCFullYear: a,
+ setUTCHours: a,
+ setUTCMilliseconds: a,
+ setUTCMinutes: a,
+ setUTCMonth: a,
+ setUTCSeconds: a,
+ toDateString: a,
+ toISOString: a,
+ toJSON: a,
+ toLocaleDateString: a,
+ toLocaleString: a,
+ toLocaleTimeString: a,
+ toString: a,
+ toTimeString: a,
+ toUTCString: a,
+ valueOf: a,
+ "@@toPrimitive": a,
// Annex B: Additional Properties of the Date.prototype Object
- getYear: s,
- setYear: s,
- toGMTString: s
+ getYear: a,
+ setYear: a,
+ toGMTString: a
},
// Text Processing
String: {
// Properties of the String Constructor
"[[Proto]]": "%FunctionPrototype%",
- fromCharCode: s,
- fromCodePoint: s,
+ fromCharCode: a,
+ fromCodePoint: a,
prototype: "%StringPrototype%",
- raw: s,
+ raw: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromArrayBuffer: !1
},
"%StringPrototype%": {
// Properties of the String Prototype Object
length: "number",
- at: s,
- charAt: s,
- charCodeAt: s,
- codePointAt: s,
- concat: s,
+ at: a,
+ charAt: a,
+ charCodeAt: a,
+ codePointAt: a,
+ concat: a,
constructor: "String",
- 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,
+ endsWith: a,
+ includes: a,
+ indexOf: a,
+ lastIndexOf: a,
+ localeCompare: a,
+ match: a,
+ matchAll: a,
+ normalize: a,
+ padEnd: a,
+ padStart: a,
+ repeat: a,
+ replace: a,
+ replaceAll: a,
// ES2021
- 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,
+ search: a,
+ slice: a,
+ split: a,
+ startsWith: a,
+ substring: a,
+ toLocaleLowerCase: a,
+ toLocaleUpperCase: a,
+ toLowerCase: a,
+ toString: a,
+ toUpperCase: a,
+ trim: a,
+ trimEnd: a,
+ trimStart: a,
+ valueOf: a,
+ "@@iterator": a,
// Annex B: Additional Properties of the String.prototype Object
- 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,
+ substr: a,
+ anchor: a,
+ big: a,
+ blink: a,
+ bold: a,
+ fixed: a,
+ fontcolor: a,
+ fontsize: a,
+ italics: a,
+ link: a,
+ small: a,
+ strike: a,
+ sub: a,
+ sup: a,
+ trimLeft: a,
+ trimRight: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
compare: !1,
// https://github.com/tc39/proposal-is-usv-string
- isWellFormed: s,
- toWellFormed: s,
- unicodeSets: s,
+ isWellFormed: a,
+ toWellFormed: a,
+ unicodeSets: a,
// Seen on QuickJS
__quote: !1
},
"%StringIteratorPrototype%": {
"[[Proto]]": "%IteratorPrototype%",
- next: s,
+ next: a,
"@@toStringTag": "string"
},
"%InitialRegExp%": {
// Properties of the RegExp Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%RegExpPrototype%",
- "@@species": R,
+ "@@species": M,
// The https://github.com/tc39/proposal-regexp-legacy-features
// are all optional, unsafe, and omitted
input: !1,
@@ -1261,29 +1257,29 @@ const eo = {
// Properties of the RegExp Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%RegExpPrototype%",
- "@@species": R
+ "@@species": M
},
"%RegExpPrototype%": {
// Properties of the RegExp Prototype Object
constructor: "%SharedRegExp%",
- 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,
+ exec: a,
+ dotAll: M,
+ flags: M,
+ global: M,
+ hasIndices: M,
+ ignoreCase: M,
+ "@@match": a,
+ "@@matchAll": a,
+ multiline: M,
+ "@@replace": a,
+ "@@search": a,
+ source: M,
+ "@@split": a,
+ sticky: M,
+ test: a,
+ toString: a,
+ unicode: M,
+ unicodeSets: M,
// Annex B: Additional Properties of the RegExp.prototype Object
compile: !1
// UNSAFE and suppressed.
@@ -1291,61 +1287,61 @@ const eo = {
"%RegExpStringIteratorPrototype%": {
// The %RegExpStringIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
- next: s,
+ next: a,
"@@toStringTag": "string"
},
// Indexed Collections
Array: {
// Properties of the Array Constructor
"[[Proto]]": "%FunctionPrototype%",
- from: s,
- isArray: s,
- of: s,
+ from: a,
+ isArray: a,
+ of: a,
prototype: "%ArrayPrototype%",
- "@@species": R,
+ "@@species": M,
// Stage 3:
// https://tc39.es/proposal-relative-indexing-method/
- at: s,
+ at: a,
// https://tc39.es/proposal-array-from-async/
- fromAsync: s
+ fromAsync: a
},
"%ArrayPrototype%": {
// Properties of the Array Prototype Object
- at: s,
+ at: a,
length: "number",
- concat: s,
+ concat: a,
constructor: "Array",
- 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,
+ copyWithin: a,
+ entries: a,
+ every: a,
+ fill: a,
+ filter: a,
+ find: a,
+ findIndex: a,
+ flat: a,
+ flatMap: a,
+ forEach: a,
+ includes: a,
+ indexOf: a,
+ join: a,
+ keys: a,
+ lastIndexOf: a,
+ map: a,
+ pop: a,
+ push: a,
+ reduce: a,
+ reduceRight: a,
+ reverse: a,
+ shift: a,
+ slice: a,
+ some: a,
+ sort: a,
+ splice: a,
+ toLocaleString: a,
+ toString: a,
+ unshift: a,
+ values: a,
+ "@@iterator": a,
"@@unscopables": {
"[[Proto]]": null,
copyWithin: "boolean",
@@ -1375,174 +1371,190 @@ const eo = {
groupBy: "boolean"
},
// See https://github.com/tc39/proposal-array-find-from-last
- findLast: s,
- findLastIndex: s,
+ findLast: a,
+ findLastIndex: a,
// https://github.com/tc39/proposal-change-array-by-copy
- toReversed: s,
- toSorted: s,
- toSpliced: s,
- with: s,
+ toReversed: a,
+ toSorted: a,
+ toSpliced: a,
+ with: a,
// https://github.com/tc39/proposal-array-grouping
- group: s,
+ group: a,
// Not in proposal? Where?
- groupToMap: s,
+ groupToMap: a,
// Not in proposal? Where?
- groupBy: s
+ groupBy: a
},
"%ArrayIteratorPrototype%": {
// The %ArrayIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
- next: s,
+ next: a,
"@@toStringTag": "string"
},
// *** TypedArray Objects
"%TypedArray%": {
// Properties of the %TypedArray% Intrinsic Object
"[[Proto]]": "%FunctionPrototype%",
- from: s,
- of: s,
+ from: a,
+ of: a,
prototype: "%TypedArrayPrototype%",
- "@@species": R
+ "@@species": M
},
"%TypedArrayPrototype%": {
- at: s,
- buffer: R,
- byteLength: R,
- byteOffset: R,
+ at: a,
+ buffer: M,
+ byteLength: M,
+ byteOffset: M,
constructor: "%TypedArray%",
- 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,
+ copyWithin: a,
+ entries: a,
+ every: a,
+ fill: a,
+ filter: a,
+ find: a,
+ findIndex: a,
+ forEach: a,
+ includes: a,
+ indexOf: a,
+ join: a,
+ keys: a,
+ lastIndexOf: a,
+ length: M,
+ map: a,
+ reduce: a,
+ reduceRight: a,
+ reverse: a,
+ set: a,
+ slice: a,
+ some: a,
+ sort: a,
+ subarray: a,
+ toLocaleString: a,
+ toString: a,
+ values: a,
+ "@@iterator": a,
+ "@@toStringTag": M,
// See https://github.com/tc39/proposal-array-find-from-last
- findLast: s,
- findLastIndex: s,
+ findLast: a,
+ findLastIndex: a,
// https://github.com/tc39/proposal-change-array-by-copy
- toReversed: s,
- toSorted: s,
- with: s
+ toReversed: a,
+ toSorted: a,
+ with: a
},
// The TypedArray Constructors
- BigInt64Array: ge("%BigInt64ArrayPrototype%"),
- BigUint64Array: ge("%BigUint64ArrayPrototype%"),
+ BigInt64Array: xe("%BigInt64ArrayPrototype%"),
+ BigUint64Array: xe("%BigUint64ArrayPrototype%"),
// https://github.com/tc39/proposal-float16array
- 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"),
+ Float16Array: xe("%Float16ArrayPrototype%"),
+ Float32Array: xe("%Float32ArrayPrototype%"),
+ Float64Array: xe("%Float64ArrayPrototype%"),
+ Int16Array: xe("%Int16ArrayPrototype%"),
+ Int32Array: xe("%Int32ArrayPrototype%"),
+ Int8Array: xe("%Int8ArrayPrototype%"),
+ Uint16Array: xe("%Uint16ArrayPrototype%"),
+ Uint32Array: xe("%Uint32ArrayPrototype%"),
+ Uint8ClampedArray: xe("%Uint8ClampedArrayPrototype%"),
+ Uint8Array: {
+ ...xe("%Uint8ArrayPrototype%"),
+ // https://github.com/tc39/proposal-arraybuffer-base64
+ fromBase64: a,
+ // https://github.com/tc39/proposal-arraybuffer-base64
+ fromHex: a
+ },
+ "%BigInt64ArrayPrototype%": Se("BigInt64Array"),
+ "%BigUint64ArrayPrototype%": Se("BigUint64Array"),
// https://github.com/tc39/proposal-float16array
- "%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"),
+ "%Float16ArrayPrototype%": Se("Float16Array"),
+ "%Float32ArrayPrototype%": Se("Float32Array"),
+ "%Float64ArrayPrototype%": Se("Float64Array"),
+ "%Int16ArrayPrototype%": Se("Int16Array"),
+ "%Int32ArrayPrototype%": Se("Int32Array"),
+ "%Int8ArrayPrototype%": Se("Int8Array"),
+ "%Uint16ArrayPrototype%": Se("Uint16Array"),
+ "%Uint32ArrayPrototype%": Se("Uint32Array"),
+ "%Uint8ClampedArrayPrototype%": Se("Uint8ClampedArray"),
+ "%Uint8ArrayPrototype%": {
+ ...Se("Uint8Array"),
+ // https://github.com/tc39/proposal-arraybuffer-base64
+ setFromBase64: a,
+ // https://github.com/tc39/proposal-arraybuffer-base64
+ setFromHex: a,
+ // https://github.com/tc39/proposal-arraybuffer-base64
+ toBase64: a,
+ // https://github.com/tc39/proposal-arraybuffer-base64
+ toHex: a
+ },
// *** Keyed Collections
Map: {
// Properties of the Map Constructor
"[[Proto]]": "%FunctionPrototype%",
- "@@species": R,
+ "@@species": M,
prototype: "%MapPrototype%",
// https://github.com/tc39/proposal-array-grouping
- groupBy: s
+ groupBy: a
},
"%MapPrototype%": {
- clear: s,
+ clear: a,
constructor: "Map",
- delete: s,
- entries: s,
- forEach: s,
- get: s,
- has: s,
- keys: s,
- set: s,
- size: R,
- values: s,
- "@@iterator": s,
+ delete: a,
+ entries: a,
+ forEach: a,
+ get: a,
+ has: a,
+ keys: a,
+ set: a,
+ size: M,
+ values: a,
+ "@@iterator": a,
"@@toStringTag": "string"
},
"%MapIteratorPrototype%": {
// The %MapIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
- next: s,
+ next: a,
"@@toStringTag": "string"
},
Set: {
// Properties of the Set Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%SetPrototype%",
- "@@species": R,
+ "@@species": M,
// Seen on QuickJS
groupBy: !1
},
"%SetPrototype%": {
- add: s,
- clear: s,
+ add: a,
+ clear: a,
constructor: "Set",
- delete: s,
- entries: s,
- forEach: s,
- has: s,
- keys: s,
- size: R,
- values: s,
- "@@iterator": s,
+ delete: a,
+ entries: a,
+ forEach: a,
+ has: a,
+ keys: a,
+ size: M,
+ values: a,
+ "@@iterator": a,
"@@toStringTag": "string",
// See https://github.com/tc39/proposal-set-methods
- intersection: s,
+ intersection: a,
// See https://github.com/tc39/proposal-set-methods
- union: s,
+ union: a,
// See https://github.com/tc39/proposal-set-methods
- difference: s,
+ difference: a,
// See https://github.com/tc39/proposal-set-methods
- symmetricDifference: s,
+ symmetricDifference: a,
// See https://github.com/tc39/proposal-set-methods
- isSubsetOf: s,
+ isSubsetOf: a,
// See https://github.com/tc39/proposal-set-methods
- isSupersetOf: s,
+ isSupersetOf: a,
// See https://github.com/tc39/proposal-set-methods
- isDisjointFrom: s
+ isDisjointFrom: a
},
"%SetIteratorPrototype%": {
// The %SetIteratorPrototype% Object
"[[Proto]]": "%IteratorPrototype%",
- next: s,
+ next: a,
"@@toStringTag": "string"
},
WeakMap: {
@@ -1552,10 +1564,10 @@ const eo = {
},
"%WeakMapPrototype%": {
constructor: "WeakMap",
- delete: s,
- get: s,
- has: s,
- set: s,
+ delete: a,
+ get: a,
+ has: a,
+ set: a,
"@@toStringTag": "string"
},
WeakSet: {
@@ -1564,39 +1576,39 @@ const eo = {
prototype: "%WeakSetPrototype%"
},
"%WeakSetPrototype%": {
- add: s,
+ add: a,
constructor: "WeakSet",
- delete: s,
- has: s,
+ delete: a,
+ has: a,
"@@toStringTag": "string"
},
// *** Structured Data
ArrayBuffer: {
// Properties of the ArrayBuffer Constructor
"[[Proto]]": "%FunctionPrototype%",
- isView: s,
+ isView: a,
prototype: "%ArrayBufferPrototype%",
- "@@species": R,
+ "@@species": M,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromString: !1,
// See https://github.com/Moddable-OpenSource/moddable/issues/523
fromBigInt: !1
},
"%ArrayBufferPrototype%": {
- byteLength: R,
+ byteLength: M,
constructor: "ArrayBuffer",
- slice: s,
+ slice: a,
"@@toStringTag": "string",
// See https://github.com/Moddable-OpenSource/moddable/issues/523
concat: !1,
// See https://github.com/tc39/proposal-resizablearraybuffer
- transfer: s,
- resize: s,
- resizable: R,
- maxByteLength: R,
+ transfer: a,
+ resize: a,
+ resizable: M,
+ maxByteLength: M,
// https://github.com/tc39/proposal-arraybuffer-transfer
- transferToFixedLength: s,
- detached: R
+ transferToFixedLength: a,
+ detached: M
},
// SharedArrayBuffer Objects
SharedArrayBuffer: !1,
@@ -1611,46 +1623,46 @@ const eo = {
prototype: "%DataViewPrototype%"
},
"%DataViewPrototype%": {
- buffer: R,
- byteLength: R,
- byteOffset: R,
+ buffer: M,
+ byteLength: M,
+ byteOffset: M,
constructor: "DataView",
- getBigInt64: s,
- getBigUint64: s,
+ getBigInt64: a,
+ getBigUint64: a,
// https://github.com/tc39/proposal-float16array
- getFloat16: s,
- getFloat32: s,
- getFloat64: s,
- getInt8: s,
- getInt16: s,
- getInt32: s,
- getUint8: s,
- getUint16: s,
- getUint32: s,
- setBigInt64: s,
- setBigUint64: s,
+ getFloat16: a,
+ getFloat32: a,
+ getFloat64: a,
+ getInt8: a,
+ getInt16: a,
+ getInt32: a,
+ getUint8: a,
+ getUint16: a,
+ getUint32: a,
+ setBigInt64: a,
+ setBigUint64: a,
// https://github.com/tc39/proposal-float16array
- setFloat16: s,
- setFloat32: s,
- setFloat64: s,
- setInt8: s,
- setInt16: s,
- setInt32: s,
- setUint8: s,
- setUint16: s,
- setUint32: s,
+ setFloat16: a,
+ setFloat32: a,
+ setFloat64: a,
+ setInt8: a,
+ setInt16: a,
+ setInt32: a,
+ setUint8: a,
+ setUint16: a,
+ setUint32: a,
"@@toStringTag": "string"
},
// Atomics
Atomics: !1,
// UNSAFE and suppressed.
JSON: {
- parse: s,
- stringify: s,
+ parse: a,
+ stringify: a,
"@@toStringTag": "string",
// https://github.com/tc39/proposal-json-parse-with-source/
- rawJSON: s,
- isRawJSON: s
+ rawJSON: a,
+ isRawJSON: a
},
// *** Control Abstraction Objects
// https://github.com/tc39/proposal-iterator-helpers
@@ -1658,41 +1670,41 @@ const eo = {
// Properties of the Iterator Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%IteratorPrototype%",
- from: s
+ from: a
},
"%IteratorPrototype%": {
// The %IteratorPrototype% Object
- "@@iterator": s,
+ "@@iterator": a,
// https://github.com/tc39/proposal-iterator-helpers
constructor: "Iterator",
- map: s,
- filter: s,
- take: s,
- drop: s,
- flatMap: s,
- reduce: s,
- toArray: s,
- forEach: s,
- some: s,
- every: s,
- find: s,
+ map: a,
+ filter: a,
+ take: a,
+ drop: a,
+ flatMap: a,
+ reduce: a,
+ toArray: a,
+ forEach: a,
+ some: a,
+ every: a,
+ find: a,
"@@toStringTag": "string",
// https://github.com/tc39/proposal-async-iterator-helpers
- toAsync: s,
+ toAsync: a,
// See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505
"@@dispose": !1
},
// https://github.com/tc39/proposal-iterator-helpers
"%WrapForValidIteratorPrototype%": {
"[[Proto]]": "%IteratorPrototype%",
- next: s,
- return: s
+ next: a,
+ return: a
},
// https://github.com/tc39/proposal-iterator-helpers
"%IteratorHelperPrototype%": {
"[[Proto]]": "%IteratorPrototype%",
- next: s,
- return: s,
+ next: a,
+ return: a,
"@@toStringTag": "string"
},
// https://github.com/tc39/proposal-async-iterator-helpers
@@ -1700,24 +1712,24 @@ const eo = {
// Properties of the Iterator Constructor
"[[Proto]]": "%FunctionPrototype%",
prototype: "%AsyncIteratorPrototype%",
- from: s
+ from: a
},
"%AsyncIteratorPrototype%": {
// The %AsyncIteratorPrototype% Object
- "@@asyncIterator": s,
+ "@@asyncIterator": a,
// https://github.com/tc39/proposal-async-iterator-helpers
constructor: "AsyncIterator",
- map: s,
- filter: s,
- take: s,
- drop: s,
- flatMap: s,
- reduce: s,
- toArray: s,
- forEach: s,
- some: s,
- every: s,
- find: s,
+ map: a,
+ filter: a,
+ take: a,
+ drop: a,
+ flatMap: a,
+ reduce: a,
+ toArray: a,
+ forEach: a,
+ some: a,
+ every: a,
+ find: a,
"@@toStringTag": "string",
// See https://github.com/Moddable-OpenSource/moddable/issues/523#issuecomment-1942904505
"@@asyncDispose": !1
@@ -1725,14 +1737,14 @@ const eo = {
// https://github.com/tc39/proposal-async-iterator-helpers
"%WrapForValidAsyncIteratorPrototype%": {
"[[Proto]]": "%AsyncIteratorPrototype%",
- next: s,
- return: s
+ next: a,
+ return: a
},
// https://github.com/tc39/proposal-async-iterator-helpers
"%AsyncIteratorHelperPrototype%": {
"[[Proto]]": "%AsyncIteratorPrototype%",
- next: s,
- return: s,
+ next: a,
+ return: a,
"@@toStringTag": "string"
},
"%InertGeneratorFunction%": {
@@ -1767,18 +1779,18 @@ const eo = {
// Properties of the Generator Prototype Object
"[[Proto]]": "%IteratorPrototype%",
constructor: "%Generator%",
- next: s,
- return: s,
- throw: s,
+ next: a,
+ return: a,
+ throw: a,
"@@toStringTag": "string"
},
"%AsyncGeneratorPrototype%": {
// Properties of the AsyncGenerator Prototype Object
"[[Proto]]": "%AsyncIteratorPrototype%",
constructor: "%AsyncGenerator%",
- next: s,
- return: s,
- throw: s,
+ next: a,
+ return: a,
+ throw: a,
"@@toStringTag": "string"
},
// TODO: To be replaced with Promise.delegate
@@ -1792,41 +1804,41 @@ const eo = {
// another whitelist change to update to the current proposed standard.
HandledPromise: {
"[[Proto]]": "Promise",
- applyFunction: s,
- applyFunctionSendOnly: s,
- applyMethod: s,
- applyMethodSendOnly: s,
- get: s,
- getSendOnly: s,
+ applyFunction: a,
+ applyFunctionSendOnly: a,
+ applyMethod: a,
+ applyMethodSendOnly: a,
+ get: a,
+ getSendOnly: a,
prototype: "%PromisePrototype%",
- resolve: s
+ resolve: a
},
Promise: {
// Properties of the Promise Constructor
"[[Proto]]": "%FunctionPrototype%",
- all: s,
- allSettled: s,
+ all: a,
+ allSettled: a,
// https://github.com/Agoric/SES-shim/issues/550
- any: s,
+ any: a,
prototype: "%PromisePrototype%",
- race: s,
- reject: s,
- resolve: s,
+ race: a,
+ reject: a,
+ resolve: a,
// https://github.com/tc39/proposal-promise-with-resolvers
- withResolvers: s,
- "@@species": R
+ withResolvers: a,
+ "@@species": M
},
"%PromisePrototype%": {
// Properties of the Promise Prototype Object
- catch: s,
+ catch: a,
constructor: "Promise",
- finally: s,
- then: s,
+ finally: a,
+ then: a,
"@@toStringTag": "string",
// Non-standard, used in node to prevent async_hooks from breaking
- "UniqueSymbol(async_id_symbol)": Ie,
- "UniqueSymbol(trigger_async_id_symbol)": Ie,
- "UniqueSymbol(destroyed)": Ie
+ "UniqueSymbol(async_id_symbol)": Oe,
+ "UniqueSymbol(trigger_async_id_symbol)": Oe,
+ "UniqueSymbol(destroyed)": Oe
},
"%InertAsyncFunction%": {
// Properties of the AsyncFunction Constructor
@@ -1847,95 +1859,95 @@ const eo = {
Reflect: {
// The Reflect Object
// Not a function object.
- 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,
+ apply: a,
+ construct: a,
+ defineProperty: a,
+ deleteProperty: a,
+ get: a,
+ getOwnPropertyDescriptor: a,
+ getPrototypeOf: a,
+ has: a,
+ isExtensible: a,
+ ownKeys: a,
+ preventExtensions: a,
+ set: a,
+ setPrototypeOf: a,
"@@toStringTag": "string"
},
Proxy: {
// Properties of the Proxy Constructor
"[[Proto]]": "%FunctionPrototype%",
- revocable: s
+ revocable: a
},
// Appendix B
// Annex B: Additional Properties of the Global Object
- escape: s,
- unescape: s,
+ escape: a,
+ unescape: a,
// Proposed
"%UniqueCompartment%": {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%CompartmentPrototype%",
- toString: s
+ toString: a
},
"%InertCompartment%": {
"[[Proto]]": "%FunctionPrototype%",
prototype: "%CompartmentPrototype%",
- toString: s
+ toString: a
},
"%CompartmentPrototype%": {
constructor: "%InertCompartment%",
- evaluate: s,
- globalThis: R,
- name: R,
- import: Xn,
- load: Xn,
- importNow: s,
- module: s,
+ evaluate: a,
+ globalThis: M,
+ name: M,
+ import: Jn,
+ load: Jn,
+ importNow: a,
+ module: a,
"@@toStringTag": "string"
},
- lockdown: s,
- harden: { ...s, isFake: "boolean" },
- "%InitialGetStackString%": s
-}, 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)
+ lockdown: a,
+ harden: { ...a, isFake: "boolean" },
+ "%InitialGetStackString%": a
+}, Va = (t) => typeof t == "function";
+function Ha(t, e, r) {
+ if (de(t, e)) {
+ const n = ne(t, e);
+ if (!n || !Dr(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);
+ U(t, e, r);
}
function Wa(t, e) {
- for (const [r, n] of re(e))
- Va(t, r, n);
+ for (const [r, n] of ge(e))
+ Ha(t, r, n);
}
function os(t, e) {
const r = { __proto__: null };
- for (const [n, o] of re(e))
- oe(t, n) && (r[o] = t[n]);
+ for (const [n, o] of ge(e))
+ de(t, n) && (r[o] = t[n]);
return r;
}
const ss = () => {
- const t = Z(null);
+ const t = H(null);
let e;
const r = (c) => {
Wa(t, Ze(c));
};
y(r);
const n = () => {
- for (const [c, l] of re(t)) {
- if (!Ye(l) || !oe(l, "prototype"))
+ for (const [c, l] of ge(t)) {
+ if (!ke(l) || !de(l, "prototype"))
continue;
- const u = wr[c];
+ const u = Tr[c];
if (typeof u != "object")
throw v(`Expected permit object at whitelist.${c}`);
const d = u.prototype;
if (!d)
throw v(`${c}.prototype property not whitelisted`);
- if (typeof d != "string" || !oe(wr, d))
+ if (typeof d != "string" || !de(Tr, d))
throw v(`Unrecognized ${c}.prototype whitelist entry`);
const f = l.prototype;
- if (oe(t, d)) {
+ if (de(t, d)) {
if (t[d] !== f)
throw v(`Conflicting bindings of ${d}`);
continue;
@@ -1944,33 +1956,33 @@ const ss = () => {
}
};
y(n);
- const o = () => (y(t), e = new $t(Ke(ko(t), Ha)), t);
+ const o = () => (y(t), e = new Mt(et(ko(t), Va)), t);
y(o);
- const a = (c) => {
+ const s = (c) => {
if (!e)
throw v(
"isPseudoNative can only be called after finalIntrinsics"
);
- return or(e, c);
+ return cr(e, c);
};
- y(a);
+ y(s);
const i = {
addIntrinsics: r,
completePrototypes: n,
finalIntrinsics: o,
- isPseudoNative: a
+ isPseudoNative: s
};
- return y(i), r(es), r(os(k, ts)), i;
+ return y(i), r(es), r(os(T, ts)), i;
}, qa = (t) => {
const { addIntrinsics: e, finalIntrinsics: r } = ss();
return e(os(t, rs)), r();
};
function Ka(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(
- St ? se(
- Ke(
- re(wr["%SharedSymbol%"]),
+ const n = (h, ...p) => (r || (console.groupCollapsed("Removing unpermitted intrinsics"), r = !0), console[h](...p)), o = ["undefined", "boolean", "number", "string", "symbol"], s = new Re(
+ St ? fe(
+ et(
+ ge(Tr["%SharedSymbol%"]),
([h, p]) => p === "symbol" && typeof St[h] == "symbol"
),
([h]) => [St[h], `@@${h}`]
@@ -1979,21 +1991,21 @@ function Ka(t, e) {
function i(h, p) {
if (typeof p == "string")
return p;
- const m = Ue(a, p);
+ const m = He(s, p);
if (typeof p == "symbol") {
if (m)
return m;
{
const _ = ea(p);
- return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${pe(p)}`;
+ return _ !== void 0 ? `RegisteredSymbol(${_})` : `Unique${be(p)}`;
}
}
throw v(`Unexpected property name type ${h} ${p}`);
}
function c(h, p, m) {
- if (!Ye(p))
+ if (!ke(p))
throw v(`Object expected: ${h}, ${p}, ${m}`);
- const _ = j(p);
+ const _ = V(p);
if (!(_ === null && m === null)) {
if (m !== void 0 && typeof m != "string")
throw v(`Malformed whitelist permit ${h}.__proto__`);
@@ -2008,12 +2020,12 @@ function Ka(t, e) {
return !1;
if (typeof _ == "string") {
if (m === "prototype" || m === "constructor") {
- if (oe(t, _)) {
+ if (de(t, _)) {
if (p !== t[_])
throw v(`Does not match whitelist ${h}`);
return !0;
}
- } else if (Mr(o, _)) {
+ } else if (Zr(o, _)) {
if (typeof p !== _)
throw v(
`At ${h} expected ${_} not ${typeof p}`
@@ -2024,81 +2036,81 @@ function Ka(t, e) {
throw v(`Unexpected whitelist permit ${_} at ${h}`);
}
function u(h, p, m, _) {
- const S = J(p, m);
+ const S = ne(p, m);
if (!S)
throw v(`Property ${m} not found at ${h}`);
- if (oe(S, "value")) {
- if (Qn(_))
+ if (de(S, "value")) {
+ if (Xn(_))
throw v(`Accessor expected at ${h}`);
return l(h, S.value, m, _);
}
- if (!Qn(_))
+ if (!Xn(_))
throw v(`Accessor not expected at ${h}`);
return l(`${h}`, S.get, m, _.get) && l(`${h}`, S.set, m, _.set);
}
function d(h, p, m) {
const _ = m === "__proto__" ? "--proto--" : m;
- if (oe(p, _))
+ if (de(p, _))
return p[_];
- if (typeof h == "function" && oe(an, _))
- return an[_];
+ if (typeof h == "function" && de(ln, _))
+ return ln[_];
}
function f(h, p, m) {
if (p == null)
return;
const _ = m["[[Proto]]"];
c(h, p, _), typeof p == "function" && e(p);
- for (const S of De(p)) {
- const T = i(h, S), N = `${h}.${T}`, x = d(p, m, T);
- if (!x || !u(N, p, S, x)) {
- x !== !1 && n("warn", `Removing ${N}`);
+ for (const S of Ve(p)) {
+ const x = i(h, S), I = `${h}.${x}`, E = d(p, m, x);
+ if (!E || !u(I, p, S, E)) {
+ E !== !1 && n("warn", `Removing ${I}`);
try {
delete p[S];
- } catch (D) {
+ } catch (L) {
if (S in p) {
if (typeof p == "function" && S === "prototype" && (p.prototype = void 0, p.prototype === void 0)) {
n(
"warn",
- `Tolerating undeletable ${N} === undefined`
+ `Tolerating undeletable ${I} === undefined`
);
continue;
}
- n("error", `failed to delete ${N}`, D);
+ n("error", `failed to delete ${I}`, L);
} else
- n("error", `deleting ${N} threw`, D);
- throw D;
+ n("error", `deleting ${I} threw`, L);
+ throw L;
}
}
}
}
try {
- f("intrinsics", t, wr);
+ f("intrinsics", t, Tr);
} finally {
r && console.groupEnd();
}
}
function Ya() {
try {
- ve.prototype.constructor("return 1");
+ Ee.prototype.constructor("return 1");
} catch {
return y({});
}
const t = {};
function e(r, n, o) {
- let a;
+ let s;
try {
- a = (0, eval)(o);
+ s = (0, eval)(o);
} catch (l) {
- if (l instanceof tr)
+ if (l instanceof sr)
return;
throw l;
}
- const i = j(a), c = function() {
+ const i = V(s), c = function() {
throw v(
"Function.prototype.constructor is not a valid constructor."
);
};
- F(c, {
+ B(c, {
prototype: { value: i },
name: {
value: r,
@@ -2106,9 +2118,9 @@ function Ya() {
enumerable: !1,
configurable: !0
}
- }), F(i, {
+ }), B(i, {
constructor: { value: c }
- }), c !== ve.prototype.constructor && xo(c, ve.prototype.constructor), t[n] = c;
+ }), c !== Ee.prototype.constructor && Eo(c, Ee.prototype.constructor), t[n] = c;
}
return e("Function", "%InertFunction%", "(function(){})"), e(
"GeneratorFunction",
@@ -2127,7 +2139,7 @@ function Ya() {
function Ja(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw v(`unrecognized dateTaming ${t}`);
- const e = Hs, 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
@@ -2138,7 +2150,7 @@ function Ja(t = "safe") {
}, o = ({ powers: c = "none" } = {}) => {
let l;
return c === "original" ? l = function(...d) {
- return new.target === void 0 ? ne(e, void 0, d) : mr(e, d, new.target);
+ return new.target === void 0 ? ue(e, void 0, d) : br(e, d, new.target);
} : l = function(...d) {
if (new.target === void 0)
throw v(
@@ -2148,8 +2160,8 @@ function Ja(t = "safe") {
throw v(
"secure mode Calling new %SharedDate%() with no arguments throws"
);
- return mr(e, d, new.target);
- }, F(l, {
+ return br(e, d, new.target);
+ }, B(l, {
length: { value: 7 },
prototype: {
value: r,
@@ -2170,32 +2182,32 @@ function Ja(t = "safe") {
configurable: !0
}
}), l;
- }, a = o({ powers: "original" }), i = o({ powers: "none" });
- return F(a, {
+ }, s = o({ powers: "original" }), i = o({ powers: "none" });
+ return B(s, {
now: {
value: e.now,
writable: !0,
enumerable: !1,
configurable: !0
}
- }), F(i, {
+ }), B(i, {
now: {
value: n.now,
writable: !0,
enumerable: !1,
configurable: !0
}
- }), F(r, {
+ }), B(r, {
constructor: { value: i }
}), {
- "%InitialDate%": a,
+ "%InitialDate%": s,
"%SharedDate%": i
};
}
function Xa(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw v(`unrecognized mathTaming ${t}`);
- const e = qs, r = e, { random: n, ...o } = Ze(e), i = Z(bn, {
+ const e = qs, r = e, { random: n, ...o } = Ze(e), i = H(_n, {
...o,
random: {
value: {
@@ -2220,11 +2232,11 @@ function Xa(t = "safe") {
function Qa(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw v(`unrecognized regExpTaming ${t}`);
- const e = We.prototype, r = (a = {}) => {
+ const e = Xe.prototype, r = (s = {}) => {
const i = function(...l) {
- return new.target === void 0 ? We(...l) : mr(We, l, new.target);
+ return new.target === void 0 ? Xe(...l) : br(Xe, l, new.target);
};
- if (F(i, {
+ if (B(i, {
length: { value: 2 },
prototype: {
value: e,
@@ -2232,20 +2244,20 @@ function Qa(t = "safe") {
enumerable: !1,
configurable: !1
}
- }), Vr) {
- const c = J(
- We,
- Vr
+ }), Jr) {
+ const c = ne(
+ Xe,
+ Jr
);
if (!c)
throw v("no RegExp[Symbol.species] descriptor");
- F(i, {
- [Vr]: c
+ B(i, {
+ [Jr]: c
});
}
return i;
}, n = r(), o = r();
- return t !== "unsafe" && delete e.compile, F(e, {
+ return t !== "unsafe" && delete e.compile, B(e, {
constructor: { value: o }
}), {
"%InitialRegExp%": n,
@@ -2269,7 +2281,7 @@ const ei = {
// https://github.com/tc39/proposal-iterator-helpers
constructor: !0,
// https://github.com/tc39/proposal-iterator-helpers
- [qe]: !0
+ [Qe]: !0
}
}, as = {
"%ObjectPrototype%": {
@@ -2282,7 +2294,7 @@ const ei = {
// set by "Google Analytics"
concat: !0,
// set by mobx generated code (old TS compiler?)
- [rr]: !0
+ [ar]: !0
// set by mobx generated code (old TS compiler?)
},
// Function.prototype has no 'prototype' property to enable.
@@ -2367,7 +2379,7 @@ const ei = {
// https://github.com/tc39/proposal-iterator-helpers
constructor: !0,
// https://github.com/tc39/proposal-iterator-helpers
- [qe]: !0
+ [Qe]: !0
}
}, ti = {
...as,
@@ -2424,23 +2436,23 @@ const ei = {
"%SetPrototype%": "*"
};
function ri(t, e, r = []) {
- const n = new Ct(r);
+ const n = new Ot(r);
function o(u, d, f, h) {
if ("value" in h && h.configurable) {
- const { value: p } = h, m = En(n, f), { get: _, set: S } = J(
+ const { value: p } = h, m = xn(n, f), { get: _, set: S } = ne(
{
get [f]() {
return p;
},
- set [f](T) {
+ set [f](x) {
if (d === this)
throw v(
- `Cannot assign to read only property '${pe(
+ `Cannot assign to read only property '${be(
f
)}' of '${u}'`
);
- oe(this, f) ? this[f] = T : (m && console.error(v(`Override property ${f}`)), M(this, f, {
- value: T,
+ de(this, f) ? this[f] = x : (m && console.error(v(`Override property ${f}`)), U(this, f, {
+ value: x,
writable: !0,
enumerable: !0,
configurable: !0
@@ -2449,12 +2461,12 @@ function ri(t, e, r = []) {
},
f
);
- M(_, "originalValue", {
+ U(_, "originalValue", {
value: p,
writable: !1,
enumerable: !1,
configurable: !1
- }), M(d, f, {
+ }), U(d, f, {
get: _,
set: S,
enumerable: h.enumerable,
@@ -2462,25 +2474,25 @@ function ri(t, e, r = []) {
});
}
}
- function a(u, d, f) {
- const h = J(d, f);
+ function s(u, d, f) {
+ const h = ne(d, f);
h && o(u, d, f, h);
}
function i(u, d) {
const f = Ze(d);
- f && ut(De(f), (h) => o(u, d, h, f[h]));
+ f && ft(Ve(f), (h) => o(u, d, h, f[h]));
}
function c(u, d, f) {
- for (const h of De(f)) {
- const p = J(d, h);
+ for (const h of Ve(f)) {
+ const p = ne(d, h);
if (!p || p.get || p.set)
continue;
- const m = `${u}.${pe(h)}`, _ = f[h];
+ const m = `${u}.${be(h)}`, _ = f[h];
if (_ === !0)
- a(m, d, h);
+ s(m, d, h);
else if (_ === "*")
i(m, p.value);
- else if (Ye(_))
+ else if (ke(_))
c(m, p.value, _);
else
throw v(`Unexpected override enablement plan ${m}`);
@@ -2505,7 +2517,7 @@ function ri(t, e, r = []) {
}
c("root", t, l);
}
-const { Fail: cn, quote: Sr } = z, ni = /^(\w*[a-z])Locale([A-Z]\w*)$/, is = {
+const { Fail: un, quote: Ar } = ee, 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)
@@ -2513,7 +2525,7 @@ const { Fail: cn, quote: Sr } = z, ni = /^(\w*[a-z])Locale([A-Z]\w*)$/, is = {
'Cannot localeCompare with null or undefined "this" value'
);
const e = `${this}`, r = `${t}`;
- return e < r ? -1 : e > r ? 1 : (e === r || cn`expected ${Sr(e)} and ${Sr(r)} to compare`, 0);
+ return e < r ? -1 : e > r ? 1 : (e === r || un`expected ${Ar(e)} and ${Ar(r)} to compare`, 0);
},
toString() {
return `${this}`;
@@ -2523,22 +2535,22 @@ function ai(t, e = "safe") {
if (e !== "safe" && e !== "unsafe")
throw v(`unrecognized localeTaming ${e}`);
if (e !== "unsafe") {
- M(pe.prototype, "localeCompare", {
+ U(be.prototype, "localeCompare", {
value: oi
});
- for (const r of Dt(t)) {
+ for (const r of It(t)) {
const n = t[r];
- if (Ye(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`;
- const i = `${a[1]}${a[2]}`, c = n[i];
- typeof c == "function" || cn`function ${Sr(i)} not found`, M(n, o, { value: c });
+ if (ke(n))
+ for (const o of It(n)) {
+ const s = En(ni, o);
+ if (s) {
+ typeof n[o] == "function" || un`expected ${Ar(o)} to be a function`;
+ const i = `${s[1]}${s[2]}`, c = n[i];
+ typeof c == "function" || un`function ${Ar(i)} not found`, U(n, o, { value: c });
}
}
}
- M(So.prototype, "toLocaleString", {
+ U(xo.prototype, "toLocaleString", {
value: si
});
}
@@ -2547,32 +2559,32 @@ const ii = (t) => ({
eval(r) {
return typeof r != "string" ? r : t(r);
}
-}).eval, { Fail: to } = z, ci = (t) => {
+}).eval, { Fail: eo } = ee, ci = (t) => {
const e = function(n) {
- const o = `${gr(arguments) || ""}`, a = `${Rt(arguments, ",")}`;
- new ve(a, ""), new ve(o);
- const i = `(function anonymous(${a}
+ const o = `${wr(arguments) || ""}`, s = `${Ft(arguments, ",")}`;
+ new Ee(s, ""), new Ee(o);
+ const i = `(function anonymous(${s}
) {
${o}
})`;
return t(i);
};
- return F(e, {
+ return B(e, {
// Ensure that any function created in any evaluator in a realm is an
// instance of Function in any evaluator of the same realm.
prototype: {
- value: ve.prototype,
+ value: Ee.prototype,
writable: !1,
enumerable: !1,
configurable: !1
}
- }), 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;
+ }), V(Ee) === Ee.prototype || eo`Function prototype is the same accross compartments`, V(e) === Ee.prototype || eo`Function constructor prototype is the same accross compartments`, e;
}, li = (t) => {
- M(
+ U(
t,
Qs,
y(
- $r(Z(null), {
+ Fr(H(null), {
set: y(() => {
throw v(
"Cannot set Symbol.unscopables of a Compartment's globalThis"
@@ -2584,8 +2596,8 @@ ${o}
)
);
}, cs = (t) => {
- for (const [e, r] of re(es))
- M(t, e, {
+ for (const [e, r] of ge(es))
+ U(t, e, {
value: r,
writable: !1,
enumerable: !1,
@@ -2595,43 +2607,45 @@ ${o}
intrinsics: e,
newGlobalPropertyNames: r,
makeCompartmentConstructor: n,
- markVirtualizedNativeFunction: o
+ markVirtualizedNativeFunction: o,
+ parentCompartment: s
}) => {
- for (const [i, c] of re(ts))
- oe(e, c) && M(t, i, {
- value: e[c],
+ for (const [c, l] of ge(ts))
+ de(e, l) && U(t, c, {
+ value: e[l],
writable: !0,
enumerable: !1,
configurable: !0
});
- for (const [i, c] of re(r))
- oe(e, c) && M(t, i, {
- value: e[c],
+ for (const [c, l] of ge(r))
+ de(e, l) && U(t, c, {
+ value: e[l],
writable: !0,
enumerable: !1,
configurable: !0
});
- const a = {
+ const i = {
globalThis: t
};
- a.Compartment = y(
+ i.Compartment = y(
n(
n,
e,
- o
+ o,
+ s
)
);
- for (const [i, c] of re(a))
- M(t, i, {
- value: c,
+ for (const [c, l] of ge(i))
+ U(t, c, {
+ value: l,
writable: !0,
enumerable: !1,
configurable: !0
- }), typeof c == "function" && o(c);
-}, ln = (t, e, r) => {
+ }), typeof l == "function" && o(l);
+}, dn = (t, e, r) => {
{
const n = y(ii(e));
- r(n), M(t, "eval", {
+ r(n), U(t, "eval", {
value: n,
writable: !0,
enumerable: !1,
@@ -2640,28 +2654,28 @@ ${o}
}
{
const n = y(ci(e));
- r(n), M(t, "Function", {
+ r(n), U(t, "Function", {
value: n,
writable: !0,
enumerable: !1,
configurable: !0
});
}
-}, { Fail: ui, quote: us } = z, ds = new Cr(
- In,
+}, { Fail: ui, quote: us } = ee, ds = new Lr(
+ Tn,
y({
get(t, e) {
- ui`Please report unexpected scope handler trap: ${us(pe(e))}`;
+ ui`Please report unexpected scope handler trap: ${us(be(e))}`;
}
})
), di = {
get(t, e) {
},
set(t, e, r) {
- throw lt(`${pe(e)} is not defined`);
+ throw Bt(`${be(e)} is not defined`);
},
has(t, e) {
- return e in k;
+ return e in T;
},
// note: this is likely a bug of safari
// https://bugs.webkit.org/show_bug.cgi?id=195534
@@ -2671,7 +2685,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 = us(pe(e));
+ const r = us(be(e));
console.warn(
`getOwnPropertyDescriptor trap on scopeTerminatorHandler for ${r}`,
v().stack
@@ -2683,39 +2697,39 @@ ${o}
return [];
}
}, fs = y(
- Z(
+ H(
ds,
Ze(di)
)
-), fi = new Cr(
- In,
+), fi = new Lr(
+ Tn,
fs
), ps = (t) => {
const e = {
// inherit scopeTerminator behavior
...fs,
// Redirect set properties to the globalObject.
- set(o, a, i) {
- return Io(t, a, i);
+ set(o, s, i) {
+ return Io(t, s, i);
},
// Always claim to have a potential property in order to be the recipient of a set
- has(o, a) {
+ has(o, s) {
return !0;
}
}, r = y(
- Z(
+ H(
ds,
Ze(e)
)
);
- return new Cr(
- In,
+ return new Lr(
+ Tn,
r
);
};
y(ps);
-const { Fail: pi } = z, hi = () => {
- const t = Z(null), e = y({
+const { Fail: pi } = ee, hi = () => {
+ const t = H(null), e = y({
eval: {
get() {
return delete t.eval, jo;
@@ -2727,64 +2741,64 @@ const { Fail: pi } = z, hi = () => {
evalScope: t,
allowNextEvalToBeUnsafe() {
const { revoked: n } = r;
- n !== null && pi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, F(t, e);
+ n !== null && pi`a handler did not reset allowNextEvalToBeUnsafe ${n.err}`, B(t, e);
},
/** @type {null | { err: any }} */
revoked: null
};
return r;
-}, ro = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", mi = new We(
- `(?:\\s*//${ro}|/\\*${ro}\\s*\\*/)\\s*$`
-), Nn = (t) => {
+}, to = "\\s*[@#]\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*=\\s*([^\\s\\*]*)", mi = new Xe(
+ `(?:\\s*//${to}|/\\*${to}\\s*\\*/)\\s*$`
+), In = (t) => {
let e = "";
for (; t.length > 0; ) {
- const r = kn(mi, t);
+ const r = En(mi, t);
if (r === null)
break;
- t = Pn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]);
+ t = kn(t, 0, t.length - r[0].length), r[3] === "sourceURL" ? e = r[4] : r[1] === "sourceURL" && (e = r[2]);
}
return e;
};
-function Rn(t, e) {
+function Cn(t, e) {
const r = va(t, e);
if (r < 0)
return -1;
const n = t[r] === `
` ? 1 : 0;
- return Tn(Pn(t, 0, r), `
+ return Pn(kn(t, 0, r), `
`).length + n;
}
-const hs = new We("(?:)", "g"), ms = (t) => {
- const e = Rn(t, hs);
+const hs = new Xe("(?:)", "g"), ms = (t) => {
+ const e = Cn(t, hs);
if (e < 0)
return t;
- const r = Nn(t);
- throw tr(
+ const r = In(t);
+ throw sr(
`Possible HTML comment rejected at ${r}:${e}. (SES_HTML_COMMENT_REJECTED)`
);
-}, gs = (t) => vr(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), ys = new We(
+}, gs = (t) => Sr(t, hs, (r) => r[0] === "<" ? "< ! --" : "-- >"), ys = new Xe(
"(^|[^.]|\\.\\.\\.)\\bimport(\\s*(?:\\(|/[/*]))",
"g"
), vs = (t) => {
- const e = Rn(t, ys);
+ const e = Cn(t, ys);
if (e < 0)
return t;
- const r = Nn(t);
- throw tr(
+ const r = In(t);
+ throw sr(
`Possible import expression rejected at ${r}:${e}. (SES_IMPORT_REJECTED)`
);
-}, _s = (t) => vr(t, ys, (r, n, o) => `${n}__import__${o}`), gi = new We(
+}, _s = (t) => Sr(t, ys, (r, n, o) => `${n}__import__${o}`), gi = new Xe(
"(^|[^.])\\beval(\\s*\\()",
"g"
), bs = (t) => {
- const e = Rn(t, gi);
+ const e = Cn(t, gi);
if (e < 0)
return t;
- const r = Nn(t);
- throw tr(
+ const r = In(t);
+ throw sr(
`Possible direct eval expression rejected at ${r}:${e}. (SES_EVAL_REJECTED)`
);
-}, ws = (t) => (t = ms(t), t = vs(t), t), Ss = (t, e) => {
+}, ws = (t) => (t = ms(t), t = vs(t), t), xs = (t, e) => {
for (const r of e)
t = r(t);
return t;
@@ -2796,7 +2810,7 @@ y({
evadeImportExpressionTest: y(_s),
rejectSomeDirectEvalExpressions: y(bs),
mandatoryTransforms: y(ws),
- applyTransforms: y(Ss)
+ applyTransforms: y(xs)
});
const yi = [
// 11.6.2.1 Keywords
@@ -2853,9 +2867,9 @@ const yi = [
"false",
"this",
"arguments"
-], vi = /^[a-zA-Z_$][\w$]*$/, no = (t) => t !== "eval" && !Mr(yi, t) && xn(vi, t);
-function oo(t, e) {
- const r = J(t, e);
+], vi = /^[a-zA-Z_$][\w$]*$/, ro = (t) => t !== "eval" && !Zr(yi, t) && Sn(vi, t);
+function no(t, e) {
+ const r = ne(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
@@ -2869,39 +2883,39 @@ function oo(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.
- oe(r, "value");
+ de(r, "value");
}
const _i = (t, e = {}) => {
- const r = Dt(t), n = Dt(e), o = Ke(
+ const r = It(t), n = It(e), o = et(
n,
- (i) => no(i) && oo(e, i)
+ (i) => ro(i) && no(e, i)
);
return {
- globalObjectConstants: Ke(
+ globalObjectConstants: et(
r,
(i) => (
// Can't define a constant: it would prevent a
// lookup on the endowments.
- !Mr(n, i) && no(i) && oo(t, i)
+ !Zr(n, i) && ro(i) && no(t, i)
)
),
moduleLexicalConstants: o
};
};
-function so(t, e) {
- return t.length === 0 ? "" : `const {${Rt(t, ",")}} = this.${e};`;
+function oo(t, e) {
+ return t.length === 0 ? "" : `const {${Ft(t, ",")}} = this.${e};`;
}
const bi = (t) => {
const { globalObjectConstants: e, moduleLexicalConstants: r } = _i(
t.globalObject,
t.moduleLexicals
- ), n = so(
+ ), n = oo(
e,
"globalObject"
- ), o = so(
+ ), o = oo(
r,
"moduleLexicals"
- ), a = ve(`
+ ), s = Ee(`
with (this.scopeTerminator) {
with (this.globalObject) {
with (this.moduleLexicals) {
@@ -2917,14 +2931,14 @@ const bi = (t) => {
}
}
`);
- return ne(a, t, []);
-}, { Fail: wi } = z, On = ({
+ return ue(s, t, []);
+}, { Fail: wi } = ee, Rn = ({
globalObject: t,
moduleLexicals: e = {},
globalTransforms: r = [],
sloppyGlobalsMode: n = !1
}) => {
- const o = n ? ps(t) : fi, a = hi(), { evalScope: i } = a, c = y({
+ const o = n ? ps(t) : fi, s = hi(), { evalScope: i } = s, c = y({
evalScope: i,
moduleLexicals: e,
globalObject: t,
@@ -2936,52 +2950,52 @@ const bi = (t) => {
};
return { safeEvaluate: (f, h) => {
const { localTransforms: p = [] } = h || {};
- u(), f = Ss(f, [
+ u(), f = xs(f, [
...p,
...r,
ws
]);
let m;
try {
- return a.allowNextEvalToBeUnsafe(), ne(l, t, [f]);
+ return s.allowNextEvalToBeUnsafe(), ue(l, t, [f]);
} catch (_) {
throw m = _, _;
} finally {
const _ = "eval" in i;
- delete i.eval, _ && (a.revoked = { err: m }, wi`handler did not reset allowNextEvalToBeUnsafe ${m}`);
+ delete i.eval, _ && (s.revoked = { err: m }, wi`handler did not reset allowNextEvalToBeUnsafe ${m}`);
}
} };
-}, Si = ") { [native code] }";
-let Yr;
-const Es = () => {
- if (Yr === void 0) {
- const t = new $t();
- M(wn, "toString", {
+}, xi = ") { [native code] }";
+let tn;
+const Ss = () => {
+ if (tn === void 0) {
+ const t = new Mt();
+ U(bn, "toString", {
value: {
toString() {
const r = wa(this);
- return Mo(r, Si) || !or(t, this) ? r : `function ${this.name}() { [native code] }`;
+ return Mo(r, xi) || !cr(t, this) ? r : `function ${this.name}() { [native code] }`;
}
}.toString
- }), Yr = y(
- (r) => Fr(t, r)
+ }), tn = y(
+ (r) => Br(t, r)
);
}
- return Yr;
+ return tn;
};
-function Ei(t = "safe") {
+function Si(t = "safe") {
if (t !== "safe" && t !== "unsafe")
throw v(`unrecognized domainTaming ${t}`);
if (t === "unsafe")
return;
- const e = k.process || void 0;
+ const e = T.process || void 0;
if (typeof e == "object") {
- const r = J(e, "domain");
+ const r = ne(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)"
);
- M(e, "domain", {
+ U(e, "domain", {
value: null,
configurable: !1,
writable: !1,
@@ -2989,7 +3003,7 @@ function Ei(t = "safe") {
});
}
}
-const Mn = y([
+const $n = y([
["debug", "debug"],
// (fmt?, ...args) verbose level on Chrome
["log", "log"],
@@ -3008,7 +3022,7 @@ const Mn = y([
// (fmt?, ...args) but TS typed (...label)
["groupCollapsed", "log"]
// (fmt?, ...args) but TS typed (...label)
-]), Ln = y([
+]), Nn = y([
["assert", "error"],
// (value, fmt?, ...args)
["timeLog", "log"],
@@ -3040,18 +3054,18 @@ const Mn = y([
// (label?)
["timeStamp", void 0]
// (label?)
-]), xs = y([
- ...Mn,
- ...Ln
-]), xi = (t, { shouldResetForDebugging: e = !1 } = {}) => {
+]), Es = y([
+ ...$n,
+ ...Nn
+]), Ei = (t, { shouldResetForDebugging: e = !1 } = {}) => {
e && t.resetErrorTagNum();
let r = [];
- const n = mt(
- se(xs, ([i, c]) => {
+ const n = yt(
+ fe(Es, ([i, c]) => {
const l = (...u) => {
- X(r, [i, ...u]);
+ oe(r, [i, ...u]);
};
- return M(l, "name", { value: i }), [i, y(l)];
+ return U(l, "name", { value: i }), [i, y(l)];
})
);
y(n);
@@ -3064,108 +3078,108 @@ const Mn = y([
n
), takeLog: o });
};
-y(xi);
-const it = {
+y(Ei);
+const ut = {
NOTE: "ERROR_NOTE:",
MESSAGE: "ERROR_MESSAGE:",
CAUSE: "cause:",
ERRORS: "errors:"
};
-y(it);
-const Fn = (t, e) => {
+y(ut);
+const On = (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 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)
+ const { getStackString: r, tagError: n, takeMessageLogArgs: o, takeNoteLogArgsArray: s } = e, i = (S, x) => fe(S, (E) => Gr(E) ? (oe(x, E), `(${n(E)})`) : E), c = (S, x, I, E, L) => {
+ const $ = n(x), j = I === ut.MESSAGE ? `${$}:` : `${$} ${I}`, F = i(E, L);
+ t[S](j, ...F);
+ }, l = (S, x, I = void 0) => {
+ if (x.length === 0)
return;
- if (T.length === 1 && N === void 0) {
- f(S, T[0]);
+ if (x.length === 1 && I === void 0) {
+ f(S, x[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);
+ let E;
+ x.length === 1 ? E = "Nested error" : E = `Nested ${x.length} errors`, I !== void 0 && (E = `${E} under ${I}`), t.group(E);
try {
- for (const D of T)
- f(S, D);
+ for (const L of x)
+ f(S, L);
} finally {
t.groupEnd();
}
- }, u = new $t(), d = (S) => (T, N) => {
- const x = [];
- c(S, T, it.NOTE, N, x), l(S, x, n(T));
- }, f = (S, T) => {
- if (or(u, T))
+ }, u = new Mt(), d = (S) => (x, I) => {
+ const E = [];
+ c(S, x, ut.NOTE, I, E), l(S, E, n(x));
+ }, f = (S, x) => {
+ if (cr(u, x))
return;
- const N = n(T);
- Fr(u, T);
- const x = [], D = o(T), G = a(
- T,
+ const I = n(x);
+ Br(u, x);
+ const E = [], L = o(x), $ = s(
+ x,
d(S)
);
- D === void 0 ? t[S](`${N}:`, T.message) : c(
+ L === void 0 ? t[S](`${I}:`, x.message) : c(
S,
- T,
- it.MESSAGE,
- D,
- x
+ x,
+ ut.MESSAGE,
+ L,
+ E
);
- 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);
- }, h = se(Mn, ([S, T]) => {
- const N = (...x) => {
- const D = [], G = i(x, D);
- t[S](...G), l(S, D);
+ let j = r(x);
+ typeof j == "string" && j.length >= 1 && !Mo(j, `
+`) && (j += `
+`), t[S](j), x.cause && c(S, x, ut.CAUSE, [x.cause], E), x.errors && c(S, x, ut.ERRORS, x.errors, E);
+ for (const F of $)
+ c(S, x, ut.NOTE, F, E);
+ l(S, E, I);
+ }, h = fe($n, ([S, x]) => {
+ const I = (...E) => {
+ const L = [], $ = i(E, L);
+ t[S](...$), l(S, L);
};
- return M(N, "name", { value: S }), [S, y(N)];
- }), p = Ke(
- Ln,
- ([S, T]) => S in t
- ), m = se(p, ([S, T]) => {
- const N = (...x) => {
- t[S](...x);
+ return U(I, "name", { value: S }), [S, y(I)];
+ }), p = et(
+ Nn,
+ ([S, x]) => S in t
+ ), m = fe(p, ([S, x]) => {
+ const I = (...E) => {
+ t[S](...E);
};
- return M(N, "name", { value: S }), [S, y(N)];
- }), _ = mt([...h, ...m]);
+ return U(I, "name", { value: S }), [S, y(I)];
+ }), _ = yt([...h, ...m]);
return (
/** @type {VirtualConsole} */
y(_)
);
};
-y(Fn);
+y(On);
const ki = (t, e, r) => {
- const [n, ...o] = Tn(t, e), a = Ro(o, (i) => [e, ...r, i]);
- return ["", n, ...a];
+ const [n, ...o] = Pn(t, e), s = No(o, (i) => [e, ...r, i]);
+ return ["", n, ...s];
}, ks = (t) => y((r) => {
- const n = [], o = (...l) => (n.length > 0 && (l = Ro(
+ const n = [], o = (...l) => (n.length > 0 && (l = No(
l,
(u) => typeof u == "string" && Lo(u, `
`) ? ki(u, `
`, n) : [u]
- ), l = [...n, ...l]), r(...l)), a = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = mt([
- ...se(Mn, ([l]) => [
+ ), l = [...n, ...l]), r(...l)), s = (l, u) => ({ [l]: (...d) => u(...d) })[l], i = yt([
+ ...fe($n, ([l]) => [
l,
- a(l, o)
+ s(l, o)
]),
- ...se(Ln, ([l]) => [
+ ...fe(Nn, ([l]) => [
l,
- a(l, (...u) => o(l, ...u))
+ s(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, " ");
+ i[l] && (i[l] = s(l, (...u) => {
+ u.length >= 1 && o(...u), oe(n, " ");
}));
- return i.groupEnd && (i.groupEnd = a("groupEnd", (...l) => {
- gr(n);
- })), harden(i), Fn(
+ return i.groupEnd && (i.groupEnd = s("groupEnd", (...l) => {
+ wr(n);
+ })), harden(i), On(
/** @type {VirtualConsole} */
i,
t
@@ -3173,98 +3187,97 @@ const ki = (t, e, r) => {
});
y(ks);
const Pi = (t, e, r = void 0) => {
- const n = Ke(
- xs,
+ const n = et(
+ Es,
([i, c]) => i in t
- ), o = se(n, ([i, c]) => [i, y((...u) => {
+ ), o = fe(n, ([i, c]) => [i, y((...u) => {
(c === void 0 || e.canLog(c)) && t[i](...u);
- })]), a = mt(o);
+ })]), s = yt(o);
return (
/** @type {VirtualConsole} */
- y(a)
+ y(s)
);
};
y(Pi);
-const ao = (t) => {
- if (kt === void 0)
+const so = (t) => {
+ if (At === void 0)
return;
let e = 0;
- const r = new Pe(), n = (d) => {
+ const r = new Re(), n = (d) => {
fa(r, d);
- }, o = new Me(), a = (d) => {
- if (Lr(r, d)) {
- const f = Ue(r, d);
+ }, o = new je(), s = (d) => {
+ if (zr(r, d)) {
+ const f = He(r, d);
n(d), t(f);
}
- }, i = new kt(a);
+ }, i = new At(s);
return {
rejectionHandledHandler: (d) => {
- const f = L(o, d);
+ const f = z(o, d);
n(f);
},
unhandledRejectionHandler: (d, f) => {
e += 1;
const h = e;
- $e(r, h, d), ie(o, f, h), Ea(i, f, h, f);
+ he(r, h, d), me(o, f, h), Sa(i, f, h, f);
},
processTerminationHandler: () => {
for (const [d, f] of pa(r))
n(d), t(f);
}
};
-}, Jr = (t) => {
+}, rn = (t) => {
throw v(t);
-}, 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}`);
+}, ao = (t, e) => y((...r) => ue(t, e, r)), Ti = (t = "safe", e = "platform", r = "report", n = void 0) => {
+ t === "safe" || t === "unsafe" || rn(`unrecognized consoleTaming ${t}`);
let o;
- n === void 0 ? o = br : o = {
- ...br,
+ n === void 0 ? o = Pr : o = {
+ ...Pr,
getStackString: n
};
- const a = (
+ const s = (
/** @type {VirtualConsole} */
// eslint-disable-next-line no-nested-ternary
- typeof k.console < "u" ? k.console : typeof k.print == "function" ? (
+ typeof T.console < "u" ? T.console : typeof T.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
((u) => y({ debug: u, log: u, info: u, warn: u, error: u }))(
// eslint-disable-next-line no-undef
- io(k.print)
+ ao(T.print)
)
) : void 0
);
- if (a && a.log)
+ if (s && s.log)
for (const u of ["warn", "error"])
- a[u] || M(a, u, {
- value: io(a.log, a)
+ s[u] || U(s, u, {
+ value: ao(s.log, s)
});
const i = (
/** @type {VirtualConsole} */
- t === "unsafe" ? a : Fn(a, o)
- ), c = k.process || void 0;
+ t === "unsafe" ? s : On(s, o)
+ ), c = T.process || void 0;
if (e !== "none" && typeof c == "object" && typeof c.on == "function") {
let u;
if (e === "platform" || e === "exit") {
const { exit: d } = c;
- typeof d == "function" || Jr("missing process.exit"), u = () => d(c.exitCode || -1);
- } else
- e === "abort" && (u = c.abort, typeof u == "function" || Jr("missing process.abort"));
+ typeof d == "function" || rn("missing process.exit"), u = () => d(c.exitCode || -1);
+ } else e === "abort" && (u = c.abort, typeof u == "function" || rn("missing process.abort"));
c.on("uncaughtException", (d) => {
i.error(d), u && u();
});
}
if (r !== "none" && typeof c == "object" && typeof c.on == "function") {
- const d = ao((f) => {
+ const d = so((f) => {
i.error("SES_UNHANDLED_REJECTION:", f);
});
d && (c.on("unhandledRejection", d.unhandledRejectionHandler), c.on("rejectionHandled", d.rejectionHandledHandler), c.on("exit", d.processTerminationHandler));
}
- const l = k.window || void 0;
+ const l = T.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 = ao((f) => {
+ const d = so((f) => {
i.error("SES_UNHANDLED_REJECTION:", f);
});
d && (l.addEventListener("unhandledrejection", (f) => {
@@ -3300,21 +3313,21 @@ const ao = (t) => {
"toString"
// TODO replace to use only whitelisted info
], Ii = (t) => {
- const r = mt(se(Ai, (n) => {
+ const r = yt(fe(Ai, (n) => {
const o = t[n];
- return [n, () => ne(o, t, [])];
+ return [n, () => ue(o, t, [])];
}));
- 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 = [
+ return H(r, {});
+}, Ci = (t) => fe(t, Ii), Ri = /\/node_modules\//, $i = /^(?:node:)?internal\//, Ni = /\/packages\/ses\/src\/error\/assert.js$/, Oi = /\/packages\/eventual-send\/src\//, Mi = [
+ Ri,
$i,
Ni,
- Ri,
Oi
], Li = (t) => {
if (!t)
return !0;
for (const e of Mi)
- if (xn(e, t))
+ if (Sn(e, t))
return !1;
return !0;
}, Fi = /^((?:.*[( ])?)[:/\w_-]*\/\.\.\.\/(.+)$/, Di = /^((?:.*[( ])?)[:/\w_-]*\/(packages\/.+)$/, Ui = [
@@ -3322,20 +3335,24 @@ const ao = (t) => {
Di
], ji = (t) => {
for (const e of Ui) {
- const r = kn(e, t);
+ const r = En(e, t);
if (r)
- return Rt(la(r, 1), "");
+ return Ft(la(r, 1), "");
}
return t;
}, Zi = (t, e, r, n) => {
- const o = t.captureStackTrace, a = (p) => n === "verbose" ? !0 : Li(p.getFileName()), i = (p) => {
+ if (r === "unsafe-debug")
+ throw v(
+ "internal: v8+unsafe-debug special case should already be done"
+ );
+ const o = t.captureStackTrace, s = (p) => n === "verbose" ? !0 : Li(p.getFileName()), i = (p) => {
let m = `${p}`;
return n === "concise" && (m = ji(m)), `
at ${m}`;
- }, c = (p, m) => Rt(
- se(Ke(m, a), i),
+ }, c = (p, m) => Ft(
+ fe(et(m, s), i),
""
- ), l = new Me(), u = {
+ ), l = new je(), 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
@@ -3343,7 +3360,7 @@ const ao = (t) => {
// we cut this one off.
captureStackTrace(p, m = u.captureStackTrace) {
if (typeof o == "function") {
- ne(o, t, [p, m]);
+ ue(o, t, [p, m]);
return;
}
Io(p, "stack", "");
@@ -3353,32 +3370,32 @@ const ao = (t) => {
// string associated with an error.
// See https://tc39.es/proposal-error-stacks/
getStackString(p) {
- let m = L(l, p);
- if (m === void 0 && (p.stack, m = L(l, p), m || (m = { stackString: "" }, ie(l, p, m))), m.stackString !== void 0)
+ let m = z(l, p);
+ if (m === void 0 && (p.stack, m = z(l, p), m || (m = { stackString: "" }, me(l, p, m))), m.stackString !== void 0)
return m.stackString;
const _ = c(p, m.callSites);
- return ie(l, p, { stackString: _ }), _;
+ return me(l, p, { stackString: _ }), _;
},
prepareStackTrace(p, m) {
if (r === "unsafe") {
const _ = c(p, m);
- return ie(l, p, { stackString: _ }), `${p}${_}`;
+ return me(l, p, { stackString: _ }), `${p}${_}`;
} else
- return ie(l, p, { callSites: m }), "";
+ return me(l, p, { callSites: m }), "";
}
}, d = u.prepareStackTrace;
t.prepareStackTrace = d;
- const f = new $t([d]), h = (p) => {
- if (or(f, p))
+ const f = new Mt([d]), h = (p) => {
+ if (cr(f, p))
return p;
const m = {
prepareStackTrace(_, S) {
- return ie(l, _, { callSites: S }), p(_, Ci(S));
+ return me(l, _, { callSites: S }), p(_, Ci(S));
}
};
- return Fr(f, m.prepareStackTrace), m.prepareStackTrace;
+ return Br(f, m.prepareStackTrace), m.prepareStackTrace;
};
- return F(e, {
+ return B(e, {
captureStackTrace: {
value: u.captureStackTrace,
writable: !0,
@@ -3400,22 +3417,23 @@ const ao = (t) => {
configurable: !0
}
}), u.getStackString;
-}, co = J(ue.prototype, "stack"), lo = co && co.get, zi = {
+}, io = ne(ce.prototype, "stack"), co = io && io.get, zi = {
getStackString(t) {
- return typeof lo == "function" ? ne(lo, t, []) : "stack" in t ? `${t.stack}` : "";
+ return typeof co == "function" ? ue(co, t, []) : "stack" in t ? `${t.stack}` : "";
}
};
-function Gi(t = "safe", e = "concise") {
- if (t !== "safe" && t !== "unsafe")
+let hr = zi.getStackString;
+function Bi(t = "safe", e = "concise") {
+ if (t !== "safe" && t !== "unsafe" && t !== "unsafe-debug")
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 d = function(...h) {
- 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;
+ const r = ce.prototype, { captureStackTrace: n } = ce, o = typeof n == "function" ? "v8" : "unknown", s = (l = {}) => {
+ const u = function(...f) {
+ let h;
+ return new.target === void 0 ? h = ue(ce, this, f) : h = br(ce, f, new.target), o === "v8" && ue(n, ce, [h, u]), h;
};
- return F(d, {
+ return B(u, {
length: { value: 1 },
prototype: {
value: r,
@@ -3423,22 +3441,22 @@ function Gi(t = "safe", e = "concise") {
enumerable: !1,
configurable: !1
}
- }), d;
- }, i = a({ powers: "original" }), c = a({ powers: "none" });
- F(r, {
+ }), u;
+ }, i = s({ powers: "original" }), c = s({ powers: "none" });
+ B(r, {
constructor: { value: c }
});
- for (const u of ns)
- xo(u, c);
- F(i, {
+ for (const l of ns)
+ Eo(l, c);
+ if (B(i, {
stackTraceLimit: {
get() {
- if (typeof ue.stackTraceLimit == "number")
- return ue.stackTraceLimit;
+ if (typeof ce.stackTraceLimit == "number")
+ return ce.stackTraceLimit;
},
- set(u) {
- if (typeof u == "number" && typeof ue.stackTraceLimit == "number") {
- ue.stackTraceLimit = u;
+ set(l) {
+ if (typeof l == "number" && typeof ce.stackTraceLimit == "number") {
+ ce.stackTraceLimit = l;
return;
}
},
@@ -3446,28 +3464,58 @@ function Gi(t = "safe", e = "concise") {
enumerable: !1,
configurable: !0
}
- }), F(c, {
+ }), t === "unsafe-debug" && o === "v8") {
+ B(i, {
+ prepareStackTrace: {
+ get() {
+ return ce.prepareStackTrace;
+ },
+ set(u) {
+ ce.prepareStackTrace = u;
+ },
+ enumerable: !1,
+ configurable: !0
+ },
+ captureStackTrace: {
+ value: ce.captureStackTrace,
+ writable: !0,
+ enumerable: !1,
+ configurable: !0
+ }
+ });
+ const l = Ze(i);
+ return B(c, {
+ stackTraceLimit: l.stackTraceLimit,
+ prepareStackTrace: l.prepareStackTrace,
+ captureStackTrace: l.captureStackTrace
+ }), {
+ "%InitialGetStackString%": hr,
+ "%InitialError%": i,
+ "%SharedError%": c
+ };
+ }
+ return B(c, {
stackTraceLimit: {
get() {
},
- set(u) {
+ set(l) {
},
enumerable: !1,
configurable: !0
}
- }), n === "v8" && F(c, {
+ }), o === "v8" && B(c, {
prepareStackTrace: {
get() {
return () => "";
},
- set(u) {
+ set(l) {
},
enumerable: !1,
configurable: !0
},
captureStackTrace: {
- value: (u, d) => {
- M(u, "stack", {
+ value: (l, u) => {
+ U(l, "stack", {
value: ""
});
},
@@ -3475,22 +3523,20 @@ function Gi(t = "safe", e = "concise") {
enumerable: !1,
configurable: !0
}
- });
- let l = zi.getStackString;
- return n === "v8" ? l = Zi(
- ue,
+ }), o === "v8" ? hr = Zi(
+ ce,
i,
t,
e
- ) : t === "unsafe" ? F(r, {
+ ) : t === "unsafe" || t === "unsafe-debug" ? B(r, {
stack: {
get() {
- return l(this);
+ return hr(this);
},
- set(u) {
- F(this, {
+ set(l) {
+ B(this, {
stack: {
- value: u,
+ value: l,
writable: !0,
enumerable: !0,
configurable: !0
@@ -3498,15 +3544,15 @@ function Gi(t = "safe", e = "concise") {
});
}
}
- }) : F(r, {
+ }) : B(r, {
stack: {
get() {
return `${this}`;
},
- set(u) {
- F(this, {
+ set(l) {
+ B(this, {
stack: {
- value: u,
+ value: l,
writable: !0,
enumerable: !0,
configurable: !0
@@ -3515,269 +3561,358 @@ function Gi(t = "safe", e = "concise") {
}
}
}), {
- "%InitialGetStackString%": l,
+ "%InitialGetStackString%": hr,
"%InitialError%": i,
"%SharedError%": c
};
}
-const { Fail: Bi, details: un, quote: xe } = z, Hi = () => {
-};
-async function Vi(t, e, r) {
+const Gi = () => {
+}, Vi = async (t, e, r) => {
+ await null;
const n = t(...e);
- let o = yr(n);
+ let o = xr(n);
for (; !o.done; )
try {
- const a = await o.value;
- o = yr(n, a);
- } catch (a) {
- o = Fo(n, r(a));
+ const s = await o.value;
+ o = xr(n, s);
+ } catch (s) {
+ o = Fo(n, r(s));
}
return o.value;
-}
-function Wi(t, e) {
+}, Hi = (t, e) => {
const r = t(...e);
- let n = yr(r);
+ let n = xr(r);
for (; !n.done; )
try {
- n = yr(r, n.value);
+ n = xr(r, n.value);
} catch (o) {
n = Fo(r, o);
}
return n.value;
-}
-const qi = (t, e) => y({
- compartment: t,
- specifier: e
-}), Ki = (t, e, r) => {
- const n = Z(null);
+}, Wi = (t, e) => y({ compartment: t, specifier: e }), qi = (t, e, r) => {
+ const n = H(null);
for (const o of t) {
- const a = e(o, r);
- n[o] = a;
+ const s = e(o, r);
+ n[o] = s;
}
return y(n);
-}, uo = (t, e, r, n, o, a, i, c, l) => {
- const { resolveHook: u, moduleRecords: d } = L(
- t,
- r
- ), f = Ki(
+}, Ut = (t, e, r, n, o, s, i, c, l) => {
+ const { resolveHook: u } = z(t, r), d = qi(
o.imports,
u,
n
- ), h = y({
+ ), f = y({
compartment: r,
- staticModuleRecord: o,
+ moduleSource: o,
moduleSpecifier: n,
- resolvedImports: f,
+ resolvedImports: d,
importMeta: l
});
- for (const p of ko(f))
- a(Ut, [
+ for (const h of ko(d))
+ s(Pt, [
t,
e,
r,
- p,
- a,
+ h,
+ s,
i,
c
]);
- return $e(d, n, h), h;
+ return f;
};
-function* Yi(t, e, r, n, o, a, i) {
- const { importHook: c, importNowHook: l, moduleMap: u, moduleMapHook: d, moduleRecords: f } = L(t, r);
- let h = u[n];
- if (h === void 0 && d !== void 0 && (h = d(n)), typeof h == "string")
- z.fail(
- un`Cannot map module ${xe(n)} to ${xe(
- h
- )} in parent compartment, not yet implemented`,
+function* Ki(t, e, r, n, o, s, i) {
+ const {
+ importHook: c,
+ importNowHook: l,
+ moduleMap: u,
+ moduleMapHook: d,
+ moduleRecords: f,
+ parentCompartment: h
+ } = z(t, r);
+ if (zr(f, n))
+ return He(f, n);
+ let p = u[n];
+ if (p === void 0 && d !== void 0 && (p = d(n)), p === void 0) {
+ const m = s(c, l);
+ if (m === void 0) {
+ const _ = s(
+ "importHook",
+ "importNowHook"
+ );
+ throw Le(
+ le`${kr(_)} needed to load module ${Z(
+ n
+ )} in compartment ${Z(r.name)}`
+ );
+ }
+ p = m(n), kt(e, p) || (p = yield p);
+ }
+ if (typeof p == "string")
+ throw Le(
+ le`Cannot map module ${Z(n)} to ${Z(
+ p
+ )} in parent compartment, use {source} module descriptor`,
v
);
- else if (h !== void 0) {
- const m = L(e, h);
- m === 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(
- t,
- e,
- m.compartment,
- m.specifier,
- o,
- a,
- i
- );
- return $e(f, n, _), _;
- }
- if (Lr(f, n))
- return Ue(f, n);
- const p = yield a(
- c,
- l
- )(n);
- 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) {
- if (p.compartment !== void 0)
- throw v(
- "Cannot redirect to an explicit record with a specified compartment"
+ if (ke(p)) {
+ let m = z(e, p);
+ if (m !== void 0 && (p = m), p.namespace !== void 0) {
+ if (typeof p.namespace == "string") {
+ const {
+ compartment: x = h,
+ namespace: I
+ } = p;
+ if (!ke(x) || !kt(t, x))
+ throw Le(
+ le`Invalid compartment in module descriptor for specifier ${Z(n)} in compartment ${Z(r.name)}`
+ );
+ const E = yield Pt(
+ t,
+ e,
+ x,
+ I,
+ o,
+ s,
+ i
);
+ return he(f, n, E), E;
+ }
+ if (ke(p.namespace)) {
+ const { namespace: x } = p;
+ if (m = z(e, x), m !== void 0)
+ p = m;
+ else {
+ const I = It(x), $ = Ut(
+ t,
+ e,
+ r,
+ n,
+ {
+ imports: [],
+ exports: I,
+ execute(j) {
+ for (const F of I)
+ j[F] = x[F];
+ }
+ },
+ o,
+ s,
+ i,
+ void 0
+ );
+ return he(f, n, $), $;
+ }
+ } else
+ throw Le(
+ le`Invalid compartment in module descriptor for specifier ${Z(n)} in compartment ${Z(r.name)}`
+ );
+ }
+ if (p.source !== void 0)
+ if (typeof p.source == "string") {
+ const {
+ source: x,
+ specifier: I = n,
+ compartment: E = h,
+ importMeta: L = void 0
+ } = p, $ = yield Pt(
+ t,
+ e,
+ E,
+ x,
+ o,
+ s,
+ i
+ ), { moduleSource: j } = $, F = Ut(
+ t,
+ e,
+ r,
+ I,
+ j,
+ o,
+ s,
+ i,
+ L
+ );
+ return he(f, n, F), F;
+ } else {
+ const {
+ source: x,
+ specifier: I = n,
+ importMeta: E
+ } = p, L = Ut(
+ t,
+ e,
+ r,
+ I,
+ x,
+ o,
+ s,
+ i,
+ E
+ );
+ return he(f, n, L), L;
+ }
+ if (p.archive !== void 0)
+ throw Le(
+ le`Unsupported archive module descriptor for specifier ${Z(n)} in compartment ${Z(r.name)}`
+ );
+ if (p.record !== void 0) {
const {
- compartment: m = r,
- specifier: _ = n,
- record: S,
- importMeta: T
- } = p, N = uo(
+ compartment: x = r,
+ specifier: I = n,
+ record: E,
+ importMeta: L
+ } = p, $ = Ut(
t,
e,
- m,
- _,
- S,
+ x,
+ I,
+ E,
o,
- a,
+ s,
i,
- T
+ L
);
- return $e(f, n, N), N;
+ return he(f, n, $), he(f, I, $), $;
}
- if (p.compartment !== void 0) {
- if (p.importMeta !== void 0)
- throw v(
- "Cannot redirect to an implicit record with a specified importMeta"
+ if (p.compartment !== void 0 && p.specifier !== void 0) {
+ if (!ke(p.compartment) || !kt(t, p.compartment) || typeof p.specifier != "string")
+ throw Le(
+ le`Invalid compartment in module descriptor for specifier ${Z(n)} in compartment ${Z(r.name)}`
);
- const m = yield Ut(
+ const x = yield Pt(
t,
e,
p.compartment,
p.specifier,
o,
- a,
+ s,
i
);
- return $e(f, n, m), m;
+ return he(f, n, x), x;
}
- throw v("Unnexpected RedirectStaticModuleInterface record shape");
- }
- return uo(
- t,
- e,
- r,
- n,
- p,
- o,
- a,
- i
- );
+ const S = Ut(
+ t,
+ e,
+ r,
+ n,
+ p,
+ o,
+ s,
+ i
+ );
+ return he(f, n, S), S;
+ } else
+ throw Le(
+ le`module descriptor must be a string or object for specifier ${Z(
+ n
+ )} in compartment ${Z(r.name)}`
+ );
}
-const Ut = (t, e, r, n, o, a, i) => {
- const { name: c } = L(
+const Pt = (t, e, r, n, o, s, i) => {
+ const { name: c } = z(
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(Vi, Wi)(
- Yi,
+ let l = He(i, r);
+ l === void 0 && (l = new Re(), he(i, r, l));
+ let u = He(l, n);
+ return u !== void 0 || (u = s(Vi, Hi)(
+ Ki,
[
t,
e,
r,
n,
o,
- a,
+ s,
i
],
(d) => {
- throw z.note(
+ throw Hr(
d,
- un`${d.message}, loading ${xe(n)} in compartment ${xe(
+ le`${d.message}, loading ${Z(n)} in compartment ${Z(
c
)}`
), d;
}
- ), $e(l, n, u)), u;
-};
-function Ji() {
- const t = new Ct(), e = [];
- return { enqueueJob: (o, a) => {
- Sn(
+ ), he(l, n, u)), u;
+}, Yi = () => {
+ const t = new Ot(), e = [];
+ return { enqueueJob: (o, s) => {
+ wn(
t,
- Uo(o(...a), Hi, (i) => {
- X(e, i);
+ Uo(o(...s), Gi, (i) => {
+ oe(e, i);
})
);
}, drainQueue: async () => {
+ await null;
for (const o of t)
await o;
return e;
} };
-}
-function Ps({ errors: t, errorPrefix: e }) {
+}, Ps = ({ errors: t, errorPrefix: e }) => {
if (t.length > 0) {
- const r = le("COMPARTMENT_LOAD_ERRORS", "", ["verbose"]) === "verbose";
+ const r = ve("COMPARTMENT_LOAD_ERRORS", "", ["verbose"]) === "verbose";
throw v(
- `${e} (${t.length} underlying failures: ${Rt(
- se(t, (n) => n.message + (r ? n.stack : "")),
+ `${e} (${t.length} underlying failures: ${Ft(
+ fe(t, (n) => n.message + (r ? n.stack : "")),
", "
)}`
);
}
-}
-const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
- const { name: o } = L(
+}, Ji = (t, e) => e, Xi = (t, e) => t, lo = async (t, e, r, n) => {
+ const { name: o } = z(
t,
r
- ), a = new Pe(), { enqueueJob: i, drainQueue: c } = Ji();
- i(Ut, [
+ ), s = new Re(), { enqueueJob: i, drainQueue: c } = Yi();
+ i(Pt, [
t,
e,
r,
n,
i,
- Qi,
- a
+ Xi,
+ s
]);
const l = await c();
Ps({
errors: l,
- errorPrefix: `Failed to load module ${xe(n)} in package ${xe(
+ errorPrefix: `Failed to load module ${Z(n)} in package ${Z(
o
)}`
});
-}, ec = (t, e, r, n) => {
- const { name: o } = L(
+}, Qi = (t, e, r, n) => {
+ const { name: o } = z(
t,
r
- ), a = new Pe(), i = [], c = (l, u) => {
+ ), s = new Re(), i = [], c = (l, u) => {
try {
l(...u);
} catch (d) {
- X(i, d);
+ oe(i, d);
}
};
- c(Ut, [
+ c(Pt, [
t,
e,
r,
n,
c,
- Xi,
- a
+ Ji,
+ s
]), Ps({
errors: i,
- errorPrefix: `Failed to load module ${xe(n)} in package ${xe(
+ errorPrefix: `Failed to load module ${Z(n)} in package ${Z(
o
)}`
});
-}, { quote: yt } = z, tc = () => {
+}, { quote: _t } = ee, ec = () => {
let t = !1;
- const e = Z(null, {
+ const e = H(null, {
// Make this appear like an ESM module namespace object.
- [qe]: {
+ [Qe]: {
value: "Module",
writable: !1,
enumerable: !1,
@@ -3789,11 +3924,11 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
t = !0;
},
exportsTarget: e,
- exportsProxy: new Cr(e, {
+ exportsProxy: new Lr(e, {
get(r, n, o) {
if (!t)
throw v(
- `Cannot get property ${yt(
+ `Cannot get property ${_t(
n
)} of module exports namespace, the module has not yet begun to execute`
);
@@ -3801,13 +3936,13 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
},
set(r, n, o) {
throw v(
- `Cannot set property ${yt(n)} of module exports namespace`
+ `Cannot set property ${_t(n)} of module exports namespace`
);
},
has(r, n) {
if (!t)
throw v(
- `Cannot check property ${yt(
+ `Cannot check property ${_t(
n
)}, the module has not yet begun to execute`
);
@@ -3815,7 +3950,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
},
deleteProperty(r, n) {
throw v(
- `Cannot delete property ${yt(n)}s of module exports namespace`
+ `Cannot delete property ${_t(n)}s of module exports namespace`
);
},
ownKeys(r) {
@@ -3823,12 +3958,12 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
throw v(
"Cannot enumerate keys, the module has not yet begun to execute"
);
- return De(e);
+ return Ve(e);
},
getOwnPropertyDescriptor(r, n) {
if (!t)
throw v(
- `Cannot get own property descriptor ${yt(
+ `Cannot get own property descriptor ${_t(
n
)}, the module has not yet begun to execute`
);
@@ -3856,7 +3991,7 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
},
defineProperty(r, n, o) {
throw v(
- `Cannot define property ${yt(n)} of module exports namespace`
+ `Cannot define property ${_t(n)} of module exports namespace`
);
},
apply(r, n, o) {
@@ -3871,33 +4006,33 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
}
})
});
-}, Dn = (t, e, r, n) => {
+}, Mn = (t, e, r, n) => {
const { deferredExports: o } = e;
- if (!Lr(o, n)) {
- const a = tc();
- ie(
+ if (!zr(o, n)) {
+ const s = ec();
+ me(
r,
- a.exportsProxy,
- qi(t, n)
- ), $e(o, n, a);
+ s.exportsProxy,
+ Wi(t, n)
+ ), he(o, n, s);
}
- return Ue(o, n);
-}, rc = (t, e) => {
+ return He(o, n);
+}, tc = (t, e) => {
const { sloppyGlobalsMode: r = !1, __moduleShimLexicals__: n = void 0 } = e;
let o;
if (n === void 0 && !r)
({ safeEvaluate: o } = t);
else {
- let { globalTransforms: a } = t;
+ let { globalTransforms: s } = t;
const { globalObject: i } = t;
let c;
- n !== void 0 && (a = void 0, c = Z(
+ n !== void 0 && (s = void 0, c = H(
null,
Ze(n)
- )), { safeEvaluate: o } = On({
+ )), { safeEvaluate: o } = Rn({
globalObject: i,
moduleLexicals: c,
- globalTransforms: a,
+ globalTransforms: s,
sloppyGlobalsMode: r
});
}
@@ -3908,44 +4043,44 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
const {
transforms: n = [],
__evadeHtmlCommentTest__: o = !1,
- __evadeImportExpressionTest__: a = !1,
+ __evadeImportExpressionTest__: s = !1,
__rejectSomeDirectEvalExpressions__: i = !0
// Note default on
} = r, c = [...n];
- o === !0 && X(c, gs), a === !0 && X(c, _s), i === !0 && X(c, bs);
- const { safeEvaluate: l } = rc(
+ o === !0 && oe(c, gs), s === !0 && oe(c, _s), i === !0 && oe(c, bs);
+ const { safeEvaluate: l } = tc(
t,
r
);
return l(e, {
localTransforms: c
});
-}, { quote: cr } = z, nc = (t, e, r, n, o, a) => {
- const { exportsProxy: i, exportsTarget: c, activate: l } = Dn(
+}, { quote: mr } = ee, rc = (t, e, r, n, o, s) => {
+ const { exportsProxy: i, exportsTarget: c, activate: l } = Mn(
r,
- L(t, r),
+ z(t, r),
n,
o
- ), u = Z(null);
+ ), u = H(null);
if (e.exports) {
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}`
+ `SES virtual module source "exports" property must be an array of strings for module ${o}`
);
- ut(e.exports, (f) => {
+ ft(e.exports, (f) => {
let h = c[f];
const p = [];
- M(c, f, {
+ U(c, f, {
get: () => h,
set: (S) => {
h = S;
- for (const T of p)
- T(S);
+ for (const x of p)
+ x(S);
},
enumerable: !0,
configurable: !1
}), u[f] = (S) => {
- X(p, S), S(h);
+ oe(p, S), S(h);
};
}), u["*"] = (f) => {
f(c);
@@ -3963,22 +4098,18 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
if (!d.activated) {
l(), d.activated = !0;
try {
- e.execute(
- c,
- r,
- a
- );
+ e.execute(c, r, s);
} catch (f) {
throw d.errorFromExecute = f, f;
}
}
}
});
-}, oc = (t, e, r, n) => {
+}, nc = (t, e, r, n) => {
const {
compartment: o,
- moduleSpecifier: a,
- staticModuleRecord: i,
+ moduleSpecifier: s,
+ moduleSource: i,
importMeta: c
} = r, {
reexports: l = [],
@@ -3988,280 +4119,272 @@ const Xi = (t, e) => e, Qi = (t, e) => t, fo = async (t, e, r, n) => {
__reexportMap__: h = {},
__needsImportMeta__: p = !1,
__syncModuleFunctor__: m
- } = i, _ = L(t, o), { __shimTransforms__: S, importMetaHook: T } = _, { exportsProxy: N, exportsTarget: x, activate: D } = Dn(
+ } = i, _ = z(t, o), { __shimTransforms__: S, importMetaHook: x } = _, { exportsProxy: I, exportsTarget: E, activate: L } = Mn(
o,
_,
e,
- a
- ), G = Z(null), B = 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), ([me, [H]]) => {
- let V = Ge[H];
- if (!V) {
- let ee, te = !0, ce = [];
- const Y = () => {
- if (te)
- throw lt(`binding ${cr(H)} not yet initialized`);
- return ee;
- }, be = y((we) => {
- if (!te)
+ s
+ ), $ = H(null), j = H(null), F = H(null), J = H(null), X = H(null);
+ c && Fr(X, c), p && x && x(s, X);
+ const qe = H(null), st = H(null);
+ ft(ge(d), ([we, [W]]) => {
+ let q = qe[W];
+ if (!q) {
+ let ae, ie = !0, ye = [];
+ const te = () => {
+ if (ie)
+ throw Bt(`binding ${mr(W)} not yet initialized`);
+ return ae;
+ }, Te = y((Ae) => {
+ if (!ie)
throw v(
- `Internal: binding ${cr(H)} already initialized`
+ `Internal: binding ${mr(W)} already initialized`
);
- ee = we;
- const Bn = ce;
- ce = null, te = !1;
- for (const Se of Bn || [])
- Se(we);
- return we;
+ ae = Ae;
+ const Zn = ye;
+ ye = null, ie = !1;
+ for (const Ie of Zn || [])
+ Ie(Ae);
+ return Ae;
});
- V = {
- get: Y,
- notify: (we) => {
- we !== be && (te ? X(ce || [], we) : we(ee));
+ q = {
+ get: te,
+ notify: (Ae) => {
+ Ae !== Te && (ie ? oe(ye || [], Ae) : Ae(ae));
}
- }, Ge[H] = V, K[H] = be;
+ }, qe[W] = q, F[W] = Te;
}
- G[me] = {
- get: V.get,
+ $[we] = {
+ get: q.get,
set: void 0,
enumerable: !0,
configurable: !1
- }, rt[me] = V.notify;
- }), ut(
- re(f),
- ([me, [H, V]]) => {
- let ee = Ge[H];
- if (!ee) {
- let te, ce = !0;
- const Y = [], be = () => {
- if (ce)
- throw lt(
- `binding ${cr(me)} not yet initialized`
+ }, st[we] = q.notify;
+ }), ft(
+ ge(f),
+ ([we, [W, q]]) => {
+ let ae = qe[W];
+ if (!ae) {
+ let ie, ye = !0;
+ const te = [], Te = () => {
+ if (ye)
+ throw Bt(
+ `binding ${mr(we)} not yet initialized`
);
- return te;
- }, gt = y((Se) => {
- te = Se, ce = !1;
- for (const zr of Y)
- zr(Se);
- }), we = (Se) => {
- if (ce)
- throw lt(`binding ${cr(H)} not yet initialized`);
- te = Se;
- for (const zr of Y)
- zr(Se);
+ return ie;
+ }, vt = y((Ie) => {
+ ie = Ie, ye = !1;
+ for (const Kr of te)
+ Kr(Ie);
+ }), Ae = (Ie) => {
+ if (ye)
+ throw Bt(`binding ${mr(W)} not yet initialized`);
+ ie = Ie;
+ for (const Kr of te)
+ Kr(Ie);
};
- ee = {
- get: be,
- notify: (Se) => {
- Se !== gt && (X(Y, Se), ce || Se(te));
+ ae = {
+ get: Te,
+ notify: (Ie) => {
+ Ie !== vt && (oe(te, Ie), ye || Ie(ie));
}
- }, Ge[H] = ee, V && M(B, H, {
- get: be,
- set: we,
+ }, qe[W] = ae, q && U(j, W, {
+ get: Te,
+ set: Ae,
enumerable: !0,
configurable: !1
- }), ze[H] = gt;
+ }), J[W] = vt;
}
- G[me] = {
- get: ee.get,
+ $[we] = {
+ get: ae.get,
set: void 0,
enumerable: !0,
configurable: !1
- }, rt[me] = ee.notify;
+ }, st[we] = ae.notify;
}
);
- const Be = (me) => {
- me(x);
+ const Ke = (we) => {
+ we(E);
};
- rt["*"] = Be;
- function ar(me) {
- const H = Z(null);
- H.default = !1;
- for (const [V, ee] of me) {
- 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 '${V}' does not provide an export named '${Y}'`
+ st["*"] = Ke;
+ function ur(we) {
+ const W = H(null);
+ W.default = !1;
+ for (const [q, ae] of we) {
+ const ie = He(n, q);
+ ie.execute();
+ const { notifiers: ye } = ie;
+ for (const [te, Te] of ae) {
+ const vt = ye[te];
+ if (!vt)
+ throw sr(
+ `The requested module '${q}' does not provide an export named '${te}'`
);
- for (const we of be)
- gt(we);
+ for (const Ae of Te)
+ vt(Ae);
}
- if (Mr(l, V))
- for (const [Y, be] of re(
- ce
+ if (Zr(l, q))
+ for (const [te, Te] of ge(
+ ye
))
- H[Y] === void 0 ? H[Y] = be : H[Y] = !1;
- if (h[V])
- for (const [Y, be] of h[V])
- H[be] = ce[Y];
+ W[te] === void 0 ? W[te] = Te : W[te] = !1;
+ if (h[q])
+ for (const [te, Te] of h[q])
+ W[Te] = ye[te];
}
- for (const [V, ee] of re(H))
- if (!rt[V] && ee !== !1) {
- rt[V] = ee;
- let te;
- ee((Y) => te = Y), G[V] = {
+ for (const [q, ae] of ge(W))
+ if (!st[q] && ae !== !1) {
+ st[q] = ae;
+ let ie;
+ ae((te) => ie = te), $[q] = {
get() {
- return te;
+ return ie;
},
set: void 0,
enumerable: !0,
configurable: !1
};
}
- ut(
- Oo(Eo(G)),
- (V) => M(x, V, G[V])
- ), y(x), D();
+ ft(
+ Oo(So($)),
+ (q) => U(E, q, $[q])
+ ), y(E), L();
}
- let Ot;
- m !== void 0 ? Ot = m : Ot = Ts(_, u, {
+ let Dt;
+ m !== void 0 ? Dt = m : Dt = Ts(_, u, {
globalObject: o.globalThis,
transforms: S,
- __moduleShimLexicals__: B
+ __moduleShimLexicals__: j
});
- let zn = !1, Gn;
- function Gs() {
- if (Ot) {
- const me = Ot;
- Ot = null;
+ let Un = !1, jn;
+ function Bs() {
+ if (Dt) {
+ const we = Dt;
+ Dt = null;
try {
- me(
+ we(
y({
- imports: y(ar),
- onceVar: y(K),
- liveVar: y(ze),
- importMeta: he
+ imports: y(ur),
+ onceVar: y(F),
+ liveVar: y(J),
+ importMeta: X
})
);
- } catch (H) {
- zn = !0, Gn = H;
+ } catch (W) {
+ Un = !0, jn = W;
}
}
- if (zn)
- throw Gn;
+ if (Un)
+ throw jn;
}
return y({
- notifiers: rt,
- exportsProxy: N,
- execute: Gs
+ notifiers: st,
+ exportsProxy: I,
+ execute: Bs
});
-}, { Fail: ct, quote: q } = z, As = (t, e, r, n) => {
- const { name: o, moduleRecords: a } = L(
+}, { Fail: dt, quote: Q } = ee, As = (t, e, r, n) => {
+ const { name: o, moduleRecords: s } = z(
t,
r
- ), i = Ue(a, n);
+ ), i = He(s, n);
if (i === void 0)
- throw lt(
- `Missing link to module ${q(n)} from compartment ${q(
+ throw Bt(
+ `Missing link to module ${Q(n)} from compartment ${Q(
o
)}`
);
- return uc(t, e, i);
+ return lc(t, e, i);
};
-function sc(t) {
+function oc(t) {
return typeof t.__syncModuleProgram__ == "string";
}
-function ac(t, e) {
+function sc(t, e) {
const { __fixedExportMap__: r, __liveExportMap__: n } = t;
- Ye(r) || ct`Property '__fixedExportMap__' of a precompiled module record must be an object, got ${q(
+ ke(r) || dt`Property '__fixedExportMap__' of a precompiled module source must be an object, got ${Q(
r
- )}, for module ${q(e)}`, Ye(n) || ct`Property '__liveExportMap__' of a precompiled module record must be an object, got ${q(
+ )}, for module ${Q(e)}`, ke(n) || dt`Property '__liveExportMap__' of a precompiled module source must be an object, got ${Q(
n
- )}, for module ${q(e)}`;
+ )}, for module ${Q(e)}`;
}
-function ic(t) {
+function ac(t) {
return typeof t.execute == "function";
}
-function cc(t, e) {
+function ic(t, e) {
const { exports: r } = t;
- Et(r) || ct`Property 'exports' of a third-party static module record must be an array, got ${q(
+ Et(r) || dt`Property 'exports' of a third-party module source must be an array, got ${Q(
r
- )}, for module ${q(e)}`;
+ )}, for module ${Q(e)}`;
}
-function lc(t, e) {
- Ye(t) || ct`Static module records must be of type object, got ${q(
+function cc(t, e) {
+ ke(t) || dt`Module sources must be of type object, got ${Q(
t
- )}, for module ${q(e)}`;
+ )}, for module ${Q(e)}`;
const { imports: r, exports: n, reexports: o = [] } = t;
- Et(r) || ct`Property 'imports' of a static module record must be an array, got ${q(
+ Et(r) || dt`Property 'imports' of a module source must be an array, got ${Q(
r
- )}, for module ${q(e)}`, Et(n) || ct`Property 'exports' of a precompiled module record must be an array, got ${q(
+ )}, for module ${Q(e)}`, Et(n) || dt`Property 'exports' of a precompiled module source must be an array, got ${Q(
n
- )}, for module ${q(e)}`, Et(o) || ct`Property 'reexports' of a precompiled module record must be an array if present, got ${q(
+ )}, for module ${Q(e)}`, Et(o) || dt`Property 'reexports' of a precompiled module source must be an array if present, got ${Q(
o
- )}, for module ${q(e)}`;
+ )}, for module ${Q(e)}`;
}
-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);
- lc(i, o);
- const l = new Pe();
+const lc = (t, e, r) => {
+ const { compartment: n, moduleSpecifier: o, resolvedImports: s, moduleSource: i } = r, { instances: c } = z(t, n);
+ if (zr(c, o))
+ return He(c, o);
+ cc(i, o);
+ const l = new Re();
let u;
- if (sc(i))
- ac(i, o), u = oc(
+ if (oc(i))
+ sc(i, o), u = nc(
t,
e,
r,
l
);
- else if (ic(i))
- cc(i, o), u = nc(
+ else if (ac(i))
+ ic(i, o), u = rc(
t,
i,
n,
e,
o,
- a
+ s
);
else
throw v(
- `importHook must return a static module record, got ${q(
- i
- )}`
+ `importHook must provide a module source, got ${Q(i)}`
);
- $e(c, o, u);
- for (const [d, f] of re(a)) {
+ he(c, o, u);
+ for (const [d, f] of ge(s)) {
const h = As(
t,
e,
n,
f
);
- $e(l, d, h);
+ he(l, d, h);
}
return u;
-}, { 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(
- "Compartment must be constructed with an importHook and a resolveHook for it to be able to load modules"
- );
-}, Un = function(e = {}, r = {}, n = {}) {
+}, jt = new je(), Me = new je(), Ln = function(e = {}, r = {}, n = {}) {
throw v(
"Compartment.prototype.constructor is not a valid constructor."
);
-}, po = (t, e) => {
+}, uo = (t, e) => {
const { execute: r, exportsProxy: n } = As(
- Ce,
- bt,
+ Me,
+ jt,
t,
e
);
return r(), n;
-}, jn = {
- constructor: Un,
+}, Fn = {
+ constructor: Ln,
get globalThis() {
- return L(Ce, this).globalObject;
+ return z(Me, this).globalObject;
},
get name() {
- return L(Ce, this).name;
+ return z(Me, this).name;
},
/**
* @param {string} source is a JavaScript program grammar construction.
@@ -4274,151 +4397,180 @@ const uc = (t, e, r) => {
* @param {boolean} [options.__rejectSomeDirectEvalExpressions__]
*/
evaluate(t, e = {}) {
- const r = L(Ce, this);
+ const r = z(Me, this);
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 } = Dn(
+ const { exportsProxy: e } = Mn(
this,
- L(Ce, this),
- bt,
+ z(Me, this),
+ jt,
t
);
return e;
},
async import(t) {
+ const { noNamespaceBox: e } = z(Me, this);
if (typeof t != "string")
throw v("first argument of import() must be a string");
- return lr(this), Uo(
- fo(Ce, bt, this, t),
- () => ({ namespace: po(
- /** @type {Compartment} */
- this,
- t
- ) })
+ return Uo(
+ lo(Me, jt, this, t),
+ () => {
+ const r = uo(
+ /** @type {Compartment} */
+ this,
+ t
+ );
+ return e ? r : { namespace: r };
+ }
);
},
async load(t) {
if (typeof t != "string")
throw v("first argument of load() must be a string");
- return lr(this), fo(Ce, bt, this, t);
+ return lo(Me, jt, this, t);
},
importNow(t) {
if (typeof t != "string")
throw v("first argument of importNow() must be a string");
- return lr(this), ec(Ce, bt, this, t), po(
+ return Qi(Me, jt, this, t), uo(
/** @type {Compartment} */
this,
t
);
}
};
-F(jn, {
- [qe]: {
+B(Fn, {
+ [Qe]: {
value: "Compartment",
writable: !1,
enumerable: !1,
configurable: !0
}
});
-F(Un, {
- prototype: { value: jn }
+B(Ln, {
+ prototype: { value: Fn }
});
-const dn = (t, e, r) => {
- function n(o = {}, a = {}, i = {}) {
+const uc = (...t) => {
+ if (t.length === 0)
+ return {};
+ if (t.length === 1 && typeof t[0] == "object" && t[0] !== null && "__options__" in t[0]) {
+ const { __options__: e, ...r } = t[0];
+ return assert(
+ e === !0,
+ `Compartment constructor only supports true __options__ sigil, got ${e}`
+ ), r;
+ } else {
+ const [
+ e = (
+ /** @type {Map} */
+ {}
+ ),
+ r = (
+ /** @type {Map} */
+ {}
+ ),
+ n = {}
+ ] = t;
+ return Kn(
+ n.modules,
+ void 0,
+ "Compartment constructor must receive either a module map argument or modules option, not both"
+ ), Kn(
+ n.globals,
+ void 0,
+ "Compartment constructor must receive either globals argument or option, not both"
+ ), {
+ ...n,
+ globals: e,
+ modules: r
+ };
+ }
+}, fn = (t, e, r, n = void 0) => {
+ function o(...s) {
if (new.target === void 0)
throw v(
"Class constructor Compartment cannot be invoked without 'new'"
);
const {
- name: c = "",
- transforms: l = [],
- __shimTransforms__: u = [],
- resolveHook: d,
- importHook: f,
- importNowHook: h,
- moduleMapHook: p,
- importMetaHook: m
- } = i, _ = [...l, ...u], S = new Pe(), T = new Pe(), N = new Pe();
- for (const [G, B] of re(a || {})) {
- if (typeof B == "string")
- throw v(
- `Cannot map module ${Xr(G)} to ${Xr(
- B
- )} in parent compartment`
- );
- if (L(bt, B) === void 0)
- throw lt(
- `Cannot map module ${Xr(
- G
- )} because it has no known compartment in this realm`
- );
- }
- const x = {};
- li(x), cs(x);
- const { safeEvaluate: D } = On({
- globalObject: x,
- globalTransforms: _,
+ name: i = "",
+ transforms: c = [],
+ __shimTransforms__: l = [],
+ globals: u = {},
+ modules: d = {},
+ resolveHook: f,
+ importHook: h,
+ importNowHook: p,
+ moduleMapHook: m,
+ importMetaHook: _,
+ __noNamespaceBox__: S = !1
+ } = uc(...s), x = [...c, ...l], I = { __proto__: null, ...u }, E = { __proto__: null, ...d }, L = new Re(), $ = new Re(), j = new Re(), F = {};
+ li(F), cs(F);
+ const { safeEvaluate: J } = Rn({
+ globalObject: F,
+ globalTransforms: x,
sloppyGlobalsMode: !1
});
- ls(x, {
+ ls(F, {
intrinsics: e,
newGlobalPropertyNames: rs,
makeCompartmentConstructor: t,
+ parentCompartment: this,
markVirtualizedNativeFunction: r
- }), ln(
- x,
- D,
+ }), dn(
+ F,
+ J,
r
- ), $r(x, o), ie(Ce, this, {
- name: `${c}`,
- globalTransforms: _,
- globalObject: x,
- safeEvaluate: D,
- resolveHook: d,
- importHook: f,
- importNowHook: h,
- moduleMap: a,
- moduleMapHook: p,
- importMetaHook: m,
- moduleRecords: S,
- __shimTransforms__: u,
- deferredExports: N,
- instances: T
+ ), Fr(F, I), me(Me, this, {
+ name: `${i}`,
+ globalTransforms: x,
+ globalObject: F,
+ safeEvaluate: J,
+ resolveHook: f,
+ importHook: h,
+ importNowHook: p,
+ moduleMap: E,
+ moduleMapHook: m,
+ importMetaHook: _,
+ moduleRecords: L,
+ __shimTransforms__: l,
+ deferredExports: j,
+ instances: $,
+ parentCompartment: n,
+ noNamespaceBox: S
});
}
- return n.prototype = jn, n;
+ return o.prototype = Fn, o;
};
-function Qr(t) {
- return j(t).constructor;
+function nn(t) {
+ return V(t).constructor;
}
function dc() {
return arguments;
}
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 = ha(new Pe()), f = j(d), h = ma(new Ct()), p = j(h), m = j(l);
+ const t = Ee.prototype.constructor, e = ne(dc(), "callee"), r = e && e.get, n = _a(new be()), o = V(n), s = Ur[Po] && ga(/./), i = s && V(s), c = da([]), l = V(c), u = V(Hs), d = ha(new Re()), f = V(d), h = ma(new Ot()), p = V(h), m = V(l);
function* _() {
}
- const S = Qr(_), T = S.prototype;
- async function* N() {
+ const S = nn(_), x = S.prototype;
+ async function* I() {
}
- const x = Qr(
- N
- ), D = x.prototype, G = D.prototype, B = j(G);
- async function K() {
+ const E = nn(
+ I
+ ), L = E.prototype, $ = L.prototype, j = V($);
+ async function F() {
}
- const ze = Qr(K), he = {
+ const J = nn(F), X = {
"%InertFunction%": t,
"%ArrayIteratorPrototype%": l,
- "%InertAsyncFunction%": ze,
- "%AsyncGenerator%": D,
- "%InertAsyncGeneratorFunction%": x,
- "%AsyncGeneratorPrototype%": G,
- "%AsyncIteratorPrototype%": B,
- "%Generator%": T,
+ "%InertAsyncFunction%": J,
+ "%AsyncGenerator%": L,
+ "%InertAsyncGeneratorFunction%": E,
+ "%AsyncGeneratorPrototype%": $,
+ "%AsyncIteratorPrototype%": j,
+ "%Generator%": x,
"%InertGeneratorFunction%": S,
"%IteratorPrototype%": m,
"%MapIteratorPrototype%": f,
@@ -4427,23 +4579,23 @@ const fc = () => {
"%StringIteratorPrototype%": o,
"%ThrowTypeError%": r,
"%TypedArray%": u,
- "%InertCompartment%": Un
+ "%InertCompartment%": Ln
};
- return k.Iterator && (he["%IteratorHelperPrototype%"] = j(
+ return T.Iterator && (X["%IteratorHelperPrototype%"] = V(
// eslint-disable-next-line @endo/no-polymorphic-call
- k.Iterator.from([]).take(0)
- ), he["%WrapForValidIteratorPrototype%"] = j(
+ T.Iterator.from([]).take(0)
+ ), X["%WrapForValidIteratorPrototype%"] = V(
// eslint-disable-next-line @endo/no-polymorphic-call
- k.Iterator.from({ next() {
+ T.Iterator.from({ next() {
} })
- )), k.AsyncIterator && (he["%AsyncIteratorHelperPrototype%"] = j(
+ )), T.AsyncIterator && (X["%AsyncIteratorHelperPrototype%"] = V(
// eslint-disable-next-line @endo/no-polymorphic-call
- k.AsyncIterator.from([]).take(0)
- ), he["%WrapForValidAsyncIteratorPrototype%"] = j(
+ T.AsyncIterator.from([]).take(0)
+ ), X["%WrapForValidAsyncIteratorPrototype%"] = V(
// eslint-disable-next-line @endo/no-polymorphic-call
- k.AsyncIterator.from({ next() {
+ T.AsyncIterator.from({ next() {
} })
- )), he;
+ )), X;
}, Is = (t, e) => {
if (e !== "safe" && e !== "unsafe")
throw v(`unrecognized fakeHardenOption ${e}`);
@@ -4454,69 +4606,69 @@ const fc = () => {
};
y(Is);
const pc = () => {
- const t = St, e = t.prototype, r = Sa(St, void 0);
- F(e, {
+ const t = St, e = t.prototype, r = xa(St, void 0);
+ B(e, {
constructor: {
value: r
// leave other `constructor` attributes as is
}
});
- const n = re(
+ const n = ge(
Ze(t)
- ), o = mt(
- se(n, ([a, i]) => [
- a,
+ ), o = yt(
+ fe(n, ([s, i]) => [
+ s,
{ ...i, configurable: !0 }
])
);
- return F(r, o), { "%SharedSymbol%": r };
+ return B(r, o), { "%SharedSymbol%": r };
}, hc = (t) => {
try {
return t(), !1;
} catch {
return !0;
}
-}, ho = (t, e, r) => {
+}, fo = (t, e, r) => {
if (t === void 0)
return !1;
- const n = J(t, e);
+ const n = ne(t, e);
if (!n || "value" in n)
return !1;
- const { get: o, set: a } = n;
- if (typeof o != "function" || typeof a != "function" || o() !== r || ne(o, t, []) !== r)
+ const { get: o, set: s } = n;
+ if (typeof o != "function" || typeof s != "function" || o() !== r || ue(o, t, []) !== r)
return !1;
const i = "Seems to be a setter", c = { __proto__: null };
- if (ne(a, c, [i]), c[e] !== i)
+ if (ue(s, 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 ue(s, l, [i]), l[e] !== i || !hc(() => ue(s, t, [r])) || "originalValue" in o || n.configurable === !1 ? !1 : (U(t, e, {
value: r,
writable: !0,
enumerable: n.enumerable,
configurable: !0
}), !0);
}, mc = (t) => {
- ho(
+ fo(
t["%IteratorPrototype%"],
"constructor",
t.Iterator
- ), ho(
+ ), fo(
t["%IteratorPrototype%"],
- qe,
+ Qe,
"Iterator"
);
-}, { Fail: mo, details: go, quote: yo } = z;
-let ur, dr;
-const gc = Ga(), yc = () => {
+}, { Fail: po, details: ho, quote: mo } = ee;
+let gr, yr;
+const gc = Ba(), yc = () => {
let t = !1;
try {
- t = ve(
+ t = Ee(
"eval",
"SES_changed",
` eval("SES_changed = true");
return SES_changed;
`
- )(jo, !1), t || delete k.SES_changed;
+ )(jo, !1), t || delete T.SES_changed;
} catch {
t = !0;
}
@@ -4526,209 +4678,218 @@ const gc = Ga(), yc = () => {
);
}, Cs = (t = {}) => {
const {
- errorTaming: e = le("LOCKDOWN_ERROR_TAMING", "safe"),
+ errorTaming: e = ve("LOCKDOWN_ERROR_TAMING", "safe"),
errorTrapping: r = (
/** @type {"platform" | "none" | "report" | "abort" | "exit" | undefined} */
- le("LOCKDOWN_ERROR_TRAPPING", "platform")
+ ve("LOCKDOWN_ERROR_TRAPPING", "platform")
),
unhandledRejectionTrapping: n = (
/** @type {"none" | "report" | undefined} */
- le("LOCKDOWN_UNHANDLED_REJECTION_TRAPPING", "report")
+ ve("LOCKDOWN_UNHANDLED_REJECTION_TRAPPING", "report")
),
- regExpTaming: o = le("LOCKDOWN_REGEXP_TAMING", "safe"),
- localeTaming: a = le("LOCKDOWN_LOCALE_TAMING", "safe"),
+ regExpTaming: o = ve("LOCKDOWN_REGEXP_TAMING", "safe"),
+ localeTaming: s = ve("LOCKDOWN_LOCALE_TAMING", "safe"),
consoleTaming: i = (
/** @type {'unsafe' | 'safe' | undefined} */
- le("LOCKDOWN_CONSOLE_TAMING", "safe")
+ ve("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"),
- evalTaming: d = le("LOCKDOWN_EVAL_TAMING", "safeEval"),
- overrideDebug: f = Ke(
- Tn(le("LOCKDOWN_OVERRIDE_DEBUG", ""), ","),
+ overrideTaming: c = ve("LOCKDOWN_OVERRIDE_TAMING", "moderate"),
+ stackFiltering: l = ve("LOCKDOWN_STACK_FILTERING", "concise"),
+ domainTaming: u = ve("LOCKDOWN_DOMAIN_TAMING", "safe"),
+ evalTaming: d = ve("LOCKDOWN_EVAL_TAMING", "safeEval"),
+ overrideDebug: f = et(
+ Pn(ve("LOCKDOWN_OVERRIDE_DEBUG", ""), ","),
/** @param {string} debugName */
- (Be) => Be !== ""
+ (Ke) => Ke !== ""
),
- __hardenTaming__: h = le("LOCKDOWN_HARDEN_TAMING", "safe"),
+ __hardenTaming__: h = ve("LOCKDOWN_HARDEN_TAMING", "safe"),
dateTaming: p = "safe",
// deprecated
mathTaming: m = "safe",
// deprecated
..._
} = t;
- d === "unsafeEval" || d === "safeEval" || d === "noEval" || mo`lockdown(): non supported option evalTaming: ${yo(d)}`;
- const S = De(_);
- if (S.length === 0 || mo`lockdown(): non supported option ${yo(S)}`, ur === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call
- z.fail(
- go`Already locked down at ${ur} (SES_ALREADY_LOCKED_DOWN)`,
+ d === "unsafeEval" || d === "safeEval" || d === "noEval" || po`lockdown(): non supported option evalTaming: ${mo(d)}`;
+ const S = Ve(_);
+ if (S.length === 0 || po`lockdown(): non supported option ${mo(S)}`, gr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call
+ ee.fail(
+ ho`Already locked down at ${gr} (SES_ALREADY_LOCKED_DOWN)`,
v
- ), 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
+ ), gr = v("Prior lockdown (SES_ALREADY_LOCKED_DOWN)"), gr.stack, yc(), T.Function.prototype.constructor !== T.Function && // @ts-ignore harden is absent on globalThis type def.
+ typeof T.harden == "function" && // @ts-ignore lockdown is absent on globalThis type def.
+ typeof T.lockdown == "function" && T.Date.prototype.constructor !== T.Date && typeof T.Date.now == "function" && // @ts-ignore does not recognize that Date constructor is a special
// Function.
// eslint-disable-next-line @endo/no-polymorphic-call
- Nr(k.Date.prototype.constructor.now(), NaN))
+ Dr(T.Date.prototype.constructor.now(), NaN))
throw v(
"Already locked down but not by this SES instance (SES_MULTIPLE_INSTANCES)"
);
- Ei(u);
- const N = Es(), { addIntrinsics: x, completePrototypes: D, finalIntrinsics: G } = ss(), B = Is(gc, h);
- x({ harden: B }), x(Ya()), x(Ja(p)), x(Gi(e, l)), x(Xa(m)), x(Qa(o)), x(pc()), x(fc()), D();
- const K = G(), ze = { __proto__: null };
- typeof k.Buffer == "function" && (ze.Buffer = k.Buffer);
- let he;
- e !== "unsafe" && (he = K["%InitialGetStackString%"]);
- const Ge = Ti(
+ Si(u);
+ const I = Ss(), { addIntrinsics: E, completePrototypes: L, finalIntrinsics: $ } = ss(), j = Is(gc, h);
+ E({ harden: j }), E(Ya()), E(Ja(p)), E(Bi(e, l)), E(Xa(m)), E(Qa(o)), E(pc()), E(fc()), L();
+ const F = $(), J = { __proto__: null };
+ typeof T.Buffer == "function" && (J.Buffer = T.Buffer);
+ let X;
+ e === "safe" && (X = F["%InitialGetStackString%"]);
+ const qe = Ti(
i,
r,
n,
- he
+ X
);
- if (k.console = /** @type {Console} */
- Ge.console, typeof /** @type {any} */
- Ge.console._times == "object" && (ze.SafeMap = j(
+ if (T.console = /** @type {Console} */
+ qe.console, typeof /** @type {any} */
+ qe.console._times == "object" && (J.SafeMap = V(
// eslint-disable-next-line no-underscore-dangle
/** @type {any} */
- Ge.console._times
- )), e === "unsafe" && k.assert === z && (k.assert = jr(void 0, !0)), ai(K, a), mc(K), Ka(K, N), cs(k), ls(k, {
- intrinsics: K,
- newGlobalPropertyNames: Jn,
- makeCompartmentConstructor: dn,
- markVirtualizedNativeFunction: N
+ qe.console._times
+ )), (e === "unsafe" || e === "unsafe-debug") && T.assert === ee && (T.assert = Wr(void 0, !0)), ai(F, s), mc(F), Ka(F, I), cs(T), ls(T, {
+ intrinsics: F,
+ newGlobalPropertyNames: Yn,
+ makeCompartmentConstructor: fn,
+ markVirtualizedNativeFunction: I
}), d === "noEval")
- ln(
- k,
- xa,
- N
+ dn(
+ T,
+ Ea,
+ I
);
else if (d === "safeEval") {
- const { safeEvaluate: Be } = On({ globalObject: k });
- ln(
- k,
- Be,
- N
+ const { safeEvaluate: Ke } = Rn({ globalObject: T });
+ dn(
+ T,
+ Ke,
+ I
);
}
return () => {
- dr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call
- z.fail(
- go`Already locked down at ${dr} (SES_ALREADY_LOCKED_DOWN)`,
+ yr === void 0 || // eslint-disable-next-line @endo/no-polymorphic-call
+ ee.fail(
+ ho`Already locked down at ${yr} (SES_ALREADY_LOCKED_DOWN)`,
v
- ), dr = v(
+ ), yr = v(
"Prior lockdown (SES_ALREADY_LOCKED_DOWN)"
- ), dr.stack, ri(K, c, f);
- const Be = {
- intrinsics: K,
- hostIntrinsics: ze,
+ ), yr.stack, ri(F, c, f);
+ const Ke = {
+ intrinsics: F,
+ hostIntrinsics: J,
globals: {
// Harden evaluators
- Function: k.Function,
- eval: k.eval,
+ Function: T.Function,
+ eval: T.eval,
// @ts-ignore Compartment does exist on globalThis
- Compartment: k.Compartment,
+ Compartment: T.Compartment,
// Harden Symbol
- Symbol: k.Symbol
+ Symbol: T.Symbol
}
};
- for (const ar of Dt(Jn))
- Be.globals[ar] = k[ar];
- return B(Be), B;
+ for (const ur of It(Yn))
+ Ke.globals[ur] = T[ur];
+ return j(Ke), j;
};
};
-k.lockdown = (t) => {
+T.lockdown = (t) => {
const e = Cs(t);
- k.harden = e();
+ T.harden = e();
};
-k.repairIntrinsics = (t) => {
+T.repairIntrinsics = (t) => {
const e = Cs(t);
- k.hardenIntrinsics = () => {
- k.harden = e();
+ T.hardenIntrinsics = () => {
+ T.harden = e();
};
};
-const vc = Es();
-k.Compartment = dn(
- dn,
- qa(k),
+const vc = Ss();
+T.Compartment = fn(
+ fn,
+ qa(T),
vc
);
-k.assert = z;
-const _c = ks(br), bc = ta(
+T.assert = ee;
+const _c = ks(Pr), bc = ta(
"MAKE_CAUSAL_CONSOLE_FROM_LOGGER_KEY_FOR_SES_AVA"
);
-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, 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 = (l) => {
- o = { x: l.clientX, y: l.clientY }, n = { x: r.x, y: r.y }, document.addEventListener("mousemove", a), document.addEventListener("mouseup", i);
+T[bc] = _c;
+const wc = (t, e = t, r) => {
+ let n = { x: 0, y: 0 }, o = { x: 0, y: 0 }, s = { x: 0, y: 0 };
+ const i = (u) => {
+ const { clientX: d, clientY: f } = u, h = d - s.x + o.x, p = f - s.y + o.y;
+ n = { x: h, y: p }, e.style.transform = `translate(${h}px, ${p}px)`, r == null || r();
+ }, c = () => {
+ document.removeEventListener("mousemove", i), document.removeEventListener("mouseup", c);
+ }, l = (u) => {
+ s = { x: u.clientX, y: u.clientY }, o = { x: n.x, y: n.y }, document.addEventListener("mousemove", i), document.addEventListener("mouseup", c);
};
- 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 = `
+ return t.addEventListener("mousedown", l), c;
+}, xc = `: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)}::-webkit-resizer{display:none}.wrapper{position:absolute;inset-block-start:var(--modal-block-start);inset-inline-start:var(--modal-inline-start);z-index:1000;padding:10px;border-radius:15px;border:2px solid var(--color-background-quaternary);box-shadow:0 0 10px #0000004d;overflow:hidden;min-inline-size:25px;min-block-size:200px;resize:both}.wrapper:after{content:"";cursor:se-resize;inline-size:1rem;block-size:1rem;background-image:url("data:image/svg+xml,%3csvg%20width='16.022'%20xmlns='http://www.w3.org/2000/svg'%20height='16.022'%20viewBox='-0.011%20-0.011%2016.022%2016.022'%20fill='none'%3e%3cg%20data-testid='Group'%3e%3cg%20data-testid='Path'%3e%3cpath%20d='M.011%2015.917%2015.937-.011'%20class='fills'/%3e%3cg%20class='strokes'%3e%3cpath%20d='M.011%2015.917%2015.937-.011'%20style='fill:%20none;%20stroke-width:%201;%20stroke:%20rgb(111,%20111,%20111);%20stroke-opacity:%201;%20stroke-linecap:%20round;'%20class='stroke-shape'/%3e%3c/g%3e%3c/g%3e%3cg%20data-testid='Path'%3e%3cpath%20d='m11.207%2014.601%203.361-3.401'%20class='fills'/%3e%3cg%20class='strokes'%3e%3cpath%20d='m11.207%2014.601%203.361-3.401'%20style='fill:%20none;%20stroke-width:%201;%20stroke:%20rgb(111,%20111,%20111);%20stroke-opacity:%201;%20stroke-linecap:%20round;'%20class='stroke-shape'/%3e%3c/g%3e%3c/g%3e%3cg%20data-testid='Path'%3e%3cpath%20d='m4.884%2016.004%2011.112-11.17'%20class='fills'/%3e%3cg%20class='strokes'%3e%3cpath%20d='m4.884%2016.004%2011.112-11.17'%20style='fill:%20none;%20stroke-width:%201;%20stroke:%20rgb(111,%20111,%20111);%20stroke-opacity:%201;%20stroke-linecap:%20round;'%20class='stroke-shape'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;right:5px;bottom:5px;pointer-events:none;position:absolute}.inner{padding:10px;cursor:grab;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;block-size:100%}.inner>*{flex:1}.inner>.header{flex:0}.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%}`, Sc = `
`;
-var de, er;
-class xc extends HTMLElement {
+var re, Ge, or;
+class Ec extends HTMLElement {
constructor() {
super();
- Gr(this, de, null);
- Gr(this, er, null);
+ dr(this, re, null);
+ dr(this, Ge, null);
+ dr(this, or, null);
this.attachShadow({ mode: "open" });
}
setTheme(r) {
- Ee(this, de) && Ee(this, de).setAttribute("data-theme", r);
+ Y(this, re) && Y(this, re).setAttribute("data-theme", r);
}
disconnectedCallback() {
var r;
- (r = Ee(this, er)) == null || r.call(this);
+ (r = Y(this, or)) == 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);
+ const r = document.querySelectorAll("plugin-modal"), n = Array.from(r).filter((s) => s !== this).map((s) => Number(s.style.zIndex)), o = Math.max(...n, 0);
this.style.zIndex = (o + 1).toString();
}
connectedCallback() {
- const r = this.getAttribute("title"), n = this.getAttribute("iframe-src"), o = Number(this.getAttribute("width") || "300"), a = Number(this.getAttribute("height") || "400");
+ const r = this.getAttribute("title"), n = this.getAttribute("iframe-src"), o = Number(this.getAttribute("width") || "300"), s = Number(this.getAttribute("height") || "400"), i = this.getAttribute("allow-downloads") || !1;
if (!r || !n)
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, wc(Ee(this, de), () => {
+ fr(this, re, document.createElement("div")), fr(this, Ge, document.createElement("div")), Y(this, Ge).classList.add("inner"), Y(this, re).classList.add("wrapper"), Y(this, re).style.inlineSize = `${o}px`, Y(this, re).style.minInlineSize = `${o}px`, Y(this, re).style.blockSize = `${s}px`, Y(this, re).style.minBlockSize = `${s}px`, Y(this, re).style.maxInlineSize = "90vw", Y(this, re).style.maxBlockSize = "90vh", fr(this, or, wc(Y(this, Ge), Y(this, re), () => {
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 = `${Ec}
`, l.addEventListener("click", () => {
+ const c = document.createElement("div");
+ c.classList.add("header");
+ const l = document.createElement("h1");
+ l.textContent = r, c.appendChild(l);
+ const u = document.createElement("button");
+ u.setAttribute("type", "button"), u.innerHTML = `${Sc}
`, 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(
+ }), c.appendChild(u);
+ const d = document.createElement("iframe");
+ d.src = n, d.allow = "", d.sandbox.add(
"allow-scripts",
"allow-forms",
"allow-modals",
"allow-popups",
"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(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();
+ ), i && d.sandbox.add("allow-downloads"), d.addEventListener("load", () => {
+ var h;
+ (h = this.shadowRoot) == null || h.dispatchEvent(
+ new CustomEvent("load", {
+ composed: !0,
+ bubbles: !0
+ })
+ );
+ }), this.addEventListener("message", (h) => {
+ d.contentWindow && d.contentWindow.postMessage(h.detail, "*");
+ }), this.shadowRoot.appendChild(Y(this, re)), Y(this, re).appendChild(Y(this, Ge)), Y(this, Ge).appendChild(c), Y(this, Ge).appendChild(d);
+ const f = document.createElement("style");
+ f.textContent = xc, this.shadowRoot.appendChild(f), this.calculateZIndex();
}
}
-de = new WeakMap(), er = new WeakMap();
-customElements.define("plugin-modal", xc);
-var O;
+re = new WeakMap(), Ge = new WeakMap(), or = new WeakMap();
+customElements.define("plugin-modal", Ec);
+var D;
(function(t) {
t.assertEqual = (o) => o;
function e(o) {
@@ -4738,41 +4899,41 @@ var O;
throw new Error();
}
t.assertNever = r, t.arrayToEnum = (o) => {
- const a = {};
+ const s = {};
for (const i of o)
- a[i] = i;
- return a;
+ s[i] = i;
+ return s;
}, t.getValidEnumValues = (o) => {
- const a = t.objectKeys(o).filter((c) => typeof o[o[c]] != "number"), i = {};
- for (const c of a)
+ const s = t.objectKeys(o).filter((c) => typeof o[o[c]] != "number"), i = {};
+ for (const c of s)
i[c] = o[c];
return t.objectValues(i);
- }, t.objectValues = (o) => t.objectKeys(o).map(function(a) {
- return o[a];
+ }, t.objectValues = (o) => t.objectKeys(o).map(function(s) {
+ return o[s];
}), t.objectKeys = typeof Object.keys == "function" ? (o) => Object.keys(o) : (o) => {
- const a = [];
+ const s = [];
for (const i in o)
- Object.prototype.hasOwnProperty.call(o, i) && a.push(i);
- return a;
- }, t.find = (o, a) => {
+ Object.prototype.hasOwnProperty.call(o, i) && s.push(i);
+ return s;
+ }, t.find = (o, s) => {
for (const i of o)
- if (a(i))
+ if (s(i))
return i;
}, 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);
+ function n(o, s = " | ") {
+ return o.map((i) => typeof i == "string" ? `'${i}'` : i).join(s);
}
- t.joinValues = n, t.jsonStringifyReplacer = (o, a) => typeof a == "bigint" ? a.toString() : a;
-})(O || (O = {}));
-var fn;
+ t.joinValues = n, t.jsonStringifyReplacer = (o, s) => typeof s == "bigint" ? s.toString() : s;
+})(D || (D = {}));
+var pn;
(function(t) {
t.mergeShapes = (e, r) => ({
...e,
...r
// second overwrites first
});
-})(fn || (fn = {}));
-const w = O.arrayToEnum([
+})(pn || (pn = {}));
+const w = D.arrayToEnum([
"string",
"nan",
"number",
@@ -4793,7 +4954,7 @@ const w = O.arrayToEnum([
"never",
"map",
"set"
-]), Ve = (t) => {
+]), Je = (t) => {
switch (typeof t) {
case "undefined":
return w.undefined;
@@ -4814,7 +4975,7 @@ const w = O.arrayToEnum([
default:
return w.unknown;
}
-}, g = O.arrayToEnum([
+}, g = D.arrayToEnum([
"invalid_type",
"invalid_literal",
"custom",
@@ -4832,7 +4993,7 @@ const w = O.arrayToEnum([
"not_multiple_of",
"not_finite"
]), kc = (t) => JSON.stringify(t, null, 2).replace(/"([^"]+)":/g, "$1:");
-class fe extends Error {
+class _e extends Error {
constructor(e) {
super(), this.issues = [], this.addIssue = (n) => {
this.issues = [...this.issues, n];
@@ -4846,10 +5007,10 @@ class fe extends Error {
return this.issues;
}
format(e) {
- const r = e || function(a) {
- return a.message;
- }, n = { _errors: [] }, o = (a) => {
- for (const i of a.issues)
+ const r = e || function(s) {
+ return s.message;
+ }, n = { _errors: [] }, o = (s) => {
+ for (const i of s.issues)
if (i.code === "invalid_union")
i.unionErrors.map(o);
else if (i.code === "invalid_return_type")
@@ -4869,14 +5030,14 @@ class fe extends Error {
return o(this), n;
}
static assert(e) {
- if (!(e instanceof fe))
+ if (!(e instanceof _e))
throw new Error(`Not a ZodError: ${e}`);
}
toString() {
return this.message;
}
get message() {
- return JSON.stringify(this.issues, O.jsonStringifyReplacer, 2);
+ return JSON.stringify(this.issues, D.jsonStringifyReplacer, 2);
}
get isEmpty() {
return this.issues.length === 0;
@@ -4891,27 +5052,27 @@ class fe extends Error {
return this.flatten();
}
}
-fe.create = (t) => new fe(t);
-const Tt = (t, e) => {
+_e.create = (t) => new _e(t);
+const Rt = (t, e) => {
let r;
switch (t.code) {
case g.invalid_type:
t.received === w.undefined ? r = "Required" : r = `Expected ${t.expected}, received ${t.received}`;
break;
case g.invalid_literal:
- r = `Invalid literal value, expected ${JSON.stringify(t.expected, O.jsonStringifyReplacer)}`;
+ r = `Invalid literal value, expected ${JSON.stringify(t.expected, D.jsonStringifyReplacer)}`;
break;
case g.unrecognized_keys:
- r = `Unrecognized key(s) in object: ${O.joinValues(t.keys, ", ")}`;
+ r = `Unrecognized key(s) in object: ${D.joinValues(t.keys, ", ")}`;
break;
case g.invalid_union:
r = "Invalid input";
break;
case g.invalid_union_discriminator:
- r = `Invalid discriminator value. Expected ${O.joinValues(t.options)}`;
+ r = `Invalid discriminator value. Expected ${D.joinValues(t.options)}`;
break;
case g.invalid_enum_value:
- r = `Invalid enum value. Expected ${O.joinValues(t.options)}, received '${t.received}'`;
+ r = `Invalid enum value. Expected ${D.joinValues(t.options)}, received '${t.received}'`;
break;
case g.invalid_arguments:
r = "Invalid function arguments";
@@ -4923,7 +5084,7 @@ const Tt = (t, e) => {
r = "Invalid date";
break;
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";
+ 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}"` : D.assertNever(t.validation) : t.validation !== "regex" ? r = `Invalid ${t.validation}` : r = "Invalid";
break;
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";
@@ -4944,26 +5105,26 @@ const Tt = (t, e) => {
r = "Number must be finite";
break;
default:
- r = e.defaultError, O.assertNever(t);
+ r = e.defaultError, D.assertNever(t);
}
return { message: r };
};
-let $s = Tt;
+let Rs = Rt;
function Pc(t) {
- $s = t;
+ Rs = t;
}
-function Er() {
- return $s;
+function Ir() {
+ return Rs;
}
-const xr = (t) => {
- const { data: e, path: r, errorMaps: n, issueData: o } = t, a = [...r, ...o.path || []], i = {
+const Cr = (t) => {
+ const { data: e, path: r, errorMaps: n, issueData: o } = t, s = [...r, ...o.path || []], i = {
...o,
- path: a
+ path: s
};
if (o.message !== void 0)
return {
...o,
- path: a,
+ path: s,
message: o.message
};
let c = "";
@@ -4972,12 +5133,12 @@ const xr = (t) => {
c = u(i, { data: e, defaultError: c }).message;
return {
...o,
- path: a,
+ path: s,
message: c
};
}, Tc = [];
function b(t, e) {
- const r = Er(), n = xr({
+ const r = Ir(), n = Cr({
issueData: e,
data: t.data,
path: t.path,
@@ -4985,13 +5146,13 @@ function b(t, e) {
t.common.contextualErrorMap,
t.schemaErrorMap,
r,
- r === Tt ? void 0 : Tt
+ r === Rt ? void 0 : Rt
// then global default map
].filter((o) => !!o)
});
t.common.issues.push(n);
}
-class Q {
+class se {
constructor() {
this.value = "valid";
}
@@ -5005,7 +5166,7 @@ class Q {
const n = [];
for (const o of r) {
if (o.status === "aborted")
- return I;
+ return R;
o.status === "dirty" && e.dirty(), n.push(o.value);
}
return { status: e.value, value: n };
@@ -5013,44 +5174,42 @@ class Q {
static async mergeObjectAsync(e, r) {
const n = [];
for (const o of r) {
- const a = await o.key, i = await o.value;
+ const s = await o.key, i = await o.value;
n.push({
- key: a,
+ key: s,
value: i
});
}
- return Q.mergeObjectSync(e, n);
+ return se.mergeObjectSync(e, n);
}
static mergeObjectSync(e, r) {
const n = {};
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);
+ const { key: s, value: i } = o;
+ if (s.status === "aborted" || i.status === "aborted")
+ return R;
+ s.status === "dirty" && e.dirty(), i.status === "dirty" && e.dirty(), s.value !== "__proto__" && (typeof i.value < "u" || o.alwaysSet) && (n[s.value] = i.value);
}
return { status: e.value, value: n };
}
}
-const I = Object.freeze({
+const R = 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;
-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");
+}), xt = (t) => ({ status: "dirty", value: t }), pe = (t) => ({ status: "valid", value: t }), hn = (t) => t.status === "aborted", mn = (t) => t.status === "dirty", Gt = (t) => t.status === "valid", Vt = (t) => typeof Promise < "u" && t instanceof Promise;
+function Rr(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 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");
+function $s(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 E;
+var k;
(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 Lt, Ft;
-class Re {
+})(k || (k = {}));
+var Zt, zt;
+class De {
constructor(e, r, n, o) {
this._cachedPath = [], this.parent = e, this.data = r, this._path = n, this._key = o;
}
@@ -5058,8 +5217,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 vo = (t, e) => {
- if (jt(e))
+const go = (t, e) => {
+ if (Gt(e))
return { success: !0, data: e.value };
if (!t.common.issues.length)
throw new Error("Validation failed but no issues detected.");
@@ -5068,12 +5227,12 @@ const vo = (t, e) => {
get error() {
if (this._error)
return this._error;
- const r = new fe(t.common.issues);
+ const r = new _e(t.common.issues);
return this._error = r, this._error;
}
};
};
-function C(t) {
+function N(t) {
if (!t)
return {};
const { errorMap: e, invalid_type_error: r, required_error: n, description: o } = t;
@@ -5085,7 +5244,7 @@ function C(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 $ {
+class O {
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);
}
@@ -5093,13 +5252,13 @@ class $ {
return this._def.description;
}
_getType(e) {
- return Ve(e.data);
+ return Je(e.data);
}
_getOrReturnCtx(e, r) {
return r || {
common: e.parent.common,
data: e.data,
- parsedType: Ve(e.data),
+ parsedType: Je(e.data),
schemaErrorMap: this._def.errorMap,
path: e.path,
parent: e.parent
@@ -5107,11 +5266,11 @@ class $ {
}
_processInputParams(e) {
return {
- status: new Q(),
+ status: new se(),
ctx: {
common: e.parent.common,
data: e.data,
- parsedType: Ve(e.data),
+ parsedType: Je(e.data),
schemaErrorMap: this._def.errorMap,
path: e.path,
parent: e.parent
@@ -5120,7 +5279,7 @@ class $ {
}
_parseSync(e) {
const r = this._parse(e);
- if (Zt(r))
+ if (Vt(r))
throw new Error("Synchronous parse encountered promise.");
return r;
}
@@ -5146,9 +5305,9 @@ class $ {
schemaErrorMap: this._def.errorMap,
parent: null,
data: e,
- parsedType: Ve(e)
- }, a = this._parseSync({ data: e, path: o.path, parent: o });
- return vo(o, a);
+ parsedType: Je(e)
+ }, s = this._parseSync({ data: e, path: o.path, parent: o });
+ return go(o, s);
}
async parseAsync(e, r) {
const n = await this.safeParseAsync(e, r);
@@ -5167,14 +5326,14 @@ class $ {
schemaErrorMap: this._def.errorMap,
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 vo(n, a);
+ parsedType: Je(e)
+ }, o = this._parse({ data: e, path: n.path, parent: n }), s = await (Vt(o) ? o : Promise.resolve(o));
+ return go(n, s);
}
refine(e, r) {
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({
+ return this._refinement((o, s) => {
+ const i = e(o), c = () => s.addIssue({
code: g.custom,
...n(o)
});
@@ -5185,9 +5344,9 @@ class $ {
return this._refinement((n, o) => e(n) ? !0 : (o.addIssue(typeof r == "function" ? r(n, o) : r), !1));
}
_refinement(e) {
- return new Ae({
+ return new Ne({
schema: this,
- typeName: A.ZodEffects,
+ typeName: C.ZodEffects,
effect: { type: "refinement", refinement: e }
});
}
@@ -5195,57 +5354,57 @@ class $ {
return this._refinement(e);
}
optional() {
- return Ne.create(this, this._def);
+ return Fe.create(this, this._def);
}
nullable() {
- return tt.create(this, this._def);
+ return ot.create(this, this._def);
}
nullish() {
return this.nullable().optional();
}
array() {
- return Te.create(this, this._def);
+ return $e.create(this, this._def);
}
promise() {
- return It.create(this, this._def);
+ return Nt.create(this, this._def);
}
or(e) {
- return Ht.create([this, e], this._def);
+ return Kt.create([this, e], this._def);
}
and(e) {
- return Vt.create(this, e, this._def);
+ return Yt.create(this, e, this._def);
}
transform(e) {
- return new Ae({
- ...C(this._def),
+ return new Ne({
+ ...N(this._def),
schema: this,
- typeName: A.ZodEffects,
+ typeName: C.ZodEffects,
effect: { type: "transform", transform: e }
});
}
default(e) {
const r = typeof e == "function" ? e : () => e;
- return new Jt({
- ...C(this._def),
+ return new tr({
+ ...N(this._def),
innerType: this,
defaultValue: r,
- typeName: A.ZodDefault
+ typeName: C.ZodDefault
});
}
brand() {
- return new Zn({
- typeName: A.ZodBranded,
+ return new Dn({
+ typeName: C.ZodBranded,
type: this,
- ...C(this._def)
+ ...N(this._def)
});
}
catch(e) {
const r = typeof e == "function" ? e : () => e;
- return new Xt({
- ...C(this._def),
+ return new rr({
+ ...N(this._def),
innerType: this,
catchValue: r,
- typeName: A.ZodCatch
+ typeName: C.ZodCatch
});
}
describe(e) {
@@ -5256,10 +5415,10 @@ class $ {
});
}
pipe(e) {
- return sr.create(this, e);
+ return lr.create(this, e);
}
readonly() {
- return Qt.create(this);
+ return nr.create(this);
}
isOptional() {
return this.safeParse(void 0).success;
@@ -5268,9 +5427,9 @@ class $ {
return this.safeParse(null).success;
}
}
-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 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}$`);
+const Ac = /^c[^\s-]{8,}$/i, Ic = /^[0-9a-z]+$/, Cc = /^[0-9A-HJKMNP-TV-Z]{26}$/, Rc = /^[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, $c = /^[a-z0-9_-]{21}$/i, Nc = /^[-+]?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 on;
+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}=))?$/, Ns = "((\\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(`^${Ns}$`);
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;
@@ -5279,199 +5438,198 @@ function jc(t) {
return new RegExp(`^${Os(t)}$`);
}
function Ms(t) {
- let e = `${Rs}T${Os(t)}`;
+ let e = `${Ns}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) && Lc.test(t) || (e === "v6" || !e) && Fc.test(t));
}
-class ke extends $ {
+class Ce extends O {
_parse(e) {
if (this._def.coerce && (e.data = String(e.data)), this._getType(e) !== w.string) {
- const a = this._getOrReturnCtx(e);
- return b(a, {
+ const s = this._getOrReturnCtx(e);
+ return b(s, {
code: g.invalid_type,
expected: w.string,
- received: a.parsedType
- }), I;
+ received: s.parsedType
+ }), R;
}
- const n = new Q();
+ const n = new se();
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, {
+ for (const s of this._def.checks)
+ if (s.kind === "min")
+ e.data.length < s.value && (o = this._getOrReturnCtx(e, o), b(o, {
code: g.too_small,
- minimum: a.value,
+ minimum: s.value,
type: "string",
inclusive: !0,
exact: !1,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "max")
- e.data.length > a.value && (o = this._getOrReturnCtx(e, o), b(o, {
+ else if (s.kind === "max")
+ e.data.length > s.value && (o = this._getOrReturnCtx(e, o), b(o, {
code: g.too_big,
- maximum: a.value,
+ maximum: s.value,
type: "string",
inclusive: !0,
exact: !1,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "length") {
- const i = e.data.length > a.value, c = e.data.length < a.value;
+ else if (s.kind === "length") {
+ const i = e.data.length > s.value, c = e.data.length < s.value;
(i || c) && (o = this._getOrReturnCtx(e, o), i ? b(o, {
code: g.too_big,
- maximum: a.value,
+ maximum: s.value,
type: "string",
inclusive: !0,
exact: !0,
- message: a.message
+ message: s.message
}) : c && b(o, {
code: g.too_small,
- minimum: a.value,
+ minimum: s.value,
type: "string",
inclusive: !0,
exact: !0,
- message: a.message
+ message: s.message
}), n.dirty());
- } else if (a.kind === "email")
+ } else if (s.kind === "email")
Oc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "email",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "emoji")
- en || (en = new RegExp(Mc, "u")), en.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ else if (s.kind === "emoji")
+ on || (on = new RegExp(Mc, "u")), on.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "emoji",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "uuid")
- $c.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ else if (s.kind === "uuid")
+ Rc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "uuid",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "nanoid")
- Nc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ else if (s.kind === "nanoid")
+ $c.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "nanoid",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "cuid")
+ else if (s.kind === "cuid")
Ac.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "cuid",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "cuid2")
+ else if (s.kind === "cuid2")
Ic.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "cuid2",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "ulid")
+ else if (s.kind === "ulid")
Cc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
validation: "ulid",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty());
- else if (a.kind === "url")
+ else if (s.kind === "url")
try {
new URL(e.data);
} catch {
o = this._getOrReturnCtx(e, o), b(o, {
validation: "url",
code: g.invalid_string,
- message: a.message
+ message: s.message
}), n.dirty();
}
- else
- a.kind === "regex" ? (a.regex.lastIndex = 0, a.regex.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
- validation: "regex",
- 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" ? 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" ? 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" ? 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" ? 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, {
- validation: "ip",
- code: g.invalid_string,
- message: a.message
- }), 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
- }), n.dirty()) : O.assertNever(a);
+ else s.kind === "regex" ? (s.regex.lastIndex = 0, s.regex.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ validation: "regex",
+ code: g.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) || (o = this._getOrReturnCtx(e, o), b(o, {
+ code: g.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) || (o = this._getOrReturnCtx(e, o), b(o, {
+ code: g.invalid_string,
+ validation: { startsWith: s.value },
+ message: s.message
+ }), n.dirty()) : s.kind === "endsWith" ? e.data.endsWith(s.value) || (o = this._getOrReturnCtx(e, o), b(o, {
+ code: g.invalid_string,
+ validation: { endsWith: s.value },
+ message: s.message
+ }), n.dirty()) : s.kind === "datetime" ? Ms(s).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ code: g.invalid_string,
+ validation: "datetime",
+ message: s.message
+ }), n.dirty()) : s.kind === "date" ? Uc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ code: g.invalid_string,
+ validation: "date",
+ message: s.message
+ }), n.dirty()) : s.kind === "time" ? jc(s).test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ code: g.invalid_string,
+ validation: "time",
+ message: s.message
+ }), n.dirty()) : s.kind === "duration" ? Nc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ validation: "duration",
+ code: g.invalid_string,
+ message: s.message
+ }), n.dirty()) : s.kind === "ip" ? Zc(e.data, s.version) || (o = this._getOrReturnCtx(e, o), b(o, {
+ validation: "ip",
+ code: g.invalid_string,
+ message: s.message
+ }), n.dirty()) : s.kind === "base64" ? Dc.test(e.data) || (o = this._getOrReturnCtx(e, o), b(o, {
+ validation: "base64",
+ code: g.invalid_string,
+ message: s.message
+ }), n.dirty()) : D.assertNever(s);
return { status: n.value, value: e.data };
}
_regex(e, r, n) {
return this.refinement((o) => e.test(o), {
validation: r,
code: g.invalid_string,
- ...E.errToObj(n)
+ ...k.errToObj(n)
});
}
_addCheck(e) {
- return new ke({
+ return new Ce({
...this._def,
checks: [...this._def.checks, e]
});
}
email(e) {
- return this._addCheck({ kind: "email", ...E.errToObj(e) });
+ return this._addCheck({ kind: "email", ...k.errToObj(e) });
}
url(e) {
- return this._addCheck({ kind: "url", ...E.errToObj(e) });
+ return this._addCheck({ kind: "url", ...k.errToObj(e) });
}
emoji(e) {
- return this._addCheck({ kind: "emoji", ...E.errToObj(e) });
+ return this._addCheck({ kind: "emoji", ...k.errToObj(e) });
}
uuid(e) {
- return this._addCheck({ kind: "uuid", ...E.errToObj(e) });
+ return this._addCheck({ kind: "uuid", ...k.errToObj(e) });
}
nanoid(e) {
- return this._addCheck({ kind: "nanoid", ...E.errToObj(e) });
+ return this._addCheck({ kind: "nanoid", ...k.errToObj(e) });
}
cuid(e) {
- return this._addCheck({ kind: "cuid", ...E.errToObj(e) });
+ return this._addCheck({ kind: "cuid", ...k.errToObj(e) });
}
cuid2(e) {
- return this._addCheck({ kind: "cuid2", ...E.errToObj(e) });
+ return this._addCheck({ kind: "cuid2", ...k.errToObj(e) });
}
ulid(e) {
- return this._addCheck({ kind: "ulid", ...E.errToObj(e) });
+ return this._addCheck({ kind: "ulid", ...k.errToObj(e) });
}
base64(e) {
- return this._addCheck({ kind: "base64", ...E.errToObj(e) });
+ return this._addCheck({ kind: "base64", ...k.errToObj(e) });
}
ip(e) {
- return this._addCheck({ kind: "ip", ...E.errToObj(e) });
+ return this._addCheck({ kind: "ip", ...k.errToObj(e) });
}
datetime(e) {
var r, n;
@@ -5486,7 +5644,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,
- ...E.errToObj(e == null ? void 0 : e.message)
+ ...k.errToObj(e == null ? void 0 : e.message)
});
}
date(e) {
@@ -5500,17 +5658,17 @@ class ke extends $ {
}) : this._addCheck({
kind: "time",
precision: typeof (e == null ? void 0 : e.precision) > "u" ? null : e == null ? void 0 : e.precision,
- ...E.errToObj(e == null ? void 0 : e.message)
+ ...k.errToObj(e == null ? void 0 : e.message)
});
}
duration(e) {
- return this._addCheck({ kind: "duration", ...E.errToObj(e) });
+ return this._addCheck({ kind: "duration", ...k.errToObj(e) });
}
regex(e, r) {
return this._addCheck({
kind: "regex",
regex: e,
- ...E.errToObj(r)
+ ...k.errToObj(r)
});
}
includes(e, r) {
@@ -5518,42 +5676,42 @@ class ke extends $ {
kind: "includes",
value: e,
position: r == null ? void 0 : r.position,
- ...E.errToObj(r == null ? void 0 : r.message)
+ ...k.errToObj(r == null ? void 0 : r.message)
});
}
startsWith(e, r) {
return this._addCheck({
kind: "startsWith",
value: e,
- ...E.errToObj(r)
+ ...k.errToObj(r)
});
}
endsWith(e, r) {
return this._addCheck({
kind: "endsWith",
value: e,
- ...E.errToObj(r)
+ ...k.errToObj(r)
});
}
min(e, r) {
return this._addCheck({
kind: "min",
value: e,
- ...E.errToObj(r)
+ ...k.errToObj(r)
});
}
max(e, r) {
return this._addCheck({
kind: "max",
value: e,
- ...E.errToObj(r)
+ ...k.errToObj(r)
});
}
length(e, r) {
return this._addCheck({
kind: "length",
value: e,
- ...E.errToObj(r)
+ ...k.errToObj(r)
});
}
/**
@@ -5561,22 +5719,22 @@ class ke extends $ {
* @see {@link ZodString.min}
*/
nonempty(e) {
- return this.min(1, E.errToObj(e));
+ return this.min(1, k.errToObj(e));
}
trim() {
- return new ke({
+ return new Ce({
...this._def,
checks: [...this._def.checks, { kind: "trim" }]
});
}
toLowerCase() {
- return new ke({
+ return new Ce({
...this._def,
checks: [...this._def.checks, { kind: "toLowerCase" }]
});
}
toUpperCase() {
- return new ke({
+ return new Ce({
...this._def,
checks: [...this._def.checks, { kind: "toUpperCase" }]
});
@@ -5636,78 +5794,78 @@ class ke extends $ {
return e;
}
}
-ke.create = (t) => {
+Ce.create = (t) => {
var e;
- return new ke({
+ return new Ce({
checks: [],
- typeName: A.ZodString,
+ typeName: C.ZodString,
coerce: (e = t == null ? void 0 : t.coerce) !== null && e !== void 0 ? e : !1,
- ...C(t)
+ ...N(t)
});
};
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);
+ const r = (t.toString().split(".")[1] || "").length, n = (e.toString().split(".")[1] || "").length, o = r > n ? r : n, s = parseInt(t.toFixed(o).replace(".", "")), i = parseInt(e.toFixed(o).replace(".", ""));
+ return s % i / Math.pow(10, o);
}
-class Xe extends $ {
+class tt extends O {
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) !== w.number) {
- const a = this._getOrReturnCtx(e);
- return b(a, {
+ const s = this._getOrReturnCtx(e);
+ return b(s, {
code: g.invalid_type,
expected: w.number,
- received: a.parsedType
- }), I;
+ received: s.parsedType
+ }), R;
}
let n;
- 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, {
+ const o = new se();
+ for (const s of this._def.checks)
+ s.kind === "int" ? D.isInteger(e.data) || (n = this._getOrReturnCtx(e, n), b(n, {
code: g.invalid_type,
expected: "integer",
received: "float",
- 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, {
+ message: s.message
+ }), o.dirty()) : s.kind === "min" ? (s.inclusive ? e.data < s.value : e.data <= s.value) && (n = this._getOrReturnCtx(e, n), b(n, {
code: g.too_small,
- minimum: a.value,
+ minimum: s.value,
type: "number",
- inclusive: a.inclusive,
+ inclusive: s.inclusive,
exact: !1,
- 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, {
+ message: s.message
+ }), o.dirty()) : s.kind === "max" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (n = this._getOrReturnCtx(e, n), b(n, {
code: g.too_big,
- maximum: a.value,
+ maximum: s.value,
type: "number",
- inclusive: a.inclusive,
+ inclusive: s.inclusive,
exact: !1,
- message: a.message
- }), o.dirty()) : a.kind === "multipleOf" ? zc(e.data, a.value) !== 0 && (n = this._getOrReturnCtx(e, n), b(n, {
+ message: s.message
+ }), o.dirty()) : s.kind === "multipleOf" ? zc(e.data, s.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, {
+ multipleOf: s.value,
+ message: s.message
+ }), o.dirty()) : s.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);
+ message: s.message
+ }), o.dirty()) : D.assertNever(s);
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, k.toString(r));
}
gt(e, r) {
- return this.setLimit("min", e, !1, E.toString(r));
+ return this.setLimit("min", e, !1, k.toString(r));
}
lte(e, r) {
- return this.setLimit("max", e, !0, E.toString(r));
+ return this.setLimit("max", e, !0, k.toString(r));
}
lt(e, r) {
- return this.setLimit("max", e, !1, E.toString(r));
+ return this.setLimit("max", e, !1, k.toString(r));
}
setLimit(e, r, n, o) {
- return new Xe({
+ return new tt({
...this._def,
checks: [
...this._def.checks,
@@ -5715,13 +5873,13 @@ class Xe extends $ {
kind: e,
value: r,
inclusive: n,
- message: E.toString(o)
+ message: k.toString(o)
}
]
});
}
_addCheck(e) {
- return new Xe({
+ return new tt({
...this._def,
checks: [...this._def.checks, e]
});
@@ -5729,7 +5887,7 @@ class Xe extends $ {
int(e) {
return this._addCheck({
kind: "int",
- message: E.toString(e)
+ message: k.toString(e)
});
}
positive(e) {
@@ -5737,7 +5895,7 @@ class Xe extends $ {
kind: "min",
value: 0,
inclusive: !1,
- message: E.toString(e)
+ message: k.toString(e)
});
}
negative(e) {
@@ -5745,7 +5903,7 @@ class Xe extends $ {
kind: "max",
value: 0,
inclusive: !1,
- message: E.toString(e)
+ message: k.toString(e)
});
}
nonpositive(e) {
@@ -5753,7 +5911,7 @@ class Xe extends $ {
kind: "max",
value: 0,
inclusive: !0,
- message: E.toString(e)
+ message: k.toString(e)
});
}
nonnegative(e) {
@@ -5761,20 +5919,20 @@ class Xe extends $ {
kind: "min",
value: 0,
inclusive: !0,
- message: E.toString(e)
+ message: k.toString(e)
});
}
multipleOf(e, r) {
return this._addCheck({
kind: "multipleOf",
value: e,
- message: E.toString(r)
+ message: k.toString(r)
});
}
finite(e) {
return this._addCheck({
kind: "finite",
- message: E.toString(e)
+ message: k.toString(e)
});
}
safe(e) {
@@ -5782,12 +5940,12 @@ class Xe extends $ {
kind: "min",
inclusive: !0,
value: Number.MIN_SAFE_INTEGER,
- message: E.toString(e)
+ message: k.toString(e)
})._addCheck({
kind: "max",
inclusive: !0,
value: Number.MAX_SAFE_INTEGER,
- message: E.toString(e)
+ message: k.toString(e)
});
}
get minValue() {
@@ -5803,7 +5961,7 @@ class Xe extends $ {
return e;
}
get isInt() {
- return !!this._def.checks.find((e) => e.kind === "int" || e.kind === "multipleOf" && O.isInteger(e.value));
+ return !!this._def.checks.find((e) => e.kind === "int" || e.kind === "multipleOf" && D.isInteger(e.value));
}
get isFinite() {
let e = null, r = null;
@@ -5815,61 +5973,61 @@ class Xe extends $ {
return Number.isFinite(r) && Number.isFinite(e);
}
}
-Xe.create = (t) => new Xe({
+tt.create = (t) => new tt({
checks: [],
- typeName: A.ZodNumber,
+ typeName: C.ZodNumber,
coerce: (t == null ? void 0 : t.coerce) || !1,
- ...C(t)
+ ...N(t)
});
-class Qe extends $ {
+class rt extends O {
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) !== w.bigint) {
- const a = this._getOrReturnCtx(e);
- return b(a, {
+ const s = this._getOrReturnCtx(e);
+ return b(s, {
code: g.invalid_type,
expected: w.bigint,
- received: a.parsedType
- }), I;
+ received: s.parsedType
+ }), R;
}
let n;
- 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, {
+ const o = new se();
+ 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), b(n, {
code: g.too_small,
type: "bigint",
- 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, {
+ minimum: s.value,
+ inclusive: s.inclusive,
+ message: s.message
+ }), o.dirty()) : s.kind === "max" ? (s.inclusive ? e.data > s.value : e.data >= s.value) && (n = this._getOrReturnCtx(e, n), b(n, {
code: g.too_big,
type: "bigint",
- 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, {
+ maximum: s.value,
+ inclusive: s.inclusive,
+ message: s.message
+ }), o.dirty()) : s.kind === "multipleOf" ? e.data % s.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);
+ multipleOf: s.value,
+ message: s.message
+ }), o.dirty()) : D.assertNever(s);
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, k.toString(r));
}
gt(e, r) {
- return this.setLimit("min", e, !1, E.toString(r));
+ return this.setLimit("min", e, !1, k.toString(r));
}
lte(e, r) {
- return this.setLimit("max", e, !0, E.toString(r));
+ return this.setLimit("max", e, !0, k.toString(r));
}
lt(e, r) {
- return this.setLimit("max", e, !1, E.toString(r));
+ return this.setLimit("max", e, !1, k.toString(r));
}
setLimit(e, r, n, o) {
- return new Qe({
+ return new rt({
...this._def,
checks: [
...this._def.checks,
@@ -5877,13 +6035,13 @@ class Qe extends $ {
kind: e,
value: r,
inclusive: n,
- message: E.toString(o)
+ message: k.toString(o)
}
]
});
}
_addCheck(e) {
- return new Qe({
+ return new rt({
...this._def,
checks: [...this._def.checks, e]
});
@@ -5893,7 +6051,7 @@ class Qe extends $ {
kind: "min",
value: BigInt(0),
inclusive: !1,
- message: E.toString(e)
+ message: k.toString(e)
});
}
negative(e) {
@@ -5901,7 +6059,7 @@ class Qe extends $ {
kind: "max",
value: BigInt(0),
inclusive: !1,
- message: E.toString(e)
+ message: k.toString(e)
});
}
nonpositive(e) {
@@ -5909,7 +6067,7 @@ class Qe extends $ {
kind: "max",
value: BigInt(0),
inclusive: !0,
- message: E.toString(e)
+ message: k.toString(e)
});
}
nonnegative(e) {
@@ -5917,14 +6075,14 @@ class Qe extends $ {
kind: "min",
value: BigInt(0),
inclusive: !0,
- message: E.toString(e)
+ message: k.toString(e)
});
}
multipleOf(e, r) {
return this._addCheck({
kind: "multipleOf",
value: e,
- message: E.toString(r)
+ message: k.toString(r)
});
}
get minValue() {
@@ -5940,16 +6098,16 @@ class Qe extends $ {
return e;
}
}
-Qe.create = (t) => {
+rt.create = (t) => {
var e;
- return new Qe({
+ return new rt({
checks: [],
- typeName: A.ZodBigInt,
+ typeName: C.ZodBigInt,
coerce: (e = t == null ? void 0 : t.coerce) !== null && e !== void 0 ? e : !1,
- ...C(t)
+ ...N(t)
});
};
-class zt extends $ {
+class Ht extends O {
_parse(e) {
if (this._def.coerce && (e.data = !!e.data), this._getType(e) !== w.boolean) {
const n = this._getOrReturnCtx(e);
@@ -5957,57 +6115,57 @@ class zt extends $ {
code: g.invalid_type,
expected: w.boolean,
received: n.parsedType
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
}
-zt.create = (t) => new zt({
- typeName: A.ZodBoolean,
+Ht.create = (t) => new Ht({
+ typeName: C.ZodBoolean,
coerce: (t == null ? void 0 : t.coerce) || !1,
- ...C(t)
+ ...N(t)
});
-class pt extends $ {
+class mt extends O {
_parse(e) {
if (this._def.coerce && (e.data = new Date(e.data)), this._getType(e) !== w.date) {
- const a = this._getOrReturnCtx(e);
- return b(a, {
+ const s = this._getOrReturnCtx(e);
+ return b(s, {
code: g.invalid_type,
expected: w.date,
- received: a.parsedType
- }), I;
+ received: s.parsedType
+ }), R;
}
if (isNaN(e.data.getTime())) {
- const a = this._getOrReturnCtx(e);
- return b(a, {
+ const s = this._getOrReturnCtx(e);
+ return b(s, {
code: g.invalid_date
- }), I;
+ }), R;
}
- const n = new Q();
+ const n = new se();
let o;
- for (const a of this._def.checks)
- a.kind === "min" ? e.data.getTime() < a.value && (o = this._getOrReturnCtx(e, o), b(o, {
+ for (const s of this._def.checks)
+ s.kind === "min" ? e.data.getTime() < s.value && (o = this._getOrReturnCtx(e, o), b(o, {
code: g.too_small,
- message: a.message,
+ message: s.message,
inclusive: !0,
exact: !1,
- minimum: a.value,
+ minimum: s.value,
type: "date"
- }), n.dirty()) : a.kind === "max" ? e.data.getTime() > a.value && (o = this._getOrReturnCtx(e, o), b(o, {
+ }), n.dirty()) : s.kind === "max" ? e.data.getTime() > s.value && (o = this._getOrReturnCtx(e, o), b(o, {
code: g.too_big,
- message: a.message,
+ message: s.message,
inclusive: !0,
exact: !1,
- maximum: a.value,
+ maximum: s.value,
type: "date"
- }), n.dirty()) : O.assertNever(a);
+ }), n.dirty()) : D.assertNever(s);
return {
status: n.value,
value: new Date(e.data.getTime())
};
}
_addCheck(e) {
- return new pt({
+ return new mt({
...this._def,
checks: [...this._def.checks, e]
});
@@ -6016,14 +6174,14 @@ class pt extends $ {
return this._addCheck({
kind: "min",
value: e.getTime(),
- message: E.toString(r)
+ message: k.toString(r)
});
}
max(e, r) {
return this._addCheck({
kind: "max",
value: e.getTime(),
- message: E.toString(r)
+ message: k.toString(r)
});
}
get minDate() {
@@ -6039,13 +6197,13 @@ class pt extends $ {
return e != null ? new Date(e) : null;
}
}
-pt.create = (t) => new pt({
+mt.create = (t) => new mt({
checks: [],
coerce: (t == null ? void 0 : t.coerce) || !1,
- typeName: A.ZodDate,
- ...C(t)
+ typeName: C.ZodDate,
+ ...N(t)
});
-class Pr extends $ {
+class $r extends O {
_parse(e) {
if (this._getType(e) !== w.symbol) {
const n = this._getOrReturnCtx(e);
@@ -6053,16 +6211,16 @@ class Pr extends $ {
code: g.invalid_type,
expected: w.symbol,
received: n.parsedType
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
}
-Pr.create = (t) => new Pr({
- typeName: A.ZodSymbol,
- ...C(t)
+$r.create = (t) => new $r({
+ typeName: C.ZodSymbol,
+ ...N(t)
});
-class Gt extends $ {
+class Wt extends O {
_parse(e) {
if (this._getType(e) !== w.undefined) {
const n = this._getOrReturnCtx(e);
@@ -6070,16 +6228,16 @@ class Gt extends $ {
code: g.invalid_type,
expected: w.undefined,
received: n.parsedType
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
}
-Gt.create = (t) => new Gt({
- typeName: A.ZodUndefined,
- ...C(t)
+Wt.create = (t) => new Wt({
+ typeName: C.ZodUndefined,
+ ...N(t)
});
-class Bt extends $ {
+class qt extends O {
_parse(e) {
if (this._getType(e) !== w.null) {
const n = this._getOrReturnCtx(e);
@@ -6087,54 +6245,54 @@ class Bt extends $ {
code: g.invalid_type,
expected: w.null,
received: n.parsedType
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
}
-Bt.create = (t) => new Bt({
- typeName: A.ZodNull,
- ...C(t)
+qt.create = (t) => new qt({
+ typeName: C.ZodNull,
+ ...N(t)
});
-class At extends $ {
+class $t extends O {
constructor() {
super(...arguments), this._any = !0;
}
_parse(e) {
- return ae(e.data);
+ return pe(e.data);
}
}
-At.create = (t) => new At({
- typeName: A.ZodAny,
- ...C(t)
+$t.create = (t) => new $t({
+ typeName: C.ZodAny,
+ ...N(t)
});
-class dt extends $ {
+class pt extends O {
constructor() {
super(...arguments), this._unknown = !0;
}
_parse(e) {
- return ae(e.data);
+ return pe(e.data);
}
}
-dt.create = (t) => new dt({
- typeName: A.ZodUnknown,
- ...C(t)
+pt.create = (t) => new pt({
+ typeName: C.ZodUnknown,
+ ...N(t)
});
-class je extends $ {
+class We extends O {
_parse(e) {
const r = this._getOrReturnCtx(e);
return b(r, {
code: g.invalid_type,
expected: w.never,
received: r.parsedType
- }), I;
+ }), R;
}
}
-je.create = (t) => new je({
- typeName: A.ZodNever,
- ...C(t)
+We.create = (t) => new We({
+ typeName: C.ZodNever,
+ ...N(t)
});
-class Tr extends $ {
+class Nr extends O {
_parse(e) {
if (this._getType(e) !== w.undefined) {
const n = this._getOrReturnCtx(e);
@@ -6142,16 +6300,16 @@ class Tr extends $ {
code: g.invalid_type,
expected: w.void,
received: n.parsedType
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
}
-Tr.create = (t) => new Tr({
- typeName: A.ZodVoid,
- ...C(t)
+Nr.create = (t) => new Nr({
+ typeName: C.ZodVoid,
+ ...N(t)
});
-class Te extends $ {
+class $e extends O {
_parse(e) {
const { ctx: r, status: n } = this._processInputParams(e), o = this._def;
if (r.parsedType !== w.array)
@@ -6159,7 +6317,7 @@ class Te extends $ {
code: g.invalid_type,
expected: w.array,
received: r.parsedType
- }), I;
+ }), R;
if (o.exactLength !== null) {
const i = r.data.length > o.exactLength.value, c = r.data.length < o.exactLength.value;
(i || c) && (b(r, {
@@ -6187,68 +6345,67 @@ class Te extends $ {
exact: !1,
message: o.maxLength.message
}), n.dirty()), r.common.async)
- 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);
+ return Promise.all([...r.data].map((i, c) => o.type._parseAsync(new De(r, i, r.path, c)))).then((i) => se.mergeArray(n, i));
+ const s = [...r.data].map((i, c) => o.type._parseSync(new De(r, i, r.path, c)));
+ return se.mergeArray(n, s);
}
get element() {
return this._def.type;
}
min(e, r) {
- return new Te({
+ return new $e({
...this._def,
- minLength: { value: e, message: E.toString(r) }
+ minLength: { value: e, message: k.toString(r) }
});
}
max(e, r) {
- return new Te({
+ return new $e({
...this._def,
- maxLength: { value: e, message: E.toString(r) }
+ maxLength: { value: e, message: k.toString(r) }
});
}
length(e, r) {
- return new Te({
+ return new $e({
...this._def,
- exactLength: { value: e, message: E.toString(r) }
+ exactLength: { value: e, message: k.toString(r) }
});
}
nonempty(e) {
return this.min(1, e);
}
}
-Te.create = (t, e) => new Te({
+$e.create = (t, e) => new $e({
type: t,
minLength: null,
maxLength: null,
exactLength: null,
- typeName: A.ZodArray,
- ...C(e)
+ typeName: C.ZodArray,
+ ...N(e)
});
-function _t(t) {
- if (t instanceof U) {
+function wt(t) {
+ if (t instanceof G) {
const e = {};
for (const r in t.shape) {
const n = t.shape[r];
- e[r] = Ne.create(_t(n));
+ e[r] = Fe.create(wt(n));
}
- return new U({
+ return new G({
...t._def,
shape: () => e
});
- } else
- return t instanceof Te ? new Te({
- ...t._def,
- 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;
+ } else return t instanceof $e ? new $e({
+ ...t._def,
+ type: wt(t.element)
+ }) : t instanceof Fe ? Fe.create(wt(t.unwrap())) : t instanceof ot ? ot.create(wt(t.unwrap())) : t instanceof Ue ? Ue.create(t.items.map((e) => wt(e))) : t;
}
-class U extends $ {
+class G extends O {
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 = O.objectKeys(e);
+ const e = this._def.shape(), r = D.objectKeys(e);
return this._cached = { shape: e, keys: r };
}
_parse(e) {
@@ -6258,22 +6415,22 @@ class U extends $ {
code: g.invalid_type,
expected: w.object,
received: u.parsedType
- }), I;
+ }), R;
}
- 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"))
+ const { status: n, ctx: o } = this._processInputParams(e), { shape: s, keys: i } = this._getCached(), c = [];
+ if (!(this._def.catchall instanceof We && 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];
+ const d = s[u], f = o.data[u];
l.push({
key: { status: "valid", value: u },
- value: d._parse(new Re(o, f, o.path, u)),
+ value: d._parse(new De(o, f, o.path, u)),
alwaysSet: u in o.data
});
}
- if (this._def.catchall instanceof je) {
+ if (this._def.catchall instanceof We) {
const u = this._def.unknownKeys;
if (u === "passthrough")
for (const d of c)
@@ -6286,8 +6443,7 @@ class U extends $ {
code: g.unrecognized_keys,
keys: c
}), n.dirty());
- else if (u !== "strip")
- throw new Error("Internal ZodObject error: invalid unknownKeys value.");
+ else if (u !== "strip") throw new Error("Internal ZodObject error: invalid unknownKeys value.");
} else {
const u = this._def.catchall;
for (const d of c) {
@@ -6295,7 +6451,7 @@ class U extends $ {
l.push({
key: { status: "valid", value: d },
value: u._parse(
- new Re(o, f, o.path, d)
+ new De(o, f, o.path, d)
//, ctx.child(key), value, getParsedType(value)
),
alwaysSet: d in o.data
@@ -6313,21 +6469,21 @@ class U extends $ {
});
}
return u;
- }).then((u) => Q.mergeObjectSync(n, u)) : Q.mergeObjectSync(n, l);
+ }).then((u) => se.mergeObjectSync(n, u)) : se.mergeObjectSync(n, l);
}
get shape() {
return this._def.shape();
}
strict(e) {
- return E.errToObj, new U({
+ return k.errToObj, new G({
...this._def,
unknownKeys: "strict",
...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;
+ var o, s, i, c;
+ const l = (i = (s = (o = this._def).errorMap) === null || s === void 0 ? void 0 : s.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 : l
+ message: (c = k.errToObj(e).message) !== null && c !== void 0 ? c : l
} : {
message: l
};
@@ -6336,13 +6492,13 @@ class U extends $ {
});
}
strip() {
- return new U({
+ return new G({
...this._def,
unknownKeys: "strip"
});
}
passthrough() {
- return new U({
+ return new G({
...this._def,
unknownKeys: "passthrough"
});
@@ -6365,7 +6521,7 @@ class U extends $ {
// }) as any;
// };
extend(e) {
- return new U({
+ return new G({
...this._def,
shape: () => ({
...this._def.shape(),
@@ -6379,14 +6535,14 @@ class U extends $ {
* upgrade if you are experiencing issues.
*/
merge(e) {
- return new U({
+ return new G({
unknownKeys: e._def.unknownKeys,
catchall: e._def.catchall,
shape: () => ({
...this._def.shape(),
...e._def.shape()
}),
- typeName: A.ZodObject
+ typeName: C.ZodObject
});
}
// merge<
@@ -6449,25 +6605,25 @@ class U extends $ {
// return merged;
// }
catchall(e) {
- return new U({
+ return new G({
...this._def,
catchall: e
});
}
pick(e) {
const r = {};
- return O.objectKeys(e).forEach((n) => {
+ return D.objectKeys(e).forEach((n) => {
e[n] && this.shape[n] && (r[n] = this.shape[n]);
- }), new U({
+ }), new G({
...this._def,
shape: () => r
});
}
omit(e) {
const r = {};
- return O.objectKeys(this.shape).forEach((n) => {
+ return D.objectKeys(this.shape).forEach((n) => {
e[n] || (r[n] = this.shape[n]);
- }), new U({
+ }), new G({
...this._def,
shape: () => r
});
@@ -6476,77 +6632,77 @@ class U extends $ {
* @deprecated
*/
deepPartial() {
- return _t(this);
+ return wt(this);
}
partial(e) {
const r = {};
- return O.objectKeys(this.shape).forEach((n) => {
+ return D.objectKeys(this.shape).forEach((n) => {
const o = this.shape[n];
e && !e[n] ? r[n] = o : r[n] = o.optional();
- }), new U({
+ }), new G({
...this._def,
shape: () => r
});
}
required(e) {
const r = {};
- return O.objectKeys(this.shape).forEach((n) => {
+ return D.objectKeys(this.shape).forEach((n) => {
if (e && !e[n])
r[n] = this.shape[n];
else {
- let a = this.shape[n];
- for (; a instanceof Ne; )
- a = a._def.innerType;
- r[n] = a;
+ let s = this.shape[n];
+ for (; s instanceof Fe; )
+ s = s._def.innerType;
+ r[n] = s;
}
- }), new U({
+ }), new G({
...this._def,
shape: () => r
});
}
keyof() {
- return Ls(O.objectKeys(this.shape));
+ return Ls(D.objectKeys(this.shape));
}
}
-U.create = (t, e) => new U({
+G.create = (t, e) => new G({
shape: () => t,
unknownKeys: "strip",
- catchall: je.create(),
- typeName: A.ZodObject,
- ...C(e)
+ catchall: We.create(),
+ typeName: C.ZodObject,
+ ...N(e)
});
-U.strictCreate = (t, e) => new U({
+G.strictCreate = (t, e) => new G({
shape: () => t,
unknownKeys: "strict",
- catchall: je.create(),
- typeName: A.ZodObject,
- ...C(e)
+ catchall: We.create(),
+ typeName: C.ZodObject,
+ ...N(e)
});
-U.lazycreate = (t, e) => new U({
+G.lazycreate = (t, e) => new G({
shape: t,
unknownKeys: "strip",
- catchall: je.create(),
- typeName: A.ZodObject,
- ...C(e)
+ catchall: We.create(),
+ typeName: C.ZodObject,
+ ...N(e)
});
-class Ht extends $ {
+class Kt extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e), n = this._def.options;
- function o(a) {
- for (const c of a)
+ function o(s) {
+ for (const c of s)
if (c.result.status === "valid")
return c.result;
- for (const c of a)
+ for (const c of s)
if (c.result.status === "dirty")
return r.common.issues.push(...c.ctx.common.issues), c.result;
- const i = a.map((c) => new fe(c.ctx.common.issues));
+ const i = s.map((c) => new _e(c.ctx.common.issues));
return b(r, {
code: g.invalid_union,
unionErrors: i
- }), I;
+ }), R;
}
if (r.common.async)
- return Promise.all(n.map(async (a) => {
+ return Promise.all(n.map(async (s) => {
const i = {
...r,
common: {
@@ -6556,7 +6712,7 @@ class Ht extends $ {
parent: null
};
return {
- result: await a._parseAsync({
+ result: await s._parseAsync({
data: r.data,
path: r.path,
parent: i
@@ -6565,7 +6721,7 @@ class Ht extends $ {
};
})).then(o);
{
- let a;
+ let s;
const i = [];
for (const l of n) {
const u = {
@@ -6582,28 +6738,28 @@ class Ht extends $ {
});
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" && !s && (s = { 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((l) => new fe(l));
+ if (s)
+ return r.common.issues.push(...s.ctx.common.issues), s.result;
+ const c = i.map((l) => new _e(l));
return b(r, {
code: g.invalid_union,
unionErrors: c
- }), I;
+ }), R;
}
}
get options() {
return this._def.options;
}
}
-Ht.create = (t, e) => new Ht({
+Kt.create = (t, e) => new Kt({
options: t,
- typeName: A.ZodUnion,
- ...C(e)
+ typeName: C.ZodUnion,
+ ...N(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) : [];
-class Zr extends $ {
+const Be = (t) => t instanceof Xt ? Be(t.schema) : t instanceof Ne ? Be(t.innerType()) : t instanceof Qt ? [t.value] : t instanceof nt ? t.options : t instanceof er ? D.objectValues(t.enum) : t instanceof tr ? Be(t._def.innerType) : t instanceof Wt ? [void 0] : t instanceof qt ? [null] : t instanceof Fe ? [void 0, ...Be(t.unwrap())] : t instanceof ot ? [null, ...Be(t.unwrap())] : t instanceof Dn || t instanceof nr ? Be(t.unwrap()) : t instanceof rr ? Be(t._def.innerType) : [];
+class qr extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e);
if (r.parsedType !== w.object)
@@ -6611,13 +6767,13 @@ class Zr extends $ {
code: g.invalid_type,
expected: w.object,
received: r.parsedType
- }), I;
- const n = this.discriminator, o = r.data[n], a = this.optionsMap.get(o);
- return a ? r.common.async ? a._parseAsync({
+ }), R;
+ const n = this.discriminator, o = r.data[n], s = this.optionsMap.get(o);
+ return s ? r.common.async ? s._parseAsync({
data: r.data,
path: r.path,
parent: r
- }) : a._parseSync({
+ }) : s._parseSync({
data: r.data,
path: r.path,
parent: r
@@ -6625,7 +6781,7 @@ class Zr extends $ {
code: g.invalid_union_discriminator,
options: Array.from(this.optionsMap.keys()),
path: [n]
- }), I);
+ }), R);
}
get discriminator() {
return this._def.discriminator;
@@ -6646,33 +6802,33 @@ class Zr extends $ {
*/
static create(e, r, n) {
const o = /* @__PURE__ */ new Map();
- for (const a of r) {
- const i = Fe(a.shape[e]);
+ for (const s of r) {
+ const i = Be(s.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 (o.has(c))
throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(c)}`);
- o.set(c, a);
+ o.set(c, s);
}
}
- return new Zr({
- typeName: A.ZodDiscriminatedUnion,
+ return new qr({
+ typeName: C.ZodDiscriminatedUnion,
discriminator: e,
options: r,
optionsMap: o,
- ...C(n)
+ ...N(n)
});
}
}
-function mn(t, e) {
- const r = Ve(t), n = Ve(e);
+function gn(t, e) {
+ const r = Je(t), n = Je(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 = mn(t[c], e[c]);
+ const o = D.objectKeys(e), s = D.objectKeys(t).filter((c) => o.indexOf(c) !== -1), i = { ...t, ...e };
+ for (const c of s) {
+ const l = gn(t[c], e[c]);
if (!l.valid)
return { valid: !1 };
i[c] = l.data;
@@ -6682,25 +6838,24 @@ function mn(t, e) {
if (t.length !== e.length)
return { valid: !1 };
const o = [];
- for (let a = 0; a < t.length; a++) {
- const i = t[a], c = e[a], l = mn(i, c);
+ for (let s = 0; s < t.length; s++) {
+ const i = t[s], c = e[s], l = gn(i, c);
if (!l.valid)
return { valid: !1 };
o.push(l.data);
}
return { valid: !0, data: o };
- } else
- return r === w.date && n === w.date && +t == +e ? { valid: !0, data: t } : { valid: !1 };
+ } else return r === w.date && n === w.date && +t == +e ? { valid: !0, data: t } : { valid: !1 };
}
-class Vt extends $ {
+class Yt extends O {
_parse(e) {
- 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 { status: r, ctx: n } = this._processInputParams(e), o = (s, i) => {
+ if (hn(s) || hn(i))
+ return R;
+ const c = gn(s.value, i.value);
+ return c.valid ? ((mn(s) || mn(i)) && r.dirty(), { status: r.value, value: c.data }) : (b(n, {
code: g.invalid_intersection_types
- }), I);
+ }), R);
};
return n.common.async ? Promise.all([
this._def.left._parseAsync({
@@ -6713,7 +6868,7 @@ class Vt extends $ {
path: n.path,
parent: n
})
- ]).then(([a, i]) => o(a, i)) : o(this._def.left._parseSync({
+ ]).then(([s, i]) => o(s, i)) : o(this._def.left._parseSync({
data: n.data,
path: n.path,
parent: n
@@ -6724,13 +6879,13 @@ class Vt extends $ {
}));
}
}
-Vt.create = (t, e, r) => new Vt({
+Yt.create = (t, e, r) => new Yt({
left: t,
right: e,
- typeName: A.ZodIntersection,
- ...C(r)
+ typeName: C.ZodIntersection,
+ ...N(r)
});
-class Oe extends $ {
+class Ue extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.parsedType !== w.array)
@@ -6738,7 +6893,7 @@ class Oe extends $ {
code: g.invalid_type,
expected: w.array,
received: n.parsedType
- }), I;
+ }), R;
if (n.data.length < this._def.items.length)
return b(n, {
code: g.too_small,
@@ -6746,7 +6901,7 @@ class Oe extends $ {
inclusive: !0,
exact: !1,
type: "array"
- }), I;
+ }), R;
!this._def.rest && n.data.length > this._def.items.length && (b(n, {
code: g.too_big,
maximum: this._def.items.length,
@@ -6754,33 +6909,33 @@ class Oe extends $ {
exact: !1,
type: "array"
}), r.dirty());
- const a = [...n.data].map((i, c) => {
+ const s = [...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;
+ return l ? l._parse(new De(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);
+ return n.common.async ? Promise.all(s).then((i) => se.mergeArray(r, i)) : se.mergeArray(r, s);
}
get items() {
return this._def.items;
}
rest(e) {
- return new Oe({
+ return new Ue({
...this._def,
rest: e
});
}
}
-Oe.create = (t, e) => {
+Ue.create = (t, e) => {
if (!Array.isArray(t))
throw new Error("You must pass an array of schemas to z.tuple([ ... ])");
- return new Oe({
+ return new Ue({
items: t,
- typeName: A.ZodTuple,
+ typeName: C.ZodTuple,
rest: null,
- ...C(e)
+ ...N(e)
});
};
-class Wt extends $ {
+class Jt extends O {
get keySchema() {
return this._def.keyType;
}
@@ -6794,34 +6949,34 @@ class Wt extends $ {
code: g.invalid_type,
expected: w.object,
received: n.parsedType
- }), I;
- const o = [], a = this._def.keyType, i = this._def.valueType;
+ }), R;
+ const o = [], s = this._def.keyType, i = this._def.valueType;
for (const c in n.data)
o.push({
- key: a._parse(new Re(n, c, n.path, c)),
- value: i._parse(new Re(n, n.data[c], n.path, c)),
+ key: s._parse(new De(n, c, n.path, c)),
+ value: i._parse(new De(n, n.data[c], n.path, c)),
alwaysSet: c in n.data
});
- return n.common.async ? Q.mergeObjectAsync(r, o) : Q.mergeObjectSync(r, o);
+ return n.common.async ? se.mergeObjectAsync(r, o) : se.mergeObjectSync(r, o);
}
get element() {
return this._def.valueType;
}
static create(e, r, n) {
- return r instanceof $ ? new Wt({
+ return r instanceof O ? new Jt({
keyType: e,
valueType: r,
- typeName: A.ZodRecord,
- ...C(n)
- }) : new Wt({
- keyType: ke.create(),
+ typeName: C.ZodRecord,
+ ...N(n)
+ }) : new Jt({
+ keyType: Ce.create(),
valueType: e,
- typeName: A.ZodRecord,
- ...C(r)
+ typeName: C.ZodRecord,
+ ...N(r)
});
}
}
-class Ar extends $ {
+class Or extends O {
get keySchema() {
return this._def.keyType;
}
@@ -6835,10 +6990,10 @@ class Ar extends $ {
code: g.invalid_type,
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"]))
+ }), R;
+ const o = this._def.keyType, s = this._def.valueType, i = [...n.data.entries()].map(([c, l], u) => ({
+ key: o._parse(new De(n, c, n.path, [u, "key"])),
+ value: s._parse(new De(n, l, n.path, [u, "value"]))
}));
if (n.common.async) {
const c = /* @__PURE__ */ new Map();
@@ -6846,7 +7001,7 @@ class Ar extends $ {
for (const l of i) {
const u = await l.key, d = await l.value;
if (u.status === "aborted" || d.status === "aborted")
- return I;
+ return R;
(u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value);
}
return { status: r.value, value: c };
@@ -6856,20 +7011,20 @@ class Ar extends $ {
for (const l of i) {
const u = l.key, d = l.value;
if (u.status === "aborted" || d.status === "aborted")
- return I;
+ return R;
(u.status === "dirty" || d.status === "dirty") && r.dirty(), c.set(u.value, d.value);
}
return { status: r.value, value: c };
}
}
}
-Ar.create = (t, e, r) => new Ar({
+Or.create = (t, e, r) => new Or({
valueType: e,
keyType: t,
- typeName: A.ZodMap,
- ...C(r)
+ typeName: C.ZodMap,
+ ...N(r)
});
-class ht extends $ {
+class gt extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.parsedType !== w.set)
@@ -6877,7 +7032,7 @@ class ht extends $ {
code: g.invalid_type,
expected: w.set,
received: n.parsedType
- }), I;
+ }), R;
const o = this._def;
o.minSize !== null && n.data.size < o.minSize.value && (b(n, {
code: g.too_small,
@@ -6894,29 +7049,29 @@ class ht extends $ {
exact: !1,
message: o.maxSize.message
}), r.dirty());
- const a = this._def.valueType;
+ const s = this._def.valueType;
function i(l) {
const u = /* @__PURE__ */ new Set();
for (const d of l) {
if (d.status === "aborted")
- return I;
+ return R;
d.status === "dirty" && r.dirty(), u.add(d.value);
}
return { status: r.value, value: u };
}
- const c = [...n.data.values()].map((l, u) => a._parse(new Re(n, l, n.path, u)));
+ const c = [...n.data.values()].map((l, u) => s._parse(new De(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 gt({
...this._def,
- minSize: { value: e, message: E.toString(r) }
+ minSize: { value: e, message: k.toString(r) }
});
}
max(e, r) {
- return new ht({
+ return new gt({
...this._def,
- maxSize: { value: e, message: E.toString(r) }
+ maxSize: { value: e, message: k.toString(r) }
});
}
size(e, r) {
@@ -6926,14 +7081,14 @@ class ht extends $ {
return this.min(1, e);
}
}
-ht.create = (t, e) => new ht({
+gt.create = (t, e) => new gt({
valueType: t,
minSize: null,
maxSize: null,
- typeName: A.ZodSet,
- ...C(e)
+ typeName: C.ZodSet,
+ ...N(e)
});
-class xt extends $ {
+class Tt extends O {
constructor() {
super(...arguments), this.validate = this.implement;
}
@@ -6944,16 +7099,16 @@ class xt extends $ {
code: g.invalid_type,
expected: w.function,
received: r.parsedType
- }), I;
+ }), R;
function n(c, l) {
- return xr({
+ return Cr({
data: c,
path: r.path,
errorMaps: [
r.common.contextualErrorMap,
r.schemaErrorMap,
- Er(),
- Tt
+ Ir(),
+ Rt
].filter((u) => !!u),
issueData: {
code: g.invalid_arguments,
@@ -6962,14 +7117,14 @@ class xt extends $ {
});
}
function o(c, l) {
- return xr({
+ return Cr({
data: c,
path: r.path,
errorMaps: [
r.common.contextualErrorMap,
r.schemaErrorMap,
- Er(),
- Tt
+ Ir(),
+ Rt
].filter((u) => !!u),
issueData: {
code: g.invalid_return_type,
@@ -6977,26 +7132,26 @@ class xt extends $ {
}
});
}
- const a = { errorMap: r.common.contextualErrorMap }, i = r.data;
- if (this._def.returns instanceof It) {
+ const s = { errorMap: r.common.contextualErrorMap }, i = r.data;
+ if (this._def.returns instanceof Nt) {
const c = this;
- return ae(async function(...l) {
- const u = new fe([]), d = await c._def.args.parseAsync(l, a).catch((p) => {
+ return pe(async function(...l) {
+ const u = new _e([]), d = await c._def.args.parseAsync(l, s).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) => {
+ return await c._def.returns._def.type.parseAsync(f, s).catch((p) => {
throw u.addIssue(o(f, p)), u;
});
});
} else {
const c = this;
- return ae(function(...l) {
- const u = c._def.args.safeParse(l, a);
+ return pe(function(...l) {
+ const u = c._def.args.safeParse(l, s);
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);
+ throw new _e([n(l, u.error)]);
+ const d = Reflect.apply(i, this, u.data), f = c._def.returns.safeParse(d, s);
if (!f.success)
- throw new fe([o(d, f.error)]);
+ throw new _e([o(d, f.error)]);
return f.data;
});
}
@@ -7008,13 +7163,13 @@ class xt extends $ {
return this._def.returns;
}
args(...e) {
- return new xt({
+ return new Tt({
...this._def,
- args: Oe.create(e).rest(dt.create())
+ args: Ue.create(e).rest(pt.create())
});
}
returns(e) {
- return new xt({
+ return new Tt({
...this._def,
returns: e
});
@@ -7026,15 +7181,15 @@ class xt extends $ {
return this.parse(e);
}
static create(e, r, n) {
- return new xt({
- args: e || Oe.create([]).rest(dt.create()),
- returns: r || dt.create(),
- typeName: A.ZodFunction,
- ...C(n)
+ return new Tt({
+ args: e || Ue.create([]).rest(pt.create()),
+ returns: r || pt.create(),
+ typeName: C.ZodFunction,
+ ...N(n)
});
}
}
-class qt extends $ {
+class Xt extends O {
get schema() {
return this._def.getter();
}
@@ -7043,12 +7198,12 @@ class qt extends $ {
return this._def.getter()._parse({ data: r.data, path: r.path, parent: r });
}
}
-qt.create = (t, e) => new qt({
+Xt.create = (t, e) => new Xt({
getter: t,
- typeName: A.ZodLazy,
- ...C(e)
+ typeName: C.ZodLazy,
+ ...N(e)
});
-class Kt extends $ {
+class Qt extends O {
_parse(e) {
if (e.data !== this._def.value) {
const r = this._getOrReturnCtx(e);
@@ -7056,7 +7211,7 @@ class Kt extends $ {
received: r.data,
code: g.invalid_literal,
expected: this._def.value
- }), I;
+ }), R;
}
return { status: "valid", value: e.data };
}
@@ -7064,40 +7219,40 @@ 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)
+ typeName: C.ZodLiteral,
+ ...N(e)
});
function Ls(t, e) {
- return new et({
+ return new nt({
values: t,
- typeName: A.ZodEnum,
- ...C(e)
+ typeName: C.ZodEnum,
+ ...N(e)
});
}
-class et extends $ {
+class nt extends O {
constructor() {
- super(...arguments), Lt.set(this, void 0);
+ super(...arguments), Zt.set(this, void 0);
}
_parse(e) {
if (typeof e.data != "string") {
const r = this._getOrReturnCtx(e), n = this._def.values;
return b(r, {
- expected: O.joinValues(n),
+ expected: D.joinValues(n),
received: r.parsedType,
code: g.invalid_type
- }), I;
+ }), R;
}
- if (kr(this, Lt) || Ns(this, Lt, new Set(this._def.values)), !kr(this, Lt).has(e.data)) {
+ if (Rr(this, Zt) || $s(this, Zt, new Set(this._def.values)), !Rr(this, Zt).has(e.data)) {
const r = this._getOrReturnCtx(e), n = this._def.values;
return b(r, {
received: r.data,
code: g.invalid_enum_value,
options: n
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
get options() {
return this._def.values;
@@ -7121,55 +7276,55 @@ class et extends $ {
return e;
}
extract(e, r = this._def) {
- return et.create(e, {
+ return nt.create(e, {
...this._def,
...r
});
}
exclude(e, r = this._def) {
- return et.create(this.options.filter((n) => !e.includes(n)), {
+ return nt.create(this.options.filter((n) => !e.includes(n)), {
...this._def,
...r
});
}
}
-Lt = /* @__PURE__ */ new WeakMap();
-et.create = Ls;
-class Yt extends $ {
+Zt = /* @__PURE__ */ new WeakMap();
+nt.create = Ls;
+class er extends O {
constructor() {
- super(...arguments), Ft.set(this, void 0);
+ super(...arguments), zt.set(this, void 0);
}
_parse(e) {
- const r = O.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e);
+ const r = D.getValidEnumValues(this._def.values), n = this._getOrReturnCtx(e);
if (n.parsedType !== w.string && n.parsedType !== w.number) {
- const o = O.objectValues(r);
+ const o = D.objectValues(r);
return b(n, {
- expected: O.joinValues(o),
+ expected: D.joinValues(o),
received: n.parsedType,
code: g.invalid_type
- }), I;
+ }), R;
}
- 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);
+ if (Rr(this, zt) || $s(this, zt, new Set(D.getValidEnumValues(this._def.values))), !Rr(this, zt).has(e.data)) {
+ const o = D.objectValues(r);
return b(n, {
received: n.data,
code: g.invalid_enum_value,
options: o
- }), I;
+ }), R;
}
- return ae(e.data);
+ return pe(e.data);
}
get enum() {
return this._def.values;
}
}
-Ft = /* @__PURE__ */ new WeakMap();
-Yt.create = (t, e) => new Yt({
+zt = /* @__PURE__ */ new WeakMap();
+er.create = (t, e) => new er({
values: t,
- typeName: A.ZodNativeEnum,
- ...C(e)
+ typeName: C.ZodNativeEnum,
+ ...N(e)
});
-class It extends $ {
+class Nt extends O {
unwrap() {
return this._def.type;
}
@@ -7180,28 +7335,28 @@ class It extends $ {
code: g.invalid_type,
expected: w.promise,
received: r.parsedType
- }), I;
+ }), R;
const n = r.parsedType === w.promise ? r.data : Promise.resolve(r.data);
- return ae(n.then((o) => this._def.type.parseAsync(o, {
+ return pe(n.then((o) => this._def.type.parseAsync(o, {
path: r.path,
errorMap: r.common.contextualErrorMap
})));
}
}
-It.create = (t, e) => new It({
+Nt.create = (t, e) => new Nt({
type: t,
- typeName: A.ZodPromise,
- ...C(e)
+ typeName: C.ZodPromise,
+ ...N(e)
});
-class Ae extends $ {
+class Ne extends O {
innerType() {
return this._def.schema;
}
sourceType() {
- return this._def.schema._def.typeName === A.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
+ return this._def.schema._def.typeName === C.ZodEffects ? this._def.schema.sourceType() : this._def.schema;
}
_parse(e) {
- const { status: r, ctx: n } = this._processInputParams(e), o = this._def.effect || null, a = {
+ const { status: r, ctx: n } = this._processInputParams(e), o = this._def.effect || null, s = {
addIssue: (i) => {
b(n, i), i.fatal ? r.abort() : r.dirty();
},
@@ -7209,33 +7364,33 @@ class Ae extends $ {
return n.path;
}
};
- if (a.addIssue = a.addIssue.bind(a), o.type === "preprocess") {
- const i = o.transform(n.data, a);
+ if (s.addIssue = s.addIssue.bind(s), o.type === "preprocess") {
+ const i = o.transform(n.data, s);
if (n.common.async)
return Promise.resolve(i).then(async (c) => {
if (r.value === "aborted")
- return I;
+ return R;
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" ? wt(l.value) : l;
+ return l.status === "aborted" ? R : l.status === "dirty" || r.value === "dirty" ? xt(l.value) : l;
});
{
if (r.value === "aborted")
- return I;
+ return R;
const c = this._def.schema._parseSync({
data: i,
path: n.path,
parent: n
});
- return c.status === "aborted" ? I : c.status === "dirty" || r.value === "dirty" ? wt(c.value) : c;
+ return c.status === "aborted" ? R : c.status === "dirty" || r.value === "dirty" ? xt(c.value) : c;
}
}
if (o.type === "refinement") {
const i = (c) => {
- const l = o.refinement(c, a);
+ const l = o.refinement(c, s);
if (n.common.async)
return Promise.resolve(l);
if (l instanceof Promise)
@@ -7248,9 +7403,9 @@ class Ae extends $ {
path: n.path,
parent: n
});
- return c.status === "aborted" ? I : (c.status === "dirty" && r.dirty(), i(c.value), { status: r.value, value: c.value });
+ return c.status === "aborted" ? R : (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" ? I : (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" ? R : (c.status === "dirty" && r.dirty(), i(c.value).then(() => ({ status: r.value, value: c.value }))));
}
if (o.type === "transform")
if (n.common.async === !1) {
@@ -7259,56 +7414,56 @@ class Ae extends $ {
path: n.path,
parent: n
});
- if (!jt(i))
+ if (!Gt(i))
return i;
- const c = o.transform(i.value, a);
+ const c = o.transform(i.value, s);
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);
- O.assertNever(o);
+ return this._def.schema._parseAsync({ data: n.data, path: n.path, parent: n }).then((i) => Gt(i) ? Promise.resolve(o.transform(i.value, s)).then((c) => ({ status: r.value, value: c })) : i);
+ D.assertNever(o);
}
}
-Ae.create = (t, e, r) => new Ae({
+Ne.create = (t, e, r) => new Ne({
schema: t,
- typeName: A.ZodEffects,
+ typeName: C.ZodEffects,
effect: e,
- ...C(r)
+ ...N(r)
});
-Ae.createWithPreprocess = (t, e, r) => new Ae({
+Ne.createWithPreprocess = (t, e, r) => new Ne({
schema: e,
effect: { type: "preprocess", transform: t },
- typeName: A.ZodEffects,
- ...C(r)
+ typeName: C.ZodEffects,
+ ...N(r)
});
-class Ne extends $ {
+class Fe extends O {
_parse(e) {
- return this._getType(e) === w.undefined ? ae(void 0) : this._def.innerType._parse(e);
+ return this._getType(e) === w.undefined ? pe(void 0) : this._def.innerType._parse(e);
}
unwrap() {
return this._def.innerType;
}
}
-Ne.create = (t, e) => new Ne({
+Fe.create = (t, e) => new Fe({
innerType: t,
- typeName: A.ZodOptional,
- ...C(e)
+ typeName: C.ZodOptional,
+ ...N(e)
});
-class tt extends $ {
+class ot extends O {
_parse(e) {
- return this._getType(e) === w.null ? ae(null) : this._def.innerType._parse(e);
+ return this._getType(e) === w.null ? pe(null) : this._def.innerType._parse(e);
}
unwrap() {
return this._def.innerType;
}
}
-tt.create = (t, e) => new tt({
+ot.create = (t, e) => new ot({
innerType: t,
- typeName: A.ZodNullable,
- ...C(e)
+ typeName: C.ZodNullable,
+ ...N(e)
});
-class Jt extends $ {
+class tr extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e);
let n = r.data;
@@ -7322,13 +7477,13 @@ class Jt extends $ {
return this._def.innerType;
}
}
-Jt.create = (t, e) => new Jt({
+tr.create = (t, e) => new tr({
innerType: t,
- typeName: A.ZodDefault,
+ typeName: C.ZodDefault,
defaultValue: typeof e.default == "function" ? e.default : () => e.default,
- ...C(e)
+ ...N(e)
});
-class Xt extends $ {
+class rr extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e), n = {
...r,
@@ -7343,11 +7498,11 @@ class Xt extends $ {
...n
}
});
- return Zt(o) ? o.then((a) => ({
+ return Vt(o) ? o.then((s) => ({
status: "valid",
- value: a.status === "valid" ? a.value : this._def.catchValue({
+ value: s.status === "valid" ? s.value : this._def.catchValue({
get error() {
- return new fe(n.common.issues);
+ return new _e(n.common.issues);
},
input: n.data
})
@@ -7355,7 +7510,7 @@ class Xt extends $ {
status: "valid",
value: o.status === "valid" ? o.value : this._def.catchValue({
get error() {
- return new fe(n.common.issues);
+ return new _e(n.common.issues);
},
input: n.data
})
@@ -7365,13 +7520,13 @@ class Xt extends $ {
return this._def.innerType;
}
}
-Xt.create = (t, e) => new Xt({
+rr.create = (t, e) => new rr({
innerType: t,
- typeName: A.ZodCatch,
+ typeName: C.ZodCatch,
catchValue: typeof e.catch == "function" ? e.catch : () => e.catch,
- ...C(e)
+ ...N(e)
});
-class Ir extends $ {
+class Mr extends O {
_parse(e) {
if (this._getType(e) !== w.nan) {
const n = this._getOrReturnCtx(e);
@@ -7379,17 +7534,17 @@ class Ir extends $ {
code: g.invalid_type,
expected: w.nan,
received: n.parsedType
- }), I;
+ }), R;
}
return { status: "valid", value: e.data };
}
}
-Ir.create = (t) => new Ir({
- typeName: A.ZodNaN,
- ...C(t)
+Mr.create = (t) => new Mr({
+ typeName: C.ZodNaN,
+ ...N(t)
});
-const Gc = Symbol("zod_brand");
-class Zn extends $ {
+const Bc = Symbol("zod_brand");
+class Dn extends O {
_parse(e) {
const { ctx: r } = this._processInputParams(e), n = r.data;
return this._def.type._parse({
@@ -7402,18 +7557,18 @@ class Zn extends $ {
return this._def.type;
}
}
-class sr extends $ {
+class lr extends O {
_parse(e) {
const { status: r, ctx: n } = this._processInputParams(e);
if (n.common.async)
return (async () => {
- const a = await this._def.in._parseAsync({
+ const s = await this._def.in._parseAsync({
data: n.data,
path: n.path,
parent: n
});
- return a.status === "aborted" ? I : a.status === "dirty" ? (r.dirty(), wt(a.value)) : this._def.out._parseAsync({
- data: a.value,
+ return s.status === "aborted" ? R : s.status === "dirty" ? (r.dirty(), xt(s.value)) : this._def.out._parseAsync({
+ data: s.value,
path: n.path,
parent: n
});
@@ -7424,7 +7579,7 @@ class sr extends $ {
path: n.path,
parent: n
});
- return o.status === "aborted" ? I : o.status === "dirty" ? (r.dirty(), {
+ return o.status === "aborted" ? R : o.status === "dirty" ? (r.dirty(), {
status: "dirty",
value: o.value
}) : this._def.out._parseSync({
@@ -7435,125 +7590,125 @@ class sr extends $ {
}
}
static create(e, r) {
- return new sr({
+ return new lr({
in: e,
out: r,
- typeName: A.ZodPipeline
+ typeName: C.ZodPipeline
});
}
}
-class Qt extends $ {
+class nr extends O {
_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) => (Gt(o) && (o.value = Object.freeze(o.value)), o);
+ return Vt(r) ? r.then((o) => n(o)) : n(r);
}
unwrap() {
return this._def.innerType;
}
}
-Qt.create = (t, e) => new Qt({
+nr.create = (t, e) => new nr({
innerType: t,
- typeName: A.ZodReadonly,
- ...C(e)
+ typeName: C.ZodReadonly,
+ ...N(e)
});
function Fs(t, e = {}, r) {
- return t ? At.create().superRefine((n, o) => {
- var a, i;
+ return t ? $t.create().superRefine((n, o) => {
+ var s, 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;
+ const c = typeof e == "function" ? e(n) : typeof e == "string" ? { message: e } : e, l = (i = (s = c.fatal) !== null && s !== void 0 ? s : r) !== null && i !== void 0 ? i : !0, u = typeof c == "string" ? { message: c } : c;
o.addIssue({ code: "custom", ...u, fatal: l });
}
- }) : At.create();
+ }) : $t.create();
}
-const Bc = {
- object: U.lazycreate
+const Gc = {
+ object: G.lazycreate
};
-var A;
+var C;
(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 Hc = (t, e = {
+})(C || (C = {}));
+const Vc = (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 = 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 = ht.create, fl = xt.create, pl = qt.create, hl = Kt.create, ml = 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({
+}) => Fs((r) => r instanceof t, e), Ds = Ce.create, Us = tt.create, Hc = Mr.create, Wc = rt.create, js = Ht.create, qc = mt.create, Kc = $r.create, Yc = Wt.create, Jc = qt.create, Xc = $t.create, Qc = pt.create, el = We.create, tl = Nr.create, rl = $e.create, nl = G.create, ol = G.strictCreate, sl = Kt.create, al = qr.create, il = Yt.create, cl = Ue.create, ll = Jt.create, ul = Or.create, dl = gt.create, fl = Tt.create, pl = Xt.create, hl = Qt.create, ml = nt.create, gl = er.create, yl = Nt.create, yo = Ne.create, vl = Fe.create, _l = ot.create, bl = Ne.createWithPreprocess, wl = lr.create, xl = () => Ds().optional(), Sl = () => Us().optional(), El = () => js().optional(), kl = {
+ string: (t) => Ce.create({ ...t, coerce: !0 }),
+ number: (t) => tt.create({ ...t, coerce: !0 }),
+ boolean: (t) => Ht.create({
...t,
coerce: !0
}),
- bigint: (t) => Qe.create({ ...t, coerce: !0 }),
- date: (t) => pt.create({ ...t, coerce: !0 })
-}, Pl = I;
-var W = /* @__PURE__ */ Object.freeze({
+ bigint: (t) => rt.create({ ...t, coerce: !0 }),
+ date: (t) => mt.create({ ...t, coerce: !0 })
+}, Pl = R;
+var K = /* @__PURE__ */ Object.freeze({
__proto__: null,
- defaultErrorMap: Tt,
+ defaultErrorMap: Rt,
setErrorMap: Pc,
- getErrorMap: Er,
- makeIssue: xr,
+ getErrorMap: Ir,
+ makeIssue: Cr,
EMPTY_PATH: Tc,
addIssueToContext: b,
- ParseStatus: Q,
- INVALID: I,
- DIRTY: wt,
- OK: ae,
- isAborted: pn,
- isDirty: hn,
- isValid: jt,
- isAsync: Zt,
+ ParseStatus: se,
+ INVALID: R,
+ DIRTY: xt,
+ OK: pe,
+ isAborted: hn,
+ isDirty: mn,
+ isValid: Gt,
+ isAsync: Vt,
get util() {
- return O;
+ return D;
},
get objectUtil() {
- return fn;
+ return pn;
},
ZodParsedType: w,
- getParsedType: Ve,
- ZodType: $,
+ getParsedType: Je,
+ ZodType: O,
datetimeRegex: Ms,
- ZodString: ke,
- ZodNumber: Xe,
- ZodBigInt: Qe,
- ZodBoolean: zt,
- ZodDate: pt,
- ZodSymbol: Pr,
- ZodUndefined: Gt,
- ZodNull: Bt,
- ZodAny: At,
- ZodUnknown: dt,
- ZodNever: je,
- ZodVoid: Tr,
- ZodArray: Te,
- ZodObject: U,
- ZodUnion: Ht,
- ZodDiscriminatedUnion: Zr,
- ZodIntersection: Vt,
- ZodTuple: Oe,
- ZodRecord: Wt,
- ZodMap: Ar,
- ZodSet: ht,
- ZodFunction: xt,
- ZodLazy: qt,
- ZodLiteral: Kt,
- ZodEnum: et,
- ZodNativeEnum: Yt,
- ZodPromise: It,
- ZodEffects: Ae,
- ZodTransformer: Ae,
- ZodOptional: Ne,
- ZodNullable: tt,
- ZodDefault: Jt,
- ZodCatch: Xt,
- ZodNaN: Ir,
- BRAND: Gc,
- ZodBranded: Zn,
- ZodPipeline: sr,
- ZodReadonly: Qt,
+ ZodString: Ce,
+ ZodNumber: tt,
+ ZodBigInt: rt,
+ ZodBoolean: Ht,
+ ZodDate: mt,
+ ZodSymbol: $r,
+ ZodUndefined: Wt,
+ ZodNull: qt,
+ ZodAny: $t,
+ ZodUnknown: pt,
+ ZodNever: We,
+ ZodVoid: Nr,
+ ZodArray: $e,
+ ZodObject: G,
+ ZodUnion: Kt,
+ ZodDiscriminatedUnion: qr,
+ ZodIntersection: Yt,
+ ZodTuple: Ue,
+ ZodRecord: Jt,
+ ZodMap: Or,
+ ZodSet: gt,
+ ZodFunction: Tt,
+ ZodLazy: Xt,
+ ZodLiteral: Qt,
+ ZodEnum: nt,
+ ZodNativeEnum: er,
+ ZodPromise: Nt,
+ ZodEffects: Ne,
+ ZodTransformer: Ne,
+ ZodOptional: Fe,
+ ZodNullable: ot,
+ ZodDefault: tr,
+ ZodCatch: rr,
+ ZodNaN: Mr,
+ BRAND: Bc,
+ ZodBranded: Dn,
+ ZodPipeline: lr,
+ ZodReadonly: nr,
custom: Fs,
- Schema: $,
- ZodSchema: $,
- late: Bc,
+ Schema: O,
+ ZodSchema: O,
+ late: Gc,
get ZodFirstPartyTypeKind() {
- return A;
+ return C;
},
coerce: kl,
any: Xc,
@@ -7562,25 +7717,25 @@ var W = /* @__PURE__ */ Object.freeze({
boolean: js,
date: qc,
discriminatedUnion: al,
- effect: _o,
+ effect: yo,
enum: ml,
function: fl,
- instanceof: Hc,
+ instanceof: Vc,
intersection: il,
lazy: pl,
literal: hl,
map: ul,
- nan: Vc,
+ nan: Hc,
nativeEnum: gl,
never: el,
null: Jc,
nullable: _l,
number: Us,
object: nl,
- oboolean: xl,
- onumber: El,
+ oboolean: El,
+ onumber: Sl,
optional: vl,
- ostring: Sl,
+ ostring: xl,
pipeline: wl,
preprocess: bl,
promise: yl,
@@ -7589,7 +7744,7 @@ var W = /* @__PURE__ */ Object.freeze({
strictObject: ol,
string: Ds,
symbol: Kc,
- transformer: _o,
+ transformer: yo,
tuple: cl,
undefined: Yc,
union: sl,
@@ -7598,72 +7753,144 @@ var W = /* @__PURE__ */ Object.freeze({
NEVER: Pl,
ZodIssueCode: g,
quotelessJson: kc,
- ZodError: fe
+ ZodError: _e
});
-const Tl = W.object({
- width: W.number().positive(),
- height: W.number().positive()
-});
-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 = {
- blockStart: 40,
- inlineEnd: 320
- };
- o.style.setProperty(
- "--modal-block-start",
- `${u.blockStart}px`
- ), o.style.setProperty(
- "--modal-inline-end",
- `${u.inlineEnd}px`
- );
- const d = window.innerWidth - u.inlineEnd, f = window.innerHeight - u.blockStart;
- let h = Math.min((n == null ? void 0 : n.width) || c, d), p = Math.min((n == null ? void 0 : n.height) || l, 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 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([
+const Tl = K.object({
+ pluginId: K.string(),
+ name: K.string(),
+ host: K.string().url(),
+ code: K.string(),
+ icon: K.string().optional(),
+ description: K.string().max(200).optional(),
+ permissions: K.array(
+ K.enum([
"content:read",
"content:write",
"library:read",
"library:write",
- "user:read"
+ "user:read",
+ "comment:read",
+ "comment:write",
+ "allow:downloads"
])
)
});
function Zs(t, e) {
return new URL(e, t).toString();
}
-function $l(t) {
+function Al(t) {
return fetch(t).then((e) => e.json()).then((e) => {
- if (!Cl.safeParse(e).success)
+ if (!Tl.safeParse(e).success)
throw new Error("Invalid plugin manifest");
return e;
}).catch((e) => {
throw console.error(e), e;
});
}
-function Nl(t) {
- return fetch(Zs(t.host, t.code)).then((e) => {
+function vo(t) {
+ return !t.host && !t.code.startsWith("http") ? Promise.resolve(t.code) : fetch(Zs(t.host, t.code)).then((e) => {
if (e.ok)
return e.text();
throw new Error("Failed to load plugin code");
});
}
-const Rl = [
+const Il = K.object({
+ width: K.number().positive(),
+ height: K.number().positive()
+});
+function Cl(t, e, r, n, o) {
+ const s = document.createElement("plugin-modal");
+ s.setTheme(r);
+ const i = 200, c = 200, l = 335, u = 590, d = ((n == null ? void 0 : n.width) ?? l) > window.innerWidth ? window.innerWidth - 290 : (n == null ? void 0 : n.width) ?? l, f = {
+ blockStart: 40,
+ // To be able to resize the element as expected the position must be absolute from the right.
+ // This value is the length of the window minus the width of the element plus the width of the design tab.
+ inlineStart: window.innerWidth - d - 290
+ };
+ s.style.setProperty(
+ "--modal-block-start",
+ `${f.blockStart}px`
+ ), s.style.setProperty(
+ "--modal-inline-start",
+ `${f.inlineStart}px`
+ );
+ const h = window.innerHeight - f.blockStart;
+ let p = Math.min((n == null ? void 0 : n.width) || l, d), m = Math.min((n == null ? void 0 : n.height) || u, h);
+ return p = Math.max(p, i), m = Math.max(m, c), s.setAttribute("title", t), s.setAttribute("iframe-src", e), s.setAttribute("width", String(p)), s.setAttribute("height", String(m)), o && s.setAttribute("allow-downloads", "true"), document.body.appendChild(s), s;
+}
+const Rl = K.function().args(
+ K.string(),
+ K.string(),
+ K.enum(["dark", "light"]),
+ Il.optional(),
+ K.boolean().optional()
+).implement((t, e, r, n, o) => Cl(t, e, r, n, o));
+async function $l(t, e, r, n) {
+ let o = await vo(e), s = !1, i = !1, c = null, l = [];
+ const u = /* @__PURE__ */ new Set(), d = !!e.permissions.find(
+ ($) => $ === "allow:downloads"
+ ), f = t.addListener("themechange", ($) => {
+ c == null || c.setTheme($);
+ }), h = t.addListener("finish", () => {
+ _(), t == null || t.removeListener(h);
+ });
+ let p = [];
+ const m = () => {
+ L(f), p.forEach(($) => {
+ L($);
+ }), l = [], p = [];
+ }, _ = () => {
+ m(), u.forEach(clearTimeout), u.clear(), c && (c.removeEventListener("close", _), c.remove(), c = null), i = !0, r();
+ }, S = async () => {
+ if (!s) {
+ s = !0;
+ return;
+ }
+ m(), o = await vo(e), n(o);
+ }, x = ($, j, F) => {
+ const J = t.theme, X = Zs(e.host, j);
+ (c == null ? void 0 : c.getAttribute("iframe-src")) !== X && (c = Rl($, X, J, F, d), c.setTheme(J), c.addEventListener("close", _, {
+ once: !0
+ }), c.addEventListener("load", S));
+ }, I = ($) => {
+ l.push($);
+ }, E = ($, j, F) => {
+ const J = t.addListener(
+ $,
+ (...X) => {
+ i || j(...X);
+ },
+ F
+ );
+ return p.push(J), J;
+ }, L = ($) => {
+ t.removeListener($);
+ };
+ return {
+ close: _,
+ destroyListener: L,
+ openModal: x,
+ getModal: () => c,
+ registerListener: E,
+ registerMessageCallback: I,
+ sendMessage: ($) => {
+ l.forEach((j) => j($));
+ },
+ get manifest() {
+ return e;
+ },
+ get context() {
+ return t;
+ },
+ get timeouts() {
+ return u;
+ },
+ get code() {
+ return o;
+ }
+ };
+}
+const Nl = [
"finish",
"pagechange",
"filechange",
@@ -7672,263 +7899,377 @@ const Rl = [
"shapechange",
"contentsave"
];
-let gn = [], yn = /* @__PURE__ */ new Set([]), Mt = {};
+function Ol(t) {
+ const e = (n) => {
+ if (!t.manifest.permissions.includes(n))
+ throw new Error(`Permission ${n} is not granted`);
+ };
+ return {
+ penpot: {
+ ui: {
+ open: (n, o, s) => {
+ t.openModal(n, o, s);
+ },
+ sendMessage(n) {
+ var s;
+ const o = new CustomEvent("message", {
+ detail: n
+ });
+ (s = t.getModal()) == null || s.dispatchEvent(o);
+ },
+ onMessage: (n) => {
+ K.function().parse(n), t.registerMessageCallback(n);
+ }
+ },
+ utils: {
+ geometry: {
+ center(n) {
+ return window.app.plugins.public_utils.centerShapes(n);
+ }
+ },
+ types: {
+ isBoard(n) {
+ return n.type === "board";
+ },
+ isGroup(n) {
+ return n.type === "group";
+ },
+ isMask(n) {
+ return n.type === "group" && n.isMask();
+ },
+ isBool(n) {
+ return n.type === "boolean";
+ },
+ isRectangle(n) {
+ return n.type === "rectangle";
+ },
+ isPath(n) {
+ return n.type === "path";
+ },
+ isText(n) {
+ return n.type === "text";
+ },
+ isEllipse(n) {
+ return n.type === "ellipse";
+ },
+ isSVG(n) {
+ return n.type === "svg-raw";
+ }
+ }
+ },
+ closePlugin: () => {
+ t.close();
+ },
+ on(n, o, s) {
+ return K.enum(Nl).parse(n), K.function().parse(o), e("content:read"), t.registerListener(n, o, s);
+ },
+ off(n) {
+ t.destroyListener(n);
+ },
+ // Penpot State API
+ get root() {
+ return e("content:read"), t.context.root;
+ },
+ get currentFile() {
+ return e("content:read"), t.context.currentFile;
+ },
+ get currentPage() {
+ return e("content:read"), t.context.currentPage;
+ },
+ get selection() {
+ return e("content:read"), t.context.selection;
+ },
+ set selection(n) {
+ e("content:read"), t.context.selection = n;
+ },
+ get viewport() {
+ return t.context.viewport;
+ },
+ get history() {
+ return t.context.history;
+ },
+ get library() {
+ return e("library:read"), t.context.library;
+ },
+ get fonts() {
+ return e("content:read"), t.context.fonts;
+ },
+ get currentUser() {
+ return e("user:read"), t.context.currentUser;
+ },
+ get activeUsers() {
+ return e("user:read"), t.context.activeUsers;
+ },
+ shapesColors(n) {
+ return e("content:read"), t.context.shapesColors(n);
+ },
+ replaceColor(n, o, s) {
+ return e("content:write"), t.context.replaceColor(n, o, s);
+ },
+ get theme() {
+ return t.context.theme;
+ },
+ createBoard() {
+ return e("content:write"), t.context.createBoard();
+ },
+ createRectangle() {
+ return e("content:write"), t.context.createRectangle();
+ },
+ createEllipse() {
+ return e("content:write"), t.context.createEllipse();
+ },
+ createText(n) {
+ return e("content:write"), t.context.createText(n);
+ },
+ createPath() {
+ return e("content:write"), t.context.createPath();
+ },
+ createBoolean(n, o) {
+ return e("content:write"), t.context.createBoolean(n, o);
+ },
+ createShapeFromSvg(n) {
+ return e("content:write"), t.context.createShapeFromSvg(n);
+ },
+ group(n) {
+ return e("content:write"), t.context.group(n);
+ },
+ ungroup(n, ...o) {
+ e("content:write"), t.context.ungroup(n, ...o);
+ },
+ uploadMediaUrl(n, o) {
+ return e("content:write"), t.context.uploadMediaUrl(n, o);
+ },
+ uploadMediaData(n, o, s) {
+ return e("content:write"), t.context.uploadMediaData(n, o, s);
+ },
+ generateMarkup(n, o) {
+ return e("content:read"), t.context.generateMarkup(n, o);
+ },
+ generateStyle(n, o) {
+ return e("content:read"), t.context.generateStyle(n, o);
+ },
+ openViewer() {
+ e("content:read"), t.context.openViewer();
+ },
+ createPage() {
+ return e("content:write"), t.context.createPage();
+ },
+ openPage(n) {
+ e("content:read"), t.context.openPage(n);
+ },
+ alignHorizontal(n, o) {
+ e("content:write"), t.context.alignHorizontal(n, o);
+ },
+ alignVertical(n, o) {
+ e("content:write"), t.context.alignVertical(n, o);
+ },
+ distributeHorizontal(n) {
+ e("content:write"), t.context.distributeHorizontal(n);
+ },
+ distributeVertical(n) {
+ e("content:write"), t.context.distributeVertical(n);
+ },
+ flatten(n) {
+ return e("content:write"), t.context.flatten(n);
+ }
+ }
+ };
+}
+let _o = !1;
+const P = {
+ hardenIntrinsics: () => {
+ _o || (_o = !0, hardenIntrinsics());
+ },
+ createCompartment: (t) => new Compartment(t),
+ harden: (t) => harden(t),
+ safeReturn(t) {
+ return t == null ? t : harden(t);
+ }
+};
+function Ml(t) {
+ P.hardenIntrinsics();
+ const e = Ol(t), r = {
+ get(c, l, u) {
+ const d = Reflect.get(c, l, u);
+ return typeof d == "function" ? function(...f) {
+ const h = d.apply(c, f);
+ return P.safeReturn(h);
+ } : P.safeReturn(d);
+ }
+ }, n = new Proxy(e.penpot, r), o = (c, l) => {
+ const u = {
+ ...l,
+ credentials: "omit",
+ headers: {
+ ...l == null ? void 0 : l.headers,
+ Authorization: ""
+ }
+ };
+ return fetch(c, u).then((d) => {
+ const f = {
+ ok: d.ok,
+ status: d.status,
+ statusText: d.statusText,
+ url: d.url,
+ text: d.text.bind(d),
+ json: d.json.bind(d)
+ };
+ return P.safeReturn(f);
+ });
+ }, s = {
+ penpot: n,
+ fetch: P.harden(o),
+ setTimeout: P.harden(
+ (...[c, l]) => {
+ const u = setTimeout(() => {
+ c();
+ }, l);
+ return t.timeouts.add(u), P.safeReturn(u);
+ }
+ ),
+ clearTimeout: P.harden((c) => {
+ clearTimeout(c), t.timeouts.delete(c);
+ }),
+ /**
+ * GLOBAL FUNCTIONS ACCESIBLE TO PLUGINS
+ **/
+ isFinite: P.harden(isFinite),
+ isNaN: P.harden(isNaN),
+ parseFloat: P.harden(parseFloat),
+ parseInt: P.harden(parseInt),
+ decodeURI: P.harden(decodeURI),
+ decodeURIComponent: P.harden(decodeURIComponent),
+ encodeURI: P.harden(encodeURI),
+ encodeURIComponent: P.harden(encodeURIComponent),
+ Object: P.harden(Object),
+ Boolean: P.harden(Boolean),
+ Symbol: P.harden(Symbol),
+ Number: P.harden(Number),
+ BigInt: P.harden(BigInt),
+ Math: P.harden(Math),
+ Date: P.harden(Date),
+ String: P.harden(String),
+ RegExp: P.harden(RegExp),
+ Array: P.harden(Array),
+ Int8Array: P.harden(Int8Array),
+ Uint8Array: P.harden(Uint8Array),
+ Uint8ClampedArray: P.harden(Uint8ClampedArray),
+ Int16Array: P.harden(Int16Array),
+ Uint16Array: P.harden(Uint16Array),
+ Int32Array: P.harden(Int32Array),
+ Uint32Array: P.harden(Uint32Array),
+ BigInt64Array: P.harden(BigInt64Array),
+ BigUint64Array: P.harden(BigUint64Array),
+ Float32Array: P.harden(Float32Array),
+ Float64Array: P.harden(Float64Array),
+ Map: P.harden(Map),
+ Set: P.harden(Set),
+ WeakMap: P.harden(WeakMap),
+ WeakSet: P.harden(WeakSet),
+ ArrayBuffer: P.harden(ArrayBuffer),
+ DataView: P.harden(DataView),
+ Atomics: P.harden(Atomics),
+ JSON: P.harden(JSON),
+ Promise: P.harden(Promise),
+ Proxy: P.harden(Proxy),
+ Intl: P.harden(Intl),
+ // Window properties
+ console: P.harden(window.console),
+ devicePixelRatio: P.harden(window.devicePixelRatio),
+ atob: P.harden(window.atob),
+ btoa: P.harden(window.btoa),
+ structuredClone: P.harden(window.structuredClone)
+ }, i = P.createCompartment(s);
+ return {
+ evaluate: () => {
+ i.evaluate(t.code);
+ },
+ cleanGlobalThis: () => {
+ Object.keys(s).forEach((c) => {
+ delete i.globalThis[c];
+ });
+ },
+ compartment: i
+ };
+}
+async function Ll(t, e, r) {
+ const n = async () => {
+ try {
+ s.evaluate();
+ } catch (i) {
+ console.error(i), o.close();
+ }
+ }, o = await $l(
+ t,
+ e,
+ function() {
+ s.cleanGlobalThis(), r();
+ },
+ function() {
+ n();
+ }
+ ), s = Ml(o);
+ return n(), {
+ plugin: o,
+ manifest: e,
+ compartment: s
+ };
+}
+let ht = [], yn = null;
+function Fl(t) {
+ yn = t;
+}
+const bo = () => {
+ ht.forEach((t) => {
+ t.plugin.close();
+ }), ht = [];
+};
window.addEventListener("message", (t) => {
try {
- for (const e of gn)
- e(t.data);
+ for (const e of ht)
+ e.plugin.sendMessage(t.data);
} catch (e) {
console.error(e);
}
});
-function Ol(t) {
- yn.forEach((e) => {
- e.setTheme(t);
- });
-}
-function Ml(t, e) {
- let r = null;
- const n = () => {
- 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`);
- };
- return {
- ui: {
- open: (i, c, l) => {
- const u = t.getTheme();
- r = Il(
- i,
- Zs(e.host, c),
- u,
- l
- ), r.setTheme(u), r.addEventListener("close", n, {
- once: !0
- }), yn.add(r);
- },
- sendMessage(i) {
- const c = new CustomEvent("message", {
- detail: i
- });
- r == null || r.dispatchEvent(c);
- },
- onMessage: (i) => {
- W.function().parse(i), gn.push(i);
- }
- },
- utils: {
- geometry: {
- center(i) {
- return window.app.plugins.public_utils.centerShapes(i);
- }
- },
- types: {
- 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";
- },
- 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";
- }
- }
- },
- closePlugin: n,
- on(i, c, l) {
- W.enum(Rl).parse(i), W.function().parse(c), o("content:read");
- const u = t.addListener(i, c, l);
- 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 = Mt[i].get(c)), l && t.removeListener(l);
- },
- // Penpot State API
- get root() {
- return o("content:read"), t.root;
- },
- get currentPage() {
- return o("content:read"), t.currentPage;
- },
- get selection() {
- return o("content:read"), t.selection;
- },
- set selection(i) {
- o("content:read"), t.selection = i;
- },
- get viewport() {
- return t.viewport;
- },
- get history() {
- return t.history;
- },
- get library() {
- return o("library:read"), t.library;
- },
- get fonts() {
- return o("content:read"), t.fonts;
- },
- get currentUser() {
- return o("user:read"), t.currentUser;
- },
- get activeUsers() {
- return o("user:read"), t.activeUsers;
- },
- getFile() {
- return o("content:read"), t.getFile();
- },
- getPage() {
- return o("content:read"), t.getPage();
- },
- getSelected() {
- return o("content:read"), t.getSelected();
- },
- 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 o("content:write"), t.createFrame();
- },
- createRectangle() {
- return o("content:write"), t.createRectangle();
- },
- createEllipse() {
- return o("content:write"), t.createEllipse();
- },
- createText(i) {
- return o("content:write"), t.createText(i);
- },
- createPath() {
- return o("content:write"), t.createPath();
- },
- createBoolean(i, c) {
- return o("content:write"), t.createBoolean(i, c);
- },
- createShapeFromSvg(i) {
- return o("content:write"), t.createShapeFromSvg(i);
- },
- group(i) {
- return o("content:write"), t.group(i);
- },
- ungroup(i, ...c) {
- o("content:write"), t.ungroup(i, ...c);
- },
- 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);
- },
- openViewer() {
- o("content:read"), t.openViewer();
- },
- createPage() {
- return o("content:write"), t.createPage();
- },
- openPage(i) {
- o("content:read"), t.openPage(i);
- }
- };
-}
-let bo = !1, fr = [];
-const Ll = !1;
-let vn = null;
-function Fl(t) {
- vn = t;
-}
-const zs = async function(t) {
+const Dl = async function(t, e) {
try {
- const e = () => {
- fr.forEach((c) => {
- c.closePlugin();
- }), fr = [];
- }, r = vn && vn(t.pluginId);
+ const r = yn && yn(t.pluginId);
if (!r)
return;
- 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(c[0], l);
- }),
- console: harden(window.console),
- Math: harden(Math),
- setTimeout: harden(
- (...[c, l]) => setTimeout(() => {
- c();
- }, l)
- ),
- clearTimeout: harden((c) => {
- clearTimeout(c);
- })
- }).evaluate(n);
- const i = r.addListener("finish", () => {
- e(), r == null || r.removeListener(i);
- });
- } catch (e) {
- console.error(e);
+ bo();
+ const n = await Ll(
+ P.harden(r),
+ t,
+ () => {
+ ht = ht.filter((o) => o !== n), e && e();
+ }
+ );
+ ht.push(n);
+ } catch (r) {
+ bo(), console.error(r);
}
-}, Dl = async function(t) {
- const e = await $l(t);
+}, zs = async function(t, e) {
+ Dl(t, e);
+}, Ul = async function(t) {
+ const e = await Al(t);
zs(e);
+}, jl = function(t) {
+ const e = ht.find((r) => r.manifest.pluginId === t);
+ e && e.plugin.close();
};
console.log("%c[PLUGINS] Loading plugin system", "color: #008d7c");
repairIntrinsics({
evalTaming: "unsafeEval",
stackFiltering: "verbose",
errorTaming: "unsafe",
- consoleTaming: "unsafe"
+ consoleTaming: "unsafe",
+ errorTrapping: "none"
});
const wo = globalThis;
wo.initPluginsRuntime = (t) => {
try {
- console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), wo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = zs, globalThis.ɵloadPluginByUrl = Dl;
+ console.log("%c[PLUGINS] Initialize runtime", "color: #008d7c"), Fl(t), wo.ɵcontext = t("TEST"), globalThis.ɵloadPlugin = zs, globalThis.ɵloadPluginByUrl = Ul, globalThis.ɵunloadPlugin = jl;
} catch (e) {
console.error(e);
}
diff --git a/frontend/resources/polyfills/dynamicImport.js b/frontend/resources/polyfills/dynamicImport.js
new file mode 100644
index 0000000000..7e354e13cf
--- /dev/null
+++ b/frontend/resources/polyfills/dynamicImport.js
@@ -0,0 +1,5 @@
+if (!('dynamicImport' in window)) {
+ window.dynamicImport = function(uri) {
+ return import(uri);
+ }
+};
diff --git a/frontend/resources/styles/common/refactor/color-defs.scss b/frontend/resources/styles/common/refactor/color-defs.scss
index ade8d89913..46e6ba1136 100644
--- a/frontend/resources/styles/common/refactor/color-defs.scss
+++ b/frontend/resources/styles/common/refactor/color-defs.scss
@@ -41,9 +41,6 @@
--status-color-info-500: #0e9be9; // used on pixel grid and status widget
- //GENERIC
- --color-canvas: #e8e9ea; // Not defined on DS
-
// APP COLORS
--app-white: #ffffff; // Used in several places
--app-black: #000; // Used on interactions, measurements and editor files
diff --git a/frontend/resources/templates/challenge.mustache b/frontend/resources/templates/challenge.mustache
new file mode 100644
index 0000000000..16bba9b6af
--- /dev/null
+++ b/frontend/resources/templates/challenge.mustache
@@ -0,0 +1,18 @@
+
+
+
+
+ Penpot - Challenge
+
+
+
+
+
+
+
diff --git a/frontend/resources/templates/index.mustache b/frontend/resources/templates/index.mustache
index 7846bb111b..e6ab3c4ebb 100644
--- a/frontend/resources/templates/index.mustache
+++ b/frontend/resources/templates/index.mustache
@@ -29,7 +29,7 @@
{{/manifest}}
-
+
diff --git a/frontend/scripts/_helpers.js b/frontend/scripts/_helpers.js
index b8fbd0de55..390dbe1a12 100644
--- a/frontend/scripts/_helpers.js
+++ b/frontend/scripts/_helpers.js
@@ -115,20 +115,30 @@ export async function compileSassAll(worker) {
return path.startsWith("app/main/ui/ds/");
};
+ const isOldComponentSystemFile = (path) => {
+ return path.startsWith("app/main/ui/components/");
+ };
+
let files = (await fs.readdir(sourceDir, { recursive: true })).filter(
isSassFile,
);
const appFiles = files
.filter((path) => !isDesignSystemFile(path))
+ .filter((path) => !isOldComponentSystemFile(path))
.map((path) => ph.join(sourceDir, path));
+
const dsFiles = files
.filter(isDesignSystemFile)
.map((path) => ph.join(sourceDir, path));
+ const oldComponentsFiles = files
+ .filter(isOldComponentSystemFile)
+ .map((path) => ph.join(sourceDir, path));
+
const procs = [compileSass(worker, "resources/styles/main-default.scss", {})];
- for (let path of [...dsFiles, ...appFiles]) {
+ for (let path of [...oldComponentsFiles, ...dsFiles, ...appFiles]) {
const proc = limitFn(() => compileSass(worker, path, { modules: true }));
procs.push(proc);
}
@@ -171,14 +181,16 @@ export async function watch(baseDir, predicate, callback) {
}
async function readShadowManifest() {
+ const ts = Date.now();
try {
const manifestPath = "resources/public/js/manifest.json";
let content = await fs.readFile(manifestPath, { encoding: "utf8" });
content = JSON.parse(content);
const index = {
- config: "js/config.js?ts=" + Date.now(),
- polyfills: "js/polyfills.js?ts=" + Date.now(),
+ ts: ts,
+ config: "js/config.js?ts=" + ts,
+ polyfills: "js/polyfills.js?ts=" + ts,
};
for (let item of content) {
@@ -188,12 +200,13 @@ async function readShadowManifest() {
return index;
} catch (cause) {
return {
- config: "js/config.js",
- polyfills: "js/polyfills.js",
- main: "js/main.js",
- shared: "js/shared.js",
- worker: "js/worker.js",
- rasterizer: "js/rasterizer.js",
+ ts: ts,
+ config: "js/config.js?ts=" + ts,
+ polyfills: "js/polyfills.js?ts=" + ts,
+ main: "js/main.js?ts=" + ts,
+ shared: "js/shared.js?ts=" + ts,
+ worker: "js/worker.js?ts=" + ts,
+ rasterizer: "js/rasterizer.js?ts=" + ts,
};
}
}
@@ -303,7 +316,20 @@ async function readTranslations() {
}
}
- return JSON.stringify(result);
+ return result;
+}
+
+function filterTranslations(translations, langs = [], keyFilter) {
+ const filteredEntries = Object.entries(translations)
+ .filter(([translationKey, _]) => keyFilter(translationKey))
+ .map(([translationKey, value]) => {
+ const langEntries = Object.entries(value).filter(([lang, _]) =>
+ langs.includes(lang),
+ );
+ return [translationKey, Object.fromEntries(langEntries)];
+ });
+
+ return Object.fromEntries(filteredEntries);
}
async function generateSvgSprite(files, prefix) {
@@ -355,7 +381,14 @@ async function generateTemplates() {
const isDebug = process.env.NODE_ENV !== "production";
await fs.mkdir("./resources/public/", { recursive: true });
- const translations = await readTranslations();
+ let translations = await readTranslations();
+ const storybookTranslations = JSON.stringify(
+ filterTranslations(translations, ["en"], (key) =>
+ key.startsWith("labels."),
+ ),
+ );
+ translations = JSON.stringify(translations);
+
const manifest = await readShadowManifest();
let content;
@@ -379,8 +412,8 @@ async function generateTemplates() {
const pluginRuntimeUri =
process.env.PENPOT_PLUGIN_DEV === "true"
- ? "http://localhost:4200"
- : "./plugins-runtime";
+ ? "http://localhost:4200/index.js?ts=" + manifest.ts
+ : "plugins-runtime/index.js?ts=" + manifest.ts;
content = await renderTemplate(
"resources/templates/index.mustache",
@@ -395,6 +428,13 @@ async function generateTemplates() {
await fs.writeFile("./resources/public/index.html", content);
+ content = await renderTemplate(
+ "resources/templates/challenge.mustache",
+ {},
+ partials,
+ );
+ await fs.writeFile("./resources/public/challenge.html", content);
+
content = await renderTemplate(
"resources/templates/preview-body.mustache",
{
@@ -408,6 +448,7 @@ async function generateTemplates() {
"resources/templates/preview-head.mustache",
{
manifest: manifest,
+ translations: JSON.stringify(storybookTranslations),
},
partials,
);
diff --git a/frontend/shadow-cljs.edn b/frontend/shadow-cljs.edn
index 6e26f906d8..52672cb52a 100644
--- a/frontend/shadow-cljs.edn
+++ b/frontend/shadow-cljs.edn
@@ -64,6 +64,12 @@
:depends-on #{:shared}
:init-fn app.rasterizer/init}}
+ :js-options
+ {:entry-keys ["module" "browser" "main"]
+ :resolve {"penpot/vendor/text-editor-v2"
+ {:target :file
+ :file "vendor/text_editor_v2.js"}}}
+
:compiler-options
{:output-feature-set :es2020
:output-wrapper false
@@ -94,7 +100,6 @@
:modules
{:base
{:entries []}
-
:components
{:exports {default app.main.ui.ds/default}
:depends-on #{:base}}}
@@ -149,6 +154,12 @@
:ns-regexp "^frontend-tests.*-test$"
:autorun true
+ :js-options
+ {:entry-keys ["module" "browser" "main"]
+ :resolve {"penpot/vendor/text-editor-v2"
+ {:target :file
+ :file "vendor/text_editor_v2.js"}}}
+
:compiler-options
{:output-feature-set :es2020
:output-wrapper false
diff --git a/frontend/src/app/config.cljs b/frontend/src/app/config.cljs
index 908ae3ed52..8ceacdbb51 100644
--- a/frontend/src/app/config.cljs
+++ b/frontend/src/app/config.cljs
@@ -110,7 +110,8 @@
(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.pages.dev/technical-guide/plugins/getting-started/#examples"))
+(def plugins-list-uri (obj/get global "penpotPluginsListUri" "https://penpot-docs-plugins.pages.dev/plugins/getting-started/#examples"))
+(def plugins-whitelist (into #{} (obj/get global "penpotPluginsWhitelist" [])))
(defn- normalize-uri
[uri-str]
diff --git a/frontend/src/app/main.cljs b/frontend/src/app/main.cljs
index 3cbbe0d701..517376ba25 100644
--- a/frontend/src/app/main.cljs
+++ b/frontend/src/app/main.cljs
@@ -143,4 +143,3 @@
(reinit))))
(set! (.-stackTraceLimit js/Error) 50)
-
diff --git a/frontend/src/app/main/data/changes.cljs b/frontend/src/app/main/data/changes.cljs
index a6fd8f73da..080f193fa4 100644
--- a/frontend/src/app/main/data/changes.cljs
+++ b/frontend/src/app/main/data/changes.cljs
@@ -109,9 +109,12 @@
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)))
+ "expect valid vector of changes for redo-changes"
+ (cpc/check-changes! redo-changes))
+
+ (dm/assert!
+ "expect valid vector of changes for undo-changes"
+ (cpc/check-changes! undo-changes))
(let [commit-id (or commit-id (uuid/next))
source (d/nilv source :local)
diff --git a/frontend/src/app/main/data/comments.cljs b/frontend/src/app/main/data/comments.cljs
index 0a441068f1..f73836d65e 100644
--- a/frontend/src/app/main/data/comments.cljs
+++ b/frontend/src/app/main/data/comments.cljs
@@ -19,33 +19,31 @@
[potok.v2.core :as ptk]))
(def ^:private schema:comment-thread
- (sm/define
- [:map {:title "CommentThread"}
- [:id ::sm/uuid]
- [:page-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:project-id ::sm/uuid]
- [:owner-id ::sm/uuid]
- [:page-name :string]
- [:file-name :string]
- [:seqn :int]
- [:content :string]
- [:participants ::sm/set-of-uuid]
- [:created-at ::sm/inst]
- [:modified-at ::sm/inst]
- [:position ::gpt/point]
- [:count-unread-comments {:optional true} :int]
- [:count-comments {:optional true} :int]]))
+ [:map {:title "CommentThread"}
+ [:id ::sm/uuid]
+ [:page-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:project-id ::sm/uuid]
+ [:owner-id ::sm/uuid]
+ [:page-name :string]
+ [:file-name :string]
+ [:seqn :int]
+ [:content :string]
+ [:participants ::sm/set-of-uuid]
+ [:created-at ::sm/inst]
+ [:modified-at ::sm/inst]
+ [:position ::gpt/point]
+ [:count-unread-comments {:optional true} :int]
+ [:count-comments {:optional true} :int]])
(def ^:private schema:comment
- (sm/define
- [:map {:title "Comment"}
- [:id ::sm/uuid]
- [:thread-id ::sm/uuid]
- [:owner-id ::sm/uuid]
- [:created-at ::sm/inst]
- [:modified-at ::sm/inst]
- [:content :string]]))
+ [:map {:title "Comment"}
+ [:id ::sm/uuid]
+ [:thread-id ::sm/uuid]
+ [:owner-id ::sm/uuid]
+ [:created-at ::sm/inst]
+ [:modified-at ::sm/inst]
+ [:content :string]])
(def check-comment-thread!
(sm/check-fn schema:comment-thread))
@@ -58,58 +56,63 @@
(declare refresh-comment-thread)
(defn created-thread-on-workspace
- [{:keys [id comment page-id] :as thread}]
- (ptk/reify ::created-thread-on-workspace
- ptk/UpdateEvent
- (update [_ state]
- (let [position (select-keys thread [:position :frame-id])]
- (-> state
- (update :comment-threads assoc id (dissoc thread :comment))
- (update-in [:workspace-data :pages-index page-id :options :comment-threads-position] assoc id position)
- (update :comments-local assoc :open id)
- (update :comments-local assoc :options nil)
- (update :comments-local dissoc :draft)
- (update :workspace-drawing dissoc :comment)
- (update-in [:comments id] assoc (:id comment) comment))))
+ ([params]
+ (created-thread-on-workspace params true))
+ ([{:keys [id comment page-id] :as thread} open?]
+ (ptk/reify ::created-thread-on-workspace
+ ptk/UpdateEvent
+ (update [_ state]
+ (let [position (select-keys thread [:position :frame-id])]
+ (-> state
+ (update :comment-threads assoc id (dissoc thread :comment))
+ (update-in [:workspace-data :pages-index page-id :comment-thread-positions] assoc id position)
+ (cond-> open?
+ (update :comments-local assoc :open id))
+ (update :comments-local assoc :options nil)
+ (update :comments-local dissoc :draft)
+ (update :workspace-drawing dissoc :comment)
+ (update-in [:comments id] assoc (:id comment) comment))))
- ptk/WatchEvent
- (watch [_ _ _]
- (rx/of (ptk/data-event ::ev/event
- {::ev/name "create-comment-thread"
- ::ev/origin "workspace"
- :id id
- :content-size (count (:content comment))})))))
+ ptk/WatchEvent
+ (watch [_ _ _]
+ (rx/of (ptk/data-event ::ev/event
+ {::ev/name "create-comment-thread"
+ ::ev/origin "workspace"
+ :id id
+ :content-size (count (:content comment))}))))))
(def ^:private
schema:create-thread-on-workspace
- (sm/define
- [:map {:title "created-thread-on-workspace"}
- [:page-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:position ::gpt/point]
- [:content :string]]))
+ [:map {:title "created-thread-on-workspace"}
+ [:page-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:position ::gpt/point]
+ [:content :string]])
(defn create-thread-on-workspace
- [params]
- (dm/assert! (sm/check! schema:create-thread-on-workspace params))
+ ([params]
+ (create-thread-on-workspace params identity true))
+ ([params on-thread-created open?]
+ (dm/assert! (sm/check! schema:create-thread-on-workspace params))
- (ptk/reify ::create-thread-on-workspace
- ptk/WatchEvent
- (watch [_ state _]
- (let [page-id (:current-page-id state)
- objects (wsh/lookup-page-objects state page-id)
- frame-id (ctst/get-frame-id-by-position objects (:position params))
- params (assoc params :frame-id frame-id)]
- (->> (rp/cmd! :create-comment-thread params)
- (rx/mapcat #(rp/cmd! :get-comment-thread {:file-id (:file-id %) :id (:id %)}))
- (rx/map created-thread-on-workspace)
- (rx/catch (fn [{:keys [type code] :as cause}]
- (if (and (= type :restriction)
- (= code :max-quote-reached))
- (rx/throw cause)
- (rx/throw {:type :comment-error})))))))))
+ (ptk/reify ::create-thread-on-workspace
+ ptk/WatchEvent
+ (watch [_ state _]
+ (let [page-id (:current-page-id state)
+ objects (wsh/lookup-page-objects state page-id)
+ frame-id (ctst/get-frame-id-by-position objects (:position params))
+ params (assoc params :frame-id frame-id)]
+ (->> (rp/cmd! :create-comment-thread params)
+ (rx/mapcat #(rp/cmd! :get-comment-thread {:file-id (:file-id %) :id (:id %)}))
+ (rx/tap on-thread-created)
+ (rx/map #(created-thread-on-workspace % open?))
+ (rx/catch (fn [{:keys [type code] :as cause}]
+ (if (and (= type :restriction)
+ (= code :max-quote-reached))
+ (rx/throw cause)
+ (rx/throw {:type :comment-error}))))))))))
(defn created-thread-on-viewer
[{:keys [id comment page-id] :as thread}]
@@ -119,7 +122,7 @@
(let [position (select-keys thread [:position :frame-id])]
(-> state
(update :comment-threads assoc id (dissoc thread :comment))
- (update-in [:viewer :pages page-id :options :comment-threads-position] assoc id position)
+ (update-in [:viewer :pages page-id :comment-thread-positions] assoc id position)
(update :comments-local assoc :open id)
(update :comments-local assoc :options nil)
(update :comments-local dissoc :draft)
@@ -136,13 +139,12 @@
(def ^:private
schema:create-thread-on-viewer
- (sm/define
- [:map {:title "created-thread-on-viewer"}
- [:page-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:frame-id ::sm/uuid]
- [:position ::gpt/point]
- [:content :string]]))
+ [:map {:title "created-thread-on-viewer"}
+ [:page-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:frame-id ::sm/uuid]
+ [:position ::gpt/point]
+ [:content :string]])
(defn create-thread-on-viewer
[params]
@@ -261,29 +263,31 @@
(rx/map #(retrieve-comment-threads file-id)))))))
(defn delete-comment-thread-on-workspace
- [{:keys [id] :as thread}]
- (dm/assert!
- "expected valid comment thread"
- (check-comment-thread! thread))
- (ptk/reify ::delete-comment-thread-on-workspace
- ptk/UpdateEvent
- (update [_ state]
- (let [page-id (:current-page-id state)]
- (-> state
- (update-in [:workspace-data :pages-index page-id :options :comment-threads-position] dissoc id)
- (update :comments dissoc id)
- (update :comment-threads dissoc id))))
+ ([params]
+ (delete-comment-thread-on-workspace params identity))
+ ([{:keys [id] :as thread} on-delete]
+ (dm/assert! (uuid? id))
- ptk/WatchEvent
- (watch [_ _ _]
- (rx/concat
- (->> (rp/cmd! :delete-comment-thread {:id id})
- (rx/catch #(rx/throw {:type :comment-error}))
- (rx/ignore))
- (rx/of (ptk/data-event ::ev/event
- {::ev/name "delete-comment-thread"
- ::ev/origin "workspace"
- :id id}))))))
+ (ptk/reify ::delete-comment-thread-on-workspace
+ ptk/UpdateEvent
+ (update [_ state]
+ (let [page-id (:current-page-id state)]
+ (-> state
+ (update-in [:workspace-data :pages-index page-id :comment-thread-positions] dissoc id)
+ (update :comments dissoc id)
+ (update :comment-threads dissoc id))))
+
+ ptk/WatchEvent
+ (watch [_ _ _]
+ (rx/concat
+ (->> (rp/cmd! :delete-comment-thread {:id id})
+ (rx/catch #(rx/throw {:type :comment-error}))
+ (rx/tap on-delete)
+ (rx/ignore))
+ (rx/of (ptk/data-event ::ev/event
+ {::ev/name "delete-comment-thread"
+ ::ev/origin "workspace"
+ :id id})))))))
(defn delete-comment-thread-on-viewer
[{:keys [id] :as thread}]
@@ -295,7 +299,7 @@
(update [_ state]
(let [page-id (:current-page-id state)]
(-> state
- (update-in [:viewer :pages page-id :options :comment-threads-position] dissoc id)
+ (update-in [:viewer :pages page-id :comment-thread-positions] dissoc id)
(update :comments dissoc id)
(update :comment-threads dissoc id))))
@@ -352,7 +356,7 @@
[file-id]
(dm/assert! (uuid? file-id))
(letfn [(set-comment-threds [state comment-thread]
- (let [path [:workspace-data :pages-index (:page-id comment-thread) :options :comment-threads-position (:id comment-thread)]
+ (let [path [:workspace-data :pages-index (:page-id comment-thread) :comment-thread-positions (:id comment-thread)]
thread-position (get-in state path)]
(cond-> state
(nil? thread-position)
@@ -469,11 +473,10 @@
(def ^:private
schema:create-draft
- (sm/define
- [:map {:title "create-draft"}
- [:page-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:position ::gpt/point]]))
+ [:map {:title "create-draft"}
+ [:page-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:position ::gpt/point]])
(defn create-draft
[params]
diff --git a/frontend/src/app/main/data/common.cljs b/frontend/src/app/main/data/common.cljs
index 839dd5c29e..a9b219f784 100644
--- a/frontend/src/app/main/data/common.cljs
+++ b/frontend/src/app/main/data/common.cljs
@@ -9,8 +9,8 @@
(:require
[app.common.types.components-list :as ctkl]
[app.config :as cf]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.features :as features]
[app.main.repo :as rp]
[app.main.store :as st]
@@ -61,7 +61,7 @@
(defn hide-notifications!
[]
- (st/emit! msg/hide))
+ (st/emit! (ntf/hide)))
(defn handle-notification
[{:keys [message code level] :as params}]
@@ -72,16 +72,16 @@
:upgrade-version
(when (or (not= (:version params) (:full cf/version))
(true? (:force params)))
- (rx/of (msg/dialog
+ (rx/of (ntf/dialog
:content (tr "notifications.by-code.upgrade-version")
:controls :inline-actions
- :notification-type :inline
- :type level
+ :type :inline
+ :level level
:actions [{:label "Refresh" :callback force-reload!}]
:tag :notification)))
:maintenance
- (rx/of (msg/dialog
+ (rx/of (ntf/dialog
:content (tr "notifications.by-code.maintenance")
:controls :inline-actions
:type level
@@ -89,7 +89,7 @@
:callback hide-notifications!}]
:tag :notification))
- (rx/of (msg/dialog
+ (rx/of (ntf/dialog
:content message
:controls :close
:type level
@@ -155,3 +155,18 @@
:files files
:binary? binary?}))))))))
+;;;;;;;;;;;;;;;;;;;;;;
+;; Team Request
+;;;;;;;;;;;;;;;;;;;;;;
+
+(defn create-team-access-request
+ [params]
+ (ptk/reify ::create-team-access-request
+ ptk/WatchEvent
+ (watch [_ _ _]
+ (let [{:keys [on-success on-error]
+ :or {on-success identity
+ on-error rx/throw}} (meta params)]
+ (->> (rp/cmd! :create-team-access-request params)
+ (rx/tap on-success)
+ (rx/catch on-error))))))
diff --git a/frontend/src/app/main/data/dashboard.cljs b/frontend/src/app/main/data/dashboard.cljs
index 7a0e3297ae..1bedc29dd0 100644
--- a/frontend/src/app/main/data/dashboard.cljs
+++ b/frontend/src/app/main/data/dashboard.cljs
@@ -941,7 +941,7 @@
(update-in [:dashboard-projects project-id :count] inc)))))
(defn create-file
- [{:keys [project-id] :as params}]
+ [{:keys [project-id name] :as params}]
(dm/assert! (uuid? project-id))
(ptk/reify ::create-file
ev/Event
@@ -955,7 +955,7 @@
files (get state :dashboard-files)
unames (cfh/get-used-names files)
- name (cfh/generate-unique-name unames (str (tr "dashboard.new-file-prefix") " 1"))
+ name (or name (cfh/generate-unique-name unames (str (tr "dashboard.new-file-prefix") " 1")))
features (-> (features/get-team-enabled-features state)
(set/difference cfeat/frontend-only-features))
params (-> params
diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs
index 1e0cc623f3..06ca2def39 100644
--- a/frontend/src/app/main/data/events.cljs
+++ b/frontend/src/app/main/data/events.cljs
@@ -15,7 +15,7 @@
[app.util.http :as http]
[app.util.i18n :as i18n]
[app.util.object :as obj]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[app.util.time :as dt]
[beicon.v2.core :as rx]
[beicon.v2.operators :as rxo]
@@ -170,7 +170,7 @@
(let [session (atom nil)
stopper (rx/filter (ptk/type? ::initialize) stream)
buffer (atom #queue [])
- profile (->> (rx/from-atom storage {:emit-current-value? true})
+ profile (->> (rx/from-atom storage/user {:emit-current-value? true})
(rx/map :profile)
(rx/map :id)
(rx/pipe (rxo/distinct-contiguous)))]
diff --git a/frontend/src/app/main/data/exports.cljs b/frontend/src/app/main/data/exports.cljs
index d77a4a0217..ebea22149a 100644
--- a/frontend/src/app/main/data/exports.cljs
+++ b/frontend/src/app/main/data/exports.cljs
@@ -49,31 +49,30 @@
(defn show-workspace-export-dialog
- ([] (show-workspace-export-dialog nil))
- ([{:keys [selected]}]
- (ptk/reify ::show-workspace-export-dialog
- ptk/WatchEvent
- (watch [_ state _]
- (let [file-id (:current-file-id state)
- page-id (:current-page-id state)
- selected (or selected (wsh/lookup-selected state page-id {}))
+ [{:keys [selected origin]}]
+ (ptk/reify ::show-workspace-export-dialog
+ ptk/WatchEvent
+ (watch [_ state _]
+ (let [file-id (:current-file-id state)
+ page-id (:current-page-id state)
+ selected (or selected (wsh/lookup-selected state page-id {}))
- shapes (if (seq selected)
- (wsh/lookup-shapes state selected)
- (reverse (wsh/filter-shapes state #(pos? (count (:exports %))))))
+ shapes (if (seq selected)
+ (wsh/lookup-shapes state selected)
+ (reverse (wsh/filter-shapes state #(pos? (count (:exports %))))))
- exports (for [shape shapes
- export (:exports shape)]
- (-> export
- (assoc :enabled true)
- (assoc :page-id page-id)
- (assoc :file-id file-id)
- (assoc :object-id (:id shape))
- (assoc :shape (dissoc shape :exports))
- (assoc :name (:name shape))))]
+ exports (for [shape shapes
+ export (:exports shape)]
+ (-> export
+ (assoc :enabled true)
+ (assoc :page-id page-id)
+ (assoc :file-id file-id)
+ (assoc :object-id (:id shape))
+ (assoc :shape (dissoc shape :exports))
+ (assoc :name (:name shape))))]
- (rx/of (modal/show :export-shapes
- {:exports (vec exports)})))))))
+ (rx/of (modal/show :export-shapes
+ {:exports (vec exports) :origin origin}))))))
(defn show-viewer-export-dialog
[{:keys [shapes page-id file-id share-id exports]}]
@@ -90,7 +89,7 @@
(assoc :shape (dissoc shape :exports))
(assoc :name (:name shape))
(cond-> share-id (assoc :share-id share-id))))]
- (rx/of (modal/show :export-shapes {:exports (vec exports)})))))) #_TODO
+ (rx/of (modal/show :export-shapes {:exports (vec exports) :origin "viewer"})))))) #_TODO
(defn show-workspace-export-frames-dialog
[frames]
@@ -108,7 +107,7 @@
:name (:name frame)})]
(rx/of (modal/show :export-frames
- {:exports (vec exports)}))))))
+ {:exports (vec exports) :origin "workspace:menu"}))))))
(defn- initialize-export-status
[exports cmd resource]
diff --git a/frontend/src/app/main/data/fonts.cljs b/frontend/src/app/main/data/fonts.cljs
index b7150b033a..87f6709035 100644
--- a/frontend/src/app/main/data/fonts.cljs
+++ b/frontend/src/app/main/data/fonts.cljs
@@ -13,12 +13,12 @@
[app.common.media :as cm]
[app.common.uuid :as uuid]
[app.main.data.events :as ev]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.fonts :as fonts]
[app.main.repo :as rp]
[app.main.store :as st]
[app.util.i18n :refer [tr]]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[app.util.webapi :as wa]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
@@ -183,7 +183,7 @@
#(when
(not-empty %)
(st/emit!
- (msg/error
+ (ntf/error
(if (> (count %) 1)
(tr "errors.bad-font-plural" (str/join ", " %))
(tr "errors.bad-font" (first %)))))))
@@ -335,8 +335,9 @@
(assoc-in state [:workspace-data :recent-fonts] most-recent-fonts)))
ptk/EffectEvent
(effect [_ state _]
- (let [most-recent-fonts (get-in state [:workspace-data :recent-fonts])]
- (swap! storage assoc ::recent-fonts most-recent-fonts)))))
+ (let [most-recent-fonts (get-in state [:workspace-data :recent-fonts])]
+ ;; FIXME: this should be prefixed by team
+ (swap! storage/user assoc ::recent-fonts most-recent-fonts)))))
(defn load-recent-fonts
[fonts]
@@ -344,7 +345,7 @@
ptk/UpdateEvent
(update [_ state]
(let [fonts-map (d/index-by :id fonts)
- saved-recent-fonts (->> (::recent-fonts @storage)
+ saved-recent-fonts (->> (::recent-fonts storage/user)
(keep #(get fonts-map (:id %)))
(into #{}))]
(assoc-in state [:workspace-data :recent-fonts] saved-recent-fonts)))))
diff --git a/frontend/src/app/main/data/media.cljs b/frontend/src/app/main/data/media.cljs
index e78892bb1b..904623505c 100644
--- a/frontend/src/app/main/data/media.cljs
+++ b/frontend/src/app/main/data/media.cljs
@@ -8,7 +8,7 @@
(:require
[app.common.exceptions :as ex]
[app.common.media :as cm]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.store :as st]
[app.util.i18n :refer [tr]]
[beicon.v2.core :as rx]
@@ -46,14 +46,14 @@
(defn notify-start-loading
[]
- (st/emit! (msg/show {:content (tr "media.loading")
- :notification-type :toast
- :type :info
+ (st/emit! (ntf/show {:content (tr "media.loading")
+ :type :toast
+ :level :info
:timeout nil})))
(defn notify-finished-loading
[]
- (st/emit! msg/hide))
+ (st/emit! (ntf/hide)))
(defn process-error
[error]
@@ -69,4 +69,4 @@
:else
(tr "errors.unexpected-error"))]
- (rx/of (msg/error msg))))
+ (rx/of (ntf/error msg))))
diff --git a/frontend/src/app/main/data/messages.cljs b/frontend/src/app/main/data/notifications.cljs
similarity index 63%
rename from frontend/src/app/main/data/messages.cljs
rename to frontend/src/app/main/data/notifications.cljs
index b02eb7d75d..c58fb4c603 100644
--- a/frontend/src/app/main/data/messages.cljs
+++ b/frontend/src/app/main/data/notifications.cljs
@@ -4,7 +4,7 @@
;;
;; Copyright (c) KALEIDOS INC
-(ns app.main.data.messages
+(ns app.main.data.notifications
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
@@ -17,14 +17,14 @@
(def default-timeout 7000)
-(def ^:private schema:message
- [:map {:title "Message"}
- [:type [::sm/one-of #{:success :error :info :warning}]]
+(def ^:private schema:notification
+ [:map {:title "Notification"}
+ [:level [::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}
+ [:type {:optional true}
[::sm/one-of #{:inline :context :toast}]]
[:controls {:optional true}
[::sm/one-of #{:none :close :inline-actions :bottom-actions}]]
@@ -43,20 +43,21 @@
[:label :string]
[:callback ::sm/fn]]]]])
-(def ^:private valid-message?
- (sm/validator schema:message))
+(def ^:private valid-notification?
+ (sm/validator schema:notification))
(defn show
[data]
+
(dm/assert!
- "expected valid message map"
- (valid-message? data))
+ "expected valid notification map"
+ (valid-notification? data))
(ptk/reify ::show
ptk/UpdateEvent
(update [_ state]
- (let [message (assoc data :status :visible)]
- (assoc state :message message)))
+ (let [notification (assoc data :status :visible)]
+ (assoc state :notification notification)))
ptk/WatchEvent
(watch [_ _ stream]
@@ -64,42 +65,39 @@
(let [stopper (rx/filter (ptk/type? ::hide) stream)]
(->> stream
(rx/filter (ptk/type? :app.util.router/navigate))
- (rx/map (constantly hide))
+ (rx/map (fn [_] (hide)))
(rx/take-until stopper)))
(when (:timeout data)
(let [stopper (rx/filter (ptk/type? ::show) stream)]
- (->> (rx/of hide)
+ (->> (rx/of (hide))
(rx/delay (:timeout data))
(rx/take-until stopper))))))))
-(def hide
+(defn hide
+ [& {:keys [tag]}]
(ptk/reify ::hide
ptk/UpdateEvent
(update [_ state]
- (dissoc state :message))))
-
-(defn hide-tag
- [tag]
- (ptk/reify ::hide-tag
- ptk/WatchEvent
- (watch [_ state _]
- (let [message (get state :message)]
- (when (= (:tag message) tag)
- (rx/of hide))))))
+ (if (some? tag)
+ (let [notification (get state :notification)]
+ (if (= tag (:tag notification))
+ (dissoc state :notification)
+ state))
+ (dissoc state :notification)))))
(defn error
([content]
(show {:content content
- :type :error
- :notification-type :toast
+ :level :error
+ :type :toast
:position :fixed})))
(defn info
([content] (info content {}))
([content {:keys [timeout] :or {timeout default-timeout}}]
(show {:content content
- :type :info
- :notification-type :toast
+ :level :info
+ :type :toast
:position :fixed
:timeout timeout})))
@@ -107,8 +105,8 @@
([content] (success content {}))
([content {:keys [timeout] :or {timeout default-timeout}}]
(show {:content content
- :type :success
- :notification-type :toast
+ :level :success
+ :type :toast
:position :fixed
:timeout timeout})))
@@ -116,31 +114,19 @@
([content] (warn content {}))
([content {:keys [timeout] :or {timeout default-timeout}}]
(show {:content content
- :type :warning
- :notification-type :toast
+ :level :warning
+ :type :toast
:position :fixed
:timeout timeout})))
(defn dialog
- [& {:keys [content controls actions position tag type]
- :or {controls :none position :floating type :info}}]
+ [& {:keys [content controls actions position tag level links]
+ :or {controls :none position :floating level :info}}]
(show (d/without-nils
{:content content
- :type type
+ :level level
+ :links links
:position position
:controls controls
:actions actions
:tag tag})))
-
-(defn info-dialog
- [& {:keys [content controls links actions tag]
- :or {controls :none links nil tag nil}}]
- (show (d/without-nils
- {:content content
- :type :info
- :position :floating
- :notification-type :inline
- :controls controls
- :links links
- :actions actions
- :tag tag})))
diff --git a/frontend/src/app/main/data/plugins.cljs b/frontend/src/app/main/data/plugins.cljs
new file mode 100644
index 0000000000..ba27e6a0a8
--- /dev/null
+++ b/frontend/src/app/main/data/plugins.cljs
@@ -0,0 +1,121 @@
+;; 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.plugins
+ (:require
+ [app.common.data.macros :as dm]
+ [app.main.data.modal :as modal]
+ [app.main.store :as st]
+ [app.plugins.register :as preg]
+ [app.util.globals :as ug]
+ [app.util.http :as http]
+ [beicon.v2.core :as rx]
+ [potok.v2.core :as ptk]))
+
+(defn fetch-manifest
+ [plugin-url]
+ (->> (http/send! {:method :get
+ :uri plugin-url
+ :omit-default-headers true
+ :response-type :json})
+ (rx/map :body)
+ (rx/map #(preg/parse-manifest plugin-url %))))
+
+(defn save-current-plugin
+ [id]
+ (ptk/reify ::save-current-plugin
+ ptk/UpdateEvent
+ (update [_ state]
+ (update-in state [:workspace-local :open-plugins] (fnil conj #{}) id))))
+
+(defn remove-current-plugin
+ [id]
+ (ptk/reify ::remove-current-plugin
+ ptk/UpdateEvent
+ (update [_ state]
+ (update-in state [:workspace-local :open-plugins] (fnil disj #{}) id))))
+
+(defn- load-plugin!
+ [{:keys [plugin-id name description host code icon permissions]}]
+ (try
+ (st/emit! (save-current-plugin plugin-id))
+ (.ɵloadPlugin
+ ^js ug/global
+ #js {:pluginId plugin-id
+ :name name
+ :description description
+ :host host
+ :code code
+ :icon icon
+ :permissions (apply array permissions)}
+ (fn []
+ (st/emit! (remove-current-plugin plugin-id))))
+
+ (catch :default e
+ (st/emit! (remove-current-plugin plugin-id))
+ (.error js/console "Error" e))))
+
+(defn open-plugin!
+ [{:keys [url] :as manifest}]
+ (if url
+ ;; If the saved manifest has a URL we fetch the manifest to check
+ ;; for updates
+ (->> (fetch-manifest url)
+ (rx/subs!
+ (fn [new-manifest]
+ (let [new-manifest (merge new-manifest (select-keys manifest [:plugin-id]))]
+ (cond
+ (not= (:permissions new-manifest) (:permissions manifest))
+ (modal/show!
+ :plugin-permissions-update
+ {:plugin new-manifest
+ :on-accept
+ #(do
+ (preg/install-plugin! new-manifest)
+ (load-plugin! new-manifest))})
+
+ (not= new-manifest manifest)
+ (do (preg/install-plugin! new-manifest)
+ (load-plugin! manifest))
+ :else
+ (load-plugin! manifest))))
+ (fn []
+ ;; Error fetching the manifest we'll load the plugin with the
+ ;; old manifest
+ (load-plugin! manifest))))
+ (load-plugin! manifest)))
+
+(defn close-plugin!
+ [{:keys [plugin-id]}]
+ (try
+ (.ɵunloadPlugin ^js ug/global plugin-id)
+ (catch :default e
+ (.error js/console "Error" e))))
+
+(defn close-current-plugin
+ []
+ (ptk/reify ::close-current-plugin
+ ptk/EffectEvent
+ (effect [_ state _]
+ (let [ids (dm/get-in state [:workspace-local :open-plugins])]
+ (doseq [id ids]
+ (close-plugin! (preg/get-plugin id)))))))
+
+(defn delay-open-plugin
+ [plugin]
+ (ptk/reify ::delay-open-plugin
+ ptk/UpdateEvent
+ (update [_ state]
+ (assoc state ::open-plugin (:plugin-id plugin)))))
+
+(defn check-open-plugin
+ []
+ (ptk/reify ::check-open-plugin
+ ptk/WatchEvent
+ (watch [_ state _]
+ (when-let [pid (::open-plugin state)]
+ (open-plugin! (preg/get-plugin pid))
+ (rx/of #(dissoc % ::open-plugin))))))
diff --git a/frontend/src/app/main/data/shortcuts.cljs b/frontend/src/app/main/data/shortcuts.cljs
index 55ea364a3a..34f6e0496d 100644
--- a/frontend/src/app/main/data/shortcuts.cljs
+++ b/frontend/src/app/main/data/shortcuts.cljs
@@ -129,12 +129,11 @@
(def ^:private
schema:shortcuts
- (sm/define
- [:map-of :keyword
- [:map
- [:command [:or :string [:vector :any]]]
- [:fn {:optional true} fn?]
- [:tooltip {:optional true} :string]]]))
+ [:map-of :keyword
+ [:map
+ [:command [:or :string [:vector :any]]]
+ [:fn {:optional true} fn?]
+ [:tooltip {:optional true} :string]]])
(def check-shortcuts!
(sm/check-fn schema:shortcuts))
diff --git a/frontend/src/app/main/data/shortcuts_impl.js b/frontend/src/app/main/data/shortcuts_impl.js
index e381cc150b..0dcc275389 100644
--- a/frontend/src/app/main/data/shortcuts_impl.js
+++ b/frontend/src/app/main/data/shortcuts_impl.js
@@ -24,6 +24,10 @@ target.stopCallback = function (e, element, combo) {
return false
}
+ if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {
+ return false;
+ }
+
if ('composedPath' in e && typeof e.composedPath === 'function') {
// For open shadow trees, update `element` so that the following check works.
const initialEventTarget = e.composedPath()[0];
diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs
index 0d6461979d..1c729ac748 100644
--- a/frontend/src/app/main/data/users.cljs
+++ b/frontend/src/app/main/data/users.cljs
@@ -15,28 +15,30 @@
[app.config :as cf]
[app.main.data.events :as ev]
[app.main.data.media :as di]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.websocket :as ws]
[app.main.features :as features]
[app.main.repo :as rp]
+ [app.plugins.register :as register]
[app.util.i18n :as i18n :refer [tr]]
[app.util.router :as rt]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[beicon.v2.core :as rx]
[potok.v2.core :as ptk]))
+(declare update-profile-props)
+
;; --- SCHEMAS
(def ^:private
schema:profile
- (sm/define
- [:map {:title "Profile"}
- [:id ::sm/uuid]
- [:created-at {:optional true} :any]
- [:fullname {:optional true} :string]
- [:email {:optional true} :string]
- [:lang {:optional true} :string]
- [:theme {:optional true} :string]]))
+ [:map {:title "Profile"}
+ [:id ::sm/uuid]
+ [:created-at {:optional true} :any]
+ [:fullname {:optional true} :string]
+ [:email {:optional true} :string]
+ [:lang {:optional true} :string]
+ [:theme {:optional true} :string]])
(def check-profile!
(sm/check-fn schema:profile))
@@ -49,14 +51,14 @@
(defn get-current-team-id
[profile]
- (let [team-id (::current-team-id @storage)]
+ (let [team-id (::current-team-id storage/user)]
(or team-id (:default-team-id profile))))
(defn set-current-team!
[team-id]
(if (nil? team-id)
- (swap! storage dissoc ::current-team-id)
- (swap! storage assoc ::current-team-id team-id)))
+ (swap! storage/user dissoc ::current-team-id)
+ (swap! storage/user assoc ::current-team-id team-id)))
;; --- EVENT: fetch-teams
@@ -76,9 +78,9 @@
;; if not, dissoc it from storage.
(let [ids (into #{} (map :id) teams)]
- (when-let [ctid (::current-team-id @storage)]
+ (when-let [ctid (::current-team-id storage/user)]
(when-not (contains? ids ctid)
- (swap! storage dissoc ::current-team-id)))))))
+ (swap! storage/user dissoc ::current-team-id)))))))
(defn fetch-teams
[]
@@ -129,13 +131,27 @@
(effect [_ state _]
(let [profile (:profile state)
email (:email profile)
- previous-profile (:profile @storage)
+ previous-profile (:profile storage/user)
previous-email (:email previous-profile)]
(when profile
- (swap! storage assoc :profile profile)
+ (swap! storage/user assoc :profile profile)
(i18n/set-locale! (:lang profile))
(when (not= previous-email email)
- (set-current-team! nil)))))))
+ (set-current-team! nil))
+
+ (register/init))))))
+
+(defn- on-fetch-profile-exception
+ [cause]
+ (let [data (ex-data cause)]
+ (if (and (= :authorization (:type data))
+ (= :challenge-required (:code data)))
+ (let [path (rt/get-current-path)
+ href (->> path
+ (js/encodeURIComponent)
+ (str "/challenge.html?redirect="))]
+ (rx/of (rt/nav-raw :href href)))
+ (rx/throw cause))))
(defn fetch-profile
[]
@@ -143,7 +159,8 @@
ptk/WatchEvent
(watch [_ _ _]
(->> (rp/cmd! :get-profile)
- (rx/map profile-fetched)))))
+ (rx/map profile-fetched)
+ (rx/catch on-fetch-profile-exception)))))
;; --- EVENT: login
@@ -152,14 +169,27 @@
profile. The profile can proceed from standard login or from
accepting invitation, or third party auth signup or singin."
[profile]
- (letfn [(get-redirect-event []
- (let [team-id (get-current-team-id profile)
- redirect-url (:redirect-url @storage)]
- (if (some? redirect-url)
- (do
- (swap! storage dissoc :redirect-url)
- (.replace js/location redirect-url))
- (rt/nav' :dashboard-projects {:team-id team-id}))))]
+ (letfn [(get-redirect-events []
+ (let [team-id (get-current-team-id profile)
+ welcome-file-id (dm/get-in profile [:props :welcome-file-id])
+ redirect-href (:login-redirect @storage/session)
+ current-href (rt/get-current-href)]
+
+ (cond
+ (some? redirect-href)
+ (binding [storage/*sync* true]
+ (swap! storage/session dissoc :login-redirect)
+ (if (= current-href redirect-href)
+ (rx/of (rt/reload true))
+ (rx/of (rt/nav-raw :href redirect-href))))
+
+ (some? welcome-file-id)
+ (rx/of (rt/nav' :workspace {:project-id (:default-project-id profile)
+ :file-id welcome-file-id})
+ (update-profile-props {:welcome-file-id nil}))
+
+ :else
+ (rx/of (rt/nav' :dashboard-projects {:team-id team-id})))))]
(ptk/reify ::logged-in
ev/Event
@@ -176,10 +206,11 @@
ptk/WatchEvent
(watch [_ _ _]
(when (is-authenticated? profile)
- (->> (rx/of (profile-fetched profile)
- (fetch-teams)
- (get-redirect-event)
- (ws/initialize))
+ (->> (rx/concat
+ (rx/of (profile-fetched profile)
+ (fetch-teams)
+ (ws/initialize))
+ (get-redirect-events))
(rx/observe-on :async)))))))
(declare login-from-register)
@@ -233,10 +264,9 @@
(rx/catch on-error))))))
(def ^:private schema:login-with-ldap
- (sm/define
- [:map
- [:email ::sm/email]
- [:password :string]]))
+ [:map {:title "login-with-ldap"}
+ [:email ::sm/email]
+ [:password :string]])
(defn login-with-ldap
[params]
@@ -316,8 +346,7 @@
ptk/EffectEvent
(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)))))
+ (swap! storage/user (constantly {}))))))
(defn logout
([] (logout {}))
@@ -467,6 +496,7 @@
;; TODO: for the release 1.13 we should skip fetching profile and just use
;; the response value of update-profile-props RPC call
+ ;; FIXME
ptk/WatchEvent
(watch [_ _ _]
(->> (rp/cmd! :update-profile-props {:props props})
@@ -576,9 +606,8 @@
(def ^:private
schema:request-profile-recovery
- (sm/define
- [:map {:title "request-profile-recovery" :closed true}
- [:email ::sm/email]]))
+ [:map {:title "request-profile-recovery" :closed true}
+ [:email ::sm/email]])
(defn request-profile-recovery
[data]
@@ -602,10 +631,9 @@
(def ^:private
schema:recover-profile
- (sm/define
- [:map {:title "recover-profile" :closed true}
- [:password :string]
- [:token :string]]))
+ [:map {:title "recover-profile" :closed true}
+ [:password :string]
+ [:token :string]])
(defn recover-profile
[data]
@@ -711,4 +739,4 @@
(tr "errors.generic"))]
- (rx/of (msg/warn hint))))))
+ (rx/of (ntf/warn hint))))))
diff --git a/frontend/src/app/main/data/viewer.cljs b/frontend/src/app/main/data/viewer.cljs
index 456413018c..d2a9bdd595 100644
--- a/frontend/src/app/main/data/viewer.cljs
+++ b/frontend/src/app/main/data/viewer.cljs
@@ -49,11 +49,10 @@
(def ^:private
schema:initialize
- (sm/define
- [:map {:title "initialize"}
- [:file-id ::sm/uuid]
- [:share-id {:optional true} [:maybe ::sm/uuid]]
- [:page-id {:optional true} ::sm/uuid]]))
+ [:map {:title "initialize"}
+ [:file-id ::sm/uuid]
+ [:share-id {:optional true} [:maybe ::sm/uuid]]
+ [:page-id {:optional true} ::sm/uuid]])
(defn initialize
[{:keys [file-id share-id interactions-show?] :as params}]
@@ -102,11 +101,10 @@
(def ^:private
schema:fetch-bundle
- (sm/define
- [:map {:title "fetch-bundle"}
- [:page-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:share-id {:optional true} ::sm/uuid]]))
+ [:map {:title "fetch-bundle"}
+ [:page-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:share-id {:optional true} ::sm/uuid]])
(defn- fetch-bundle
[{:keys [file-id share-id] :as params}]
@@ -134,7 +132,7 @@
(uuid? share-id)
(assoc :share-id share-id))]
(->> (rp/cmd! :get-file-fragment params)
- (rx/map :content)
+ (rx/map :data)
(rx/map #(vector key %)))))]
(->> (rp/cmd! :get-view-only-bundle params')
diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs
index fd898824d1..5afe5eeeb8 100644
--- a/frontend/src/app/main/data/workspace.cljs
+++ b/frontend/src/app/main/data/workspace.cljs
@@ -39,15 +39,15 @@
[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.notifications :as ntf]
[app.main.data.persistence :as dps]
+ [app.main.data.plugins :as dp]
[app.main.data.users :as du]
[app.main.data.workspace.bool :as dwb]
[app.main.data.workspace.collapse :as dwco]
[app.main.data.workspace.drawing :as dwd]
[app.main.data.workspace.edition :as dwe]
- [app.main.data.workspace.fix-bool-contents :as fbc]
[app.main.data.workspace.fix-broken-shapes :as fbs]
[app.main.data.workspace.fix-deleted-fonts :as fdf]
[app.main.data.workspace.groups :as dwg]
@@ -75,17 +75,21 @@
[app.main.repo :as rp]
[app.main.streams :as ms]
[app.main.worker :as uw]
+ [app.renderer-v2 :as renderer]
[app.util.dom :as dom]
[app.util.globals :as ug]
[app.util.http :as http]
[app.util.i18n :as i18n :refer [tr]]
[app.util.router :as rt]
+ [app.util.storage :as storage]
[app.util.timers :as tm]
[app.util.webapi :as wapi]
[beicon.v2.core :as rx]
[cljs.spec.alpha :as s]
+ [clojure.set :as set]
[cuerdas.core :as str]
- [potok.v2.core :as ptk]))
+ [potok.v2.core :as ptk]
+ [promesa.core :as p]))
(def default-workspace-local {:zoom 1})
(log/set-level! :debug)
@@ -129,7 +133,7 @@
(when (and (not (boolean (-> state :profile :props :v2-info-shown)))
(features/active-feature? state "components/v2"))
(modal/show :v2-info {}))
- (fbc/fix-bool-contents)
+ (dp/check-open-plugin)
(fdf/fix-deleted-fonts)
(fbs/fix-broken-shapes)))))
@@ -337,6 +341,7 @@
ptk/UpdateEvent
(update [_ state]
(assoc state
+ :recent-colors (:recent-colors storage/user)
:workspace-ready? false
:current-file-id file-id
:current-project-id project-id
@@ -347,11 +352,14 @@
(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
+ (rx/of (ntf/hide)
(features/initialize)
(dcm/retrieve-comment-threads file-id)
(fetch-bundle project-id file-id))
+ (when (contains? cf/flags :renderer-v2)
+ (rx/of (renderer/init)))
+
(->> stream
(rx/filter dch/commit?)
(rx/map deref)
@@ -564,7 +572,7 @@
(watch [it state _]
(let [page (get-in state [:workspace-data :pages-index id])
changes (-> (pcb/empty-changes it)
- (pcb/mod-page page name))]
+ (pcb/mod-page page {:name name}))]
(rx/of (dch/commit-changes changes))))))
@@ -594,7 +602,7 @@
(-> (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))]
+ (pcb/set-plugin-data type id page-id namespace key value))]
(rx/of (dch/commit-changes changes)))))))
(declare purge-page)
@@ -970,25 +978,27 @@
(map #(gal/align-to-rect % rect axis) selected-objs)))
(defn align-objects
- [axis]
- (dm/assert!
- "expected valid align axis value"
- (contains? gal/valid-align-axis axis))
+ ([axis]
+ (align-objects axis nil))
+ ([axis selected]
+ (dm/assert!
+ "expected valid align axis value"
+ (contains? gal/valid-align-axis axis))
- (ptk/reify ::align-objects
- ptk/WatchEvent
- (watch [_ state _]
- (let [objects (wsh/lookup-page-objects state)
- selected (wsh/lookup-selected state)
- moved (if (= 1 (count selected))
- (align-object-to-parent objects (first selected) axis)
- (align-objects-list objects selected axis))
- undo-id (js/Symbol)]
- (when (can-align? selected objects)
- (rx/of (dwu/start-undo-transaction undo-id)
- (dwt/position-shapes moved)
- (ptk/data-event :layout/update {:ids selected})
- (dwu/commit-undo-transaction undo-id)))))))
+ (ptk/reify ::align-objects
+ ptk/WatchEvent
+ (watch [_ state _]
+ (let [objects (wsh/lookup-page-objects state)
+ selected (or selected (wsh/lookup-selected state))
+ moved (if (= 1 (count selected))
+ (align-object-to-parent objects (first selected) axis)
+ (align-objects-list objects selected axis))
+ undo-id (js/Symbol)]
+ (when (can-align? selected objects)
+ (rx/of (dwu/start-undo-transaction undo-id)
+ (dwt/position-shapes moved)
+ (ptk/data-event :layout/update {:ids selected})
+ (dwu/commit-undo-transaction undo-id))))))))
(defn can-distribute? [selected]
(cond
@@ -997,25 +1007,27 @@
:else true))
(defn distribute-objects
- [axis]
- (dm/assert!
- "expected valid distribute axis value"
- (contains? gal/valid-dist-axis axis))
+ ([axis]
+ (distribute-objects axis nil))
+ ([axis ids]
+ (dm/assert!
+ "expected valid distribute axis value"
+ (contains? gal/valid-dist-axis axis))
- (ptk/reify ::distribute-objects
- ptk/WatchEvent
- (watch [_ state _]
- (let [page-id (:current-page-id state)
- objects (wsh/lookup-page-objects state page-id)
- selected (wsh/lookup-selected state)
- moved (-> (map #(get objects %) selected)
- (gal/distribute-space axis))
- undo-id (js/Symbol)]
- (when (can-distribute? selected)
- (rx/of (dwu/start-undo-transaction undo-id)
- (dwt/position-shapes moved)
- (ptk/data-event :layout/update {:ids selected})
- (dwu/commit-undo-transaction undo-id)))))))
+ (ptk/reify ::distribute-objects
+ ptk/WatchEvent
+ (watch [_ state _]
+ (let [page-id (:current-page-id state)
+ objects (wsh/lookup-page-objects state page-id)
+ selected (or ids (wsh/lookup-selected state))
+ moved (-> (map #(get objects %) selected)
+ (gal/distribute-space axis))
+ undo-id (js/Symbol)]
+ (when (can-distribute? selected)
+ (rx/of (dwu/start-undo-transaction undo-id)
+ (dwt/position-shapes moved)
+ (ptk/data-event :layout/update {:ids selected})
+ (dwu/commit-undo-transaction undo-id))))))))
;; --- Shape Proportions
@@ -1534,7 +1546,8 @@
(let [objects (wsh/lookup-page-objects state)
selected (->> (wsh/lookup-selected state)
(cfh/clean-loops objects))
- features (features/get-team-enabled-features state)
+ features (-> (features/get-team-enabled-features state)
+ (set/difference cfeat/frontend-only-features))
file-id (:current-file-id state)
frame-id (cfh/common-parent-frame objects selected)
@@ -1551,15 +1564,40 @@
shapes (->> (cfh/selected-with-children objects selected)
(keep (d/getf objects)))]
- (->> (rx/from shapes)
- (rx/merge-map (partial prepare-object objects frame-id))
- (rx/reduce collect-data initial)
- (rx/map (partial sort-selected state))
- (rx/map (partial advance-copies state selected))
- (rx/map #(t/encode-str % {:type :json-verbose}))
- (rx/map wapi/write-to-clipboard)
- (rx/catch on-copy-error)
- (rx/ignore)))))))))
+ ;; The clipboard API doesn't handle well asynchronous calls because it expects to use
+ ;; the clipboard in an user interaction. If you do an async call the callback is outside
+ ;; the thread of the UI and so Safari blocks the copying event.
+ ;; We use the API `ClipboardItem` that allows promises to be passed and so the event
+ ;; will wait for the promise to resolve and everything should work as expected.
+ ;; This only works in the current versions of the browsers.
+ (if (some? (unchecked-get ug/global "ClipboardItem"))
+ (let [resolve-data-promise
+ (p/create
+ (fn [resolve reject]
+ (->> (rx/from shapes)
+ (rx/merge-map (partial prepare-object objects frame-id))
+ (rx/reduce collect-data initial)
+ (rx/map (partial sort-selected state))
+ (rx/map (partial advance-copies state selected))
+ (rx/map #(t/encode-str % {:type :json-verbose}))
+ (rx/map #(wapi/create-blob % "text/plain"))
+ (rx/subs! resolve reject))))]
+ (->> (rx/from (wapi/write-to-clipboard-promise "text/plain" resolve-data-promise))
+ (rx/catch on-copy-error)
+ (rx/ignore)))
+
+ ;; FIXME: this is to support Firefox versions below 116 that don't support `ClipboardItem`
+ ;; after the version 116 is less common we could remove this.
+ ;; https://caniuse.com/?search=ClipboardItem
+ (->> (rx/from shapes)
+ (rx/merge-map (partial prepare-object objects frame-id))
+ (rx/reduce collect-data initial)
+ (rx/map (partial sort-selected state))
+ (rx/map (partial advance-copies state selected))
+ (rx/map #(t/encode-str % {:type :json-verbose}))
+ (rx/map wapi/write-to-clipboard)
+ (rx/catch on-copy-error)
+ (rx/ignore))))))))))
(declare ^:private paste-transit)
(declare ^:private paste-text)
@@ -1595,7 +1633,7 @@
(on-error [cause]
(let [data (ex-data cause)]
(if (:not-implemented data)
- (rx/of (msg/warn (tr "errors.clipboard-not-implemented")))
+ (rx/of (ntf/warn (tr "errors.clipboard-not-implemented")))
(js/console.error "Clipboard error:" cause))
(rx/empty)))]
@@ -1676,17 +1714,19 @@
(def ^:private
schema:paste-data
- (sm/define
- [:map {:title "paste-data"}
- [:type [:= :copied-shapes]]
- [:features ::sm/set-of-strings]
- [:version :int]
- [:file-id ::sm/uuid]
- [:selected ::sm/set-of-uuid]
- [:objects
- [:map-of ::sm/uuid :map]]
- [:images [:set :map]]
- [:position {:optional true} ::gpt/point]]))
+ [:map {:title "paste-data"}
+ [:type [:= :copied-shapes]]
+ [:features ::sm/set-of-strings]
+ [:version :int]
+ [:file-id ::sm/uuid]
+ [:selected ::sm/set-of-uuid]
+ [:objects
+ [:map-of ::sm/uuid :map]]
+ [:images [:set :map]]
+ [:position {:optional true} ::gpt/point]])
+
+(def paste-data-valid?
+ (sm/lazy-validator schema:paste-data))
(defn- paste-transit
[{:keys [images] :as pdata}]
@@ -1711,9 +1751,10 @@
(let [file-id (:current-file-id state)
features (features/get-team-enabled-features state)]
- (sm/validate! schema:paste-data pdata
- {:hint "invalid paste data"
- :code :invalid-paste-data})
+ (when-not (paste-data-valid? pdata)
+ (ex/raise :type :validation
+ :code :invalid-paste-data
+ :hibt "invalid paste data found"))
(cfeat/check-paste-features! features (:features pdata))
(if (= file-id (:file-id pdata))
@@ -2062,7 +2103,7 @@
page (wsh/lookup-page state page-id)
changes (-> (pcb/empty-changes it)
(pcb/with-page page)
- (pcb/set-page-option :background (:color color)))]
+ (pcb/mod-page {:background (:color color)}))]
(rx/of (dch/commit-changes changes)))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/frontend/src/app/main/data/workspace/assets.cljs b/frontend/src/app/main/data/workspace/assets.cljs
index 7db9cc1ce1..5a7e528ee1 100644
--- a/frontend/src/app/main/data/workspace/assets.cljs
+++ b/frontend/src/app/main/data/workspace/assets.cljs
@@ -7,22 +7,22 @@
(ns app.main.data.workspace.assets
"Workspace assets management events and helpers."
(:require
- [app.util.storage :refer [storage]]))
+ [app.util.storage :as storage]))
(defn get-current-assets-ordering
[]
- (let [ordering (::ordering @storage)]
+ (let [ordering (::ordering storage/user)]
(or ordering :asc)))
(defn set-current-assets-ordering!
[ordering]
- (swap! storage assoc ::ordering ordering))
+ (swap! storage/user assoc ::ordering ordering))
(defn get-current-assets-list-style
[]
- (let [list-style (::list-style @storage)]
+ (let [list-style (::list-style storage/user)]
(or list-style :thumbs)))
(defn set-current-assets-list-style!
[list-style]
- (swap! storage assoc ::list-style list-style))
+ (swap! storage/user assoc ::list-style list-style))
diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs
index dc0a44d4a2..da8053ab90 100644
--- a/frontend/src/app/main/data/workspace/colors.cljs
+++ b/frontend/src/app/main/data/workspace/colors.cljs
@@ -12,6 +12,9 @@
[app.common.files.helpers :as cfh]
[app.common.schema :as sm]
[app.common.text :as txt]
+ [app.common.types.color :as ctc]
+ [app.common.types.shape :refer [check-stroke!]]
+ [app.common.types.shape.shadow :refer [check-shadow!]]
[app.main.broadcast :as mbc]
[app.main.data.events :as ev]
[app.main.data.modal :as md]
@@ -21,8 +24,7 @@
[app.main.data.workspace.state-helpers :as wsh]
[app.main.data.workspace.texts :as dwt]
[app.main.data.workspace.undo :as dwu]
- [app.util.color :as uc]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
[potok.v2.core :as ptk]))
@@ -165,6 +167,15 @@
(defn add-fill
[ids color]
+
+ (dm/assert!
+ "expected a valid color struct"
+ (ctc/check-color! color))
+
+ (dm/assert!
+ "expected a valid coll of uuid's"
+ (every? uuid? ids))
+
(ptk/reify ::add-fill
ptk/WatchEvent
(watch [_ state _]
@@ -175,6 +186,15 @@
(defn remove-fill
[ids color position]
+
+ (dm/assert!
+ "expected a valid color struct"
+ (ctc/check-color! color))
+
+ (dm/assert!
+ "expected a valid coll of uuid's"
+ (every? uuid? ids))
+
(ptk/reify ::remove-fill
ptk/WatchEvent
(watch [_ state _]
@@ -187,13 +207,21 @@
(defn remove-all-fills
[ids color]
+
+ (dm/assert!
+ "expected a valid color struct"
+ (ctc/check-color! color))
+
+ (dm/assert!
+ "expected a valid coll of uuid's"
+ (every? uuid? ids))
+
(ptk/reify ::remove-all-fills
ptk/WatchEvent
(watch [_ state _]
(let [remove-all (fn [shape _] (assoc shape :fills []))]
(transform-fill state ids color remove-all)))))
-
(defn change-hide-fill-on-export
[ids hide-fill-on-export]
(ptk/reify ::change-hide-fill-on-export
@@ -272,17 +300,25 @@
;; example using the color selection from
;; multiple shapes) let's use the first stop
;; color
- attrs (cond-> attrs
- (:gradient attrs) (get-in [:gradient :stops 0]))
- new-attrs (-> (merge (get-in shape [:shadow index :color]) attrs)
- (d/without-nils))]
- (assoc-in shape [:shadow index :color] new-attrs))))))))
+ attrs (cond-> attrs
+ (:gradient attrs)
+ (dm/get-in [:gradient :stops 0]))
+
+ attrs' (-> (dm/get-in shape [:shadow index :color])
+ (merge attrs)
+ (d/without-nils))]
+ (assoc-in shape [:shadow index :color] attrs'))))))))
(defn add-shadow
[ids shadow]
+
+ (dm/assert!
+ "expected a valid shadow struct"
+ (check-shadow! shadow))
+
(dm/assert!
"expected a valid coll of uuid's"
- (sm/check-coll-of-uuid! ids))
+ (every? uuid? ids))
(ptk/reify ::add-shadow
ptk/WatchEvent
@@ -293,6 +329,15 @@
(defn add-stroke
[ids stroke]
+
+ (dm/assert!
+ "expected a valid stroke struct"
+ (check-stroke! stroke))
+
+ (dm/assert!
+ "expected a valid coll of uuid's"
+ (every? uuid? ids))
+
(ptk/reify ::add-stroke
ptk/WatchEvent
(watch [_ _ _]
@@ -301,6 +346,11 @@
(defn remove-stroke
[ids position]
+
+ (dm/assert!
+ "expected a valid coll of uuid's"
+ (every? uuid? ids))
+
(ptk/reify ::remove-stroke
ptk/WatchEvent
(watch [_ _ _]
@@ -314,6 +364,11 @@
(defn remove-all-strokes
[ids]
+
+ (dm/assert!
+ "expected a valid coll of uuid's"
+ (every? uuid? ids))
+
(ptk/reify ::remove-all-strokes
ptk/WatchEvent
(watch [_ _ _]
@@ -376,7 +431,7 @@
:on-change handle-change-color}
:allow-click-outside true})))))))
-(defn color-att->text
+(defn- color-att->text
[color]
{:fill-color (when (:color color) (str/lower (:color color)))
:fill-opacity (:opacity color)
@@ -395,26 +450,57 @@
(some? has-color?)
(assoc-in [:fills index] parsed-new-color))))
+(def ^:private schema:change-color-operation
+ [:map
+ [:prop [:enum :fill :stroke :shadow :content]]
+ [:shape-id ::sm/uuid]
+ [:index :int]])
+
+(def ^:private schema:change-color-operations
+ [:vector schema:change-color-operation])
+
+(def ^:private check-change-color-operations!
+ (sm/check-fn schema:change-color-operations))
+
(defn change-color-in-selected
- [new-color shapes-by-color old-color]
+ [operations new-color old-color]
+
+ (dm/assert!
+ "expected valid color operations"
+ (check-change-color-operations! operations))
+
+ (dm/assert!
+ "expected valid color structure"
+ (ctc/check-color! new-color))
+
+ (dm/assert!
+ "expected valid color structure"
+ (ctc/check-color! old-color))
+
(ptk/reify ::change-color-in-selected
ptk/WatchEvent
(watch [_ _ _]
(let [undo-id (js/Symbol)]
(rx/concat
(rx/of (dwu/start-undo-transaction undo-id))
- (->> (rx/from shapes-by-color)
- (rx/map (fn [shape] (case (:prop shape)
- :fill (change-fill [(:shape-id shape)] new-color (:index shape))
- :stroke (change-stroke [(:shape-id shape)] new-color (:index shape))
- :shadow (change-shadow [(:shape-id shape)] new-color (:index shape))
- :content (dwt/update-text-with-function
- (:shape-id shape)
- (partial change-text-color old-color new-color (:index shape)))))))
+ (->> (rx/from operations)
+ (rx/map (fn [{:keys [shape-id index] :as operation}]
+ (case (:prop operation)
+ :fill (change-fill [shape-id] new-color index)
+ :stroke (change-stroke [shape-id] new-color index)
+ :shadow (change-shadow [shape-id] new-color index)
+ :content (dwt/update-text-with-function
+ shape-id
+ (partial change-text-color old-color new-color index))))))
(rx/of (dwu/commit-undo-transaction undo-id)))))))
(defn apply-color-from-palette
[color stroke?]
+
+ (dm/assert!
+ "expected valid color structure"
+ (ctc/check-color! color))
+
(ptk/reify ::apply-color-from-palette
ptk/WatchEvent
(watch [_ state _]
@@ -437,9 +523,10 @@
result (cond-> result (not group?) (conj cur))]
(recur (rest pending) result))))]
+
(if stroke?
- (rx/of (change-stroke ids (merge uc/empty-color color) 0))
- (rx/of (change-fill ids (merge uc/empty-color color) 0)))))))
+ (rx/of (change-stroke ids color 0))
+ (rx/of (change-fill ids color 0)))))))
(declare activate-colorpicker-color)
(declare activate-colorpicker-gradient)
@@ -448,15 +535,22 @@
(defn apply-color-from-colorpicker
[color]
+
+ (dm/assert!
+ "expected valid color structure"
+ (ctc/check-color! color))
+
(ptk/reify ::apply-color-from-colorpicker
ptk/WatchEvent
(watch [_ _ _]
- (rx/of
- (cond
- (:image color) (activate-colorpicker-image)
- (:color color) (activate-colorpicker-color)
- (= :linear (get-in color [:gradient :type])) (activate-colorpicker-gradient :linear-gradient)
- (= :radial (get-in color [:gradient :type])) (activate-colorpicker-gradient :radial-gradient))))))
+ ;; FIXME: revisit this
+ (let [gradient-type (dm/get-in color [:gradient :type])]
+ (rx/of
+ (cond
+ (:image color) (activate-colorpicker-image)
+ (:color color) (activate-colorpicker-color)
+ (= :linear gradient-type) (activate-colorpicker-gradient :linear-gradient)
+ (= :radial gradient-type) (activate-colorpicker-gradient :radial-gradient)))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -596,7 +690,8 @@
(update :current-color merge changes)
(update :current-color materialize-color-components)
(update :current-color #(if (not= type :image) (dissoc % :image) %))
- ;; current color can be a library one I'm changing via colorpicker
+ ;; current color can be a library one
+ ;; I'm changing via colorpicker
(d/dissoc-in [:current-color :id])
(d/dissoc-in [:current-color :file-id]))]
(if-let [stop (:editing-stop state)]
@@ -614,7 +709,8 @@
: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
+ ;; 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)))))))
@@ -686,6 +782,7 @@
(defn select-color
[position add-color]
+ ;; FIXME: revisit
(ptk/reify ::select-color
ptk/WatchEvent
(watch [_ state _]
@@ -718,9 +815,9 @@
(defn get-active-color-tab
[]
- (let [tab (::tab @storage)]
+ (let [tab (::tab storage/user)]
(or tab :ramp)))
(defn set-active-color-tab!
[tab]
- (swap! storage assoc ::tab tab))
+ (swap! storage/user assoc ::tab tab))
diff --git a/frontend/src/app/main/data/workspace/comments.cljs b/frontend/src/app/main/data/workspace/comments.cljs
index 69e2a77eb1..22491abe73 100644
--- a/frontend/src/app/main/data/workspace/comments.cljs
+++ b/frontend/src/app/main/data/workspace/comments.cljs
@@ -132,21 +132,20 @@
(ptk/reify ::update-comment-thread-position
ptk/WatchEvent
(watch [it state _]
- (let [thread-id (:id thread)
- page (wsh/lookup-page state)
- page-id (:id page)
- objects (wsh/lookup-page-objects state page-id)
- new-frame-id (if (nil? frame-id)
- (ctst/get-frame-id-by-position objects (gpt/point new-x new-y))
- (:frame-id thread))
- thread (assoc thread
- :position (gpt/point new-x new-y)
- :frame-id new-frame-id)
+ (let [page (wsh/lookup-page state)
+ page-id (:id page)
+ objects (wsh/lookup-page-objects state page-id)
+ frame-id (if (nil? frame-id)
+ (ctst/get-frame-id-by-position objects (gpt/point new-x new-y))
+ (:frame-id thread))
- changes
- (-> (pcb/empty-changes it)
- (pcb/with-page page)
- (pcb/update-page-option :comment-threads-position assoc thread-id (select-keys thread [:position :frame-id])))]
+ thread (-> thread
+ (assoc :position (gpt/point new-x new-y))
+ (assoc :frame-id frame-id))
+
+ changes (-> (pcb/empty-changes it)
+ (pcb/with-page page)
+ (pcb/set-comment-thread-position thread))]
(rx/merge
(rx/of (dch/commit-changes changes))
@@ -164,25 +163,28 @@
(ptk/reify ::move-frame-comment-threads
ptk/WatchEvent
(watch [_ state _]
- (let [objects (wsh/lookup-page-objects state)
+ (let [page (wsh/lookup-page state)
+ objects (get page :objects)
- is-frame? (fn [id] (= :frame (get-in objects [id :type])))
+ is-frame? (fn [id] (= :frame (get-in objects [id :type])))
frame-ids? (into #{} (filter is-frame?) ids)
- object-modifiers (:workspace-modifiers state)
+ threads-position-map
+ (get page :comment-thread-positions)
- threads-position-map (:comment-threads-position (wsh/lookup-page-options state))
+ object-modifiers
+ (:workspace-modifiers state)
build-move-event
(fn [comment-thread]
- (let [frame (get objects (:frame-id comment-thread))
+ (let [frame (get objects (:frame-id comment-thread))
modifiers (get-in object-modifiers [(:frame-id comment-thread) :modifiers])
- frame' (gsh/transform-shape frame modifiers)
- moved (gpt/to-vec (gpt/point (:x frame) (:y frame))
- (gpt/point (:x frame') (:y frame')))
- position (get-in threads-position-map [(:id comment-thread) :position])
- new-x (+ (:x position) (:x moved))
- new-y (+ (:y position) (:y moved))]
+ frame' (gsh/transform-shape frame modifiers)
+ moved (gpt/to-vec (gpt/point (:x frame) (:y frame))
+ (gpt/point (:x frame') (:y frame')))
+ position (get-in threads-position-map [(:id comment-thread) :position])
+ new-x (+ (:x position) (:x moved))
+ new-y (+ (:y position) (:y moved))]
(update-comment-thread-position comment-thread [new-x new-y] (:id frame))))]
(->> (:comment-threads state)
diff --git a/frontend/src/app/main/data/workspace/fix_bool_contents.cljs b/frontend/src/app/main/data/workspace/fix_bool_contents.cljs
deleted file mode 100644
index 5cb1c493af..0000000000
--- a/frontend/src/app/main/data/workspace/fix_bool_contents.cljs
+++ /dev/null
@@ -1,95 +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.fix-bool-contents
- (:require
- [app.common.data :as d]
- [app.common.geom.shapes :as gsh]
- [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]))
-
-;; This event will update the file so the boolean data has a pre-generated path data
-;; to increase performance.
-;; For new shapes this will be generated in the :reg-objects but we need to do this for
-;; old files.
-
-;; FIXME: Remove me after June 2022
-
-(defn fix-bool-contents
- "This event will calculate the bool content and update the page. This is kind of a 'addhoc' migration
- to fill the optional value 'bool-content'"
- []
-
- (letfn [(should-migrate-shape? [shape]
- (and (= :bool (:type shape)) (not (contains? shape :bool-content))))
-
- (should-migrate-component? [component]
- (->> (:objects component)
- (vals)
- (d/seek should-migrate-shape?)))
-
- (update-shape [shape objects]
- (cond-> shape
- (should-migrate-shape? shape)
- (assoc :bool-content (gsh/calc-bool-content shape objects))))
-
- (migrate-component [component]
- (-> component
- (update
- :objects
- (fn [objects]
- (d/mapm #(update-shape %2 objects) objects)))))
-
- (update-library
- [library]
- (-> library
- (d/update-in-when
- [:data :components]
- (fn [components]
- (d/mapm #(migrate-component %2) components)))))]
-
- (ptk/reify ::fix-bool-contents
- ptk/UpdateEvent
- (update [_ state]
- ;; Update (only-local) the imported libraries
- (-> state
- (d/update-when
- :workspace-libraries
- (fn [libraries] (d/mapm #(update-library %2) libraries)))))
-
- ptk/WatchEvent
- (watch [it state _]
- (let [objects (wsh/lookup-page-objects state)
-
- ids (into #{}
- (comp (filter should-migrate-shape?) (map :id))
- (vals objects))
-
- components (->> (wsh/lookup-local-components state)
- (vals)
- (filter should-migrate-component?))
-
- component-changes
- (into []
- (map (fn [component]
- {:type :mod-component
- :id (:id component)
- :objects (-> component migrate-component :objects)}))
- components)]
-
- (rx/of (dwsh/update-shapes ids #(update-shape % objects) {:reg-objects? false
- :save-undo? false
- :ignore-tree true}))
-
- (if (empty? component-changes)
- (rx/empty)
- (rx/of (dch/commit-changes {:origin it
- :redo-changes component-changes
- :undo-changes []
- :save-undo? false}))))))))
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 f79db68675..75f7c83d2f 100644
--- a/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs
+++ b/frontend/src/app/main/data/workspace/fix_deleted_fonts.cljs
@@ -6,11 +6,9 @@
(ns app.main.data.workspace.fix-deleted-fonts
(:require
- [app.common.data :as d]
[app.common.files.helpers :as cfh]
[app.common.text :as txt]
[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]
@@ -22,14 +20,7 @@
;; - Moving files from one team to another in the same instance
;; - Custom fonts are explicitly deleted in the team area
-(defn has-invalid-font-family
- [node]
- (let [fonts (deref fonts/fontsdb)]
- (and
- (some? (:font-family node))
- (nil? (get fonts (:font-id node))))))
-
-(defn calculate-alternative-font-id
+(defn- calculate-alternative-font-id
[value]
(let [fonts (deref fonts/fontsdb)]
(->> (vals fonts)
@@ -37,39 +28,44 @@
(first)
:id)))
-(defn should-fix-deleted-font-shape?
+(defn- has-invalid-font-family?
+ [node]
+ (let [fonts (deref fonts/fontsdb)
+ font-family (:font-family node)
+ alternative-font-id (calculate-alternative-font-id font-family)]
+ (and (some? font-family)
+ (nil? (get fonts (:font-id node)))
+ (some? alternative-font-id))))
+
+(defn- should-fix-deleted-font-shape?
[shape]
(let [text-nodes (txt/node-seq txt/is-text-node? (:content shape))]
- (and (cfh/text-shape? shape) (some has-invalid-font-family text-nodes))))
+ (and (cfh/text-shape? shape)
+ (some has-invalid-font-family? text-nodes))))
-(defn should-fix-deleted-font-component?
+(defn- should-fix-deleted-font-component?
[component]
- (->> (:objects component)
- (vals)
- (d/seek should-fix-deleted-font-shape?)))
+ (let [xf (comp (map val)
+ (filter should-fix-deleted-font-shape?))]
+ (first (sequence xf (:objects component)))))
-(defn should-fix-deleted-font-typography?
- [typography]
- (let [fonts (deref fonts/fontsdb)]
- (nil? (get fonts (:font-id typography)))))
-
-(defn fix-deleted-font
+(defn- fix-deleted-font
[node]
(let [alternative-font-id (calculate-alternative-font-id (:font-family node))]
(cond-> node
(some? alternative-font-id) (assoc :font-id alternative-font-id))))
-(defn fix-deleted-font-shape
+(defn- fix-deleted-font-shape
[shape]
- (let [transform (partial txt/transform-nodes has-invalid-font-family fix-deleted-font)]
+ (let [transform (partial txt/transform-nodes has-invalid-font-family? fix-deleted-font)]
(update shape :content transform)))
-(defn fix-deleted-font-component
+(defn- fix-deleted-font-component
[component]
(update component
:objects
(fn [objects]
- (d/mapm #(fix-deleted-font-shape %2) objects))))
+ (update-vals objects fix-deleted-font-shape))))
(defn fix-deleted-font-typography
[typography]
@@ -77,54 +73,60 @@
(cond-> typography
(some? alternative-font-id) (assoc :font-id alternative-font-id))))
+(defn- generate-deleted-font-shape-changes
+ [{:keys [objects id]}]
+ (sequence
+ (comp (map val)
+ (filter should-fix-deleted-font-shape?)
+ (map (fn [shape]
+ {:type :mod-obj
+ :id (:id shape)
+ :page-id id
+ :operations [{:type :set
+ :attr :content
+ :val (:content (fix-deleted-font-shape shape))}
+ {:type :set
+ :attr :position-data
+ :val nil}]})))
+ objects))
+
+(defn- generate-deleted-font-components-changes
+ [state]
+ (sequence
+ (comp (map val)
+ (filter should-fix-deleted-font-component?)
+ (map (fn [component]
+ {:type :mod-component
+ :id (:id component)
+ :objects (-> (fix-deleted-font-component component) :objects)})))
+ (wsh/lookup-local-components state)))
+
+(defn- generate-deleted-font-typography-changes
+ [state]
+ (sequence
+ (comp (map val)
+ (filter has-invalid-font-family?)
+ (map (fn [typography]
+ {:type :mod-typography
+ :typography (fix-deleted-font-typography typography)})))
+ (get-in state [:workspace-data :typographies])))
+
(defn fix-deleted-fonts
[]
(ptk/reify ::fix-deleted-fonts
ptk/WatchEvent
(watch [it state _]
- (let [objects (wsh/lookup-page-objects state)
-
- ids (into #{}
- (comp (filter should-fix-deleted-font-shape?) (map :id))
- (vals objects))
-
- components (->> (wsh/lookup-local-components state)
- (vals)
- (filter should-fix-deleted-font-component?))
-
- component-changes
- (into []
- (map (fn [component]
- {:type :mod-component
- :id (:id component)
- :objects (-> (fix-deleted-font-component component) :objects)}))
- components)
-
- typographies (->> (get-in state [:workspace-data :typographies])
- (vals)
- (filter should-fix-deleted-font-typography?))
-
- typography-changes
- (into []
- (map (fn [typography]
- {:type :mod-typography
- :typography (fix-deleted-font-typography typography)}))
- typographies)]
-
- (rx/concat
- (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 (dwc/commit-changes {:origin it
- :redo-changes component-changes
- :undo-changes []
- :save-undo? false})))
-
- (if (empty? typography-changes)
- (rx/empty)
- (rx/of (dwc/commit-changes {:origin it
- :redo-changes typography-changes
- :undo-changes []
- :save-undo? false}))))))))
+ (let [data (get state :workspace-data)
+ shape-changes (mapcat generate-deleted-font-shape-changes (vals (:pages-index data)))
+ components-changes (generate-deleted-font-components-changes state)
+ typography-changes (generate-deleted-font-typography-changes state)
+ changes (concat shape-changes
+ components-changes
+ typography-changes)]
+ (if (seq changes)
+ (rx/of (dwc/commit-changes
+ {:origin it
+ :redo-changes (vec changes)
+ :undo-changes []
+ :save-undo? false}))
+ (rx/empty))))))
diff --git a/frontend/src/app/main/data/workspace/grid.cljs b/frontend/src/app/main/data/workspace/grid.cljs
index beaff9e61b..3187c925bf 100644
--- a/frontend/src/app/main/data/workspace/grid.cljs
+++ b/frontend/src/app/main/data/workspace/grid.cljs
@@ -6,10 +6,10 @@
(ns app.main.data.workspace.grid
(:require
- [app.common.colors :as clr]
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.files.changes-builder :as pcb]
+ [app.common.types.grid :as ctg]
[app.main.data.changes :as dch]
[app.main.data.workspace.shapes :as dwsh]
[app.main.data.workspace.state-helpers :as wsh]
@@ -20,25 +20,6 @@
;; Grid
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defonce ^:private default-square-params
- {:size 16
- :color {:color clr/info
- :opacity 0.4}})
-
-(defonce ^:private default-layout-params
- {:size 12
- :type :stretch
- :item-length nil
- :gutter 8
- :margin 0
- :color {:color clr/default-layout
- :opacity 0.1}})
-
-(defonce default-grid-params
- {:square default-square-params
- :column default-layout-params
- :row default-layout-params})
-
(defn add-frame-grid
[frame-id]
(dm/assert! (uuid? frame-id))
@@ -46,9 +27,9 @@
ptk/WatchEvent
(watch [_ state _]
(let [page-id (:current-page-id state)
- data (get-in state [:workspace-data :pages-index page-id])
- params (or (get-in data [:options :saved-grids :square])
- (:square default-grid-params))
+ page (dm/get-in state [:workspace-data :pages-index page-id])
+ params (or (dm/get-in page [:default-grids :square])
+ (:square ctg/default-grid-params))
grid {:type :square
:params params
:display true}]
@@ -79,4 +60,4 @@
(rx/of (dch/commit-changes
(-> (pcb/empty-changes it)
(pcb/with-page page)
- (pcb/set-page-option [:saved-grids type] params))))))))
+ (pcb/set-default-grid type params))))))))
diff --git a/frontend/src/app/main/data/workspace/guides.cljs b/frontend/src/app/main/data/workspace/guides.cljs
index 4e2895bb20..6547d57723 100644
--- a/frontend/src/app/main/data/workspace/guides.cljs
+++ b/frontend/src/app/main/data/workspace/guides.cljs
@@ -17,18 +17,12 @@
[beicon.v2.core :as rx]
[potok.v2.core :as ptk]))
-(defn make-update-guide
- [guide]
- (fn [other]
- (cond-> other
- (= (:id other) (:id guide))
- (merge guide))))
-
(defn update-guides
- [guide]
+ [{:keys [id] :as guide}]
+
(dm/assert!
"expected valid guide"
- (ctp/check-page-guide! guide))
+ (ctp/valid-guide? guide))
(ptk/reify ::update-guides
ev/Event
@@ -41,14 +35,15 @@
changes
(-> (pcb/empty-changes it)
(pcb/with-page page)
- (pcb/update-page-option :guides assoc (:id guide) guide))]
+ (pcb/set-guide id guide))]
(rx/of (dwc/commit-changes changes))))))
(defn remove-guide
- [guide]
+ [{:keys [id] :as guide}]
+
(dm/assert!
"expected valid guide"
- (ctp/check-page-guide! guide))
+ (ctp/valid-guide? guide))
(ptk/reify ::remove-guide
ev/Event
@@ -57,7 +52,7 @@
ptk/UpdateEvent
(update [_ state]
(let [sdisj (fnil disj #{})]
- (update-in state [:workspace-guides :hover] sdisj (:id guide))))
+ (update-in state [:workspace-guides :hover] sdisj id)))
ptk/WatchEvent
(watch [it state _]
@@ -65,18 +60,22 @@
changes
(-> (pcb/empty-changes it)
(pcb/with-page page)
- (pcb/update-page-option :guides dissoc (:id guide)))]
+ (pcb/set-guide id nil))]
(rx/of (dwc/commit-changes changes))))))
(defn remove-guides
[ids]
+
+ (dm/assert!
+ "expected a set of ids"
+ (every? uuid? ids))
+
(ptk/reify ::remove-guides
ptk/WatchEvent
(watch [_ state _]
- (let [page (wsh/lookup-page state)
- guides (get-in page [:options :guides] {})
+ (let [{:keys [guides] :as page} (wsh/lookup-page state)
guides (-> (select-keys guides ids) (vals))]
- (rx/from (->> guides (mapv #(remove-guide %))))))))
+ (rx/from (mapv remove-guide guides))))))
(defmethod ptk/resolve ::move-frame-guides
[_ args]
@@ -105,7 +104,7 @@
guide (update guide :position + (get moved (:axis guide)))]
(update-guides guide)))
- guides (-> state wsh/lookup-page-options :guides vals)]
+ guides (-> state wsh/lookup-page :guides vals)]
(->> guides
(filter (comp frame-ids? :frame-id))
diff --git a/frontend/src/app/main/data/workspace/interactions.cljs b/frontend/src/app/main/data/workspace/interactions.cljs
index 2fb10ada82..e8dfd12537 100644
--- a/frontend/src/app/main/data/workspace/interactions.cljs
+++ b/frontend/src/app/main/data/workspace/interactions.cljs
@@ -43,18 +43,20 @@
(wsh/lookup-page state page-id)
(wsh/lookup-page state))
- flows (get-in page [:options :flows] [])
- unames (cfh/get-used-names flows)
+ flows (get page :flows)
+ unames (cfh/get-used-names (vals flows))
name (or name (cfh/generate-unique-name unames "Flow 1"))
- new-flow {:id (or flow-id (uuid/next))
- :name name
- :starting-frame starting-frame}]
+ flow-id (or flow-id (uuid/next))
+
+ flow {:id flow-id
+ :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)))))))))
+ (pcb/set-flow flow-id flow)))))))))
(defn add-flow-selected-frame
[]
@@ -79,35 +81,40 @@
(rx/of (dch/commit-changes
(-> (pcb/empty-changes it)
(pcb/with-page page)
- (pcb/update-page-option :flows ctp/remove-flow flow-id)))))))))
+ (pcb/set-flow flow-id nil)))))))))
(defn update-flow
[page-id flow-id update-fn]
- (dm/assert! (uuid? flow-id))
+
+ (assert (uuid? flow-id) "expect valid flow-id")
+ (assert (uuid? page-id) "expect valid page-id")
+
(ptk/reify ::update-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/update-flow flow-id update-fn))))))))
+ (wsh/lookup-page state))
+ flow (dm/get-in page [:flows flow-id])
+ flow (some-> flow update-fn)]
+
+ (when (some? flow)
+ (rx/of (dch/commit-changes
+ (-> (pcb/empty-changes it)
+ (pcb/with-page page)
+ (pcb/set-flow flow-id flow)))))))))
(defn rename-flow
[flow-id name]
- (dm/assert! (uuid? flow-id))
- (dm/assert! (string? name))
+
+ (assert (uuid? flow-id) "expected valid flow-id")
+ (assert (string? name) "expected valid name")
+
(ptk/reify ::rename-flow
ptk/WatchEvent
- (watch [it state _]
+ (watch [_ state _]
(let [page (wsh/lookup-page state)]
- (rx/of (dch/commit-changes
- (-> (pcb/empty-changes it)
- (pcb/with-page page)
- (pcb/update-page-option :flows ctp/update-flow flow-id
- #(ctp/rename-flow % name)))))))))
+ (rx/of (update-flow (:id page) flow-id #(assoc % :name name)))))))
(defn start-rename-flow
[id]
@@ -140,11 +147,15 @@
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}))))))
+ (rx/of (dwsh/update-shapes [shape-id]
+ (fn [shape]
+ (cls/add-new-interaction shape interaction))
+ {:page-id page-id})
+
+ (when (:destination interaction)
+ (dwsh/update-shapes [(:destination interaction)]
+ cls/show-in-viewer
+ {:page-id page-id})))))))
(defn add-new-interaction
([shape] (add-new-interaction shape nil))
@@ -153,24 +164,27 @@
ptk/WatchEvent
(watch [_ state _]
(let [page-id (:current-page-id state)
- objects (wsh/lookup-page-objects state page-id)
+ page (wsh/lookup-page state page-id)
+ objects (get page :objects)
frame (cfh/get-root-frame objects (:id shape))
- flows (get-in state [:workspace-data
- :pages-index
- page-id
- :options
- :flows] [])
+
+ flows (get page :objects)
flow (ctp/get-frame-flow flows (:id frame))]
(rx/concat
- (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)))]
- (cls/add-new-interaction shape new-interaction)))))
- (when (and (not (connected-frame? objects (:id frame)))
- (nil? flow))
- (rx/of (add-flow (:id frame))))))))))
+ (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)))]
+ (cls/add-new-interaction shape new-interaction))))
+
+ (when destination
+ (dwsh/update-shapes [destination] cls/show-in-viewer))
+
+ (when (and (not (connected-frame? objects (:id frame)))
+ (nil? flow))
+ (add-flow (:id frame))))))))))
(defn remove-interaction
([shape index]
@@ -181,8 +195,7 @@
(watch [_ _ _]
(rx/of (dwsh/update-shapes [(:id shape)]
(fn [shape]
- (update shape :interactions
- ctsi/remove-interaction index))
+ (update shape :interactions ctsi/remove-interaction index))
{:page-id page-id}))))))
(defn update-interaction
([shape index update-fn]
@@ -191,11 +204,16 @@
(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))))))
+ (let [interactions (ctsi/update-interaction (:interactions shape) index update-fn)
+ interaction (nth interactions index)]
+ (rx/of (dwsh/update-shapes
+ [(:id shape)]
+ (fn [shape]
+ (assoc shape :interactions interactions))
+ options)
+
+ (when (some? (:destination interaction))
+ (dwsh/update-shapes [(:destination interaction)] cls/show-in-viewer options))))))))
(defn remove-all-interactions-nav-to
"Remove all interactions that navigate to the given frame."
diff --git a/frontend/src/app/main/data/workspace/layout.cljs b/frontend/src/app/main/data/workspace/layout.cljs
index 85a10efffe..1fb219863a 100644
--- a/frontend/src/app/main/data/workspace/layout.cljs
+++ b/frontend/src/app/main/data/workspace/layout.cljs
@@ -10,7 +10,7 @@
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.main.data.events :as ev]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[clojure.set :as set]
[potok.v2.core :as ptk]))
@@ -148,7 +148,7 @@
stored in Storage."
[layout]
(reduce (fn [layout [flag key]]
- (condp = (get @storage key ::none)
+ (condp = (get storage/user key ::none)
::none layout
false (disj layout flag)
true (conj layout flag)))
@@ -159,7 +159,7 @@
"Given a set of layout flags, and persist a subset of them to the Storage."
[layout]
(doseq [[flag key] layout-flags-persistence-mapping]
- (swap! storage assoc key (contains? layout flag))))
+ (swap! storage/user assoc key (contains? layout flag))))
(def layout-state-persistence-mapping
"A mapping of keys that need to be persisted from `:workspace-global` into Storage."
@@ -171,7 +171,7 @@
props that are previously persisted in the Storage."
[state]
(reduce (fn [state [key skey]]
- (let [val (get @storage skey ::none)]
+ (let [val (get storage/user skey ::none)]
(if (= val ::none)
state
(assoc state key val))))
@@ -185,7 +185,7 @@
(doseq [[key skey] layout-state-persistence-mapping]
(let [val (get state key ::does-not-exist)]
(if (= val ::does-not-exist)
- (swap! storage dissoc skey)
- (swap! storage assoc skey val)))))
+ (swap! storage/user dissoc skey)
+ (swap! storage/user assoc skey val)))))
diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs
index 6d7aafc569..9cdca59294 100644
--- a/frontend/src/app/main/data/workspace/libraries.cljs
+++ b/frontend/src/app/main/data/workspace/libraries.cljs
@@ -28,8 +28,8 @@
[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.notifications :as ntf]
[app.main.data.workspace :as-alias dw]
[app.main.data.workspace.groups :as dwg]
[app.main.data.workspace.notifications :as-alias dwn]
@@ -48,6 +48,7 @@
[app.util.color :as uc]
[app.util.i18n :refer [tr]]
[app.util.router :as rt]
+ [app.util.storage :as storage]
[app.util.time :as dt]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
@@ -115,8 +116,13 @@
(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)
+ (uc/gradient-type->string (get-in color [:gradient :type]))))
+ (d/without-nils))]
+
+ (dm/assert!
+ "expect valid color structure"
+ (ctc/check-color! color))
+
(ptk/reify ::add-color
ev/Event
(-data [_] color)
@@ -132,16 +138,21 @@
(defn add-recent-color
[color]
+
(dm/assert!
- "expected valid recent color map"
+ "expected valid recent color structure"
(ctc/check-recent-color! color))
(ptk/reify ::add-recent-color
- ptk/WatchEvent
- (watch [it _ _]
- (let [changes (-> (pcb/empty-changes it)
- (pcb/add-recent-color color))]
- (rx/of (dch/commit-changes changes))))))
+ ptk/UpdateEvent
+ (update [_ state]
+ (let [file-id (:current-file-id state)]
+ (update state :recent-colors ctc/add-recent-color file-id color)))
+
+ ptk/EffectEvent
+ (effect [_ state _]
+ (let [recent-colors (:recent-colors state)]
+ (swap! storage/user assoc :recent-colors recent-colors)))))
(def clear-color-for-rename
(ptk/reify ::clear-color-for-rename
@@ -149,7 +160,7 @@
(update [_ state]
(assoc-in state [:workspace-local :color-for-rename] nil))))
-(defn- do-update-color
+(defn- update-color*
[it state color file-id]
(let [data (get state :workspace-data)
[path name] (cfh/parse-path-name (:name color))
@@ -165,22 +176,34 @@
(defn update-color
[color file-id]
+ (let [color (d/without-nils color)]
- (dm/assert!
- "expected valid parameters"
- (and (ctc/check-color! color)
- (uuid? file-id)))
+ (dm/assert!
+ "expected valid color data structure"
+ (ctc/check-color! color))
- (ptk/reify ::update-color
- ptk/WatchEvent
- (watch [it state _]
- (do-update-color it state color file-id))))
+ (dm/assert!
+ "expected file-id"
+ (uuid? file-id))
+
+ (ptk/reify ::update-color
+ ptk/WatchEvent
+ (watch [it state _]
+ (update-color* it state color file-id)))))
(defn rename-color
[file-id id new-name]
- (dm/verify! (uuid? file-id))
- (dm/verify! (uuid? id))
- (dm/verify! (string? new-name))
+ (dm/assert!
+ "expected valid uuid for `id`"
+ (uuid? id))
+
+ (dm/assert!
+ "expected valid uuid for `file-id`"
+ (uuid? file-id))
+
+ (dm/assert!
+ "expected valid string for `new-name`"
+ (string? new-name))
(ptk/reify ::rename-color
ptk/WatchEvent
@@ -189,9 +212,10 @@
(if (str/empty? new-name)
(rx/empty)
(let [data (get state :workspace-data)
- object (get-in data [:colors id])
- object (assoc object :name new-name)]
- (do-update-color it state object file-id)))))))
+ color (get-in data [:colors id])
+ color (assoc color :name new-name)
+ color (d/without-nils color)]
+ (update-color* it state color file-id)))))))
(defn delete-color
[{:keys [id] :as params}]
@@ -227,8 +251,15 @@
(defn rename-media
[id new-name]
- (dm/verify! (uuid? id))
- (dm/verify! (string? new-name))
+
+ (dm/assert!
+ "expected valid uuid for `id`"
+ (uuid? id))
+
+ (dm/assert!
+ "expected valid string for `new-name`"
+ (string? new-name))
+
(ptk/reify ::rename-media
ptk/WatchEvent
(watch [it state _]
@@ -245,8 +276,11 @@
(rx/of (dch/commit-changes changes))))))))
(defn delete-media
- [{:keys [id] :as params}]
- (dm/assert! (uuid? id))
+ [{:keys [id]}]
+ (dm/assert!
+ "expected valid uuid for `id`"
+ (uuid? id))
+
(ptk/reify ::delete-media
ev/Event
(-data [_] {:id id})
@@ -419,8 +453,14 @@
(defn rename-component
"Rename the component with the given id, in the current file library."
[id new-name]
- (dm/verify! (uuid? id))
- (dm/verify! (string? new-name))
+ (dm/assert!
+ "expected an uuid instance"
+ (uuid? id))
+
+ (dm/assert!
+ "expected string for new-name"
+ (string? new-name))
+
(ptk/reify ::rename-component
ptk/WatchEvent
(watch [it state _]
@@ -471,8 +511,11 @@
(defn delete-component
"Delete the component with the given id, from the current file library."
- [{:keys [id] :as params}]
- (dm/assert! (uuid? id))
+ [{:keys [id]}]
+ (dm/assert!
+ "expected valid uuid for `id`"
+ (uuid? id))
+
(ptk/reify ::delete-component
ptk/WatchEvent
(watch [it state _]
@@ -666,8 +709,15 @@
(defn ext-library-changed
[library-id modified-at revn changes]
- (dm/assert! (uuid? library-id))
- (dm/assert! (ch/check-changes! changes))
+
+ (dm/assert!
+ "expected valid uuid for library-id"
+ (uuid? library-id))
+
+ (dm/assert!
+ "expected valid changes vector"
+ (ch/check-changes! changes))
+
(ptk/reify ::ext-library-changed
ptk/UpdateEvent
(update [_ state]
@@ -1016,7 +1066,7 @@
file))
(rx/concat
(rx/of (set-updating-library false)
- (msg/hide-tag :sync-dialog))
+ (ntf/hide {:tag :sync-dialog}))
(when (seq (:redo-changes changes))
(rx/of (dch/commit-changes changes)))
(when-not (empty? updated-frames)
@@ -1084,12 +1134,12 @@
(sync-file (:current-file-id state)
(:id library)))
libraries-need-sync))
- (st/emit! msg/hide))
+ (st/emit! (ntf/hide)))
do-dismiss #(do (st/emit! ignore-sync)
- (st/emit! msg/hide))]
+ (st/emit! (ntf/hide)))]
(when (seq libraries-need-sync)
- (rx/of (msg/info-dialog
+ (rx/of (ntf/dialog
:content (tr "workspace.updates.there-are-updates")
:controls :inline-actions
:links [{:label (tr "workspace.updates.more-info")
@@ -1106,7 +1156,9 @@
(defn touch-component
"Update the modified-at attribute of the component to now"
[id]
- (dm/verify! (uuid? id))
+ (dm/assert!
+ "expected valid uuid for `id`"
+ (uuid? id))
(ptk/reify ::touch-component
cljs.core/IDeref
(-deref [_] [id])
diff --git a/frontend/src/app/main/data/workspace/media.cljs b/frontend/src/app/main/data/workspace/media.cljs
index b3f5d48ec6..a75012717f 100644
--- a/frontend/src/app/main/data/workspace/media.cljs
+++ b/frontend/src/app/main/data/workspace/media.cljs
@@ -22,7 +22,7 @@
[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.notifications :as ntf]
[app.main.data.workspace.libraries :as dwl]
[app.main.data.workspace.shapes :as dwsh]
[app.main.data.workspace.state-helpers :as wsh]
@@ -169,25 +169,25 @@
(handle-media-error (ex-data error) on-error)
(cond
(= (:code error) :invalid-svg-file)
- (rx/of (msg/error (tr "errors.media-type-not-allowed")))
+ (rx/of (ntf/error (tr "errors.media-type-not-allowed")))
(= (:code error) :media-type-not-allowed)
- (rx/of (msg/error (tr "errors.media-type-not-allowed")))
+ (rx/of (ntf/error (tr "errors.media-type-not-allowed")))
(= (:code error) :unable-to-access-to-url)
- (rx/of (msg/error (tr "errors.media-type-not-allowed")))
+ (rx/of (ntf/error (tr "errors.media-type-not-allowed")))
(= (:code error) :invalid-image)
- (rx/of (msg/error (tr "errors.media-type-not-allowed")))
+ (rx/of (ntf/error (tr "errors.media-type-not-allowed")))
(= (:code error) :media-max-file-size-reached)
- (rx/of (msg/error (tr "errors.media-too-large")))
+ (rx/of (ntf/error (tr "errors.media-too-large")))
(= (:code error) :media-type-mismatch)
- (rx/of (msg/error (tr "errors.media-type-mismatch")))
+ (rx/of (ntf/error (tr "errors.media-type-mismatch")))
(= (:code error) :unable-to-optimize)
- (rx/of (msg/error (:hint error)))
+ (rx/of (ntf/error (:hint error)))
(fn? on-error)
(on-error error)
@@ -195,19 +195,18 @@
:else
(do
(.error js/console "ERROR" error)
- (rx/of (msg/error (tr "errors.cannot-upload")))))))
+ (rx/of (ntf/error (tr "errors.cannot-upload")))))))
(def ^:private
schema:process-media-objects
- (sm/define
- [:map {:title "process-media-objects"}
- [:file-id ::sm/uuid]
- [:local? :boolean]
- [:name {:optional true} :string]
- [:data {:optional true} :any] ; FIXME
- [:uris {:optional true} [:sequential :string]]
- [:mtype {:optional true} :string]]))
+ [:map {:title "process-media-objects"}
+ [:file-id ::sm/uuid]
+ [:local? :boolean]
+ [:name {:optional true} :string]
+ [:data {:optional true} :any] ; FIXME
+ [:uris {:optional true} [:sequential :string]]
+ [:mtype {:optional true} :string]])
(defn- process-media-objects
[{:keys [uris on-error] :as params}]
@@ -220,9 +219,9 @@
ptk/WatchEvent
(watch [_ _ _]
(rx/concat
- (rx/of (msg/show {:content (tr "media.loading")
- :notification-type :toast
- :type :info
+ (rx/of (ntf/show {:content (tr "media.loading")
+ :type :toast
+ :level :info
:timeout nil
:tag :media-loading}))
(->> (if (seq uris)
@@ -234,7 +233,7 @@
;; Every stream has its own sideeffect. We need to ignore the result
(rx/ignore)
(rx/catch #(handle-media-error % on-error))
- (rx/finalize #(st/emit! (msg/hide-tag :media-loading))))))))
+ (rx/finalize #(st/emit! (ntf/hide :tag :media-loading))))))))
;; Deprecated in components-v2
(defn upload-media-asset
@@ -254,8 +253,6 @@
:on-svg #(st/emit! (svg-uploaded % file-id position)))]
(process-media-objects params)))
-
-
(defn upload-fill-image
[file on-success]
(dm/assert!
@@ -429,10 +426,9 @@
(def ^:private
schema:clone-media-object
- (sm/define
- [:map {:title "clone-media-object"}
- [:file-id ::sm/uuid]
- [:object-id ::sm/uuid]]))
+ [:map {:title "clone-media-object"}
+ [:file-id ::sm/uuid]
+ [:object-id ::sm/uuid]])
(defn clone-media-object
[{:keys [file-id object-id] :as params}]
@@ -450,15 +446,15 @@
:id object-id}]
(rx/concat
- (rx/of (msg/show {:content (tr "media.loading")
- :notification-type :toast
- :type :info
+ (rx/of (ntf/show {:content (tr "media.loading")
+ :type :toast
+ :level :info
:timeout nil
:tag :media-loading}))
(->> (rp/cmd! :clone-file-media-object params)
(rx/tap on-success)
(rx/catch on-error)
- (rx/finalize #(st/emit! (msg/hide-tag :media-loading)))))))))
+ (rx/finalize #(st/emit! (ntf/hide :tag :media-loading)))))))))
(defn create-svg-shape
[id name svg-string position]
diff --git a/frontend/src/app/main/data/workspace/notifications.cljs b/frontend/src/app/main/data/workspace/notifications.cljs
index 932e9ccfac..e602618e19 100644
--- a/frontend/src/app/main/data/workspace/notifications.cljs
+++ b/frontend/src/app/main/data/workspace/notifications.cljs
@@ -24,6 +24,8 @@
[clojure.set :as set]
[potok.v2.core :as ptk]))
+;; FIXME: this ns should be renamed to something different
+
(declare process-message)
(declare handle-presence)
(declare handle-pointer-update)
@@ -196,21 +198,23 @@
(def ^:private
schema:handle-file-change
- (sm/define
- [:map {:title "handle-file-change"}
- [:type :keyword]
- [:profile-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:session-id ::sm/uuid]
- [:revn :int]
- [:changes ::cpc/changes]]))
+ [:map {:title "handle-file-change"}
+ [:type :keyword]
+ [:profile-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:session-id ::sm/uuid]
+ [:revn :int]
+ [:changes ::cpc/changes]])
+
+(def ^:private check-file-change-params!
+ (sm/check-fn schema:handle-file-change))
(defn handle-file-change
[{:keys [file-id changes revn] :as msg}]
(dm/assert!
"expected valid parameters"
- (sm/check! schema:handle-file-change msg))
+ (check-file-change-params! msg))
(ptk/reify ::handle-file-change
IDeref
@@ -228,23 +232,24 @@
:redo-changes (vec changes)
:undo-changes []})))))
-(def ^:private
- schema:handle-library-change
- (sm/define
- [:map {:title "handle-library-change"}
- [:type :keyword]
- [:profile-id ::sm/uuid]
- [:file-id ::sm/uuid]
- [:session-id ::sm/uuid]
- [:revn :int]
- [:modified-at ::sm/inst]
- [:changes ::cpc/changes]]))
+(def ^:private schema:handle-library-change
+ [:map {:title "handle-library-change"}
+ [:type :keyword]
+ [:profile-id ::sm/uuid]
+ [:file-id ::sm/uuid]
+ [:session-id ::sm/uuid]
+ [:revn :int]
+ [:modified-at ::sm/inst]
+ [:changes ::cpc/changes]])
+
+(def ^:private check-library-change-params!
+ (sm/check-fn schema:handle-library-change))
(defn handle-library-change
[{:keys [file-id modified-at changes revn] :as msg}]
(dm/assert!
"expected valid arguments"
- (sm/check! schema:handle-library-change msg))
+ (check-library-change-params! msg))
(ptk/reify ::handle-library-change
ptk/WatchEvent
diff --git a/frontend/src/app/main/data/workspace/path/common.cljs b/frontend/src/app/main/data/workspace/path/common.cljs
index 8edd06ffe6..483302177f 100644
--- a/frontend/src/app/main/data/workspace/path/common.cljs
+++ b/frontend/src/app/main/data/workspace/path/common.cljs
@@ -27,20 +27,19 @@
(def ^:private
schema:path-content
- (sm/define
- [:vector {:title "PathContent"}
- [:map {:title "PathContentEntry"}
- [:command [::sm/one-of valid-commands]]
- ;; FIXME: remove the `?` from prop name
- [:relative? {:optional true} :boolean]
- [:params {:optional true}
- [:map {:title "PathContentEntryParams"}
- [:x :double]
- [:y :double]
- [:c1x {:optional true} :double]
- [:c1y {:optional true} :double]
- [:c2x {:optional true} :double]
- [:c2y {:optional true} :double]]]]]))
+ [:vector {:title "PathContent"}
+ [:map {:title "PathContentEntry"}
+ [:command [::sm/one-of valid-commands]]
+ ;; FIXME: remove the `?` from prop name
+ [:relative? {:optional true} :boolean]
+ [:params {:optional true}
+ [:map {:title "PathContentEntryParams"}
+ [:x :double]
+ [:y :double]
+ [:c1x {:optional true} :double]
+ [:c1y {:optional true} :double]
+ [:c2x {:optional true} :double]
+ [:c2y {:optional true} :double]]]]])
(def check-path-content!
(sm/check-fn schema:path-content))
diff --git a/frontend/src/app/main/data/workspace/path/edition.cljs b/frontend/src/app/main/data/workspace/path/edition.cljs
index a91532b0ad..36af8c5938 100644
--- a/frontend/src/app/main/data/workspace/path/edition.cljs
+++ b/frontend/src/app/main/data/workspace/path/edition.cljs
@@ -160,7 +160,7 @@
selected-points (dm/get-in state [:workspace-local :edit-path id :selected-points] #{})
- start-position (apply min #(gpt/distance start-position %) selected-points)
+ start-position (apply min-key #(gpt/distance start-position %) selected-points)
content (st/get-path state :content)
points (upg/content->points content)]
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 d6367aefd0..e916aec627 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
@@ -15,24 +15,27 @@
[beicon.v2.core :as rx]
[potok.v2.core :as ptk]))
-(defn convert-selected-to-path []
- (ptk/reify ::convert-selected-to-path
- ptk/WatchEvent
- (watch [it state _]
- (let [page-id (:current-page-id state)
- objects (wsh/lookup-page-objects state)
- selected (->> (wsh/lookup-selected state)
- (remove #(ctn/has-any-copy-parent? objects (get objects %))))
+(defn convert-selected-to-path
+ ([]
+ (convert-selected-to-path nil))
+ ([ids]
+ (ptk/reify ::convert-selected-to-path
+ ptk/WatchEvent
+ (watch [it state _]
+ (let [page-id (:current-page-id state)
+ objects (wsh/lookup-page-objects state)
+ selected (->> (or ids (wsh/lookup-selected state))
+ (remove #(ctn/has-any-copy-parent? objects (get objects %))))
- children-ids
- (into #{}
- (mapcat #(cph/get-children-ids objects %))
- selected)
+ children-ids
+ (into #{}
+ (mapcat #(cph/get-children-ids objects %))
+ selected)
- changes
- (-> (pcb/empty-changes it page-id)
- (pcb/with-objects objects)
- (pcb/update-shapes selected #(upsp/convert-to-path % objects))
- (pcb/remove-objects children-ids))]
+ changes
+ (-> (pcb/empty-changes it page-id)
+ (pcb/with-objects objects)
+ (pcb/update-shapes selected #(upsp/convert-to-path % objects))
+ (pcb/remove-objects children-ids))]
- (rx/of (dch/commit-changes changes))))))
+ (rx/of (dch/commit-changes changes)))))))
diff --git a/frontend/src/app/main/data/workspace/shapes.cljs b/frontend/src/app/main/data/workspace/shapes.cljs
index fecb3f8e02..734d0488c1 100644
--- a/frontend/src/app/main/data/workspace/shapes.cljs
+++ b/frontend/src/app/main/data/workspace/shapes.cljs
@@ -98,8 +98,8 @@
(add-shape shape {}))
([shape {:keys [no-select? no-update-layout?]}]
- (dm/verify!
- "expected a valid shape"
+ (dm/assert!
+ "expected valid shape"
(cts/check-shape! shape))
(ptk/reify ::add-shape
diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs
index 87346de670..fd045067a4 100644
--- a/frontend/src/app/main/data/workspace/shortcuts.cljs
+++ b/frontend/src/app/main/data/workspace/shortcuts.cljs
@@ -6,9 +6,11 @@
(ns app.main.data.workspace.shortcuts
(:require
+ [app.common.data.macros :as dm]
[app.main.data.events :as ev]
[app.main.data.exports :as de]
[app.main.data.modal :as modal]
+ [app.main.data.plugins :as dpl]
[app.main.data.preview :as dp]
[app.main.data.shortcuts :as ds]
[app.main.data.users :as du]
@@ -28,6 +30,7 @@
[app.main.store :as st]
[app.main.ui.hooks.resize :as r]
[app.util.dom :as dom]
+ [beicon.v2.core :as rx]
[potok.v2.core :as ptk]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -44,6 +47,17 @@
(when-not (deref refs/workspace-read-only?)
(run! st/emit! events)))
+(def esc-pressed
+ (ptk/reify ::esc-pressed
+ ptk/WatchEvent
+ (watch [_ state _]
+ (rx/of
+ :interrupt
+ (let [selection (dm/get-in state [:workspace-local :selected])]
+ (if (empty? selection)
+ (dpl/close-current-plugin)
+ (dw/deselect-all true)))))))
+
;; Shortcuts format https://github.com/ccampbell/mousetrap
(def base-shortcuts
@@ -111,7 +125,7 @@
:escape {:tooltip (ds/esc)
:command "escape"
:subsections [:edit]
- :fn #(st/emit! :interrupt (dw/deselect-all true))}
+ :fn #(st/emit! esc-pressed)}
;; MODIFY LAYERS
@@ -397,7 +411,7 @@
:command (ds/c-mod "shift+e")
:subsections [:basics :main-menu]
:fn #(st/emit!
- (de/show-workspace-export-dialog))}
+ (de/show-workspace-export-dialog {:origin "workspace:shortcuts"}))}
:toggle-snap-ruler-guide {:tooltip (ds/meta-shift "G")
:command (ds/c-mod "shift+g")
diff --git a/frontend/src/app/main/data/workspace/state_helpers.cljs b/frontend/src/app/main/data/workspace/state_helpers.cljs
index 7249a1f3fd..6c55e9da8c 100644
--- a/frontend/src/app/main/data/workspace/state_helpers.cljs
+++ b/frontend/src/app/main/data/workspace/state_helpers.cljs
@@ -20,15 +20,12 @@
([state page-id]
(get-in state [:workspace-data :pages-index page-id])))
-(defn lookup-data-objects
- [data page-id]
- (dm/get-in data [:pages-index page-id :objects]))
-
(defn lookup-page-objects
([state]
(lookup-page-objects state (:current-page-id state)))
([state page-id]
- (dm/get-in state [:workspace-data :pages-index page-id :objects])))
+ (-> (lookup-page state page-id)
+ (get :objects))))
(defn lookup-viewer-objects
([state page-id]
@@ -45,12 +42,6 @@
(lookup-page-objects state page-id)
(lookup-library-objects state file-id page-id))))
-(defn lookup-page-options
- ([state]
- (lookup-page-options state (:current-page-id state)))
- ([state page-id]
- (dm/get-in state [:workspace-data :pages-index page-id :options])))
-
(defn lookup-local-components
([state]
(dm/get-in state [:workspace-data :components])))
diff --git a/frontend/src/app/main/data/workspace/svg_upload.cljs b/frontend/src/app/main/data/workspace/svg_upload.cljs
index 169e2dd3ed..6f04e7c668 100644
--- a/frontend/src/app/main/data/workspace/svg_upload.cljs
+++ b/frontend/src/app/main/data/workspace/svg_upload.cljs
@@ -73,7 +73,6 @@
(let [id (d/nilv id (uuid/next))
page-id (:current-page-id state)
objects (wsh/lookup-page-objects state page-id)
- frame-id (ctst/top-nested-frame objects position)
selected (if ignore-selection? #{} (wsh/lookup-selected state))
base (cfh/get-base-shape objects selected)
@@ -81,9 +80,16 @@
selected-frame? (and (= 1 (count selected))
(= :frame (dm/get-in objects [selected-id :type])))
+ base-id (:parent-id base)
+
+ frame-id (if (or selected-frame? (empty? selected)
+ (not= :frame (dm/get-in objects [base-id :type])))
+ (ctst/top-nested-frame objects position)
+ base-id)
+
parent-id (if (or selected-frame? (empty? selected))
frame-id
- (:parent-id base))
+ base-id)
[new-shape new-children]
(csvg.shapes-builder/create-svg-shapes id svg-data position objects frame-id parent-id selected true)
diff --git a/frontend/src/app/main/data/workspace/texts.cljs b/frontend/src/app/main/data/workspace/texts.cljs
index 4d9785b672..898c22e3c1 100644
--- a/frontend/src/app/main/data/workspace/texts.cljs
+++ b/frontend/src/app/main/data/workspace/texts.cljs
@@ -6,6 +6,7 @@
(ns app.main.data.workspace.texts
(:require
+ ["penpot/vendor/text-editor-v2" :as editor.v2]
[app.common.attrs :as attrs]
[app.common.data :as d]
[app.common.data.macros :as dm]
@@ -24,14 +25,26 @@
[app.main.data.workspace.shapes :as dwsh]
[app.main.data.workspace.state-helpers :as wsh]
[app.main.data.workspace.undo :as dwu]
+ [app.main.features :as features]
[app.main.fonts :as fonts]
[app.util.router :as rt]
[app.util.text-editor :as ted]
+ [app.util.text.content.styles :as styles]
[app.util.timers :as ts]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
[potok.v2.core :as ptk]))
+;; -- V2 Editor Helpers
+
+(def ^function create-editor editor.v2/create)
+(def ^function set-editor-root! editor.v2/setRoot)
+(def ^function get-editor-root editor.v2/getRoot)
+(def ^function dispose! editor.v2/dispose)
+
+(declare v2-update-text-shape-content)
+(declare v2-update-text-editor-styles)
+
;; -- Editor
(defn update-editor
@@ -186,22 +199,41 @@
[{:keys [attrs shape]}]
(shape-current-values shape txt/is-root-node? attrs))
-(defn current-paragraph-values
+(defn v2-current-text-values
+ [{:keys [editor-instance attrs]}]
+ (let [result (-> (.-currentStyle editor-instance)
+ (styles/get-styles-from-style-declaration)
+ (select-keys attrs))
+ result (if (empty? result) txt/default-text-attrs result)]
+ result))
+
+(defn v1-current-paragraph-values
[{:keys [editor-state attrs shape]}]
(if editor-state
(-> (ted/get-editor-current-block-data editor-state)
(select-keys attrs))
(shape-current-values shape txt/is-paragraph-node? attrs)))
-(defn current-text-values
- [{:keys [editor-state attrs shape]}]
- (if editor-state
- (let [result (-> (ted/get-editor-current-inline-styles editor-state)
- (select-keys attrs))
- result (if (empty? result) txt/default-text-attrs result)]
- result)
- (shape-current-values shape txt/is-text-node? attrs)))
+(defn current-paragraph-values
+ [{:keys [editor-state editor-instance attrs shape] :as options}]
+ (cond
+ (some? editor-instance) (v2-current-text-values options)
+ (some? editor-state) (v1-current-paragraph-values options)
+ :else (shape-current-values shape txt/is-paragraph-node? attrs)))
+(defn v1-current-text-values
+ [{:keys [editor-state attrs]}]
+ (let [result (-> (ted/get-editor-current-inline-styles editor-state)
+ (select-keys attrs))
+ result (if (empty? result) txt/default-text-attrs result)]
+ result))
+
+(defn current-text-values
+ [{:keys [editor-state editor-instance attrs shape] :as options}]
+ (cond
+ (some? editor-instance) (v2-current-text-values options)
+ (some? editor-state) (v1-current-text-values options)
+ :else (shape-current-values shape txt/is-text-node? attrs)))
;; --- TEXT EDITION IMPL
@@ -408,7 +440,9 @@
ptk/WatchEvent
(watch [_ state _]
- (when (nil? (get-in state [:workspace-editor-state id]))
+ (when (or
+ (and (features/active-feature? state "text-editor/v2") (nil? (:workspace-editor state)))
+ (and (not (features/active-feature? state "text-editor/v2")) (nil? (get-in state [:workspace-editor-state id]))))
(let [objects (wsh/lookup-page-objects state)
shape (get objects id)
@@ -430,8 +464,17 @@
(-> shape
(dissoc :fills)
(d/update-when :content update-content)))]
+ (rx/of (dwsh/update-shapes shape-ids update-shape)))))
- (rx/of (dwsh/update-shapes shape-ids update-shape)))))))
+ ptk/EffectEvent
+ (effect [_ state _]
+ (when (features/active-feature? state "text-editor/v2")
+ (let [instance (:workspace-editor state)
+ styles (some-> (editor.v2/getCurrentStyle instance)
+ (styles/get-styles-from-style-declaration)
+ ((comp update-node-fn migrate-node))
+ (styles/attrs->styles))]
+ (editor.v2/applyStylesToSelection instance styles))))))
;; --- RESIZE UTILS
@@ -664,22 +707,36 @@
[id attrs]
(ptk/reify ::update-attrs
ptk/WatchEvent
- (watch [_ _ _]
- (rx/concat
- (let [attrs (select-keys attrs txt/root-attrs)]
- (if-not (empty? attrs)
- (rx/of (update-root-attrs {:id id :attrs attrs}))
- (rx/empty)))
+ (watch [_ state _]
+ (let [text-editor-instance (:workspace-editor state)]
+ (if (and (features/active-feature? state "text-editor/v2")
+ (some? text-editor-instance))
+ (rx/empty)
+ (rx/concat
+ (let [attrs (select-keys attrs txt/root-attrs)]
+ (if-not (empty? attrs)
+ (rx/of (update-root-attrs {:id id :attrs attrs}))
+ (rx/empty)))
- (let [attrs (select-keys attrs txt/paragraph-attrs)]
- (if-not (empty? attrs)
- (rx/of (update-paragraph-attrs {:id id :attrs attrs}))
- (rx/empty)))
+ (let [attrs (select-keys attrs txt/paragraph-attrs)]
+ (if-not (empty? attrs)
+ (rx/of (update-paragraph-attrs {:id id :attrs attrs}))
+ (rx/empty)))
- (let [attrs (select-keys attrs txt/text-node-attrs)]
- (if-not (empty? attrs)
- (rx/of (update-text-attrs {:id id :attrs attrs}))
- (rx/empty)))))))
+ (let [attrs (select-keys attrs txt/text-node-attrs)]
+ (if-not (empty? attrs)
+ (rx/of (update-text-attrs {:id id :attrs attrs}))
+ (rx/empty)))
+
+ (when (features/active-feature? state "text-editor/v2")
+ (rx/of (v2-update-text-editor-styles id attrs)))))))
+
+ ptk/EffectEvent
+ (effect [_ state _]
+ (when (features/active-feature? state "text-editor/v2")
+ (let [instance (:workspace-editor state)
+ styles (styles/attrs->styles attrs)]
+ (editor.v2/applyStylesToSelection instance styles))))))
(defn update-all-attrs
[ids attrs]
@@ -773,3 +830,52 @@
(rx/of (update-attrs (:id shape)
{:typography-ref-id typ-id
:typography-ref-file file-id}))))))))
+
+;; -- New Editor
+
+(defn v2-update-text-editor-styles
+ [id new-styles]
+ (ptk/reify ::v2-update-text-editor-styles
+ ptk/UpdateEvent
+ (update [_ state]
+ (let [merged-styles (d/merge txt/default-text-attrs
+ (get-in state [:workspace-global :default-font])
+ new-styles)]
+ (update-in state [:workspace-v2-editor-state id] (fnil merge {}) merged-styles)))))
+
+(defn v2-update-text-shape-position-data
+ [shape-id position-data]
+ (ptk/reify ::v2-update-text-shape-position-data
+ ptk/UpdateEvent
+ (update [_ state]
+ (let []
+ (update-in state [:workspace-text-modifier shape-id] {:position-data position-data})))))
+
+(defn v2-update-text-shape-content
+ ([id content]
+ (v2-update-text-shape-content id content false nil))
+ ([id content update-name?]
+ (v2-update-text-shape-content id content update-name? nil))
+ ([id content update-name? name]
+ (ptk/reify ::v2-update-text-shape-content
+ ptk/WatchEvent
+ (watch [_ state _]
+ (let [objects (wsh/lookup-page-objects state)
+ shape (get objects id)
+ modifiers (get-in state [:workspace-text-modifier id])
+ new-shape? (nil? (:content shape))]
+ (rx/of
+ (dwsh/update-shapes
+ [id]
+ (fn [shape]
+ (let [{:keys [width height position-data]} modifiers]
+ (let [new-shape (-> shape
+ (assoc :content content)
+ (cond-> position-data
+ (assoc :position-data position-data))
+ (cond-> (and update-name? (some? name))
+ (assoc :name name))
+ (cond-> (or (some? width) (some? height))
+ (gsh/transform-shape (ctm/change-size shape width height))))]
+ new-shape)))
+ {:undo-group (when new-shape? id)})))))))
diff --git a/frontend/src/app/main/data/workspace/thumbnails.cljs b/frontend/src/app/main/data/workspace/thumbnails.cljs
index 625c207c62..a043c38110 100644
--- a/frontend/src/app/main/data/workspace/thumbnails.cljs
+++ b/frontend/src/app/main/data/workspace/thumbnails.cljs
@@ -182,6 +182,11 @@
[page-id [event [old-data new-data]]]
(let [changes (:changes event)
+ lookup-data-objects
+ (fn [data page-id]
+ (dm/get-in data [:pages-index page-id :objects]))
+
+
extract-ids
(fn [{:keys [page-id type] :as change}]
(case type
@@ -193,8 +198,8 @@
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)
+ (let [old-objects (lookup-data-objects old-data page-id)
+ new-objects (lookup-data-objects new-data page-id)
new-shape (get new-objects id)
old-shape (get old-objects id)
diff --git a/frontend/src/app/main/data/workspace/undo.cljs b/frontend/src/app/main/data/workspace/undo.cljs
index 41f3fe1a1d..529965fbb0 100644
--- a/frontend/src/app/main/data/workspace/undo.cljs
+++ b/frontend/src/app/main/data/workspace/undo.cljs
@@ -26,10 +26,9 @@
(def ^:private
schema:undo-entry
- (sm/define
- [:map {:title "undo-entry"}
- [:undo-changes [:vector ::cpc/change]]
- [:redo-changes [:vector ::cpc/change]]]))
+ [:map {:title "undo-entry"}
+ [:undo-changes [:vector ::cpc/change]]
+ [:redo-changes [:vector ::cpc/change]]])
(def check-undo-entry!
(sm/check-fn schema:undo-entry))
diff --git a/frontend/src/app/main/errors.cljs b/frontend/src/app/main/errors.cljs
index 542b41bce7..61ff775a35 100644
--- a/frontend/src/app/main/errors.cljs
+++ b/frontend/src/app/main/errors.cljs
@@ -9,15 +9,14 @@
(:require
[app.common.exceptions :as ex]
[app.common.pprint :as pp]
- [app.common.schema :as-alias sm]
- [app.main.data.messages :as msg]
+ [app.common.schema :as sm]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.util.globals :as glob]
[app.util.i18n :refer [tr]]
[app.util.router :as rt]
- [app.util.storage :refer [storage]]
[app.util.timers :as ts]
[cuerdas.core :as str]
[potok.v2.core :as ptk]))
@@ -33,8 +32,11 @@
(defn- print-explain!
[data]
- (when-let [explain (or (ex/explain data)
- (:explain data))]
+ (when-let [{:keys [errors] :as explain} (::sm/explain data)]
+ (let [errors (mapv #(update % :schema sm/form) errors)]
+ (pp/pprint errors {:width 100 :level 15 :length 20})))
+
+ (when-let [explain (:explain data)]
(js/console.log explain)))
(defn- print-trace!
@@ -57,6 +59,14 @@
(print-explain! cause)
(print-trace! cause))))
+(defn exception->error-data
+ [cause]
+ (let [data (ex-data cause)]
+ (-> data
+ (assoc :hint (or (:hint data) (ex-message cause)))
+ (assoc ::instance cause)
+ (assoc ::trace (.-stack cause)))))
+
(defn print-error!
[cause]
(cond
@@ -67,22 +77,14 @@
(print-cause! (ex-message cause) (ex-data cause))
:else
- (let [trace (.-stack cause)]
- (print-cause! (ex-message cause)
- {:hint (ex-message cause)
- ::trace trace
- ::instance cause}))))
+ (print-cause! (ex-message cause) (exception->error-data cause))))
(defn on-error
"A general purpose error handler."
[error]
(if (map? error)
(ptk/handle-error error)
- (let [data (ex-data error)
- data (-> data
- (assoc :hint (or (:hint data) (ex-message error)))
- (assoc ::instance error)
- (assoc ::trace (.-stack error)))]
+ (let [data (exception->error-data error)]
(ptk/handle-error data))))
;; Set the main potok error handler
@@ -96,16 +98,23 @@
(print-trace! error)
(print-data! error))))
-;; We receive a explicit authentication error; this explicitly clears
+;; We receive a explicit authentication error;
+;; If the uri is for workspace, dashboard or view assign the
+;; exception for the 'Oops' page. Otherwise this explicitly clears
;; all profile data and redirect the user to the login page. This is
;; here and not in app.main.errors because of circular dependency.
(defmethod ptk/handle-error :authentication
- [_]
- (let [msg (tr "errors.auth.unable-to-login")
- uri (. (. js/document -location) -href)]
- (st/emit! (du/logout {:capture-redirect true}))
- (ts/schedule 500 #(st/emit! (msg/warn msg)))
- (ts/schedule 1000 #(swap! storage assoc :redirect-url uri))))
+ [e]
+ (let [msg (tr "errors.auth.unable-to-login")
+ uri (.-href glob/location)
+ show-oops? (or (str/includes? uri "workspace")
+ (str/includes? uri "dashboard")
+ (str/includes? uri "view"))]
+ (if show-oops?
+ (st/async-emit! (rt/assign-exception e))
+ (do
+ (st/emit! (du/logout {:capture-redirect true}))
+ (ts/schedule 500 #(st/emit! (ntf/warn msg)))))))
;; Error that happens on an active business model validation does not
;; passes an validation (example: profile can't leave a team). From
@@ -123,9 +132,9 @@
(= code :invalid-paste-data)
(let [message (tr "errors.paste-data-validation")]
(st/async-emit!
- (msg/show {:content message
- :notification-type :toast
- :type :error
+ (ntf/show {:content message
+ :type :toast
+ :level :error
:timeout 3000})))
:else
@@ -138,9 +147,9 @@
(defmethod ptk/handle-error :assertion
[error]
(ts/schedule
- #(st/emit! (msg/show {:content "Internal Assertion Error"
- :notification-type :toast
- :type :error
+ #(st/emit! (ntf/show {:content "Internal Assertion Error"
+ :type :toast
+ :level :error
:timeout 3000})))
(print-group! "Internal Assertion Error"
@@ -154,9 +163,9 @@
[error]
(ts/schedule
#(st/emit!
- (msg/show {:content "Something wrong has happened (on worker)."
- :notification-type :toast
- :type :error
+ (ntf/show {:content "Something wrong has happened (on worker)."
+ :type :toast
+ :level :error
:timeout 3000})))
(print-group! "Internal Worker Error"
@@ -168,18 +177,18 @@
(defmethod ptk/handle-error :svg-parser
[_]
(ts/schedule
- #(st/emit! (msg/show {:content "SVG is invalid or malformed"
- :notification-type :toast
- :type :error
+ #(st/emit! (ntf/show {:content "SVG is invalid or malformed"
+ :type :toast
+ :level :error
:timeout 3000}))))
;; TODO: should be handled in the event and not as general error handler
(defmethod ptk/handle-error :comment-error
[_]
(ts/schedule
- #(st/emit! (msg/show {:content "There was an error with the comment"
- :notification-type :toast
- :type :error
+ #(st/emit! (ntf/show {:content "There was an error with the comment"
+ :type :toast
+ :level :error
:timeout 3000}))))
;; That are special case server-errors that should be treated
@@ -279,6 +288,7 @@
(let [message (ex-message cause)]
(or (= message "Possible side-effect in debug-evaluate")
(= message "Unexpected end of input")
+ (str/starts-with? message "invalid props on component")
(str/starts-with? message "Unexpected token "))))
(on-unhandled-error [event]
diff --git a/frontend/src/app/main/features.cljs b/frontend/src/app/main/features.cljs
index 5b0e9bbceb..477a58a753 100644
--- a/frontend/src/app/main/features.cljs
+++ b/frontend/src/app/main/features.cljs
@@ -109,7 +109,8 @@
(watch [_ _ _]
(when *assert*
(->> (rx/from cfeat/no-migration-features)
- (rx/filter #(not (or (contains? cfeat/backend-only-features %) (= "design-tokens/v1" %))))
+ ;; text editor v2 isn't enabled by default even in devenv
+ (rx/filter #(not (or (contains? cfeat/backend-only-features %) (= "text-editor/v2" %))))
(rx/observe-on :async)
(rx/map enable-feature))))
diff --git a/frontend/src/app/main/features/pointer_map.cljs b/frontend/src/app/main/features/pointer_map.cljs
index 993427e554..7055c1188f 100644
--- a/frontend/src/app/main/features/pointer_map.cljs
+++ b/frontend/src/app/main/features/pointer_map.cljs
@@ -16,7 +16,7 @@
(letfn [(resolve-pointer [[key val :as kv]]
(if (t/pointer? val)
(->> (rp/cmd! :get-file-fragment {:file-id id :fragment-id @val})
- (rx/map #(get % :content))
+ (rx/map #(get % :data))
(rx/map #(vector key %)))
(rx/of kv)))
diff --git a/frontend/src/app/main/fonts.cljs b/frontend/src/app/main/fonts.cljs
index d563da84e2..5b06f449b4 100644
--- a/frontend/src/app/main/fonts.cljs
+++ b/frontend/src/app/main/fonts.cljs
@@ -242,8 +242,8 @@
(defn ready
[cb]
- (-> (obj/get-in js/document ["fonts" "ready"])
- (p/then cb)))
+ (let [fonts (obj/get js/document "fonts")]
+ (p/then (obj/get fonts "ready") cb)))
(defn get-default-variant
[{:keys [variants]}]
diff --git a/frontend/src/app/main/refs.cljs b/frontend/src/app/main/refs.cljs
index 8bf9a7c754..e44e920e4f 100644
--- a/frontend/src/app/main/refs.cljs
+++ b/frontend/src/app/main/refs.cljs
@@ -26,9 +26,6 @@
(def router
(l/derived :router st/state))
-(def message
- (l/derived :message st/state))
-
(def profile
(l/derived :profile st/state))
@@ -189,6 +186,9 @@
(def options-mode-global
(l/derived :options-mode workspace-global))
+(def default-font
+ (l/derived :default-font workspace-global))
+
(def inspect-expanded
(l/derived :inspect-expanded workspace-local))
@@ -244,9 +244,10 @@
=))
(def workspace-recent-colors
- (l/derived (fn [data]
- (get data :recent-colors []))
- workspace-data))
+ (l/derived (fn [state]
+ (when-let [file-id (:current-file-id state)]
+ (dm/get-in state [:recent-colors file-id])))
+ st/state))
(def workspace-recent-fonts
(l/derived (fn [data]
@@ -288,6 +289,9 @@
(dm/get-in data [:pages-index page-id])))
st/state))
+(def workspace-page-flows
+ (l/derived #(-> % :flows not-empty) workspace-page))
+
(defn workspace-page-objects-by-id
[page-id]
(l/derived #(wsh/lookup-page-objects % page-id) st/state =))
@@ -350,9 +354,6 @@
(into [] (keep (d/getf objects)) children-ids)))
workspace-page-objects =))
-(def workspace-page-options
- (l/derived :options workspace-page))
-
(def workspace-frames
(l/derived ctt/get-frames workspace-page-objects =))
@@ -362,6 +363,9 @@
(def workspace-editor-state
(l/derived :workspace-editor-state st/state))
+(def workspace-v2-editor-state
+ (l/derived :workspace-v2-editor-state st/state))
+
(def workspace-modifiers
(l/derived :workspace-modifiers st/state =))
diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs
index a371a67d3d..d58ce0fe93 100644
--- a/frontend/src/app/main/render.cljs
+++ b/frontend/src/app/main/render.cljs
@@ -211,7 +211,7 @@
shapes (cfh/get-immediate-children objects)
dim (calculate-dimensions objects aspect-ratio)
vbox (format-viewbox dim)
- bgcolor (dm/get-in data [:options :background] default-color)
+ bgcolor (get data :background default-color)
shape-wrapper
(mf/use-memo
@@ -232,7 +232,7 @@
:fill "none"}
(when include-metadata
- [:& export/export-page {:id (:id data) :options (:options data)}])
+ [:& export/export-page {:page data}])
(let [shapes (->> shapes
(remove cfh/frame-shape?)
diff --git a/frontend/src/app/main/repo.cljs b/frontend/src/app/main/repo.cljs
index b19edf933c..77d4de0120 100644
--- a/frontend/src/app/main/repo.cljs
+++ b/frontend/src/app/main/repo.cljs
@@ -17,7 +17,7 @@
[cuerdas.core :as str]))
(defn handle-response
- [{:keys [status body] :as response}]
+ [{:keys [status body headers] :as response}]
(cond
(= 204 status)
;; We need to send "something" so the streams listening downstream can act
@@ -40,6 +40,13 @@
{:type :validation
:code :request-body-too-large}))
+ (and (= status 403)
+ (or (= "cloudflare" (get headers "server"))
+ (= "challenge" (get headers "cf-mitigated"))))
+ (rx/throw (ex-info "http error"
+ {:type :authorization
+ :code :challenge-required}))
+
(and (>= status 400) (map? body))
(rx/throw (ex-info "http error" body))
@@ -48,6 +55,7 @@
(ex-info "http error"
{:type :unexpected-error
:status status
+ :headers headers
:data body}))))
(def default-options
diff --git a/frontend/src/app/main/ui.cljs b/frontend/src/app/main/ui.cljs
index b9c661c3a2..0bc7aa70a7 100644
--- a/frontend/src/app/main/ui.cljs
+++ b/frontend/src/app/main/ui.cljs
@@ -9,13 +9,12 @@
[app.main.ui.workspace.tokens.modals.themes :as wtmt]
[app.config :as cf]
[app.main.refs :as refs]
- [app.main.store :as st]
[app.main.ui.context :as ctx]
- [app.main.ui.debug.components-preview :as cm]
[app.main.ui.debug.icons-preview :refer [icons-preview]]
+ [app.main.ui.error-boundary :refer [error-boundary*]]
[app.main.ui.frame-preview :as frame-preview]
[app.main.ui.icons :as i]
- [app.main.ui.messages :as msgs]
+ [app.main.ui.notifications :as notifications]
[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]]
@@ -23,7 +22,6 @@
[app.main.ui.static :as static]
[app.util.dom :as dom]
[app.util.i18n :refer [tr]]
- [app.util.router :as rt]
[rumext.v2 :as mf]))
(def auth-page
@@ -44,17 +42,35 @@
(def workspace-page
(mf/lazy-component app.main.ui.workspace/workspace))
-(mf/defc on-main-error
- [{:keys [error] :as props}]
- (mf/with-effect
- (st/emit! (rt/assign-exception error)))
- [:span "Internal application error"])
-
(mf/defc main-page
- {::mf/wrap [#(mf/catch % {:fallback on-main-error})]
- ::mf/props :obj}
+ {::mf/props :obj
+ ::mf/private true}
[{:keys [route profile]}]
- (let [{:keys [data params]} route]
+ (let [{:keys [data params]} route
+ props (get profile :props)
+ show-question-modal?
+ (and (contains? cf/flags :onboarding)
+ (not (:onboarding-viewed props))
+ (not (contains? props :onboarding-questions)))
+
+ 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 (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)))]
+
[:& (mf/provider ctx/current-route) {:value route}
(case (:name data)
(:auth-login
@@ -90,56 +106,33 @@
:dashboard-team-webhooks
:dashboard-team-settings)
[:?
- #_[:& app.main.ui.releases/release-notes-modal {:version "1.19"}]
+ #_[:& app.main.ui.releases/release-notes-modal {:version "2.3"}]
#_[:& app.main.ui.onboarding/onboarding-templates-modal]
#_[:& 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 (contains? cf/flags :onboarding)
- (not (:onboarding-viewed props))
- (not (contains? props :onboarding-questions)))
- show-newsletter-modal?
- (and (contains? cf/flags :onboarding)
- (not (:onboarding-viewed props))
- (not (contains? props :newsletter-updates))
- (contains? props :onboarding-questions))
+ (cond
+ show-question-modal?
+ [:& questions-modal]
- show-team-modal?
- (and (contains? cf/flags :onboarding)
- (not (:onboarding-viewed props))
- (not (contains? props :onboarding-team-id))
- (contains? props :newsletter-updates))
+ show-newsletter-modal?
+ [:& onboarding-newsletter]
- 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-team-modal?
+ [:& onboarding-team-modal {:go-to-team? true}]
- (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)}])))
+ 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]
+ {:keys [index share-id section page-id interactions-mode frame-id share]
:or {section :interactions interactions-mode :show-on-click}} query-params
{:keys [file-id]} path-params]
[:? {}
(if (:token query-params)
- [:> static/error-container {}
+ [:> static/error-container* {}
[:div.image i/detach]
[:div.main-message (tr "viewer.breaking-change.message")]
[:div.desc-message (tr "viewer.breaking-change.description")]]
@@ -155,7 +148,8 @@
:hide false
:show true
:show-on-click false)
- :frame-id frame-id}])])
+ :frame-id frame-id
+ :share share}])])
:workspace
(let [project-id (some-> params :path :project-id uuid)
@@ -163,18 +157,26 @@
page-id (some-> params :query :page-id uuid)
layout (some-> params :query :layout keyword)]
[:? {}
+ (when (cf/external-feature-flag "onboarding-03" "test")
+ (cond
+ show-question-modal?
+ [:& questions-modal]
+
+ show-newsletter-modal?
+ [:& onboarding-newsletter]
+
+ show-team-modal?
+ [:& onboarding-team-modal {:go-to-team? false}]
+
+ show-release-modal?
+ [:& release-notes-modal {:version (:main cf/version)}]))
+
[:& workspace-page {:project-id project-id
:file-id file-id
:page-id page-id
:layout-name layout
:key file-id}]])
-
- :debug-components-preview
- [:div.debug-preview
- [:h1 "Components preview"]
- [:& cm/components-preview]]
-
:frame-preview
[:& frame-preview/frame-preview]
@@ -193,8 +195,8 @@
[:& (mf/provider ctx/current-route) {:value route}
[:& (mf/provider ctx/current-profile) {:value profile}
(if edata
- [:& static/exception-page {:data edata :route route}]
- [:*
- [:& msgs/notifications-hub]
+ [:> static/exception-page* {:data edata :route route}]
+ [:> error-boundary* {:fallback static/internal-error*}
+ [:& notifications/current-notification]
(when route
[:& main-page {:route route :profile profile}])])]]))
diff --git a/frontend/src/app/main/ui/auth.cljs b/frontend/src/app/main/ui/auth.cljs
index c22ec0902c..1b5fb62b4a 100644
--- a/frontend/src/app/main/ui/auth.cljs
+++ b/frontend/src/app/main/ui/auth.cljs
@@ -8,37 +8,17 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.data.macros :as dm]
- [app.config :as cf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.main.ui.auth.login :refer [login-page]]
[app.main.ui.auth.recovery :refer [recovery-page]]
[app.main.ui.auth.recovery-request :refer [recovery-request-page]]
- [app.main.ui.auth.register :refer [register-page register-success-page register-validate-page]]
+ [app.main.ui.auth.register :refer [register-page register-success-page register-validate-page terms-register]]
[app.main.ui.icons :as i]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
[rumext.v2 :as mf]))
-(mf/defc terms-login
- []
- (let [show-all? (and cf/terms-of-service-uri cf/privacy-policy-uri)
- show-terms? (some? cf/terms-of-service-uri)
- show-privacy? (some? cf/privacy-policy-uri)]
-
- (when show-all?
- [:div {:class (stl/css :terms-login)}
- (when show-terms?
- [:a {:href cf/terms-of-service-uri :target "_blank" :class (stl/css :auth-link)}
- (tr "auth.terms-of-service")])
-
- (when show-all?
- [:span {:class (stl/css :and-text)}
- (dm/str " " (tr "labels.and") " ")])
-
- (when show-privacy?
- [:a {:href cf/privacy-policy-uri :target "_blank" :class (stl/css :auth-link)}
- (tr "auth.privacy-policy")])])))
(mf/defc auth
{::mf/props :obj}
@@ -86,4 +66,4 @@
[:& recovery-page {:params params}])
(when (= section :auth-register)
- [:& terms-login])]]))
+ [:& terms-register])]]))
diff --git a/frontend/src/app/main/ui/auth.scss b/frontend/src/app/main/ui/auth.scss
index 569fa7b9c0..4b3caeefcf 100644
--- a/frontend/src/app/main/ui/auth.scss
+++ b/frontend/src/app/main/ui/auth.scss
@@ -72,23 +72,3 @@
fill: var(--main-icon-foreground);
}
}
-
-.terms-login {
- @include bodySmallTypography;
- display: flex;
- gap: $s-4;
- justify-content: center;
- width: 100%;
-}
-
-.and-text {
- border-bottom: $s-1 solid transparent;
- color: var(--title-foreground-color);
-}
-
-.auth-link {
- color: var(--link-foreground-color);
- &:hover {
- text-decoration: underline;
- }
-}
diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs
index 27add1c2e3..901f0dd58e 100644
--- a/frontend/src/app/main/ui/auth/login.cljs
+++ b/frontend/src/app/main/ui/auth/login.cljs
@@ -10,7 +10,7 @@
[app.common.logging :as log]
[app.common.schema :as sm]
[app.config :as cf]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.repo :as rp]
[app.main.store :as st]
@@ -23,6 +23,7 @@
[app.util.i18n :refer [tr]]
[app.util.keyboard :as k]
[app.util.router :as rt]
+ [app.util.storage :as s]
[beicon.v2.core :as rx]
[rumext.v2 :as mf]))
@@ -37,30 +38,46 @@
{::mf/props :obj}
[]
[:& context-notification
- {:type :warning
+ {:level :warning
:content (tr "auth.demo-warning")}])
(defn create-demo-profile
[]
(st/emit! (du/create-demo-profile)))
+(defn- store-login-redirect
+ [save-login-redirect]
+ (binding [s/*sync* true]
+ (if (some? save-login-redirect)
+ ;; Save the current login raw uri for later redirect user back to
+ ;; the same page, we need it to be synchronous because the user is
+ ;; going to be redirected instantly to the oidc provider uri
+ (swap! s/session assoc :login-redirect (rt/get-current-href))
+ ;; Clean the login redirect
+ (swap! s/session dissoc :login-redirect))))
+
(defn- login-with-oidc
[event provider params]
(dom/prevent-default event)
+
+ (store-login-redirect (:save-login-redirect params))
+
+ ;; FIXME: this code should be probably moved outside of the UI
(->> (rp/cmd! :login-with-oidc (assoc params :provider provider))
(rx/subs! (fn [{:keys [redirect-uri] :as rsp}]
(if redirect-uri
- (.replace js/location redirect-uri)
+ (st/emit! (rt/nav-raw :uri redirect-uri))
(log/error :hint "unexpected response from OIDC method"
:resp (pr-str rsp))))
- (fn [{:keys [type code] :as error}]
- (cond
- (and (= type :restriction)
- (= code :provider-not-configured))
- (st/emit! (msg/error (tr "errors.auth-provider-not-configured")))
+ (fn [cause]
+ (let [{:keys [type code] :as error} (ex-data cause)]
+ (cond
+ (and (= type :restriction)
+ (= code :provider-not-configured))
+ (st/emit! (ntf/error (tr "errors.auth-provider-not-configured")))
- :else
- (st/emit! (msg/error (tr "errors.generic"))))))))
+ :else
+ (st/emit! (ntf/error (tr "errors.generic")))))))))
(def ^:private schema:login-form
[:map {:title "LoginForm"}
@@ -70,7 +87,7 @@
[:string {:min 1}]]])
(mf/defc login-form
- [{:keys [params on-success-callback origin] :as props}]
+ [{:keys [params on-success-callback on-recovery-request origin] :as props}]
(let [initial (mf/with-memo [params] params)
error (mf/use-state false)
form (fm/use-form :schema schema:login-form
@@ -86,7 +103,7 @@
(and (= :restriction (:type cause))
(= :ldap-not-initialized (:code cause)))
- (st/emit! (msg/error (tr "errors.ldap-disabled")))
+ (st/emit! (ntf/error (tr "errors.ldap-disabled")))
(and (= :restriction (:type cause))
(= :admin-only-profile (:code cause)))
@@ -118,6 +135,7 @@
on-submit
(mf/use-callback
(fn [form _event]
+ (store-login-redirect (:save-login-redirect params))
(reset! error nil)
(let [params (with-meta (:clean-data @form)
{:on-error on-error
@@ -138,16 +156,18 @@
:on-success on-success})]
(st/emit! (du/login-with-ldap params)))))
- on-recovery-request
+ default-recovery-req
(mf/use-fn
- #(st/emit! (rt/nav :auth-recovery-request)))]
+ #(st/emit! (rt/nav :auth-recovery-request)))
+
+ on-recovery-request (or on-recovery-request
+ default-recovery-req)]
[:*
(when-let [message @error]
[:& context-notification
- {:type :error
+ {:level :error
:content message
- :data-testid "login-banner"
:role "alert"}])
[:& fm/form {:on-submit on-submit
@@ -243,7 +263,7 @@
(tr "auth.login-with-oidc-submit")])))
(mf/defc login-methods
- [{:keys [params on-success-callback origin] :as props}]
+ [{:keys [params on-success-callback on-recovery-request origin] :as props}]
[:*
(when show-alt-login-buttons?
[:*
@@ -257,7 +277,7 @@
(when (or (contains? cf/flags :login)
(contains? cf/flags :login-with-password)
(contains? cf/flags :login-with-ldap))
- [:& login-form {:params params :on-success-callback on-success-callback :origin origin}])])
+ [:& login-form {:params params :on-success-callback on-success-callback :on-recovery-request on-recovery-request :origin origin}])])
(mf/defc login-page
[{:keys [params] :as props}]
diff --git a/frontend/src/app/main/ui/auth/recovery.cljs b/frontend/src/app/main/ui/auth/recovery.cljs
index 6ec730c5b8..cc567d310c 100644
--- a/frontend/src/app/main/ui/auth/recovery.cljs
+++ b/frontend/src/app/main/ui/auth/recovery.cljs
@@ -8,7 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.schema :as sm]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.main.ui.components.forms :as fm]
@@ -29,11 +29,11 @@
(defn- on-error
[_form _error]
- (st/emit! (msg/error (tr "errors.invalid-recovery-token"))))
+ (st/emit! (ntf/error (tr "errors.invalid-recovery-token"))))
(defn- on-success
[_]
- (st/emit! (msg/info (tr "auth.notifications.password-changed-successfully"))
+ (st/emit! (ntf/info (tr "auth.notifications.password-changed-successfully"))
(rt/nav :auth-login)))
(defn- on-submit
diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs
index c409a318c7..afb2406477 100644
--- a/frontend/src/app/main/ui/auth/recovery_request.cljs
+++ b/frontend/src/app/main/ui/auth/recovery_request.cljs
@@ -8,7 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.schema :as sm]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.main.ui.components.forms :as fm]
@@ -30,7 +30,7 @@
default-success-finish
(mf/use-fn
- #(st/emit! (msg/info (tr "auth.notifications.recovery-token-sent"))))
+ #(st/emit! (ntf/info (tr "auth.notifications.recovery-token-sent"))))
on-success
(mf/use-fn
@@ -47,14 +47,14 @@
(let [code (-> cause ex-data :code)]
(case code
:profile-not-verified
- (rx/of (msg/error (tr "auth.notifications.profile-not-verified")))
+ (rx/of (ntf/error (tr "auth.notifications.profile-not-verified")))
:profile-is-muted
- (rx/of (msg/error (tr "errors.profile-is-muted")))
+ (rx/of (ntf/error (tr "errors.profile-is-muted")))
(:email-has-permanent-bounces
:email-has-complaints)
- (rx/of (msg/error (tr "errors.email-has-permanent-bounces" (:email data))))
+ (rx/of (ntf/error (tr "errors.email-has-permanent-bounces" (:email data))))
(rx/throw cause)))))
@@ -102,3 +102,16 @@
:class (stl/css :go-back-link)
:data-testid "go-back-link"}
(tr "labels.go-back")]]]))
+
+
+(mf/defc recovery-sent-page
+ {::mf/props :obj}
+ [{:keys [email]}]
+ [:div {:class (stl/css :auth-form-wrapper :register-success)}
+ [:div {:class (stl/css :auth-title-wrapper)}
+ [:h2 {:class (stl/css :auth-title)}
+ (tr "auth.check-mail")]
+ [:div {:class (stl/css :notification-text)} (tr "not-found.login.sent-recovery")]]
+ [:div {:class (stl/css :notification-text-email)} email]
+ [:div {:class (stl/css :notification-text)} (tr "not-found.login.sent-recovery-check")]])
+
diff --git a/frontend/src/app/main/ui/auth/recovery_request.scss b/frontend/src/app/main/ui/auth/recovery_request.scss
index e78e21b6de..8b384e59dd 100644
--- a/frontend/src/app/main/ui/auth/recovery_request.scss
+++ b/frontend/src/app/main/ui/auth/recovery_request.scss
@@ -10,3 +10,10 @@
.fields-row {
margin-bottom: $s-8;
}
+
+.notification-text-email {
+ @include medTitleTipography;
+ font-size: $fs-20;
+ color: var(--register-confirmation-color);
+ margin-inline: $s-36;
+}
diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs
index e85e3def92..98cee17f1c 100644
--- a/frontend/src/app/main/ui/auth/register.cljs
+++ b/frontend/src/app/main/ui/auth/register.cljs
@@ -7,9 +7,10 @@
(ns app.main.ui.auth.register
(:require-macros [app.main.style :as stl])
(:require
+ [app.common.data.macros :as dm]
[app.common.schema :as sm]
[app.config :as cf]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.repo :as rp]
[app.main.store :as st]
@@ -19,7 +20,7 @@
[app.main.ui.icons :as i]
[app.util.i18n :as i18n :refer [tr]]
[app.util.router :as rt]
- [app.util.storage :as sto]
+ [app.util.storage :as storage]
[beicon.v2.core :as rx]
[rumext.v2 :as mf]))
@@ -38,7 +39,8 @@
form (fm/use-form :schema schema:register-form
:initial initial)
- submitted? (mf/use-state false)
+ submitted?
+ (mf/use-state false)
on-error
(mf/use-fn
@@ -46,22 +48,22 @@
(let [{:keys [type code] :as edata} (ex-data cause)]
(condp = [type code]
[:restriction :registration-disabled]
- (st/emit! (msg/error (tr "errors.registration-disabled")))
+ (st/emit! (ntf/error (tr "errors.registration-disabled")))
[:restriction :email-domain-is-not-allowed]
- (st/emit! (msg/error (tr "errors.email-domain-not-allowed")))
+ (st/emit! (ntf/error (tr "errors.email-domain-not-allowed")))
[:restriction :email-has-permanent-bounces]
- (st/emit! (msg/error (tr "errors.email-has-permanent-bounces" (:email edata))))
+ (st/emit! (ntf/error (tr "errors.email-has-permanent-bounces" (:email edata))))
[:restriction :email-has-complaints]
- (st/emit! (msg/error (tr "errors.email-has-permanent-bounces" (:email edata))))
+ (st/emit! (ntf/error (tr "errors.email-has-permanent-bounces" (:email edata))))
[:validation :email-as-password]
(swap! form assoc-in [:errors :password]
{:code "errors.email-as-password"})
- (st/emit! (msg/error (tr "errors.generic")))))))
+ (st/emit! (ntf/error (tr "errors.generic")))))))
on-submit
(mf/use-fn
@@ -103,12 +105,14 @@
(mf/defc register-methods
{::mf/props :obj}
- [{:keys [params on-success-callback]}]
+ [{:keys [params hide-separator on-success-callback]}]
[:*
(when login/show-alt-login-buttons?
[:& login/login-buttons {:params params}])
- [:hr {:class (stl/css :separator)}]
- [:& register-form {:params params :on-success-callback on-success-callback}]])
+ (when (or login/show-alt-login-buttons? (false? hide-separator))
+ [:hr {:class (stl/css :separator)}])
+ (when (contains? cf/flags :login-with-password)
+ [:& register-form {:params params :on-success-callback on-success-callback}])])
(mf/defc register-page
{::mf/props :obj}
@@ -173,7 +177,9 @@
::mf/private true}
[{:keys [params on-success-callback]}]
(let [form (fm/use-form :schema schema:register-validate-form :initial params)
- submitted? (mf/use-state false)
+
+ submitted?
+ (mf/use-state false)
on-success
(mf/use-fn
@@ -192,20 +198,26 @@
:else
(do
- (swap! sto/storage assoc ::email (:email params))
+ (swap! storage/user assoc ::email (:email params))
(st/emit! (rt/nav :auth-register-success)))))))
on-error
(mf/use-fn
(fn [_]
- (st/emit! (msg/error (tr "errors.generic")))))
+ (st/emit! (ntf/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)]
+ (let [create-welcome-file?
+ (cf/external-feature-flag "onboarding-03" "test")
+
+ params
+ (cond-> (:clean-data @form)
+ create-welcome-file? (assoc :create-welcome-file true))]
+
(->> (rp/cmd! :register-profile params)
(rx/finalize #(reset! submitted? false))
(rx/subs! on-success on-error)))))]
@@ -251,14 +263,37 @@
(mf/defc register-success-page
{::mf/props :obj}
- []
- (let [email (::email @sto/storage)]
+ [{:keys [params]}]
+ (let [email (or (:email params) (::email storage/user))]
[: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]]
+ (when-not (:hide-logo params)
+ [: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")]]))
+
+
+(mf/defc terms-register
+ []
+ (let [show-all? (and cf/terms-of-service-uri cf/privacy-policy-uri)
+ show-terms? (some? cf/terms-of-service-uri)
+ show-privacy? (some? cf/privacy-policy-uri)]
+
+ (when show-all?
+ [:div {:class (stl/css :terms-register)}
+ (when show-terms?
+ [:a {:href cf/terms-of-service-uri :target "_blank" :class (stl/css :auth-link)}
+ (tr "auth.terms-of-service")])
+
+ (when show-all?
+ [:span {:class (stl/css :and-text)}
+ (dm/str " " (tr "labels.and") " ")])
+
+ (when show-privacy?
+ [:a {:href cf/privacy-policy-uri :target "_blank" :class (stl/css :auth-link)}
+ (tr "auth.privacy-policy")])])))
+
diff --git a/frontend/src/app/main/ui/auth/register.scss b/frontend/src/app/main/ui/auth/register.scss
index 0f04974427..0309cd44ac 100644
--- a/frontend/src/app/main/ui/auth/register.scss
+++ b/frontend/src/app/main/ui/auth/register.scss
@@ -66,3 +66,23 @@
width: $s-120;
margin-block-end: $s-24;
}
+
+.terms-register {
+ @include bodySmallTypography;
+ display: flex;
+ gap: $s-4;
+ justify-content: center;
+ width: 100%;
+}
+
+.and-text {
+ border-bottom: $s-1 solid transparent;
+ color: var(--title-foreground-color);
+}
+
+.auth-link {
+ color: var(--link-foreground-color);
+ &:hover {
+ text-decoration: underline;
+ }
+}
diff --git a/frontend/src/app/main/ui/auth/verify_token.cljs b/frontend/src/app/main/ui/auth/verify_token.cljs
index 81d92ede5d..9e8bdbbd5e 100644
--- a/frontend/src/app/main/ui/auth/verify_token.cljs
+++ b/frontend/src/app/main/ui/auth/verify_token.cljs
@@ -6,7 +6,7 @@
(ns app.main.ui.auth.verify-token
(:require
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.repo :as rp]
[app.main.store :as st]
@@ -24,13 +24,13 @@
(defmethod handle-token :verify-email
[data]
(let [msg (tr "dashboard.notifications.email-verified-successfully")]
- (ts/schedule 1000 #(st/emit! (msg/success msg)))
+ (ts/schedule 1000 #(st/emit! (ntf/success msg)))
(st/emit! (du/login-from-token data))))
(defmethod handle-token :change-email
[_data]
(let [msg (tr "dashboard.notifications.email-changed-successfully")]
- (ts/schedule 100 #(st/emit! (msg/success msg)))
+ (ts/schedule 100 #(st/emit! (ntf/success msg)))
(st/emit! (rt/nav :settings-profile)
(du/fetch-profile))))
@@ -43,7 +43,7 @@
(case (:state tdata)
:created
(st/emit!
- (msg/success (tr "auth.notifications.team-invitation-accepted"))
+ (ntf/success (tr "auth.notifications.team-invitation-accepted"))
(du/fetch-profile)
(rt/nav :dashboard-projects {:team-id (:team-id tdata)}))
@@ -56,7 +56,7 @@
[_tdata]
(st/emit!
(rt/nav :auth-login)
- (msg/warn (tr "errors.unexpected-token"))))
+ (ntf/warn (tr "errors.unexpected-token"))))
(mf/defc verify-token
[{:keys [route] :as props}]
@@ -79,17 +79,17 @@
(= :email-already-exists code)
(let [msg (tr "errors.email-already-exists")]
- (ts/schedule 100 #(st/emit! (msg/error msg)))
+ (ts/schedule 100 #(st/emit! (ntf/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)))
+ (ts/schedule 100 #(st/emit! (ntf/warn msg)))
(st/emit! (rt/nav :auth-login)))
:else
(let [msg (tr "errors.generic")]
- (ts/schedule 100 #(st/emit! (msg/error msg)))
+ (ts/schedule 100 #(st/emit! (ntf/error msg)))
(st/emit! (rt/nav :auth-login)))))))))
(if @bad-token
diff --git a/frontend/src/app/main/ui/comments.cljs b/frontend/src/app/main/ui/comments.cljs
index 5427b29f14..6fa55cc074 100644
--- a/frontend/src/app/main/ui/comments.cljs
+++ b/frontend/src/app/main/ui/comments.cljs
@@ -35,6 +35,7 @@
on-focus (unchecked-get props "on-focus")
on-blur (unchecked-get props "on-blur")
placeholder (unchecked-get props "placeholder")
+ max-length (unchecked-get props "max-length")
on-change (unchecked-get props "on-change")
on-esc (unchecked-get props "on-esc")
on-ctrl-enter (unchecked-get props "on-ctrl-enter")
@@ -88,7 +89,8 @@
:on-blur on-blur
:value value
:placeholder placeholder
- :on-change on-change*}]))
+ :on-change on-change*
+ :max-length max-length}]))
(mf/defc reply-form
[{:keys [thread] :as props}]
@@ -128,7 +130,8 @@
:on-focus on-focus
:select-on-focus? false
:on-ctrl-enter on-submit
- :on-change on-change}]
+ :on-change on-change
+ :max-length 750}]
(when (or @show-buttons? (seq @content))
[:div {:class (stl/css :buttons-wrapper)}
[:input.btn-secondary
@@ -196,7 +199,8 @@
:select-on-focus? false
:on-esc on-esc
:on-change on-change
- :on-ctrl-enter on-submit}]
+ :on-ctrl-enter on-submit
+ :max-length 750}]
[:div {:class (stl/css :buttons-wrapper)}
[:input {:on-click on-esc
@@ -233,7 +237,8 @@
:select-on-focus true
:select-on-focus? false
:on-ctrl-enter on-submit*
- :on-change on-change}]
+ :on-change on-change
+ :max-length 750}]
[:div {:class (stl/css :buttons-wrapper)}
[:input {:type "button"
:value "Cancel"
diff --git a/frontend/src/app/main/ui/components/dropdown_menu.cljs b/frontend/src/app/main/ui/components/dropdown_menu.cljs
index 156a1b651f..8f9daef577 100644
--- a/frontend/src/app/main/ui/components/dropdown_menu.cljs
+++ b/frontend/src/app/main/ui/components/dropdown_menu.cljs
@@ -96,14 +96,17 @@
[:ul {:class list-class :role "menu"} children]))
(mf/defc dropdown-menu
- {::mf/wrap-props false}
+ {::mf/props :obj}
[props]
(assert (fn? (gobj/get props "on-close")) "missing `on-close` prop")
(assert (boolean? (gobj/get props "show")) "missing `show` prop")
(let [ids (obj/get props "ids")
- ids (d/nilv ids (->> (obj/get props "children")
- (keep #(obj/get-in % ["props" "id"]))))]
+ ids (or ids
+ (->> (obj/get props "children")
+ (keep (fn [o]
+ (let [props (obj/get o "props")]
+ (obj/get props "id"))))))]
(when (gobj/get props "show")
(mf/element
dropdown-menu'
diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs
index eef34a8cf1..2e673e4c06 100644
--- a/frontend/src/app/main/ui/components/forms.cljs
+++ b/frontend/src/app/main/ui/components/forms.cljs
@@ -16,10 +16,10 @@
[app.util.forms :as fm]
[app.util.i18n :as i18n :refer [tr]]
[app.util.keyboard :as kbd]
- [app.util.object :as obj]
[cljs.core :as c]
[cuerdas.core :as str]
- [rumext.v2 :as mf]))
+ [rumext.v2 :as mf]
+ [rumext.v2.util :as mfu]))
(def form-ctx (mf/create-context nil))
(def use-form fm/use-form)
@@ -102,7 +102,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/map->obj obj/prop-key-fn))
+ (mfu/map->props))
checked? (and is-checkbox? (= value true))
show-valid? (and show-success? touched? (not error))
@@ -205,7 +205,7 @@
:on-blur on-blur
;; :placeholder label
:on-change on-change)
- (obj/map->obj obj/prop-key-fn))]
+ (mfu/map->props))]
[:div {:class (dm/str klass " " (stl/css :textarea-wrapper))}
[:label {:class (stl/css :textarea-label)} label]
@@ -420,7 +420,7 @@
(into [] (distinct) (conj coll item)))
(mf/defc multi-input
- [{:keys [form label class name trim valid-item-fn caution-item-fn on-submit] :as props}]
+ [{:keys [form label class name trim valid-item-fn caution-item-fn on-submit invite-email] :as props}]
(let [form (or form (mf/use-ctx form-ctx))
input-name (get props :name)
touched? (get-in @form [:touched input-name])
@@ -483,7 +483,8 @@
;; Empty values means "submit" the form (whent some items have been added
(when (and (kbd/enter? event) (str/empty? @value) (not-empty @items))
- (on-submit form))
+ (when (fn? on-submit)
+ (on-submit form event)))
;; If we have a string in the input we add it only if valid
(when (and (valid-item-fn val) (not (str/empty? @value)))
@@ -528,6 +529,12 @@
values (filterv #(:valid %) values)]
(update-form! values)))
+ (mf/with-effect []
+ (when invite-email
+ (swap! items conj-dedup {:text (str/trim invite-email)
+ :valid (valid-item-fn invite-email)
+ :caution (caution-item-fn invite-email)})))
+
[:div {:class klass}
[:input {:id (name input-name)
:class in-klass
diff --git a/frontend/src/app/main/ui/dashboard.cljs b/frontend/src/app/main/ui/dashboard.cljs
index 4adec8d159..a158221043 100644
--- a/frontend/src/app/main/ui/dashboard.cljs
+++ b/frontend/src/app/main/ui/dashboard.cljs
@@ -8,10 +8,15 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.data :as d]
+ [app.common.data.macros :as dm]
[app.common.spec :as us]
[app.config :as cf]
[app.main.data.dashboard :as dd]
[app.main.data.dashboard.shortcuts :as sc]
+ [app.main.data.events :as ev]
+ [app.main.data.modal :as modal]
+ [app.main.data.notifications :as notif]
+ [app.main.data.plugins :as dp]
[app.main.refs :as refs]
[app.main.store :as st]
[app.main.ui.context :as ctx]
@@ -25,11 +30,16 @@
[app.main.ui.dashboard.team :refer [team-settings-page team-members-page team-invitations-page team-webhooks-page]]
[app.main.ui.dashboard.templates :refer [templates-section]]
[app.main.ui.hooks :as hooks]
+ [app.main.ui.workspace.plugins]
+ [app.plugins.register :as preg]
[app.util.dom :as dom]
[app.util.keyboard :as kbd]
[app.util.object :as obj]
+ [app.util.router :as rt]
+ [beicon.v2.core :as rx]
[goog.events :as events]
[okulary.core :as l]
+ [potok.v2.core :as ptk]
[rumext.v2 :as mf]))
(defn ^boolean uuid-str?
@@ -42,9 +52,7 @@
(let [search-term (get-in route [:params :query :search-term])
team-id (get-in route [:params :path :team-id])
project-id (get-in route [:params :path :project-id])]
- (cond->
- {:search-term search-term}
-
+ (cond-> {:search-term search-term}
(uuid-str? team-id)
(assoc :team-id (uuid team-id))
@@ -52,7 +60,7 @@
(assoc :project-id (uuid project-id)))))
(mf/defc dashboard-content
- [{:keys [team projects project section search-term profile] :as props}]
+ [{:keys [team projects project section search-term profile invite-email] :as props}]
(let [container (mf/use-ref)
content-width (mf/use-state 0)
project-id (:id project)
@@ -84,10 +92,10 @@
(mf/use-effect on-resize)
-
[:div {:class (stl/css :dashboard-content)
:style {:pointer-events (when file-menu-open? "none")}
- :on-click clear-selected-fn :ref container}
+ :on-click clear-selected-fn
+ :ref container}
(case section
:dashboard-projects
[:*
@@ -129,7 +137,7 @@
[:& libraries-page {:team team}]
:dashboard-team-members
- [:& team-members-page {:team team :profile profile}]
+ [:& team-members-page {:team team :profile profile :invite-email invite-email}]
:dashboard-team-invitations
[:& team-invitations-page {:team team}]
@@ -145,21 +153,88 @@
(def dashboard-initialized
(l/derived :current-team-id st/state))
+(defn use-plugin-register
+ [plugin-url team-id project-id]
+
+ (let [navegate-file!
+ (fn [plugin {:keys [project-id id data]}]
+ (st/emit!
+ (dp/delay-open-plugin plugin)
+ (rt/nav :workspace
+ {:project-id project-id :file-id id}
+ {:page-id (dm/get-in data [:pages 0])})))
+
+ create-file!
+ (fn [plugin]
+ (st/emit!
+ (modal/hide)
+ (let [data
+ (with-meta
+ {:project-id project-id
+ :name (dm/str "Try plugin: " (:name plugin))}
+ {:on-success (partial navegate-file! plugin)})]
+ (-> (dd/create-file data)
+ (with-meta {::ev/origin "plugin-try-out"})))))
+
+ open-try-out-dialog
+ (fn [plugin]
+ (modal/show
+ :plugin-try-out
+ {:plugin plugin
+ :on-accept #(create-file! plugin)
+ :on-close #(modal/hide!)}))
+
+ open-permissions-dialog
+ (fn [plugin]
+ (modal/show!
+ :plugin-permissions
+ {:plugin plugin
+ :on-accept
+ #(do (preg/install-plugin! plugin)
+ (st/emit! (modal/hide)
+ (rt/nav :dashboard-projects {:team-id team-id})
+ (open-try-out-dialog plugin)))
+ :on-close
+ #(st/emit! (modal/hide)
+ (rt/nav :dashboard-projects {:team-id team-id}))}))]
+
+ (mf/with-layout-effect
+ [plugin-url team-id project-id]
+ (when plugin-url
+ (->> (dp/fetch-manifest plugin-url)
+ (rx/subs!
+ (fn [plugin]
+ (if plugin
+ (do
+ (st/emit! (ptk/event ::ev/event {::ev/name "install-plugin" :name (:name plugin) :url plugin-url}))
+ (open-permissions-dialog plugin))
+ (st/emit! (notif/error "Cannot parser the plugin manifest"))))
+ (fn [_]
+ (st/emit! (notif/error "The plugin URL is incorrect")))))))))
+
(mf/defc dashboard
- [{:keys [route profile] :as props}]
+ {::mf/props :obj}
+ [{:keys [route profile]}]
(let [section (get-in route [:data :name])
params (parse-params route)
project-id (:project-id params)
+
team-id (:team-id params)
search-term (:search-term params)
+ plugin-url (-> route :query-params :plugin)
+
+ invite-email (-> route :query-params :invite-email)
+
teams (mf/deref refs/teams)
team (get teams team-id)
projects (mf/deref refs/dashboard-projects)
project (get projects project-id)
+ default-project (->> projects vals (d/seek :is-default))
+
initialized? (mf/deref dashboard-initialized)]
(hooks/use-shortcuts ::dashboard sc/shortcuts)
@@ -178,15 +253,17 @@
(fn []
(events/unlistenByKey key))))
+ (use-plugin-register plugin-url team-id (:id default-project))
+
[:& (mf/provider ctx/current-team-id) {:value team-id}
[:& (mf/provider ctx/current-project-id) {:value project-id}
- ;; NOTE: dashboard events and other related functions assumes
- ;; that the team is a implicit context variable that is
- ;; available using react context or accessing
- ;; the :current-team-id on the state. We set the key to the
- ;; team-id because we want to completely refresh all the
- ;; components on team change. Many components assumes that the
- ;; team is already set so don't put the team into mf/deps.
+ ;; NOTE: dashboard events and other related functions assumes
+ ;; that the team is a implicit context variable that is
+ ;; available using react context or accessing
+ ;; the :current-team-id on the state. We set the key to the
+ ;; team-id because we want to completely refresh all the
+ ;; components on team change. Many components assumes that the
+ ;; team is already set so don't put the team into mf/deps.
(when (and team initialized?)
[:main {:class (stl/css :dashboard)
:key (:id team)}
@@ -204,5 +281,5 @@
:project project
:section section
:search-term search-term
- :team team}])])]]))
-
+ :team team
+ :invite-email invite-email}])])]]))
diff --git a/frontend/src/app/main/ui/dashboard/file_menu.cljs b/frontend/src/app/main/ui/dashboard/file_menu.cljs
index f270e1efbb..8d6e01f7bc 100644
--- a/frontend/src/app/main/ui/dashboard/file_menu.cljs
+++ b/frontend/src/app/main/ui/dashboard/file_menu.cljs
@@ -9,8 +9,8 @@
[app.main.data.common :as dcm]
[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.data.notifications :as ntf]
[app.main.repo :as rp]
[app.main.store :as st]
[app.main.ui.components.context-menu-a11y :refer [context-menu-a11y]]
@@ -88,12 +88,12 @@
on-duplicate
(fn [_]
(apply st/emit! (map dd/duplicate-file files))
- (st/emit! (msg/success (tr "dashboard.success-duplicate-file" (i18n/c (count files))))))
+ (st/emit! (ntf/success (tr "dashboard.success-duplicate-file" (i18n/c (count files))))))
on-delete-accept
(fn [_]
(apply st/emit! (map dd/delete-file files))
- (st/emit! (msg/success (tr "dashboard.success-delete-file" (i18n/c (count files))))
+ (st/emit! (ntf/success (tr "dashboard.success-delete-file" (i18n/c (count files))))
(dd/clear-selected-files)))
on-delete
@@ -126,8 +126,8 @@
on-move-success
(fn [team-id project-id]
(if multi?
- (st/emit! (msg/success (tr "dashboard.success-move-files")))
- (st/emit! (msg/success (tr "dashboard.success-move-file"))))
+ (st/emit! (ntf/success (tr "dashboard.success-move-files")))
+ (st/emit! (ntf/success (tr "dashboard.success-move-file"))))
(if (or navigate? (not= team-id current-team-id))
(st/emit! (dd/go-to-files team-id project-id))
(st/emit! (dd/fetch-recent-files team-id)
diff --git a/frontend/src/app/main/ui/dashboard/fonts.cljs b/frontend/src/app/main/ui/dashboard/fonts.cljs
index 514be108d5..519599243d 100644
--- a/frontend/src/app/main/ui/dashboard/fonts.cljs
+++ b/frontend/src/app/main/ui/dashboard/fonts.cljs
@@ -180,12 +180,12 @@
:on-selected on-selected}]]
[:& context-notification {:content (tr "dashboard.fonts.hero-text2")
- :type :default
+ :level :default
:is-html true}]
(when problematic-fonts?
[:& context-notification {:content (tr "dashboard.fonts.warning-text")
- :type :warning
+ :level :warning
:is-html true}])]]
[:*
diff --git a/frontend/src/app/main/ui/dashboard/grid.cljs b/frontend/src/app/main/ui/dashboard/grid.cljs
index 46b4cdefd1..15245d39c5 100644
--- a/frontend/src/app/main/ui/dashboard/grid.cljs
+++ b/frontend/src/app/main/ui/dashboard/grid.cljs
@@ -13,7 +13,7 @@
[app.common.logging :as log]
[app.config :as cf]
[app.main.data.dashboard :as dd]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.features :as features]
[app.main.fonts :as fonts]
[app.main.rasterizer :as thr]
@@ -560,7 +560,7 @@
on-drop-success
(fn []
- (st/emit! (msg/success (tr "dashboard.success-move-file"))
+ (st/emit! (ntf/success (tr "dashboard.success-move-file"))
(dd/fetch-recent-files (:id team))
(dd/clear-selected-files)))
diff --git a/frontend/src/app/main/ui/dashboard/import.cljs b/frontend/src/app/main/ui/dashboard/import.cljs
index bc72e3f291..9acd800503 100644
--- a/frontend/src/app/main/ui/dashboard/import.cljs
+++ b/frontend/src/app/main/ui/dashboard/import.cljs
@@ -12,8 +12,8 @@
[app.common.logging :as log]
[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.data.notifications :as ntf]
[app.main.errors :as errors]
[app.main.features :as features]
[app.main.store :as st]
@@ -366,7 +366,7 @@
(reset! template-finished* true)
(errors/print-error! cause)
(rx/of (modal/hide)
- (msg/error (tr "dashboard.libraries-and-templates.import-error")))))
+ (ntf/error (tr "dashboard.libraries-and-templates.import-error")))))
continue-entries
(mf/use-fn
@@ -481,19 +481,19 @@
[:div {:class (stl/css :modal-content)}
(when (and (= :analyzing status) errors?)
[:& context-notification
- {:type :warning
+ {:level :warning
:content (tr "dashboard.import.import-warning")}])
(when (and (= :importing status) (not ^boolean pending-import?))
(cond
errors?
[:& context-notification
- {:type :warning
+ {:level :warning
:content (tr "dashboard.import.import-warning")}]
:else
[:& context-notification
- {:type (if (zero? success-num) :warning :success)
+ {:level (if (zero? success-num) :warning :success)
:content (tr "dashboard.import.import-message" (i18n/c success-num))}]))
(for [entry entries]
diff --git a/frontend/src/app/main/ui/dashboard/project_menu.cljs b/frontend/src/app/main/ui/dashboard/project_menu.cljs
index 2f886686fb..a8eb4621db 100644
--- a/frontend/src/app/main/ui/dashboard/project_menu.cljs
+++ b/frontend/src/app/main/ui/dashboard/project_menu.cljs
@@ -7,8 +7,8 @@
(ns app.main.ui.dashboard.project-menu
(:require
[app.main.data.dashboard :as dd]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.refs :as refs]
[app.main.store :as st]
[app.main.ui.components.context-menu-a11y :refer [context-menu-a11y]]
@@ -30,7 +30,7 @@
on-duplicate-success
(fn [new-project]
- (st/emit! (msg/success (tr "dashboard.success-duplicate-project"))
+ (st/emit! (ntf/success (tr "dashboard.success-duplicate-project"))
(rt/nav :dashboard-files
{:team-id (:team-id new-project)
:project-id (:id new-project)})))
@@ -51,12 +51,12 @@
(fn [team-id]
(let [data {:id (:id project) :team-id team-id}
mdata {:on-success #(on-move-success team-id)}]
- #(st/emit! (msg/success (tr "dashboard.success-move-project"))
+ #(st/emit! (ntf/success (tr "dashboard.success-move-project"))
(dd/move-project (with-meta data mdata)))))
delete-fn
(fn [_]
- (st/emit! (msg/success (tr "dashboard.success-delete-project"))
+ (st/emit! (ntf/success (tr "dashboard.success-delete-project"))
(dd/delete-project project)
(dd/go-to-projects (:team-id project))))
diff --git a/frontend/src/app/main/ui/dashboard/projects.cljs b/frontend/src/app/main/ui/dashboard/projects.cljs
index deacac12a6..46e8828e08 100644
--- a/frontend/src/app/main/ui/dashboard/projects.cljs
+++ b/frontend/src/app/main/ui/dashboard/projects.cljs
@@ -11,7 +11,6 @@
[app.main.data.dashboard :as dd]
[app.main.data.events :as ev]
[app.main.data.modal :as modal]
- [app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
[app.main.ui.dashboard.grid :refer [line-grid]]
@@ -24,6 +23,7 @@
[app.util.i18n :as i18n :refer [tr]]
[app.util.keyboard :as kbd]
[app.util.router :as rt]
+ [app.util.storage :as storage]
[app.util.time :as dt]
[cuerdas.core :as str]
[okulary.core :as l]
@@ -54,24 +54,25 @@
:data-testid "new-project-button"}
(tr "dashboard.new-project")]]))
-(mf/defc team-hero
- {::mf/wrap [mf/memo]}
- [{:keys [team close-fn] :as props}]
+(mf/defc team-hero*
+ {::mf/wrap [mf/memo]
+ ::mf/props :obj}
+ [{:keys [team on-close]}]
(let [on-nav-members-click (mf/use-fn #(st/emit! (dd/go-to-team-members)))
- on-invite-click
+ on-invite
(mf/use-fn
(mf/deps team)
(fn []
(st/emit! (modal/show {:type :invite-members
:team team
:origin :hero}))))
- on-close-click
+ on-close'
(mf/use-fn
- (mf/deps close-fn)
+ (mf/deps on-close)
(fn [event]
(dom/prevent-default event)
- (close-fn)))]
+ (on-close event)))]
[:div {:class (stl/css :team-hero)}
[:div {:class (stl/css :img-wrapper)}
@@ -85,11 +86,11 @@
[:a {:on-click on-nav-members-click} (tr "dasboard.team-hero.management")]]
[:button
{:class (stl/css :btn-primary :invite)
- :on-click on-invite-click}
+ :on-click on-invite}
(tr "onboarding.choice.team-up.invite-members")]]
[:button {:class (stl/css :close)
- :on-click on-close-click
+ :on-click on-close'
:aria-label (tr "labels.close")}
close-icon]]))
@@ -292,26 +293,27 @@
(sort-by :modified-at)
(reverse))
recent-map (mf/deref recent-files-ref)
- props (some-> profile (get :props {}))
you-owner? (get-in team [:permissions :is-owner])
you-admin? (get-in team [:permissions :is-admin])
can-invite? (or you-owner? you-admin?)
- team-hero? (and can-invite?
- (:team-hero? props true)
- (not (:is-default team)))
+
+ show-team-hero* (mf/use-state #(get storage/global ::show-team-hero true))
+ show-team-hero? (deref show-team-hero*)
is-my-penpot (= (:default-team-id profile) (:id team))
+ is-defalt-team? (:is-default team)
team-id (:id team)
- close-banner
+ on-close
(mf/use-fn
(fn []
- (st/emit! (du/update-profile-props {:team-hero? false})
- (ptk/data-event ::ev/event {::ev/name "dont-show-team-up-hero"
- ::ev/origin "dashboard"}))))
+ (reset! show-team-hero* false)
+ (st/emit! (ptk/data-event ::ev/event {::ev/name "dont-show-team-up-hero"
+ ::ev/origin "dashboard"}))))]
- show-team-hero? (and (not is-my-penpot) team-hero?)]
+ (mf/with-effect [show-team-hero?]
+ (swap! storage/global assoc ::show-team-hero show-team-hero?))
(mf/with-effect [team]
(let [tname (if (:is-default team)
@@ -328,13 +330,18 @@
[:& header]
[:div {:class (stl/css :projects-container)}
[:*
- (when team-hero?
- [:& team-hero {:team team :close-fn close-banner}])
+ (when (and show-team-hero?
+ can-invite?
+ (not is-defalt-team?))
+ [:> team-hero* {:team team :on-close on-close}])
[:div {:class (stl/css-case :dashboard-container true
:no-bg true
:dashboard-projects true
- :with-team-hero show-team-hero?)}
+ :with-team-hero (and (not is-my-penpot)
+ (not is-defalt-team?)
+ show-team-hero?
+ can-invite?))}
(for [{:keys [id] :as project} projects]
(let [files (when recent-map
(->> (vals recent-map)
diff --git a/frontend/src/app/main/ui/dashboard/search.cljs b/frontend/src/app/main/ui/dashboard/search.cljs
index 401d334944..862fc700af 100644
--- a/frontend/src/app/main/ui/dashboard/search.cljs
+++ b/frontend/src/app/main/ui/dashboard/search.cljs
@@ -19,7 +19,8 @@
(mf/defc search-page
[{:keys [team search-term] :as props}]
- (let [result (mf/deref refs/dashboard-search-result)
+ (let [search-term (or search-term "")
+ result (mf/deref refs/dashboard-search-result)
[rowref limit] (hooks/use-dynamic-grid-item-width)]
(mf/use-effect
diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs
index 245145f446..0f3565bdbf 100644
--- a/frontend/src/app/main/ui/dashboard/sidebar.cljs
+++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs
@@ -13,8 +13,8 @@
[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.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -149,7 +149,7 @@
on-drop-success
(mf/use-fn
(mf/deps (:id item))
- #(st/emit! (msg/success (tr "dashboard.success-move-file"))
+ #(st/emit! (ntf/success (tr "dashboard.success-move-file"))
(dd/go-to-files (:id item))))
on-drop
@@ -362,13 +362,13 @@
(fn [{:keys [code] :as error}]
(condp = code
:no-enough-members-for-leave
- (rx/of (msg/error (tr "errors.team-leave.insufficient-members")))
+ (rx/of (ntf/error (tr "errors.team-leave.insufficient-members")))
:member-does-not-exist
- (rx/of (msg/error (tr "errors.team-leave.member-does-not-exists")))
+ (rx/of (ntf/error (tr "errors.team-leave.member-does-not-exists")))
:owner-cant-leave-team
- (rx/of (msg/error (tr "errors.team-leave.owner-cant-leave")))
+ (rx/of (ntf/error (tr "errors.team-leave.owner-cant-leave")))
(rx/throw error)))
diff --git a/frontend/src/app/main/ui/dashboard/team.cljs b/frontend/src/app/main/ui/dashboard/team.cljs
index 85c7d67edc..3770fb568f 100644
--- a/frontend/src/app/main/ui/dashboard/team.cljs
+++ b/frontend/src/app/main/ui/dashboard/team.cljs
@@ -10,12 +10,11 @@
[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]
[app.main.data.events :as ev]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -30,7 +29,6 @@
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
[beicon.v2.core :as rx]
- [cljs.spec.alpha :as s]
[cuerdas.core :as str]
[rumext.v2 :as mf]))
@@ -61,7 +59,7 @@
(mf/defc header
{::mf/wrap [mf/memo]
::mf/wrap-props false}
- [{:keys [section team]}]
+ [{:keys [section team invite-email]}]
(let [on-nav-members (mf/use-fn #(st/emit! (dd/go-to-team-members)))
on-nav-settings (mf/use-fn #(st/emit! (dd/go-to-team-settings)))
on-nav-invitations (mf/use-fn #(st/emit! (dd/go-to-team-invitations)))
@@ -79,7 +77,12 @@
(fn []
(st/emit! (modal/show {:type :invite-members
:team team
- :origin :team}))))]
+ :origin :team
+ :invite-email invite-email}))))]
+
+ (mf/with-effect []
+ (when invite-email
+ (on-invite-member)))
[:header {:class (stl/css :dashboard-header :team) :data-testid "dashboard-header"}
[:div {:class (stl/css :dashboard-title)}
@@ -124,24 +127,17 @@
]
(filterv identity)))
-(s/def ::emails (s/and ::us/set-of-valid-emails d/not-empty?))
-(s/def ::role ::us/keyword)
-(s/def ::team-id ::us/uuid)
-
-(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}]]
+ [:emails [::sm/set {:min 1} ::sm/email]]
[:team-id ::sm/uuid]])
(mf/defc invite-members-modal
{::mf/register modal/components
::mf/register-as :invite-members
::mf/wrap-props false}
- [{:keys [team origin]}]
+ [{:keys [team origin invite-email]}]
(let [members-map (mf/deref refs/dashboard-team-members)
perms (:permissions team)
@@ -162,7 +158,7 @@
on-success
(fn [_form {:keys [total]}]
(when (pos? total)
- (st/emit! (msg/success (tr "notifications.invitation-email-sent"))))
+ (st/emit! (ntf/success (tr "notifications.invitation-email-sent"))))
(st/emit! (modal/hide)
(dd/fetch-team-invitations)))
@@ -173,16 +169,24 @@
(cond
(and (= :validation type)
(= :profile-is-muted code))
- (st/emit! (msg/error (tr "errors.profile-is-muted"))
+ (st/emit! (ntf/error (tr "errors.profile-is-muted"))
(modal/hide))
+ (and (= :validation type)
+ (= :max-invitations-by-request code))
+ (swap! error-text (tr "errors.maximum-invitations-by-request-reached" (:threshold error)))
+
+ (and (= :restriction type)
+ (= :max-quote-reached code))
+ (swap! error-text (tr "errors.max-quote-reached" (:target error)))
+
(or (= :member-is-muted code)
(= :email-has-permanent-bounces code)
(= :email-has-complaints code))
(swap! error-text (tr "errors.email-spam-or-permanent-bounces" (:email error)))
:else
- (st/emit! (msg/error (tr "errors.generic"))
+ (st/emit! (ntf/error (tr "errors.generic"))
(modal/hide)))))
on-submit
@@ -192,7 +196,8 @@
:on-error (partial on-error form)}]
(st/emit! (-> (dd/invite-team-members (with-meta params mdata))
(with-meta {::ev/origin origin}))
- (dd/fetch-team-invitations))))]
+ (dd/fetch-team-invitations)
+ (dd/fetch-team-members (:id team)))))]
[:div {:class (stl/css-case :modal-team-container true
@@ -203,11 +208,11 @@
(when-not (= "" @error-text)
[:& context-notification {:content @error-text
- :type :error}])
+ :level :error}])
(when (some current-data-emails current-members-emails)
[:& context-notification {:content (tr "modals.invite-member.repeated-invitation")
- :type :warning}])
+ :level :warning}])
[:div {:class (stl/css :role-select)}
[:p {:class (stl/css :role-title)}
@@ -220,10 +225,10 @@
:name :emails
:auto-focus? true
:trim true
- :valid-item-fn us/parse-email
+ :valid-item-fn sm/parse-email
:caution-item-fn current-members-emails
:label (tr "modals.invite-member.emails")
- :on-submit on-submit}]]
+ :invite-email invite-email}]]
[:div {:class (stl/css :action-buttons)}
[:> fm/submit-button*
@@ -368,13 +373,13 @@
(condp = code
:no-enough-members-for-leave
- (rx/of (msg/error (tr "errors.team-leave.insufficient-members")))
+ (rx/of (ntf/error (tr "errors.team-leave.insufficient-members")))
:member-does-not-exist
- (rx/of (msg/error (tr "errors.team-leave.member-does-not-exists")))
+ (rx/of (ntf/error (tr "errors.team-leave.member-does-not-exists")))
:owner-cant-leave-team
- (rx/of (msg/error (tr "errors.team-leave.owner-cant-leave")))
+ (rx/of (ntf/error (tr "errors.team-leave.owner-cant-leave")))
(rx/throw error))))
@@ -497,7 +502,7 @@
(mf/defc team-members-page
{::mf/wrap-props false}
- [{:keys [team profile]}]
+ [{:keys [team profile invite-email]}]
(let [members-map (mf/deref refs/dashboard-team-members)]
(mf/with-effect [team]
@@ -511,7 +516,7 @@
(st/emit! (dd/fetch-team-members (:id team))))
[:*
- [:& header {:section :dashboard-team-members :team team}]
+ [:& header {:section :dashboard-team-members :team team :invite-email invite-email}]
[:section {:class (stl/css :dashboard-container :dashboard-team-members)}
[:& team-members
{:profile profile
@@ -580,16 +585,16 @@
(cond
(and (= :validation type)
(= :profile-is-muted code))
- (rx/of (msg/error (tr "errors.profile-is-muted")))
+ (rx/of (ntf/error (tr "errors.profile-is-muted")))
(and (= :validation type)
(= :member-is-muted code))
- (rx/of (msg/error (tr "errors.member-is-muted")))
+ (rx/of (ntf/error (tr "errors.member-is-muted")))
(and (= :restriction type)
(or (= :email-has-permanent-bounces code)
(= :email-has-complaints code)))
- (rx/of (msg/error (tr "errors.email-has-permanent-bounces" email)))
+ (rx/of (ntf/error (tr "errors.email-has-permanent-bounces" email)))
:else
(rx/throw cause)))))
@@ -605,7 +610,7 @@
on-resend-success
(mf/use-fn
(fn []
- (st/emit! (msg/success (tr "notifications.invitation-email-sent"))
+ (st/emit! (ntf/success (tr "notifications.invitation-email-sent"))
(modal/hide)
(dd/fetch-team-invitations))))
@@ -626,7 +631,7 @@
on-copy-success
(mf/use-fn
(fn []
- (st/emit! (msg/success (tr "notifications.invitation-link-copied"))
+ (st/emit! (ntf/success (tr "notifications.invitation-link-copied"))
(modal/hide))))
on-copy
@@ -788,7 +793,7 @@
(fn [_]
(let [message (tr "dashboard.webhooks.create.success")]
(st/emit! (dd/fetch-team-webhooks)
- (msg/success message)
+ (ntf/success message)
(modal/hide)))))
on-error
diff --git a/frontend/src/app/main/ui/dashboard/team_form.cljs b/frontend/src/app/main/ui/dashboard/team_form.cljs
index cc0f37c9f2..cf8796b75b 100644
--- a/frontend/src/app/main/ui/dashboard/team_form.cljs
+++ b/frontend/src/app/main/ui/dashboard/team_form.cljs
@@ -10,8 +10,8 @@
[app.common.schema :as sm]
[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.data.notifications :as ntf]
[app.main.store :as st]
[app.main.ui.components.forms :as fm]
[app.main.ui.icons :as i]
@@ -29,22 +29,22 @@
(defn- on-create-success
[_form response]
(let [msg "Team created successfully"]
- (st/emit! (msg/success msg)
+ (st/emit! (ntf/success msg)
(modal/hide)
(rt/nav :dashboard-projects {:team-id (:id response)}))))
(defn- on-update-success
[_form _response]
(let [msg "Team created successfully"]
- (st/emit! (msg/success msg)
+ (st/emit! (ntf/success msg)
(modal/hide))))
(defn- on-error
[form _response]
(let [id (get-in @form [:clean-data :id])]
(if id
- (rx/of (msg/error "Error on updating team."))
- (rx/of (msg/error "Error on creating team.")))))
+ (rx/of (ntf/error "Error on updating team."))
+ (rx/of (ntf/error "Error on creating team.")))))
(defn- on-create-submit
[form]
diff --git a/frontend/src/app/main/ui/dashboard/templates.cljs b/frontend/src/app/main/ui/dashboard/templates.cljs
index 8927ff0532..f410c332df 100644
--- a/frontend/src/app/main/ui/dashboard/templates.cljs
+++ b/frontend/src/app/main/ui/dashboard/templates.cljs
@@ -12,7 +12,6 @@
[app.main.data.dashboard :as dd]
[app.main.data.events :as ev]
[app.main.data.modal :as modal]
- [app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
[app.main.ui.icons :as i]
@@ -20,6 +19,7 @@
[app.util.i18n :refer [tr]]
[app.util.keyboard :as kbd]
[app.util.router :as rt]
+ [app.util.storage :as storage]
[okulary.core :as l]
[potok.v2.core :as ptk]
[rumext.v2 :as mf]))
@@ -60,17 +60,11 @@
:template template
:on-finish-import on-finish}))))
-(mf/defc title
- {::mf/wrap-props false}
- [{:keys [collapsed]}]
- (let [on-click
- (mf/use-fn
- (mf/deps collapsed)
- (fn [_event]
- (let [props {:builtin-templates-collapsed-status (not collapsed)}]
- (st/emit! (du/update-profile-props props)))))
-
- on-key-down
+(mf/defc title*
+ {::mf/props :obj
+ ::mf/private true}
+ [{:keys [on-click is-collapsed]}]
+ (let [on-key-down
(mf/use-fn
(mf/deps on-click)
(fn [event]
@@ -86,7 +80,7 @@
:on-key-down on-key-down}
[:span {:class (stl/css :title-text)}
(tr "dashboard.libraries-and-templates")]
- (if ^boolean collapsed
+ (if ^boolean is-collapsed
[:span {:class (stl/css :title-icon :title-icon-collapsed)}
arrow-icon]
[:span {:class (stl/css :title-icon)}
@@ -168,7 +162,9 @@
[{:keys [default-project-id profile project-id team-id]}]
(let [templates (mf/deref builtin-templates)
templates (mf/with-memo [templates]
- (filterv #(not= (:id %) "tutorial-for-beginners") templates))
+ (filterv #(and
+ (not= (:id %) "welcome")
+ (not= (:id %) "tutorial-for-beginners")) templates))
route (mf/deref refs/route)
route-name (get-in route [:data :name])
@@ -178,8 +174,12 @@
"dashboard-project")
(name route-name))
- props (:props profile)
- collapsed (:builtin-templates-collapsed-status props false)
+ collapsed* (mf/use-state
+ #(get storage/global ::collapsed))
+ collapsed (deref collapsed*)
+
+
+
can-move (mf/use-state {:left false :right true})
total (count templates)
@@ -190,19 +190,22 @@
move-left (fn [] (dom/scroll-by! (mf/ref-val content-ref) -300 0))
move-right (fn [] (dom/scroll-by! (mf/ref-val content-ref) 300 0))
- update-can-move
- (fn [scroll-left scroll-available client-width]
- (reset! can-move {:left (> scroll-left 0)
- :right (> scroll-available client-width)}))
+ on-toggle-collapse
+ (mf/use-fn
+ (fn [_event]
+ (swap! collapsed* not)))
on-scroll
(mf/use-fn
(fn [e]
- (let [scroll (dom/get-target-scroll e)
- scroll-left (:scroll-left scroll)
+ (let [scroll (dom/get-target-scroll e)
+ scroll-left (:scroll-left scroll)
scroll-available (- (:scroll-width scroll) scroll-left)
- client-rect (dom/get-client-size (dom/get-target e))]
- (update-can-move scroll-left scroll-available (unchecked-get client-rect "width")))))
+ client-rect (dom/get-client-size (dom/get-target e))
+ client-width (unchecked-get client-rect "width")]
+
+ (reset! can-move {:left (> scroll-left 0)
+ :right (> scroll-available client-width)}))))
on-move-left
(mf/use-fn #(move-left))
@@ -226,15 +229,18 @@
(let [content (mf/ref-val content-ref)]
(when (and (some? content) (some? templates))
(dom/scroll-to content #js {:behavior "instant" :left 0 :top 0})
- (.dispatchEvent content (js/Event. "scroll")))))
+ (dom/dispatch-event content (dom/event "scroll")))))
(mf/with-effect [profile collapsed]
+ (swap! storage/global assoc ::collapsed collapsed)
+
(when (and profile (not collapsed))
(st/emit! (dd/fetch-builtin-templates))))
[:div {:class (stl/css-case :dashboard-templates-section true
:collapsed collapsed)}
- [:& title {:collapsed collapsed}]
+ [:> title* {:on-click on-toggle-collapse
+ :is-collapsed collapsed}]
[:div {:class (stl/css :content)
:on-scroll on-scroll
diff --git a/frontend/src/app/main/ui/debug/components_preview.cljs b/frontend/src/app/main/ui/debug/components_preview.cljs
deleted file mode 100644
index 9fd0788b77..0000000000
--- a/frontend/src/app/main/ui/debug/components_preview.cljs
+++ /dev/null
@@ -1,270 +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.debug.components-preview
- (:require-macros [app.main.style :as stl])
- (:require
- [app.common.data :as d]
- [app.main.data.users :as du]
- [app.main.refs :as refs]
- [app.main.store :as st]
- [app.main.ui.components.radio-buttons :refer [radio-button radio-buttons]]
- [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.icons :as i]
- [app.util.dom :as dom]
- [rumext.v2 :as mf]))
-
-(mf/defc component-wrapper
- {::mf/wrap-props false}
- [props]
- (let [children (unchecked-get props "children")
- title (unchecked-get props "title")]
- [:div {:class (stl/css :component)}
- [:h4 {:class (stl/css :component-name)} title]
- children]))
-
-(mf/defc components-preview
- {::mf/wrap-props false}
- []
- (let [profile (mf/deref refs/profile)
- initial (mf/with-memo [profile]
- (update profile :lang #(or % "")))
- initial-theme (:theme initial)
- on-change (fn [event]
- (let [theme (dom/event->value event)
- data (assoc initial :theme theme)]
- (st/emit! (du/update-profile data))))
- colors ["var(--color-background-primary)"
- "var(--color-background-secondary)"
- "var(--color-background-tertiary)"
- "var(--color-background-quaternary)"
- "var(--color-foreground-primary)"
- "var(--color-foreground-secondary)"
- "var(--color-accent-primary)"
- "var(--color-accent-primary-muted)"
- "var(--color-accent-secondary)"
- "var(--color-accent-tertiary)"]
-
- ;; COMPONENTS FNs
- state* (mf/use-state {:collapsed? true
- :tab-selected :first
- :input-value ""
- :radio-selected "first"})
- state (deref state*)
-
- collapsed? (:collapsed? state)
- toggle-collapsed
- (mf/use-fn #(swap! state* update :collapsed? not))
-
- tab-selected (:tab-selected state)
- set-tab (mf/use-fn #(swap! state* assoc :tab-selected %))
-
- input-value (:input-value state)
- radio-selected (:radio-selected state)
-
- set-radio-selected (mf/use-fn #(swap! state* assoc :radio-selected %))
-
- update-search
- (mf/use-fn
- (fn [value _event]
- (swap! state* assoc :input-value value)))
-
-
- on-btn-click (mf/use-fn #(prn "eyy"))]
-
- [:section.debug-components-preview
- [:div {:class (stl/css :themes-row)}
- [:h2 "Themes"]
- [:select {:label "Select theme color"
- :name :theme
- :default "default"
- :value initial-theme
- :on-change on-change}
- [:option {:label "Penpot Dark (default)" :value "default"}]
- [:option {:label "Penpot Light" :value "light"}]]
- [:div {:class (stl/css :wrapper)}
- (for [color colors]
- [:div {:class (stl/css :color-wrapper)}
- [:span (d/name color)]
- [:div {:key color
- :style {:background color}
- :class (stl/css :rect)}]])]]
-
- [:div {:class (stl/css :components-row)}
- [:h2 {:class (stl/css :title)} "Components"]
- [:div {:class (stl/css :components-wrapper)}
- [:div {:class (stl/css :components-group)}
- [:h3 "Titles"]
- [:& component-wrapper
- {:title "Title"}
- [:& title-bar {:collapsable false
- :title "Title"}]]
- [:& component-wrapper
- {:title "Title and action button"}
- [:& title-bar {:collapsable false
- :title "Title"
- :on-btn-click on-btn-click
- :btn-children i/add}]]
- [:& component-wrapper
- {:title "Collapsed title and action button"}
- [:& title-bar {:collapsable true
- :collapsed collapsed?
- :on-collapsed toggle-collapsed
- :title "Title"
- :on-btn-click on-btn-click
- :btn-children i/add}]]
- [:& component-wrapper
- {:title "Collapsed title and children"}
- [:& title-bar {:collapsable true
- :collapsed collapsed?
- :on-collapsed toggle-collapsed
- :title "Title"}
- [:& tab-container {:on-change-tab set-tab
- :selected tab-selected}
- [:& tab-element {:id :first
- :title "A tab"}]
- [:& tab-element {:id :second
- :title "B tab"}]]]]]
-
- [:div {:class (stl/css :components-group)}
- [:h3 "Tabs component"]
- [:& component-wrapper
- {:title "2 tab component"}
- [:& tab-container {:on-change-tab set-tab
- :selected tab-selected}
- [:& tab-element {:id :first :title "First tab"}
- [:div "This is first tab content"]]
-
- [:& tab-element {:id :second :title "Second tab"}
- [:div "This is second tab content"]]]]
- [:& component-wrapper
- {:title "3 tab component"}
- [:& tab-container {:on-change-tab set-tab
- :selected tab-selected}
- [:& tab-element {:id :first :title "First tab"}
- [:div "This is first tab content"]]
-
- [:& tab-element {:id :second
- :title "Second tab"}
- [:div "This is second tab content"]]
- [:& tab-element {:id :third
- :title "Third tab"}
- [:div "This is third tab content"]]]]]
-
- [:div {:class (stl/css :components-group)}
- [:h3 "Search bar"]
- [:& component-wrapper
- {:title "Search bar only"}
- [:& search-bar {:on-change update-search
- :value input-value
- :placeholder "Test value"}]]
- [:& component-wrapper
- {:title "Search and button"}
- [:& search-bar {:on-change update-search
- :value input-value
- :placeholder "Test value"}
- [:button {:class (stl/css :button-secondary)
- :on-click on-btn-click}
- "X"]]]]
-
- [:div {:class (stl/css :components-group)}
- [:h3 "Radio buttons"]
- [:& component-wrapper
- {:title "Two radio buttons (toggle)"}
- [:& radio-buttons {:selected radio-selected
- :on-change set-radio-selected
- :name "listing-style"}
- [:& radio-button {:icon i/view-as-list
- :value "first"
- :id :list}]
- [:& radio-button {:icon i/flex-grid
- :value "second"
- :id :grid}]]]
- [:& component-wrapper
- {:title "Three radio buttons"}
- [:& radio-buttons {:selected radio-selected
- :on-change set-radio-selected
- :name "listing-style"}
- [:& radio-button {:icon i/view-as-list
- :value "first"
- :id :first}]
- [:& radio-button {:icon i/flex-grid
- :value "second"
- :id :second}]
-
- [:& radio-button {:icon i/add
- :value "third"
- :id :third}]]]
-
- [:& component-wrapper
- {:title "Four radio buttons"}
- [:& radio-buttons {:selected radio-selected
- :on-change set-radio-selected
- :name "listing-style"}
- [:& radio-button {:icon i/view-as-list
- :value "first"
- :id :first}]
- [:& radio-button {:icon i/flex-grid
- :value "second"
- :id :second}]
-
- [:& radio-button {:icon i/add
- :value "third"
- :id :third}]
-
- [:& radio-button {:icon i/board
- :value "forth"
- :id :forth}]]]]
- [:div {:class (stl/css :components-group)}
- [:h3 "Buttons"]
- [:& component-wrapper
- {:title "Button primary"}
- [:button {:class (stl/css :button-primary)}
- "Primary"]]
- [:& component-wrapper
- {:title "Button primary with icon"}
- [:button {:class (stl/css :button-primary)}
- i/add]]
-
- [:& component-wrapper
- {:title "Button secondary"}
- [:button {:class (stl/css :button-secondary)}
- "secondary"]]
- [:& component-wrapper
- {:title "Button secondary with icon"}
- [:button {:class (stl/css :button-secondary)}
- i/add]]
-
- [:& component-wrapper
- {:title "Button tertiary"}
- [:button {:class (stl/css :button-tertiary)}
- "tertiary"]]
- [:& component-wrapper
- {:title "Button tertiary with icon"}
- [:button {:class (stl/css :button-tertiary)}
- i/add]]]
- [:div {:class (stl/css :components-group)}
- [:h3 "Inputs"]
- [:& component-wrapper
- {:title "Only input"}
- [:div {:class (stl/css :input-wrapper)}
- [:input {:class (stl/css :basic-input)
- :placeholder "----"}]]]
- [:& component-wrapper
- {:title "Input with label"}
- [:div {:class (stl/css :input-wrapper)}
- [:span {:class (stl/css :input-label)} "label"]
- [:input {:class (stl/css :basic-input)
- :placeholder "----"}]]]
- [:& component-wrapper
- {:title "Input with icon"}
- [:div {:class (stl/css :input-wrapper)}
- [:span {:class (stl/css :input-label)}
- i/add]
- [:input {:class (stl/css :basic-input)
- :placeholder "----"}]]]]]]]))
diff --git a/frontend/src/app/main/ui/debug/components_preview.scss b/frontend/src/app/main/ui/debug/components_preview.scss
deleted file mode 100644
index 8a087c9ee9..0000000000
--- a/frontend/src/app/main/ui/debug/components_preview.scss
+++ /dev/null
@@ -1,99 +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";
-
-.themes-row {
- width: 100%;
- padding: $s-20;
- color: var(--color-foreground-primary);
- background: var(--color-background-secondary);
- .wrapper {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: $s-40;
- background-color: var(--color-background-primary);
- width: 100%;
- padding: $s-20;
- .rect {
- display: flex;
- justify-content: center;
- align-items: center;
- border: $s-1 solid var(--color-foreground-primary);
- padding: $s-20;
- height: $s-96;
- min-width: $s-152;
- }
- }
-}
-.color-wrapper {
- display: grid;
- grid-template-rows: auto $s-96;
-}
-
-.components-row {
- color: var(--color-foreground-primary);
- background: var(--color-background-secondary);
- height: 100%;
- padding: 0 $s-20;
- .title {
- padding: $s-20;
- }
- .components-wrapper {
- padding: $s-20;
- display: flex;
- flex-wrap: wrap;
- gap: $s-20;
- .components-group {
- @include flexCenter;
- justify-content: flex-start;
- flex-direction: column;
- border-radius: $s-8;
- h3 {
- @include bodySmallTypography;
- font-size: $fs-24;
- width: 100%;
- }
- .component {
- display: flex;
- flex-direction: column;
- gap: $s-8;
- width: $s-240;
- max-height: $s-80;
- margin-bottom: $s-16;
- .component-name {
- @include uppercaseTitleTipography;
- font-weight: bold;
- }
- }
- }
- .button-primary {
- @extend .button-primary;
- height: $s-32;
- svg {
- @extend .button-icon;
- }
- }
- .button-secondary {
- @extend .button-secondary;
- height: $s-32;
- svg {
- @extend .button-icon;
- }
- }
- .button-tertiary {
- @extend .button-tertiary;
- height: $s-32;
- svg {
- @extend .button-icon;
- }
- }
- .input-wrapper {
- @extend .input-element;
- @include bodySmallTypography;
- }
- }
-}
diff --git a/frontend/src/app/main/ui/ds.cljs b/frontend/src/app/main/ui/ds.cljs
index 85268cf8d2..84a70e0e3f 100644
--- a/frontend/src/app/main/ui/ds.cljs
+++ b/frontend/src/app/main/ui/ds.cljs
@@ -6,16 +6,24 @@
(ns app.main.ui.ds
(:require
+ [app.config :as cf]
[app.main.ui.ds.buttons.button :refer [button*]]
[app.main.ui.ds.buttons.icon-button :refer [icon-button*]]
- [app.main.ui.ds.forms.input :refer [input*]]
+ [app.main.ui.ds.controls.input :refer [input*]]
+ [app.main.ui.ds.controls.select :refer [select*]]
[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*]]
+ [app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
+ [app.main.ui.ds.notifications.toast :refer [toast*]]
[app.main.ui.ds.product.loader :refer [loader*]]
- [app.main.ui.ds.storybook :as sb]))
+ [app.main.ui.ds.storybook :as sb]
+ [app.util.i18n :as i18n]))
+
+
+(i18n/init! cf/translations)
(def default
"A export used for storybook"
@@ -26,7 +34,10 @@
:Input input*
:Loader loader*
:RawSvg raw-svg*
+ :Select select*
:Text text*
+ :TabSwitcher tab-switcher*
+ :Toast toast*
;; meta / misc
:meta #js {:icons (clj->js (sort icon-list))
:svgs (clj->js (sort raw-svg-list))
diff --git a/frontend/src/app/main/ui/ds/_borders.scss b/frontend/src/app/main/ui/ds/_borders.scss
index a424603d13..e8a8560748 100644
--- a/frontend/src/app/main/ui/ds/_borders.scss
+++ b/frontend/src/app/main/ui/ds/_borders.scss
@@ -8,5 +8,6 @@
// TODO: create actual tokens once we have them from design
$br-8: px2rem(8);
+$br-circle: 50%;
$b-1: px2rem(1);
diff --git a/frontend/src/app/main/ui/ds/_sizes.scss b/frontend/src/app/main/ui/ds/_sizes.scss
index f27838b6af..63ad1f93bd 100644
--- a/frontend/src/app/main/ui/ds/_sizes.scss
+++ b/frontend/src/app/main/ui/ds/_sizes.scss
@@ -7,4 +7,8 @@
@use "./utils.scss" as *;
// TODO: create actual tokens once we have them from design
+$sz-16: px2rem(16);
$sz-32: px2rem(32);
+$sz-36: px2rem(36);
+$sz-224: px2rem(224);
+$sz-400: px2rem(400);
diff --git a/frontend/src/app/main/ui/ds/buttons/button.cljs b/frontend/src/app/main/ui/ds/buttons/button.cljs
index 9dfb2c9b42..cfb30409dd 100644
--- a/frontend/src/app/main/ui/ds/buttons/button.cljs
+++ b/frontend/src/app/main/ui/ds/buttons/button.cljs
@@ -12,13 +12,18 @@
[app.main.ui.ds.foundations.assets.icon :refer [icon* icon-list]]
[rumext.v2 :as mf]))
-(def button-variants (set '("primary" "secondary" "ghost" "destructive")))
+(def ^:private schema:button
+ [:map
+ [:class {:optional true} :string]
+ [:icon {:optional true}
+ [:and :string [:fn #(contains? icon-list %)]]]
+ [:variant {:optional true}
+ [:maybe [:enum "primary" "secondary" "ghost" "destructive"]]]])
(mf/defc button*
- {::mf/props :obj}
+ {::mf/props :obj
+ ::mf/schema schema:button}
[{:keys [variant icon children class] :rest props}]
- (assert (or (nil? variant) (contains? button-variants variant) "expected valid variant"))
- (assert (or (nil? icon) (contains? icon-list icon) "expected valid icon id"))
(let [variant (or variant "primary")
class (dm/str class " " (stl/css-case :button true
:button-primary (= variant "primary")
diff --git a/frontend/src/app/main/ui/ds/buttons/buttons.mdx b/frontend/src/app/main/ui/ds/buttons/buttons.mdx
index 3bc00dc93b..ebbfa61a7e 100644
--- a/frontend/src/app/main/ui/ds/buttons/buttons.mdx
+++ b/frontend/src/app/main/ui/ds/buttons/buttons.mdx
@@ -2,7 +2,7 @@ import { Canvas, Meta } from '@storybook/blocks';
import * as ButtonStories from "./button.stories";
import * as IconButtonStories from "./icon_button.stories";
-
+
# Buttons
diff --git a/frontend/src/app/main/ui/ds/buttons/icon_button.cljs b/frontend/src/app/main/ui/ds/buttons/icon_button.cljs
index 1a80f9b190..dadb285afd 100644
--- a/frontend/src/app/main/ui/ds/buttons/icon_button.cljs
+++ b/frontend/src/app/main/ui/ds/buttons/icon_button.cljs
@@ -14,12 +14,20 @@
(def button-variants (set '("primary" "secondary" "ghost" "destructive")))
+
+(def ^:private schema:icon-button
+ [:map
+ [:class {:optional true} :string]
+ [:icon {:optional true}
+ [:and :string [:fn #(contains? icon-list %)]]]
+ [:aria-label :string]
+ [:variant {:optional true}
+ [:maybe [:enum "primary" "secondary" "ghost" "destructive"]]]])
+
(mf/defc icon-button*
- {::mf/props :obj}
+ {::mf/props :obj
+ ::mf/schema schema:icon-button}
[{:keys [class icon variant aria-label] :rest props}]
- (assert (contains? icon-list icon) "expected valid icon id")
- (assert (or (not variant) (contains? button-variants variant)) "expected valid variant")
- (assert (some? aria-label) "aria-label must be provided")
(let [variant (or variant "primary")
class (dm/str class " " (stl/css-case :icon-button true
:icon-button-primary (= variant "primary")
diff --git a/frontend/src/app/main/ui/ds/colors.scss b/frontend/src/app/main/ui/ds/colors.scss
index aa21f26d20..914b291089 100644
--- a/frontend/src/app/main/ui/ds/colors.scss
+++ b/frontend/src/app/main/ui/ds/colors.scss
@@ -9,6 +9,8 @@
$mint-150: #7efff5;
$mint-250: #00d1b8;
$mint-700: #426158;
+$mint-150-60: #7efff599;
+$mint-250-10: #00d1b81a;
$green-200: #a7e8d9;
$green-500: #2d9f8f;
@@ -19,8 +21,7 @@ $orange-500: #fe4811;
$orange-950: #440806;
$red-200: #ffcada;
-$red-500: #ff3277;
-$red-700: #c80857;
+$red-400: #c80857;
$red-950: #500124;
$pink-400: #ff6fe0;
@@ -29,6 +30,8 @@ $purple-200: #e1d2f5;
$purple-400: #bb97d8;
$purple-600: #8c33eb;
$purple-700: #6911d4;
+$purple-600-10: #8c33eb1a;
+$purple-700-60: #6911d499;
$blue-200: #bae3fd;
$blue-500: #0e9be9;
@@ -38,28 +41,36 @@ $cobalt-700: #1345aa;
$black: #000;
$gray-950: #18181a;
+$gray-950-60: #18181a99;
+$gray-950-90: #18181ae6;
$gray-900: #212426;
$gray-800: #2e3434;
$gray-200: #e8eaee;
$gray-100: #eef0f2;
$gray-50: #f3f4f6;
$white: #fff;
+$white-60: #ffffff99;
+$white-90: #ffffffe6;
$blue-teal-700: #495e74;
$grayish-blue-500: #8f9da3;
+$grayish-red: #bfbfbf;
+
:global(.light) {
--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-overlay: #{$purple-600-10};
+ --color-accent-select: #{$purple-700-60};
--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-accent-error: #{$red-400};
--color-background-error: #{$red-200};
--color-accent-info: #{$blue-500};
--color-background-info: #{$blue-200};
@@ -73,6 +84,9 @@ $grayish-blue-500: #8f9da3;
--color-foreground-secondary: #{$blue-teal-700};
--color-shadow: #{color.change($blue-teal-700, $alpha: 0.2)};
+ --color-overlay-default: #{$white-60};
+ --color-overlay-onboarding: #{$white-90};
+ --color-canvas: #{$grayish-red};
}
:global(.default) {
@@ -81,12 +95,14 @@ $grayish-blue-500: #8f9da3;
--color-accent-secondary: #{$purple-400};
--color-accent-tertiary: #{$mint-250};
--color-accent-quaternary: #{$pink-400};
+ --color-accent-overlay: #{$mint-250-10};
+ --color-accent-select: #{$mint-150-60};
--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-accent-error: #{$red-400};
--color-background-error: #{$red-950};
--color-accent-info: #{$blue-500};
--color-background-info: #{$blue-950};
@@ -100,4 +116,7 @@ $grayish-blue-500: #8f9da3;
--color-foreground-secondary: #{$grayish-blue-500};
--color-shadow: #{color.change($black, $alpha: 0.6)};
+ --color-overlay-default: #{$gray-950-60};
+ --color-overlay-onboarding: #{$gray-950-90};
+ --color-canvas: #{$grayish-red};
}
diff --git a/frontend/src/app/main/ui/ds/forms/input.cljs b/frontend/src/app/main/ui/ds/controls/input.cljs
similarity index 78%
rename from frontend/src/app/main/ui/ds/forms/input.cljs
rename to frontend/src/app/main/ui/ds/controls/input.cljs
index 6b97e54493..9d0eaa7654 100644
--- a/frontend/src/app/main/ui/ds/forms/input.cljs
+++ b/frontend/src/app/main/ui/ds/controls/input.cljs
@@ -4,7 +4,7 @@
;;
;; Copyright (c) KALEIDOS INC
-(ns app.main.ui.ds.forms.input
+(ns app.main.ui.ds.controls.input
(:require-macros
[app.common.data.macros :as dm]
[app.main.style :as stl])
@@ -13,10 +13,18 @@
[app.util.dom :as dom]
[rumext.v2 :as mf]))
+(def ^:private schema:input
+ [:map
+ [:class {:optional true} :string]
+ [:icon {:optional true}
+ [:and :string [:fn #(contains? icon-list %)]]]
+ [:type {:optional true} :string]
+ [:ref {:optional true} some?]])
+
(mf/defc input*
- {::mf/props :obj}
+ {::mf/props :obj
+ ::mf/schema schema:input}
[{:keys [icon class type ref] :rest props}]
- (assert (or (nil? icon) (contains? icon-list icon)))
(let [ref (or ref (mf/use-ref))
type (or type "text")
icon-class (stl/css-case :input true
diff --git a/frontend/src/app/main/ui/ds/forms/input.mdx b/frontend/src/app/main/ui/ds/controls/input.mdx
similarity index 97%
rename from frontend/src/app/main/ui/ds/forms/input.mdx
rename to frontend/src/app/main/ui/ds/controls/input.mdx
index 2d6d9946a2..1ecb0e937e 100644
--- a/frontend/src/app/main/ui/ds/forms/input.mdx
+++ b/frontend/src/app/main/ui/ds/controls/input.mdx
@@ -1,7 +1,7 @@
import { Canvas, Meta } from '@storybook/blocks';
import * as InputStories from "./input.stories";
-
+
# Input
diff --git a/frontend/src/app/main/ui/ds/forms/input.scss b/frontend/src/app/main/ui/ds/controls/input.scss
similarity index 83%
rename from frontend/src/app/main/ui/ds/forms/input.scss
rename to frontend/src/app/main/ui/ds/controls/input.scss
index 027e79878f..312729c9d8 100644
--- a/frontend/src/app/main/ui/ds/forms/input.scss
+++ b/frontend/src/app/main/ui/ds/controls/input.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
+
@use "../_borders.scss" as *;
@use "../_sizes.scss" as *;
@use "../typography.scss" as *;
@@ -51,7 +57,7 @@
}
&::selection {
- background: var(--color-accent-primary-muted);
+ background: var(--color-accent-select);
}
&::placeholder {
diff --git a/frontend/src/app/main/ui/ds/forms/input.stories.jsx b/frontend/src/app/main/ui/ds/controls/input.stories.jsx
similarity index 97%
rename from frontend/src/app/main/ui/ds/forms/input.stories.jsx
rename to frontend/src/app/main/ui/ds/controls/input.stories.jsx
index 2f01222835..0e23bffe73 100644
--- a/frontend/src/app/main/ui/ds/forms/input.stories.jsx
+++ b/frontend/src/app/main/ui/ds/controls/input.stories.jsx
@@ -11,7 +11,7 @@ const { Input } = Components;
const { icons } = Components.meta;
export default {
- title: "Forms/Input",
+ title: "Controls/Input",
component: Components.Input,
argTypes: {
icon: {
diff --git a/frontend/src/app/main/ui/ds/controls/select.cljs b/frontend/src/app/main/ui/ds/controls/select.cljs
new file mode 100644
index 0000000000..e50e6a45fb
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/controls/select.cljs
@@ -0,0 +1,244 @@
+;; 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.controls.select
+ (:require-macros
+ [app.common.data.macros :as dm]
+ [app.main.style :as stl])
+ (:require
+ [app.main.ui.ds.foundations.assets.icon :refer [icon* icon-list] :as i]
+ [app.util.array :as array]
+ [app.util.dom :as dom]
+ [app.util.keyboard :as kbd]
+ [app.util.object :as obj]
+ [rumext.v2 :as mf]))
+
+(mf/defc option*
+ {::mf/props :obj
+ ::mf/private true}
+ [{:keys [id label icon aria-label on-click selected set-ref focused] :rest props}]
+ [:> :li {:value id
+ :class (stl/css-case :option true
+ :option-with-icon (some? icon)
+ :option-current focused)
+ :aria-selected selected
+
+ :ref (fn [node]
+ (set-ref node id))
+ :role "option"
+ :id id
+ :on-click on-click
+ :data-id id}
+
+ (when (some? icon)
+ [:> icon*
+ {:id icon
+ :size "s"
+ :class (stl/css :option-icon)
+ :aria-hidden (when label true)
+ :aria-label (when (not label) aria-label)}])
+
+ [:span {:class (stl/css :option-text)} label]
+ (when selected
+ [:> icon*
+ {:id i/tick
+ :size "s"
+ :class (stl/css :option-check)
+ :aria-hidden (when label true)}])])
+
+(mf/defc options-dropdown*
+ {::mf/props :obj
+ ::mf/private true}
+ [{:keys [set-ref on-click options selected focused] :rest props}]
+ (let [props (mf/spread-props props
+ {:class (stl/css :option-list)
+ :tab-index "-1"
+ :role "listbox"})]
+ [:> "ul" props
+ (for [option ^js options]
+ (let [id (obj/get option "id")
+ label (obj/get option "label")
+ aria-label (obj/get option "aria-label")
+ icon (obj/get option "icon")]
+ [:> option* {:selected (= id selected)
+ :key id
+ :id id
+ :label label
+ :icon icon
+ :aria-label aria-label
+ :set-ref set-ref
+ :focused (= id focused)
+ :on-click on-click}]))]))
+
+(def ^:private schema:select-option
+ [:and
+ [:map {:title "option"}
+ [:id :string]
+ [:icon {:optional true}
+ [:and :string [:fn #(contains? icon-list %)]]]
+ [:label {:optional true} :string]
+ [:aria-label {:optional true} :string]]
+ [:fn {:error/message "invalid data: missing required props"}
+ (fn [option]
+ (or (and (contains? option :icon)
+ (or (contains? option :label)
+ (contains? option :aria-label)))
+ (contains? option :label)))]])
+
+(defn- get-option
+ [options id]
+ (or (array/find #(= id (obj/get % "id")) options)
+ (aget options 0)))
+
+(defn- get-selected-option-id
+ [options default]
+ (let [option (get-option options default)]
+ (obj/get option "id")))
+
+(defn- handle-focus-change
+ [options focused* new-index options-nodes-refs]
+ (let [option (aget options new-index)
+ id (obj/get option "id")
+ nodes (mf/ref-val options-nodes-refs)
+ node (obj/get nodes id)]
+ (reset! focused* id)
+ (dom/scroll-into-view-if-needed! node)))
+
+(defn- handle-selection
+ [focused* selected* open*]
+ (when-let [focused (deref focused*)]
+ (reset! selected* focused))
+ (reset! open* false)
+ (reset! focused* nil))
+
+(def ^:private schema:select
+ [:map
+ [:options [:vector {:min 1} schema:select-option]]
+ [:class {:optional true} :string]
+ [:disabled {:optional true} :boolean]
+ [:default-selected {:optional true} :string]
+ [:on-change {:optional true} fn?]])
+
+(mf/defc select*
+ {::mf/props :obj
+ ::mf/schema schema:select}
+ [{:keys [options class disabled default-selected on-change] :rest props}]
+ (let [open* (mf/use-state false)
+ open (deref open*)
+ on-click
+ (mf/use-fn
+ (mf/deps disabled)
+ (fn [event]
+ (dom/stop-propagation event)
+ (when-not disabled
+ (swap! open* not))))
+
+ selected* (mf/use-state #(get-selected-option-id options default-selected))
+ selected (deref selected*)
+
+ focused* (mf/use-state nil)
+ focused (deref focused*)
+
+ on-option-click
+ (mf/use-fn
+ (mf/deps on-change)
+ (fn [event]
+ (let [node (dom/get-current-target event)
+ id (dom/get-data node "id")]
+ (reset! selected* id)
+ (reset! focused* nil)
+ (reset! open* false)
+ (when (fn? on-change)
+ (on-change id)))))
+
+ options-nodes-refs (mf/use-ref nil)
+ options-ref (mf/use-ref nil)
+
+ set-ref
+ (mf/use-fn
+ (fn [node id]
+ (let [refs (or (mf/ref-val options-nodes-refs) #js {})
+ refs (if node
+ (obj/set! refs id node)
+ (obj/unset! refs id))]
+ (mf/set-ref-val! options-nodes-refs refs))))
+
+ on-blur
+ (mf/use-fn
+ (fn [event]
+ (let [click-outside (nil? (.-relatedTarget event))]
+ (when click-outside
+ (reset! focused* nil)
+ (reset! open* false)))))
+
+ on-key-down
+ (mf/use-fn
+ (mf/deps focused disabled)
+ (fn [event]
+ (when-not disabled
+ (let [options (mf/ref-val options-ref)
+ len (alength options)
+ index (array/find-index #(= (deref focused*) (obj/get % "id")) options)]
+ (dom/stop-propagation event)
+ (cond
+ (kbd/home? event)
+ (handle-focus-change options focused* 0 options-nodes-refs)
+
+ (kbd/up-arrow? event)
+ (handle-focus-change options focused* (mod (- index 1) len) options-nodes-refs)
+
+ (kbd/down-arrow? event)
+ (handle-focus-change options focused* (mod (+ index 1) len) options-nodes-refs)
+
+ (or (kbd/space? event) (kbd/enter? event))
+ (when (deref open*)
+ (dom/prevent-default event)
+ (handle-selection focused* selected* open*))
+
+ (kbd/esc? event)
+ (do (reset! open* false)
+ (reset! focused* nil)))))))
+
+ class (dm/str class " " (stl/css :select))
+
+ props (mf/spread-props props {:class class
+ :role "combobox"
+ :aria-controls "listbox"
+ :aria-haspopup "listbox"
+ :aria-activedescendant focused
+ :aria-expanded open
+ :on-key-down on-key-down
+ :disabled disabled
+ :on-click on-click
+ :on-blur on-blur})
+
+ selected-option (get-option options selected)
+ label (obj/get selected-option "label")
+ icon (obj/get selected-option "icon")]
+
+ (mf/with-effect [options]
+ (mf/set-ref-val! options-ref options))
+
+ [:div {:class (stl/css :select-wrapper)}
+ [:> :button props
+ [:span {:class (stl/css-case :select-header true
+ :header-icon (some? icon))}
+ (when icon
+ [:> icon* {:id icon
+ :size "s"
+ :aria-hidden true}])
+ [:span {:class (stl/css :header-label)}
+ label]]
+ [:> icon* {:id i/arrow
+ :class (stl/css :arrow)
+ :size "s"
+ :aria-hidden true}]]
+ (when open
+ [:> options-dropdown* {:on-click on-option-click
+ :options options
+ :selected selected
+ :focused focused
+ :set-ref set-ref}])]))
diff --git a/frontend/src/app/main/ui/ds/controls/select.mdx b/frontend/src/app/main/ui/ds/controls/select.mdx
new file mode 100644
index 0000000000..2bc21a8c61
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/controls/select.mdx
@@ -0,0 +1,63 @@
+import { Canvas, Meta } from '@storybook/blocks';
+import * as SelectStories from "./select.stories";
+
+
+
+# Select
+
+Select lets users choose one option from an options menu.
+
+## Variants
+
+**Text**: We will use this variant when there are enough space and icons don't add any useful context.
+
+
+
+**Icon and text**: We will use this variant when there are enough space and icons add any useful context.
+
+
+## Technical notes
+
+### Icons
+
+Each option of `select*` may accept an `icon`, which must contain an [icon ID](../foundations/assets/icon.mdx).
+These are available in the `app.main.ds.foundations.assets.icon` namespace.
+
+
+```clj
+(ns app.main.ui.foo
+ (:require
+ [app.main.ui.ds.foundations.assets.icon :as i]))
+```
+
+```clj
+[:> select*
+ {:options [{ :label "Code"
+ :id "option-code"
+ :icon i/fill-content }
+ { :label "Design"
+ :id "option-design"
+ :icon i/pentool }
+ { :label "Menu"
+ :id "option-menu" }
+ ]}]
+```
+
+
+
+## Usage guidelines (design)
+
+### Where to use
+
+Used in a wide range of applications in the app,
+to select among available text-based options,
+sometimes with icons that offers additional context.
+
+### When to use
+
+Consider using select when you have 5 or more options to choose from.
+
+### Interaction / Behavior
+
+When the user clicks on the clickable area, a list of
+options appears. When an option is chosen, the list is closed.
\ No newline at end of file
diff --git a/frontend/src/app/main/ui/ds/controls/select.scss b/frontend/src/app/main/ui/ds/controls/select.scss
new file mode 100644
index 0000000000..ff2cbe5077
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/controls/select.scss
@@ -0,0 +1,147 @@
+// 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 "../typography.scss" as *;
+
+.select-wrapper {
+ --select-icon-fg-color: var(--color-foreground-secondary);
+ --select-fg-color: var(--color-foreground-primary);
+ --select-bg-color: var(--color-background-tertiary);
+ --select-outline-color: none;
+ --select-border-color: none;
+ --select-dropdown-border-color: var(--color-background-quaternary);
+
+ &:hover {
+ --select-bg-color: var(--color-background-quaternary);
+ }
+
+ @include use-typography("body-small");
+ position: relative;
+ display: grid;
+ grid-template-rows: auto;
+ gap: var(--sp-xxs);
+ width: 100%;
+}
+
+.select {
+ &:focus-visible {
+ --select-outline-color: var(--color-accent-primary);
+ }
+
+ &:disabled {
+ --select-bg-color: var(--color-background-primary);
+ --select-border-color: var(--color-background-quaternary);
+ --select-fg-color: var(--color-foreground-secondary);
+ }
+
+ display: grid;
+ grid-template-columns: 1fr auto;
+ gap: var(--sp-xs);
+ height: $sz-32;
+ width: 100%;
+ padding: var(--sp-s);
+ border: none;
+ border-radius: $br-8;
+ outline: $b-1 solid var(--select-outline-color);
+ border: $b-1 solid var(--select-border-color);
+ background: var(--select-bg-color);
+ color: var(--select-fg-color);
+ appearance: none;
+}
+
+.arrow {
+ color: var(--select-icon-fg-color);
+ transform: rotate(90deg);
+}
+
+.select-header {
+ display: grid;
+ justify-items: start;
+ gap: var(--sp-xs);
+}
+
+.header-label {
+ @include use-typography("body-small");
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ min-width: 0;
+ padding-inline-start: var(--sp-xxs);
+ text-align: left;
+ color: var(--select-fg-color);
+}
+
+.header-icon {
+ grid-template-columns: auto 1fr;
+ color: var(--select-icon-fg-color);
+}
+
+.option-list {
+ --options-dropdown-bg-color: var(--color-background-tertiary);
+ position: absolute;
+ right: 0;
+ top: $sz-36;
+ width: 100%;
+ background-color: var(--options-dropdown-bg-color);
+ border-radius: $br-8;
+ border: $b-1 solid var(--select-dropdown-border-color);
+ padding-block: var(--sp-xs);
+ margin-block-end: 0;
+ max-height: $sz-400;
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+
+.option {
+ --select-option-fg-color: var(--color-foreground-primary);
+ --select-option-bg-color: unset;
+
+ &:hover {
+ --select-option-bg-color: var(--color-background-quaternary);
+ }
+
+ &[aria-selected="true"] {
+ --select-option-bg-color: var(--color-background-quaternary);
+ }
+
+ display: grid;
+ align-items: center;
+ justify-items: start;
+ grid-template-columns: 1fr auto;
+ gap: var(--sp-xs);
+ width: 100%;
+ height: $sz-32;
+ padding: var(--sp-s);
+ border-radius: $br-8;
+ outline: $b-1 solid var(--select-outline-color);
+ outline-offset: -1px;
+ background-color: var(--select-option-bg-color);
+}
+
+.option-with-icon {
+ grid-template-columns: auto 1fr auto;
+}
+
+.option-text {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ min-width: 0;
+ padding-inline-start: var(--sp-xxs);
+}
+
+.option-icon {
+ color: var(--select-icon-fg-color);
+}
+
+.option-current {
+ --select-option-outline-color: var(--color-accent-primary);
+ outline: $b-1 solid var(--select-option-outline-color);
+}
diff --git a/frontend/src/app/main/ui/ds/controls/select.stories.jsx b/frontend/src/app/main/ui/ds/controls/select.stories.jsx
new file mode 100644
index 0000000000..03f488e8e0
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/controls/select.stories.jsx
@@ -0,0 +1,65 @@
+// 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 { Select } = Components;
+
+export default {
+ title: "Controls/Select",
+ component: Select,
+ argTypes: {
+ disabled: { control: "boolean" },
+ },
+ args: {
+ disabled: false,
+ options: [
+ {
+ label: "Code",
+ id: "option-code",
+ },
+ {
+ label: "Design",
+ id: "option-design",
+ },
+ {
+ label: "Menu",
+ id: "opeion-menu",
+ },
+ ],
+ defaultSelected: "option-code",
+ },
+ parameters: {
+ controls: {
+ exclude: ["options", "defaultSelected"],
+ },
+ },
+ render: ({ ...args }) => ,
+};
+
+export const Default = {};
+
+export const WithIcons = {
+ args: {
+ options: [
+ {
+ label: "Code",
+ id: "option-code",
+ icon: "fill-content",
+ },
+ {
+ label: "Design",
+ id: "option-design",
+ icon: "pentool",
+ },
+ {
+ label: "Menu",
+ id: "option-menu",
+ },
+ ],
+ },
+};
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 ee80566f62..50545e1e2b 100644
--- a/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs
+++ b/frontend/src/app/main/ui/ds/foundations/assets/icon.cljs
@@ -157,6 +157,7 @@
(def ^:icon-id hug-content "hug-content")
(def ^:icon-id icon "icon")
(def ^:icon-id img "img")
+(def ^:icon-id info "info")
(def ^:icon-id interaction "interaction")
(def ^:icon-id join-nodes "join-nodes")
(def ^:icon-id external-link "external-link")
@@ -277,10 +278,17 @@
(def ^:private icon-size-m 16)
(def ^:private icon-size-s 12)
+(def ^:private schema:icon
+ [:map
+ [:class {:optional true} :string]
+ [:id [:and :string [:fn #(contains? icon-list %)]]]
+ [:size {:optional true}
+ [:maybe [:enum "s" "m"]]]])
+
(mf/defc icon*
- {::mf/props :obj}
+ {::mf/props :obj
+ ::mf/schema schema:icon}
[{:keys [id size class] :rest props}]
- (assert (contains? icon-list id) "invalid icon id")
(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)
diff --git a/frontend/src/app/main/ui/ds/foundations/typography/heading.cljs b/frontend/src/app/main/ui/ds/foundations/typography/heading.cljs
index 374ae545f5..515b529e60 100644
--- a/frontend/src/app/main/ui/ds/foundations/typography/heading.cljs
+++ b/frontend/src/app/main/ui/ds/foundations/typography/heading.cljs
@@ -19,14 +19,16 @@
(defn- valid-typography? [value]
(contains? t/typography-list value))
+(def ^:private schema:heading
+ [:map
+ [:level {:optional true} [:and :int [:fn #(valid-level? %)]]]
+ [:class {:optional true} :string]
+ [:typography [:and :string [:fn #(valid-typography? (dm/str %))]]]])
+
(mf/defc heading*
- {::mf/props :obj}
+ {::mf/props :obj
+ ::mf/schema schema:heading}
[{: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)
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 6f9baa2dd2..9ae781dc30 100644
--- a/frontend/src/app/main/ui/ds/foundations/typography/text.cljs
+++ b/frontend/src/app/main/ui/ds/foundations/typography/text.cljs
@@ -15,12 +15,16 @@
(defn- valid-typography? [value]
(contains? t/typography-list value))
-(mf/defc text*
- {::mf/props :obj}
- [{:keys [as typography children class] :rest props}]
+(def ^:private schema:text
+ [:map
+ [:as {:optional true} :string]
+ [:class {:optional true} :string]
+ [:typography [:and :string [:fn #(valid-typography? (dm/str %))]]]])
- (assert (valid-typography? (dm/str typography))
- (dm/str typography " is an unknown typography"))
+(mf/defc text*
+ {::mf/props :obj
+ ::mf/schema schema:text}
+ [{:keys [as typography children class] :rest props}]
(let [as (if (or (empty? as) (nil? as)) "p" as)
class (dm/str (or class "") " " (stl/css-case :display-typography (= typography t/display)
diff --git a/frontend/src/app/main/ui/ds/layout/tab_switcher.cljs b/frontend/src/app/main/ui/ds/layout/tab_switcher.cljs
new file mode 100644
index 0000000000..1228c4c1f0
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/layout/tab_switcher.cljs
@@ -0,0 +1,203 @@
+;; 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.layout.tab-switcher
+ (:require-macros
+ [app.common.data.macros :as dm]
+ [app.main.style :as stl])
+ (:require
+ [app.main.ui.ds.foundations.assets.icon :refer [icon* icon-list]]
+ [app.util.array :as array]
+ [app.util.dom :as dom]
+ [app.util.keyboard :as kbd]
+ [app.util.object :as obj]
+ [rumext.v2 :as mf]))
+
+(mf/defc tab*
+ {::mf/props :obj
+ ::mf/private true}
+ [{:keys [selected icon label aria-label id on-ref] :rest props}]
+ (let [class (stl/css-case :tab true
+ :selected selected)
+ props (mf/spread-props props
+ {:class class
+ :role "tab"
+ :aria-selected selected
+ :title (or label aria-label)
+ :tab-index (if selected nil -1)
+ :ref (fn [node]
+ (on-ref node id))
+ :data-id id
+ ;; This prop is to be used for accessibility purposes only.
+ :id id})]
+
+ [:li
+ [:> :button props
+ (when (some? icon)
+ [:> icon*
+ {:id icon
+ :aria-hidden (when label true)
+ :aria-label (when (not label) aria-label)}])
+ (when (string? label)
+ [:span {:class (stl/css-case :tab-text true
+ :tab-text-and-icon icon)}
+ label])]]))
+
+(mf/defc tab-nav*
+ {::mf/props :obj
+ ::mf/private true}
+ [{:keys [on-ref tabs selected on-click button-position action-button] :rest props}]
+ (let [class (stl/css-case :tab-nav true
+ :tab-nav-start (= "start" button-position)
+ :tab-nav-end (= "end" button-position))
+ props (mf/spread-props props
+ {:class (stl/css :tab-list)
+ :role "tablist"
+ :aria-orientation "horizontal"})]
+ [:nav {:class class}
+ (when (= button-position "start")
+ action-button)
+
+ [:> "ul" props
+ (for [element ^js tabs]
+ (let [icon (obj/get element "icon")
+ label (obj/get element "label")
+ aria-label (obj/get element "aria-label")
+ id (obj/get element "id")]
+
+ [:> tab* {:icon icon
+ :key (dm/str "tab-" id)
+ :label label
+ :aria-label aria-label
+ :selected (= id selected)
+ :on-click on-click
+ :on-ref on-ref
+ :id id}]))]
+
+ (when (= button-position "end")
+ action-button)]))
+
+(defn- get-tab
+ [tabs id]
+ (or (array/find #(= id (obj/get % "id")) tabs)
+ (aget tabs 0)))
+
+(defn- get-selected-tab-id
+ [tabs default]
+ (let [tab (get-tab tabs default)]
+ (obj/get tab "id")))
+
+(def ^:private schema:tab
+ [:and
+ [:map {:title "tab"}
+ [:icon {:optional true}
+ [:and :string [:fn #(contains? icon-list %)]]]
+ [:label {:optional true} :string]
+ [:aria-label {:optional true} :string]
+ [:content some?]]
+ [:fn {:error/message "invalid data: missing required props"}
+ (fn [tab]
+ (or (and (contains? tab :icon)
+ (or (contains? tab :label)
+ (contains? tab :aria-label)))
+ (contains? tab :label)))]])
+
+(def ^:private schema:tab-switcher
+ [:map
+ [:tabs [:vector {:min 1} schema:tab]]
+ [:class {:optional true} :string]
+ [:on-change-tab {:optional true} fn?]
+ [:default-selected {:optional true} :string]
+ [:selected {:optional true} :string]
+ [:action-button {:optional true} some?]
+ [:action-button-position {:optional true}
+ [:maybe [:enum "start" "end"]]]])
+
+(mf/defc tab-switcher*
+ {::mf/props :obj
+ ::mf/schema schema:tab-switcher}
+ [{:keys [tabs class on-change-tab default-selected selected action-button-position action-button] :rest props}]
+ (let [selected* (mf/use-state #(or selected (get-selected-tab-id tabs default-selected)))
+ selected (or selected (deref selected*))
+
+ tabs-nodes-refs (mf/use-ref nil)
+ tabs-ref (mf/use-ref nil)
+
+ on-click
+ (mf/use-fn
+ (mf/deps on-change-tab)
+ (fn [event]
+ (let [node (dom/get-current-target event)
+ id (dom/get-data node "id")]
+ (reset! selected* id)
+
+ (when (fn? on-change-tab)
+ (on-change-tab id)))))
+
+ on-ref
+ (mf/use-fn
+ (fn [node id]
+ (let [refs (or (mf/ref-val tabs-nodes-refs) #js {})
+ refs (if node
+ (obj/set! refs id node)
+ (obj/unset! refs id))]
+ (mf/set-ref-val! tabs-nodes-refs refs))))
+
+ on-key-down
+ (mf/use-fn
+ (mf/deps selected)
+ (fn [event]
+ (let [tabs (mf/ref-val tabs-ref)
+ len (alength tabs)
+ sel? #(= selected (obj/get % "id"))
+ id (cond
+ (kbd/home? event)
+ (let [tab (aget tabs 0)]
+ (obj/get tab "id"))
+
+ (kbd/left-arrow? event)
+ (let [index (array/find-index sel? tabs)
+ index (mod (- index 1) len)
+ tab (aget tabs index)]
+ (obj/get tab "id"))
+
+ (kbd/right-arrow? event)
+ (let [index (array/find-index sel? tabs)
+ index (mod (+ index 1) len)
+ tab (aget tabs index)]
+ (obj/get tab "id")))]
+
+ (when (some? id)
+ (reset! selected* id)
+ (let [nodes (mf/ref-val tabs-nodes-refs)
+ node (obj/get nodes id)]
+ (dom/focus! node))))))
+
+ class (dm/str class " " (stl/css :tabs))
+
+ props (mf/spread-props props {:class class})]
+
+ (mf/with-effect [tabs]
+ (mf/set-ref-val! tabs-ref tabs))
+
+ [:> :article props
+ [:div {:class (stl/css :padding-wrapper)}
+ [:> tab-nav* {:button-position action-button-position
+ :action-button action-button
+ :tabs tabs
+ :on-ref on-ref
+ :selected selected
+ :on-key-down on-key-down
+ :on-click on-click}]]
+
+ (let [active-tab (get-tab tabs selected)
+ content (obj/get active-tab "content")
+ id (obj/get active-tab "id")]
+ [:section {:class (stl/css :tab-panel)
+ :tab-index 0
+ :role "tabpanel"
+ :aria-labelledby id}
+ content])]))
diff --git a/frontend/src/app/main/ui/ds/layout/tab_switcher.mdx b/frontend/src/app/main/ui/ds/layout/tab_switcher.mdx
new file mode 100644
index 0000000000..00e3da85e5
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/layout/tab_switcher.mdx
@@ -0,0 +1,121 @@
+import { Canvas, Meta } from '@storybook/blocks';
+import * as TabSwitcher from "./tab_switcher.stories";
+
+
+
+
+# Tab Switcher
+
+Tabbed interfaces are a way of navigating between multiple panels,
+reducing clutter and fitting more into a smaller space.
+
+## Variants
+
+**Icon + Text**, we will use this variant when there is plenty of space
+and an icon can help to understand the tab content quickly.
+Use it only when icons add real value, to avoid too much noise in the UI.
+
+
+**Text**, we will use this variant when there are enough space and icons don't add any useful context.
+
+
+
+**Icon**, we will use this variant in small spaces, when an icon is enough hint to understand the tab content.
+
+
+**With action button**, we can add an action button to the begining or ending of the tab nav.
+This button must be configured and styled outside of the component.
+
+
+
+
+## Technical notes
+
+### Icons
+
+Each tab of `tab_switcher*` accept an `icon`, which must contain an [icon ID](../foundations/assets/icon.mdx).
+These are available in the `app.main.ds.foundations.assets.icon` namespace.
+
+
+```clj
+(ns app.main.ui.foo
+ (:require
+ [app.main.ui.ds.foundations.assets.icon :as i]))
+```
+
+```clj
+[:> tab_switcher*
+ {:tabs [{ :label "Code"
+ :id "tab-code"
+ :icon i/fill-content
+ :content [:p Lorem Ipsum ]}
+ { :label "Design"
+ :id "tab-design"
+ :icon i/pentool
+ :content [:p Dolor sit amet ]}
+ { :label "Menu"
+ :id "tab-menu"
+ :icon i/mask
+ :content [:p Consectetur adipiscing elit ]}
+ ]}]
+```
+
+
+
+### Paddings
+
+We have the option to define `paddings` for tab nav from outside the component to fit all needs. In order to do so
+we will create, on the parent, this variables with the desired `value`.
+
+```scss
+.parent {
+ --tabs-nav-padding-inline-start: value;
+ --tabs-nav-padding-inline-end: value;
+ --tabs-nav-padding-block-start: value;
+ --tabs-nav-padding-block-end: value;
+}
+```
+
+### Accessibility
+
+A tab with icons only on a `tab_switcher*` require an `aria-label`. This is also shown in a tooltip on hovering the tab.
+
+```clj
+[:> tab_switcher*
+ {:tabs [{ :aria-label "Code"
+ :id "tab-code"
+ :icon i/fill-content
+ :content [:p Lorem Ipsum ]}
+ { :aria-label "Design"
+ :id "tab-design"
+ :icon i/pentool
+ :content [:p Dolor sit amet ]}
+ { :aria-label "Menu"
+ :id "tab-menu"
+ :icon i/mask
+ :content [:p Consectetur adipiscing elit ]}
+ ]}]
+```
+
+
+
+## Usage guidelines (design)
+
+### Where to use
+
+In panels where we want to show elements that are related but are
+different or have different goals, or that are in the same hierarchy level.
+
+### When to use
+
+Used when we need to display in the same space a full complex views of related elements.
+
+### Interaction / Behavior
+
+On click, switch the tab content.
+Tabs with icons only should display a tooltip on hover.
+
+In the event that the content of the tabs, due to language changes,
+modifies its length and does not fit within the tab sizes, the tabs
+will adapt to the content, trying to display it in full and reducing
+the size of the other tabs when possible.
\ No newline at end of file
diff --git a/frontend/src/app/main/ui/ds/layout/tab_switcher.scss b/frontend/src/app/main/ui/ds/layout/tab_switcher.scss
new file mode 100644
index 0000000000..0a85096956
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/layout/tab_switcher.scss
@@ -0,0 +1,117 @@
+// 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 "../_sizes.scss" as *;
+@use "../_borders.scss" as *;
+@use "../typography.scss" as *;
+
+.tabs {
+ --tabs-bg-color: var(--color-background-secondary);
+ display: grid;
+ grid-template-rows: auto 1fr;
+}
+
+.padding-wrapper {
+ padding-inline-start: var(--tabs-nav-padding-inline-start, 0);
+ padding-inline-end: var(--tabs-nav-padding-inline-end, 0);
+ padding-block-start: var(--tabs-nav-padding-block-start, 0);
+ padding-block-end: var(--tabs-nav-padding-block-end, 0);
+}
+
+// TAB NAV
+.tab-nav {
+ display: grid;
+ gap: var(--sp-xxs);
+ width: 100%;
+ border-radius: $br-8;
+ padding: var(--sp-xxs);
+ background-color: var(--tabs-bg-color);
+}
+
+.tab-nav-start {
+ grid-template-columns: auto 1fr;
+}
+
+.tab-nav-end {
+ grid-template-columns: 1fr auto;
+}
+
+.tab-list {
+ display: grid;
+ grid-auto-flow: column;
+ gap: var(--sp-xxs);
+ width: 100%;
+ // Removing margin bottom from default ul
+ margin-block-end: 0;
+ border-radius: $br-8;
+}
+
+// TAB
+.tab {
+ --tabs-item-bg-color: var(--color-background-secondary);
+ --tabs-item-fg-color: var(--color-foreground-secondary);
+ --tabs-item-fg-color-hover: var(--color-foreground-primary);
+ --tabs-item-outline-color: none;
+
+ &:hover {
+ --tabs-item-fg-color: var(--tabs-item-fg-color-hover);
+ }
+
+ &:focus-visible {
+ --tabs-item-outline-color: var(--color-accent-primary);
+ }
+
+ appearance: none;
+ height: $sz-32;
+ border: none;
+ border-radius: $br-8;
+ padding: 0 var(--sp-s);
+ outline: $b-1 solid var(--tabs-item-outline-color);
+ display: grid;
+ grid-auto-flow: column;
+ align-items: center;
+ justify-content: center;
+ column-gap: var(--sp-xs);
+ background: var(--tabs-item-bg-color);
+ color: var(--tabs-item-fg-color);
+ padding: 0 var(--sp-m);
+ width: 100%;
+}
+
+.selected {
+ --tabs-item-bg-color: var(--color-background-quaternary);
+ --tabs-item-fg-color: var(--color-accent-primary);
+ --tabs-item-fg-color-hover: var(--color-accent-primary);
+}
+
+.tab-text {
+ @include use-typography("headline-small");
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ min-width: 0;
+}
+
+.tab-text-and-icon {
+ padding-inline: var(--sp-xxs);
+}
+
+.tab-panel {
+ --tab-panel-outline-color: none;
+ &:focus {
+ outline: none;
+ }
+
+ &:focus-visible {
+ --tab-panel-outline-color: var(--color-accent-primary);
+ }
+
+ display: grid;
+ width: 100%;
+ height: 100%;
+ outline: $b-1 solid var(--tab-panel-outline-color);
+}
diff --git a/frontend/src/app/main/ui/ds/layout/tab_switcher.stories.jsx b/frontend/src/app/main/ui/ds/layout/tab_switcher.stories.jsx
new file mode 100644
index 0000000000..daaeada1a2
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/layout/tab_switcher.stories.jsx
@@ -0,0 +1,152 @@
+// 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 { TabSwitcher } = Components;
+
+const Padded = ({ children }) => (
+ {children}
+);
+
+export default {
+ title: "Layout/Tab switcher",
+ component: TabSwitcher,
+ args: {
+ tabs: [
+ {
+ label: "Code",
+ id: "tab-code",
+ content: (
+
+ Lorem Ipsum
+
+ ),
+ },
+ {
+ label: "Design",
+ id: "tab-design",
+ content: (
+
+ Dolor sit amet
+
+ ),
+ },
+ {
+ label: "Menu",
+ id: "tab-menu",
+ content: (
+
+ Consectetur adipiscing elit
+
+ ),
+ },
+ ],
+ defaultSelected: "tab-code",
+ },
+ argTypes: {
+ actionButtonPosition: {
+ control: "radio",
+ options: ["start", "end"],
+ },
+ },
+ parameters: {
+ controls: {
+ exclude: [
+ "tabs",
+ "actionButton",
+ "defaultSelected",
+ "actionButtonPosition",
+ ],
+ },
+ },
+ render: ({ ...args }) => ,
+};
+
+export const Default = {};
+
+const ActionButton = (
+ {
+ alert("You have clicked on the action button");
+ }}
+ style={{
+ backgroundColor: "var(--tabs-bg-color)",
+ height: "32px",
+ border: "none",
+ borderRadius: "8px",
+ color: "var(--color-foreground-secondary)",
+ display: "grid",
+ placeItems: "center",
+ appearance: "none",
+ }}
+ >
+ A
+
+);
+
+export const WithActionButton = {
+ args: {
+ actionButtonPosition: "start",
+ actionButton: ActionButton,
+ },
+ parameters: {
+ controls: {
+ exclude: ["tabs", "actionButton", "defaultSelected"],
+ },
+ },
+};
+
+export const WithIcons = {
+ args: {
+ tabs: [
+ {
+ "aria-label": "Code",
+ id: "tab-code",
+ icon: "fill-content",
+ content: Lorem Ipsum
,
+ },
+ {
+ "aria-label": "Design",
+ id: "tab-design",
+ icon: "pentool",
+ content: Dolor sit amet
,
+ },
+ {
+ "aria-label": "Menu",
+ id: "tab-menu",
+ icon: "mask",
+ content: Consectetur adipiscing elit
,
+ },
+ ],
+ },
+};
+
+export const WithIconsAndText = {
+ args: {
+ tabs: [
+ {
+ label: "Code",
+ id: "tab-code",
+ icon: "fill-content",
+ content: Lorem Ipsum
,
+ },
+ {
+ label: "Design",
+ id: "tab-design",
+ icon: "pentool",
+ content: Dolor sit amet
,
+ },
+ {
+ label: "Menu",
+ id: "tab-menu",
+ icon: "mask",
+ content: Consectetur adipiscing elit
,
+ },
+ ],
+ },
+};
diff --git a/frontend/src/app/main/ui/ds/notifications/notifications.mdx b/frontend/src/app/main/ui/ds/notifications/notifications.mdx
new file mode 100644
index 0000000000..6ea282a3e4
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/notifications/notifications.mdx
@@ -0,0 +1,43 @@
+import { Canvas, Meta } from '@storybook/blocks';
+import * as ToastStories from "./toast.stories";
+
+
+
+# Notifications
+
+`toast*` and `context-notification` accept a `level` prop to indicate the type of message. If this prop is `nil`,
+the default variant will be shown:
+
+
+
+Info:
+
+
+
+Warning:
+
+
+
+Error:
+
+
+
+Success:
+
+
+
+## Toasts
+
+Toast notifications are temporary floating elements that provide information
+that requires user acknowledgement.
+
+### Usage guidelines (design)
+
+#### Where to use
+
+Displayed in the top right corner of the page, in absolute position.
+
+#### When to use
+
+When the notification is temporary and is related or affects the whole context
+of the page the user is viewing or interacting with.
diff --git a/frontend/src/app/main/ui/ds/notifications/toast.cljs b/frontend/src/app/main/ui/ds/notifications/toast.cljs
new file mode 100644
index 0000000000..82f399f2f9
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/notifications/toast.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.notifications.toast
+ (:require-macros
+ [app.common.data.macros :as dm]
+ [app.main.style :as stl])
+ (:require
+ [app.main.ui.ds.foundations.assets.icon :as i]
+ [rumext.v2 :as mf]))
+
+(def levels (set '("info" "warning" "error" "success")))
+
+(def ^:private icons-by-level
+ {"info" i/info
+ "warning" i/msg-neutral
+ "error" i/delete-text
+ "success" i/status-tick})
+
+(def ^:private schema:toast
+ [:map
+ [:class {:optional true} :string]
+ [:level {:optional true}
+ [:maybe [:enum "info" "warning" "error" "success"]]]
+ [:on-close {:optional true} fn?]])
+
+(mf/defc toast*
+ {::mf/props :obj
+ ::mf/schema schema:toast}
+ [{:keys [class level children on-close] :rest props}]
+ (let [class (dm/str (stl/css-case :toast true
+ :toast-info (= level "info")
+ :toast-warning (= level "warning")
+ :toast-error (= level "error")
+ :toast-success (= level "success")) " " class)
+ icon-id (or (get icons-by-level level) i/msg-neutral)
+ props (mf/spread-props props {:class class})]
+ [:> "aside" props
+ [:*
+ [:> i/icon* {:id icon-id :class (stl/css :icon)}]
+ children
+ ;; TODO: this should be a buttom from the DS, but this variant is not designed yet.
+ ;; https://tree.taiga.io/project/penpot/task/8492
+ [:> "button" {:on-click on-close :aria-label "Close" :class (stl/css :close-button)} [:> i/icon* {:id i/close}]]]]))
\ No newline at end of file
diff --git a/frontend/src/app/main/ui/ds/notifications/toast.scss b/frontend/src/app/main/ui/ds/notifications/toast.scss
new file mode 100644
index 0000000000..8aec8b198e
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/notifications/toast.scss
@@ -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
+
+@use "../_sizes.scss" as *;
+@use "../_borders.scss" as *;
+@use "../typography.scss" as *;
+
+.toast {
+ @include use-typography("body-small");
+
+ --toast-bg-color: var(--color-background-primary);
+ --toast-fg-color: var(--color-foreground-primary);
+ --toast-border-color: var(--color-background-quaternary);
+ --toast-icon-color: var(--color-foreground-secondary);
+
+ min-width: $sz-224;
+ height: $sz-32;
+ background-color: var(--toast-bg-color);
+ border: $b-1 solid var(--toast-border-color);
+ border-radius: $br-8;
+ padding: 0 var(--sp-s);
+
+ display: inline-grid;
+ grid-template-columns: auto 1fr auto;
+ column-gap: var(--sp-s);
+ align-items: center;
+
+ color: var(--toast-fg-color);
+}
+
+.toast-info {
+ --toast-bg-color: var(--color-background-info);
+ --toast-fg-color: var(--color-foreground-primary);
+ --toast-border-color: var(--color-accent-info);
+ --toast-icon-color: var(--color-accent-info);
+}
+
+.toast-error {
+ --toast-bg-color: var(--color-background-error);
+ --toast-fg-color: var(--color-foreground-primary);
+ --toast-border-color: var(--color-accent-error);
+ --toast-icon-color: var(--color-accent-error);
+}
+
+.toast-warning {
+ --toast-bg-color: var(--color-background-warning);
+ --toast-fg-color: var(--color-foreground-primary);
+ --toast-border-color: var(--color-accent-warning);
+ --toast-icon-color: var(--color-accent-warning);
+}
+
+.toast-success {
+ --toast-bg-color: var(--color-background-success);
+ --toast-fg-color: var(--color-foreground-primary);
+ --toast-border-color: var(--color-accent-success);
+ --toast-icon-color: var(--color-accent-success);
+}
+
+.icon {
+ color: var(--toast-icon-color);
+}
+
+.close-button {
+ appearance: none;
+ width: $sz-16;
+ height: $sz-16;
+ display: inline-grid;
+ place-content: center;
+ border: none;
+ background: var(--toast-bg-color);
+ color: var(--toast-icon-color);
+}
diff --git a/frontend/src/app/main/ui/ds/notifications/toast.stories.jsx b/frontend/src/app/main/ui/ds/notifications/toast.stories.jsx
new file mode 100644
index 0000000000..91f7027433
--- /dev/null
+++ b/frontend/src/app/main/ui/ds/notifications/toast.stories.jsx
@@ -0,0 +1,77 @@
+// 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 { Toast } = Components;
+
+export default {
+ title: "Notifications/Toast",
+ component: Toast,
+ argTypes: {
+ children: {
+ control: { type: "text" },
+ },
+ },
+ args: {
+ children: "Lorem ipsum",
+ onClose: () => {
+ alert("Close callback");
+ },
+ },
+ parameters: {
+ controls: {
+ exclude: ["onClose"],
+ },
+ },
+ render: ({ ...args }) => ,
+};
+
+export const Default = {};
+
+export const WithLongerText = {
+ args: {
+ children:
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent lorem ante, bibendum sed ex.",
+ },
+};
+
+export const Info = {
+ args: {
+ level: "info",
+ },
+ parameters: {
+ controls: { exclude: ["level", "onClose"] },
+ },
+};
+
+export const Error = {
+ args: {
+ level: "error",
+ },
+ parameters: {
+ controls: { exclude: ["level", "onClose"] },
+ },
+};
+
+export const Warning = {
+ args: {
+ level: "warning",
+ },
+ parameters: {
+ controls: { exclude: ["level", "onClose"] },
+ },
+};
+
+export const Success = {
+ args: {
+ level: "success",
+ },
+ parameters: {
+ controls: { exclude: ["level", "onClose"] },
+ },
+};
diff --git a/frontend/src/app/main/ui/ds/product/loader.cljs b/frontend/src/app/main/ui/ds/product/loader.cljs
index eca99efee7..9df8fa7040 100644
--- a/frontend/src/app/main/ui/ds/product/loader.cljs
+++ b/frontend/src/app/main/ui/ds/product/loader.cljs
@@ -10,6 +10,7 @@
[app.main.style :as stl])
(:require
[app.common.math :as mth]
+ [app.util.i18n :as i18n :refer [tr]]
[rumext.v2 :as mf]))
(mf/defc loader-icon*
@@ -22,7 +23,6 @@
:width width
:height height
:class class})]
-
[:> "svg" props
[:title title]
[:g
@@ -32,19 +32,26 @@
:d
"M134.482 157.147v25l518.57.008.002-25-518.572-.008z"}]]]))
+(def ^:private schema:loader
+ [:map
+ [:class {:optional true} :string]
+ [:width {:optional true} :int]
+ [:height {:optional true} :int]
+ [:title {:optional true} :string]
+ [:overlay {:optional true} :boolean]])
+
(mf/defc loader*
- {::mf/props :obj}
+ {::mf/props :obj
+ ::mf/schema schema:loader}
[{:keys [class width height title overlay children] :rest props}]
(let [w (or width (when (some? height) (mth/ceil (* height (/ 100 27)))) 100)
h (or height (when (some? width) (mth/ceil (* width (/ 27 100)))) 27)
class (dm/str (or class "") " " (stl/css-case :wrapper true
:wrapper-overlay overlay))
+ title (or title (tr "labels.loading"))
props (mf/spread-props props {:class class})]
- (assert title
- (dm/str "You must provide an accesible name for the component"))
-
[:> "div" props
[:> loader-icon* {:title title
:width w
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 8616f5c887..7292d701b0 100644
--- a/frontend/src/app/main/ui/ds/product/loader.stories.jsx
+++ b/frontend/src/app/main/ui/ds/product/loader.stories.jsx
@@ -7,10 +7,10 @@ export default {
title: "Product/Loader",
component: Loader,
args: {
- title: "Loading…",
overlay: false,
},
argTypes: {
+ title: { control: "text" },
width: { control: "number" },
height: { control: "number" },
overlay: { control: "boolean" },
diff --git a/frontend/src/app/main/ui/error_boundary.cljs b/frontend/src/app/main/ui/error_boundary.cljs
new file mode 100644
index 0000000000..f34f009413
--- /dev/null
+++ b/frontend/src/app/main/ui/error_boundary.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.error-boundary
+ "React error boundary components"
+ (:require
+ ["react-error-boundary" :as reb]
+ [app.main.errors :as errors]
+ [app.main.refs :as refs]
+ [goog.functions :as gfn]
+ [rumext.v2 :as mf]))
+
+(mf/defc error-boundary*
+ {::mf/props :obj}
+ [{:keys [fallback children]}]
+ (let [fallback-wrapper
+ (mf/with-memo [fallback]
+ (mf/fnc fallback-wrapper*
+ {::mf/props :obj}
+ [{:keys [error reset-error-boundary]}]
+ (let [route (mf/deref refs/route)
+ data (errors/exception->error-data error)]
+ [:> fallback {:data data
+ :route route
+ :on-reset reset-error-boundary}])))
+
+ on-error
+ (mf/with-memo []
+ ;; NOTE: The debounce is necessary just for simplicity,
+ ;; becuase for some reasons the error is reported twice in a
+ ;; very small amount of time, so we debounce for 100ms for
+ ;; avoid duplicate and redundant reports
+ (gfn/debounce (fn [error info]
+ (js/console.error
+ "Component trace: \n"
+ (unchecked-get info "componentStack")
+ "\n"
+ error))
+ 100))]
+
+ [:> reb/ErrorBoundary
+ {:FallbackComponent fallback-wrapper
+ :onError on-error}
+ children]))
diff --git a/frontend/src/app/main/ui/export.cljs b/frontend/src/app/main/ui/export.cljs
index a0257e0e21..fc15a04bbc 100644
--- a/frontend/src/app/main/ui/export.cljs
+++ b/frontend/src/app/main/ui/export.cljs
@@ -11,6 +11,7 @@
[app.common.colors :as clr]
[app.common.data :as d]
[app.common.data.macros :as dm]
+ [app.main.data.events :as ev]
[app.main.data.exports :as de]
[app.main.data.modal :as modal]
[app.main.refs :as refs]
@@ -24,6 +25,7 @@
[app.util.strings :as ust]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
+ [potok.v2.core :as ptk]
[rumext.v2 :as mf]))
(def ^:private neutral-icon
@@ -36,10 +38,9 @@
(i/icon-xref :close (stl/css :close-icon)))
(mf/defc export-multiple-dialog
- [{:keys [exports title cmd no-selection]}]
+ [{:keys [exports title cmd no-selection origin]}]
(let [lstate (mf/deref refs/export)
in-progress? (:in-progress lstate)
-
exports (mf/use-state exports)
all-exports (deref exports)
@@ -62,7 +63,11 @@
(st/emit! (modal/hide)
(de/request-multiple-export
{:exports enabled-exports
- :cmd cmd})))
+ :cmd cmd})
+ (ptk/event
+ ::ev/event {::ev/name "export-shapes"
+ ::ev/origin origin
+ :num-shapes (count enabled-exports)})))
on-toggle-enabled
(mf/use-fn
@@ -187,23 +192,25 @@
(mf/defc export-shapes-dialog
{::mf/register modal/components
::mf/register-as :export-shapes}
- [{:keys [exports]}]
+ [{:keys [exports origin]}]
(let [title (tr "dashboard.export-shapes.title")]
[:& export-multiple-dialog
{:exports exports
:title title
:cmd :export-shapes
- :no-selection shapes-no-selection}]))
+ :no-selection shapes-no-selection
+ :origin origin}]))
(mf/defc export-frames
{::mf/register modal/components
::mf/register-as :export-frames}
- [{:keys [exports]}]
+ [{:keys [exports origin]}]
(let [title (tr "dashboard.export-frames.title")]
[:& export-multiple-dialog
{:exports exports
:title title
- :cmd :export-frames}]))
+ :cmd :export-frames
+ :origin origin}]))
(mf/defc export-progress-widget
{::mf/wrap [mf/memo]}
@@ -362,7 +369,9 @@
selected (:selected state)
status (:status state)
-
+ ;; We've deprecated the merge option on non-binary files because it wasn't working
+ ;; and we're planning to remove this export in future releases.
+ export-types (if binary? export-types [:all :detach])
start-export
(mf/use-fn
diff --git a/frontend/src/app/main/ui/hooks.cljs b/frontend/src/app/main/ui/hooks.cljs
index bb05d2b1cc..e76f8d71ae 100644
--- a/frontend/src/app/main/ui/hooks.cljs
+++ b/frontend/src/app/main/ui/hooks.cljs
@@ -16,7 +16,7 @@
[app.main.store :as st]
[app.util.dom :as dom]
[app.util.dom.dnd :as dnd]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[app.util.timers :as ts]
[app.util.webapi :as wapi]
[beicon.v2.core :as rx]
@@ -260,6 +260,14 @@
(when ^boolean obj
(apply (.-f obj) args)))))))
+(defn use-ref-value
+ "Returns a ref that will be automatically updated when the value is changed"
+ [v]
+ (let [ref (mf/use-ref v)]
+ (mf/with-effect [v]
+ (mf/set-ref-val! ref v))
+ ref))
+
(defn use-equal-memo
[val]
(let [ref (mf/use-ref nil)]
@@ -294,19 +302,21 @@
`key` for new values."
[key default]
(let [id (mf/use-id)
- state (mf/use-state (get @storage key default))
+ state* (mf/use-state #(get storage/user key default))
+ state (deref state*)
stream (mf/with-memo [id]
(->> mbc/stream
(rx/filter #(not= (:id %) id))
(rx/filter #(= (:type %) key))
(rx/map deref)))]
- (mf/with-effect [@state key id]
- (mbc/emit! id key @state)
- (swap! storage assoc key @state))
+ (mf/with-effect [state key id]
+ (mbc/emit! id key state)
+ (swap! storage/user assoc key state))
- (use-stream stream (partial reset! state))
- state))
+ (use-stream stream (partial reset! state*))
+
+ state*))
(defonce ^:private intersection-subject (rx/subject))
(defonce ^:private intersection-observer
diff --git a/frontend/src/app/main/ui/hooks/resize.cljs b/frontend/src/app/main/ui/hooks/resize.cljs
index 148cdf773d..5a42160543 100644
--- a/frontend/src/app/main/ui/hooks/resize.cljs
+++ b/frontend/src/app/main/ui/hooks/resize.cljs
@@ -6,6 +6,7 @@
(ns app.main.ui.hooks.resize
(:require
+ [app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.geom.point :as gpt]
[app.common.logging :as log]
@@ -13,13 +14,22 @@
[app.main.ui.context :as ctx]
[app.main.ui.hooks :as hooks]
[app.util.dom :as dom]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[rumext.v2 :as mf]))
(log/set-level! :warn)
(def last-resize-type nil)
+(defn- get-initial-state
+ [initial file-id key]
+ (let [saved (dm/get-in storage/user [::state file-id key])]
+ (d/nilv saved initial)))
+
+(defn- update-persistent-state
+ [data file-id key size]
+ (update-in data [::state file-id] assoc key size))
+
(defn set-resize-type! [type]
(set! last-resize-type type))
@@ -28,26 +38,28 @@
(use-resize-hook key initial min-val max-val axis negate? resize-type nil))
([key initial min-val max-val axis negate? resize-type on-change-size]
- (let [current-file-id (mf/use-ctx ctx/current-file-id)
- size-state (mf/use-state (or (get-in @storage [::saved-resize current-file-id key]) initial))
- parent-ref (mf/use-ref nil)
+ (let [file-id (mf/use-ctx ctx/current-file-id)
- dragging-ref (mf/use-ref false)
+ current-size* (mf/use-state #(get-initial-state initial file-id key))
+ current-size (deref current-size*)
+
+ parent-ref (mf/use-ref nil)
+ dragging-ref (mf/use-ref false)
start-size-ref (mf/use-ref nil)
- start-ref (mf/use-ref nil)
+ start-ref (mf/use-ref nil)
on-pointer-down
- (mf/use-callback
- (mf/deps @size-state)
+ (mf/use-fn
+ (mf/deps current-size)
(fn [event]
(dom/capture-pointer event)
- (mf/set-ref-val! start-size-ref @size-state)
+ (mf/set-ref-val! start-size-ref current-size)
(mf/set-ref-val! dragging-ref true)
(mf/set-ref-val! start-ref (dom/get-client-position event))
(set! last-resize-type resize-type)))
on-lost-pointer-capture
- (mf/use-callback
+ (mf/use-fn
(fn [event]
(dom/release-pointer event)
(mf/set-ref-val! start-size-ref nil)
@@ -56,40 +68,39 @@
(set! last-resize-type nil)))
on-pointer-move
- (mf/use-callback
- (mf/deps min-val max-val negate?)
+ (mf/use-fn
+ (mf/deps min-val max-val negate? file-id key)
(fn [event]
(when (mf/ref-val dragging-ref)
(let [start (mf/ref-val start-ref)
- pos (dom/get-client-position event)
+ pos (dom/get-client-position event)
delta (-> (gpt/to-vec start pos)
(cond-> negate? gpt/negate)
(get axis))
+
start-size (mf/ref-val start-size-ref)
new-size (-> (+ start-size delta) (max min-val) (min max-val))]
- (reset! size-state new-size)
- (swap! storage assoc-in [::saved-resize current-file-id key] new-size)
- (when on-change-size (on-change-size new-size))))))
+ (reset! current-size* new-size)
+ (swap! storage/user update-persistent-state file-id key new-size)))))
set-size
- (mf/use-callback
- (mf/deps on-change-size)
+ (mf/use-fn
+ (mf/deps on-change-size file-id key)
(fn [new-size]
(let [new-size (mth/clamp new-size min-val max-val)]
- (reset! size-state new-size)
- (swap! storage assoc-in [::saved-resize current-file-id key] new-size)
- (when on-change-size (on-change-size new-size)))))]
+ (reset! current-size* new-size)
+ (swap! storage/user update-persistent-state file-id key new-size))))]
- (mf/use-effect
- (fn []
- (when on-change-size (on-change-size @size-state))))
+ (mf/with-effect [on-change-size current-size]
+ (when on-change-size
+ (on-change-size current-size)))
{:on-pointer-down on-pointer-down
:on-lost-pointer-capture on-lost-pointer-capture
:on-pointer-move on-pointer-move
:parent-ref parent-ref
:set-size set-size
- :size @size-state})))
+ :size current-size})))
(defn use-resize-observer
[callback]
diff --git a/frontend/src/app/main/ui/messages.cljs b/frontend/src/app/main/ui/messages.cljs
deleted file mode 100644
index ba40ad1cfa..0000000000
--- a/frontend/src/app/main/ui/messages.cljs
+++ /dev/null
@@ -1,54 +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.messages
- (:require
- [app.main.data.messages :as dmsg]
- [app.main.refs :as refs]
- [app.main.store :as st]
- [app.main.ui.notifications.context-notification :refer [context-notification]]
- [app.main.ui.notifications.inline-notification :refer [inline-notification]]
- [app.main.ui.notifications.toast-notification :refer [toast-notification]]
- [rumext.v2 :as mf]))
-
-(mf/defc notifications-hub
- []
- (let [message (mf/deref refs/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
- 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
- {:type (or (:type message) :info)
- :links (:links message)
- :on-close on-close
- :content (:content message)}]))))
diff --git a/frontend/src/app/main/ui/notifications.cljs b/frontend/src/app/main/ui/notifications.cljs
new file mode 100644
index 0000000000..14c01d3909
--- /dev/null
+++ b/frontend/src/app/main/ui/notifications.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 app.main.ui.notifications
+ (:require
+ [app.main.data.notifications :as ntf]
+ [app.main.store :as st]
+ [app.main.ui.notifications.context-notification :refer [context-notification]]
+ [app.main.ui.notifications.inline-notification :refer [inline-notification]]
+ [app.main.ui.notifications.toast-notification :refer [toast-notification]]
+ [okulary.core :as l]
+ [rumext.v2 :as mf]))
+
+(def ref:notification
+ (l/derived :notification st/state))
+
+(mf/defc current-notification
+ []
+ (let [notification (mf/deref ref:notification)
+ on-close (mf/use-fn #(st/emit! (ntf/hide)))
+ context? (and (nil? (:timeout notification))
+ (nil? (:actions notification)))
+ inline? (or (= :inline (:type notification))
+ (= :floating (:position notification)))
+ toast? (or (= :toast (:type notification))
+ (some? (:timeout notification)))]
+
+ (when notification
+ (cond
+ toast?
+ [:& toast-notification
+ {:level (or (:level notification) :info)
+ :links (:links notification)
+ :on-close on-close
+ :content (:content notification)}]
+
+ inline?
+ [:& inline-notification
+ {:actions (:actions notification)
+ :links (:links notification)
+ :content (:content notification)}]
+
+ context?
+ [:& context-notification
+ {:level (or (:level notification) :info)
+ :links (:links notification)
+ :content (:content notification)}]
+
+ :else
+ [:& toast-notification
+ {:level (or (:level notification) :info)
+ :links (:links notification)
+ :on-close on-close
+ :content (:content notification)}]))))
diff --git a/frontend/src/app/main/ui/notifications/context_notification.cljs b/frontend/src/app/main/ui/notifications/context_notification.cljs
index 19a68ad265..f79219c006 100644
--- a/frontend/src/app/main/ui/notifications/context_notification.cljs
+++ b/frontend/src/app/main/ui/notifications/context_notification.cljs
@@ -25,9 +25,9 @@
(def ^:private info-icon
(i/icon-xref :help (stl/css :icon)))
-(defn get-icon-by-type
- [type]
- (case type
+(defn get-icon-by-level
+ [level]
+ (case level
:warning neutral-icon
:error error-icon
:success success-icon
@@ -36,19 +36,17 @@
(mf/defc context-notification
"They are persistent, informative and non-actionable.
- They are contextual messages in specific areas off the app"
-
+ They are contextual messages in specific areas off the app"
{::mf/props :obj}
- [{:keys [type content links is-html] :as props}]
-
+ [{:keys [level content links is-html] :as props}]
[:aside {:class (stl/css-case :context-notification true
:contain-html is-html
- :warning (= type :warning)
- :error (= type :error)
- :success (= type :success)
- :info (= type :info))}
+ :warning (= level :warning)
+ :error (= level :error)
+ :success (= level :success)
+ :info (= level :info))}
- (get-icon-by-type type)
+ (get-icon-by-level level)
;; The content can arrive in markdown format, in these cases
;; we will use the prop is-html to true to indicate it and
diff --git a/frontend/src/app/main/ui/notifications/toast_notification.cljs b/frontend/src/app/main/ui/notifications/toast_notification.cljs
index 639e605c08..0879042dca 100644
--- a/frontend/src/app/main/ui/notifications/toast_notification.cljs
+++ b/frontend/src/app/main/ui/notifications/toast_notification.cljs
@@ -28,9 +28,9 @@
(def ^:private close-icon
(i/icon-xref :close (stl/css :close-icon)))
-(defn get-icon-by-type
- [type]
- (case type
+(defn get-icon-by-level
+ [level]
+ (case level
:warning neutral-icon
:error error-icon
:success success-icon
@@ -44,15 +44,15 @@
error messages that require user interaction."
{::mf/props :obj}
- [{:keys [type content on-close links] :as props}]
+ [{:keys [level content on-close links] :as props}]
[:aside {:class (stl/css-case :toast-notification true
- :warning (= type :warning)
- :error (= type :error)
- :success (= type :success)
- :info (= type :info))}
+ :warning (= level :warning)
+ :error (= level :error)
+ :success (= level :success)
+ :info (= level :info))}
- (get-icon-by-type type)
+ (get-icon-by-level level)
[:div {:class (stl/css :text)}
content
diff --git a/frontend/src/app/main/ui/onboarding/newsletter.cljs b/frontend/src/app/main/ui/onboarding/newsletter.cljs
index 6489f2dcbd..48c3db10fe 100644
--- a/frontend/src/app/main/ui/onboarding/newsletter.cljs
+++ b/frontend/src/app/main/ui/onboarding/newsletter.cljs
@@ -8,7 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.main.data.events :as-alias ev]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.main.ui.icons :as i]
@@ -37,7 +37,7 @@
(fn []
(when (or (:newsletter-updates state)
(:newsletter-news state))
- (st/emit! (msg/success (tr "onboarding.newsletter.acceptance-message"))))
+ (st/emit! (ntf/success (tr "onboarding.newsletter.acceptance-message"))))
(let [params (-> state
(assoc ::ev/name "onboarding-step")
diff --git a/frontend/src/app/main/ui/onboarding/questions.cljs b/frontend/src/app/main/ui/onboarding/questions.cljs
index 00898cd2c7..5e223f69f6 100644
--- a/frontend/src/app/main/ui/onboarding/questions.cljs
+++ b/frontend/src/app/main/ui/onboarding/questions.cljs
@@ -217,9 +217,9 @@
[: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"]]
+ [:enum "ux" "developer" "student-teacher" "designer" "marketing" "manager" "other"]]
[:responsability
- [:enum "team-leader" "team-member" "freelancer" "ceo-founder" "director" "student-teacher" "other"]]
+ [:enum "team-leader" "team-member" "freelancer" "ceo-founder" "director" "other"]]
[:role-other {:optional true} [::sm/text {:max 512}]]
[:responsability-other {:optional true} [::sm/text {:max 512}]]]
@@ -372,7 +372,6 @@
[:& fm/image-radio-buttons {:options start-options
:img-width "159px"
:img-height "120px"
- :class (stl/css :image-radio)
:name :start-with
:on-change on-start-change}]
diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs
index 40e3506cd1..50ee2fba83 100644
--- a/frontend/src/app/main/ui/onboarding/team_choice.cljs
+++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs
@@ -11,11 +11,11 @@
[app.common.schema :as sm]
[app.main.data.dashboard :as dd]
[app.main.data.events :as ev]
- [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.main.ui.icons :as i]
+ [app.main.ui.notifications.context-notification :refer [context-notification]]
[app.util.i18n :as i18n :refer [tr]]
[app.util.router :as rt]
[potok.v2.core :as ptk]
@@ -57,7 +57,7 @@
(def ^:private schema:invite-form
[:map {:title "InviteForm"}
[:role :keyword]
- [:emails [::sm/set {:kind ::sm/email}]]])
+ [:emails {:optional true} [::sm/set ::sm/email]]])
(defn- get-available-roles
[]
@@ -66,18 +66,15 @@
(mf/defc team-form-step-2
{::mf/props :obj}
- [{:keys [name on-back]}]
- (let [initial (mf/use-memo
- #(do {:role "editor"
- :name name}))
+ [{:keys [name on-back go-to-team?]}]
+ (let [initial (mf/with-memo []
+ {:role "editor" :name name})
form (fm/use-form :schema schema:invite-form
:initial initial)
- params (:clean-data @form)
- emails (:emails params)
-
roles (mf/use-memo get-available-roles)
+ error* (mf/use-state nil)
on-success
(mf/use-fn
@@ -85,12 +82,33 @@
(let [team-id (:id response)]
(st/emit! (du/update-profile-props {:onboarding-team-id team-id
:onboarding-viewed true})
- (rt/nav :dashboard-projects {:team-id team-id})))))
+ (when go-to-team?
+ (rt/nav :dashboard-projects {:team-id team-id}))))))
on-error
(mf/use-fn
- (fn [_]
- (st/emit! (msg/error (tr "errors.generic")))))
+ (fn [cause]
+ (let [{:keys [type code] :as error} (ex-data cause)]
+ (cond
+ (and (= :validation type)
+ (= :profile-is-muted code))
+ (swap! error* (tr "errors.profile-is-muted"))
+
+ (and (= :validation type)
+ (= :max-invitations-by-request code))
+ (swap! error* (tr "errors.maximum-invitations-by-request-reached" (:threshold error)))
+
+ (and (= :restriction type)
+ (= :max-quote-reached code))
+ (swap! error* (tr "errors.max-quote-reached" (:target error)))
+
+ (or (= :member-is-muted code)
+ (= :email-has-permanent-bounces code)
+ (= :email-has-complaints code))
+ (swap! error* (tr "errors.email-spam-or-permanent-bounces" (:email error)))
+
+ :else
+ (swap! error* (tr "errors.generic"))))))
on-invite-later
(mf/use-fn
@@ -110,7 +128,7 @@
on-invite-now
(mf/use-fn
- (fn [{:keys [name] :as params}]
+ (fn [{:keys [name emails] :as params}]
(let [mdata {:on-success on-success
:on-error on-error}]
@@ -142,6 +160,10 @@
[:& fm/form {:form form
:class (stl/css :modal-form-invitations)
:on-submit on-submit}
+
+ (when-let [content (deref error*)]
+ [:& context-notification {:content content :level :error}])
+
[:div {:class (stl/css :role-select)}
[:p {:class (stl/css :role-title)} (tr "onboarding.choice.team-up.roles")]
[:& fm/select {:name :role :options roles}]]
@@ -154,18 +176,22 @@
:valid-item-fn sm/parse-email
:caution-item-fn #{}
:label (tr "modals.invite-member.emails")
- :on-submit on-submit}]]
+ ;; :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"))}]]
+ (let [params (:clean-data @form)
+ emails (:emails params)]
+ [:> 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") ")"]]]
@@ -240,7 +266,7 @@
(mf/defc onboarding-team-modal
{::mf/props :obj}
- []
+ [{:keys [go-to-team?]}]
(let [name* (mf/use-state nil)
name (deref name*)
@@ -262,6 +288,6 @@
[:& left-sidebar]
[:div {:class (stl/css :separator)}]
(if name
- [:& team-form-step-2 {:name name :on-back on-back}]
+ [:& team-form-step-2 {:name name :on-back on-back :go-to-team? go-to-team?}]
[:& team-form-step-1 {:on-submit on-submit}])]]))
diff --git a/frontend/src/app/main/ui/releases.cljs b/frontend/src/app/main/ui/releases.cljs
index 6dd39b14f8..d07f2d95f1 100644
--- a/frontend/src/app/main/ui/releases.cljs
+++ b/frontend/src/app/main/ui/releases.cljs
@@ -28,6 +28,8 @@
[app.main.ui.releases.v1-9]
[app.main.ui.releases.v2-0]
[app.main.ui.releases.v2-1]
+ [app.main.ui.releases.v2-2]
+ [app.main.ui.releases.v2-3]
[app.util.object :as obj]
[app.util.timers :as tm]
[rumext.v2 :as mf]))
@@ -92,4 +94,4 @@
(defmethod rc/render-release-notes "0.0"
[params]
- (rc/render-release-notes (assoc params :version "2.1")))
+ (rc/render-release-notes (assoc params :version "2.2")))
diff --git a/frontend/src/app/main/ui/releases/v2_2.cljs b/frontend/src/app/main/ui/releases/v2_2.cljs
new file mode 100644
index 0000000000..2707f94d37
--- /dev/null
+++ b/frontend/src/app/main/ui/releases/v2_2.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 app.main.ui.releases.v2-2
+ (: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.2"
+ [{: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)}
+ "This Penpot 2.2 release focuses on internal changes that are laying out the ground for the upcoming plugin system and substantial performance improvements."]
+
+ [:p {:class (stl/css :feature-content)}
+ "This version also adds full JSON API interoperability and the brand-new Penpot’s Storybook!"]
+
+ [:p {:class (stl/css :feature-content)}
+ "Self-hosted Penpot installations will benefit from better file data storage and Penpot admins can now use the improved automatic snapshotting process when recovering old files."]
+
+ [:p {:class (stl/css :feature-content)}
+ "Thanks again to our awesome community for their amazing contributions to this release!"]]
+
+ [: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_2.scss b/frontend/src/app/main/ui/releases/v2_2.scss
new file mode 100644
index 0000000000..dd6adbd8a0
--- /dev/null
+++ b/frontend/src/app/main/ui/releases/v2_2.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-480;
+ 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;
+}
diff --git a/frontend/src/app/main/ui/releases/v2_3.cljs b/frontend/src/app/main/ui/releases/v2_3.cljs
new file mode 100644
index 0000000000..4d3789a10b
--- /dev/null
+++ b/frontend/src/app/main/ui/releases/v2_3.cljs
@@ -0,0 +1,115 @@
+;; 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-3
+ (: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]))
+
+;; TODO: Review all copies and alt text
+(defmethod c/render-release-notes "2.3"
+ [{:keys [slide klass next finish navigate 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.3-slide-0.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)}
+ [:span {:class (stl/css :feature-title)}
+ "Penpot can now be extended by using Plugins!"]
+
+ [:p {:class (stl/css :feature-content)}
+ "The introduction of our brand new Plugin system allows you to access even richer ecosystem of capabilities."]
+
+ [:p {:class (stl/css :feature-content)}
+ "We are beyond excitement about how this will further involve the Penpot community in building the best design and prototyping platform."]
+
+ [:p {:class (stl/css :feature-content)}
+ "Let’s dive in!"]]
+
+ [:div {:class (stl/css :navigation)}
+ [:button {:class (stl/css :next-btn)
+ :on-click next} "Continue"]]]]]]
+
+ 0
+ [:div {:class (stl/css-case :modal-overlay true)}
+ [:div.animated {:class klass}
+ [:div {:class (stl/css :modal-container)}
+ [:img {:src "images/features/2.3-img-slide-1.gif"
+ :class (stl/css :start-image)
+ :border "0"
+ :alt "Build Plugins to enhance your workflow"}]
+
+ [:div {:class (stl/css :modal-content)}
+ [:div {:class (stl/css :modal-header)}
+ [:h1 {:class (stl/css :modal-title)}
+ "Build Plugins and enhance your workflow"]]
+
+ [:div {:class (stl/css :feature)}
+ [:p {:class (stl/css :feature-content)}
+ "Penpot Plugins encourage developers to easily customize and expand the platform using standard web technologies like JavaScript, CSS, and HTML."]
+
+ [:p {:class (stl/css :feature-content)}
+ "Find everything you need in ouor full comprehensive documentation to start building your plugins now!"]]
+
+ [:div {:class (stl/css :navigation)}
+ [:& c/navigation-bullets
+ {:slide slide
+ :navigate navigate
+ :total 2}]
+
+ [:button {:on-click next
+ :class (stl/css :next-btn)} "Continue"]]]]]]
+
+
+ 1
+ [:div {:class (stl/css-case :modal-overlay true)}
+ [:div.animated {:class klass}
+ [:div {:class (stl/css :modal-container)}
+ [:img {:src "images/features/2.3-img-slide-2.gif"
+ :class (stl/css :start-image)
+ :border "0"
+ :alt "Plugins are safe and extremely easy to use"}]
+
+ [:div {:class (stl/css :modal-content)}
+ [:div {:class (stl/css :modal-header)}
+ [:h1 {:class (stl/css :modal-title)}
+ "Plugins are safe and extremely easy to use"]]
+ [:div {:class (stl/css :feature)}
+ [:p {:class (stl/css :feature-content)}
+ "Penpot plugins are quite easy to install."]
+ [:p {:class (stl/css :feature-content)}
+ "Be sure to keep an eye on our evolving " [:a {:href "https://penpot.app/penpothub" :target "_blank"} "Penpot Hub"] " to pick the ones that are best suited to enhance your workflow."]
+
+ [:p {:class (stl/css :feature-content)}
+ "This is just the beginning of a myriad of possibilities. Let’s build this community together <3."]]
+
+ [:div {:class (stl/css :navigation)}
+
+ [:& c/navigation-bullets
+ {:slide slide
+ :navigate navigate
+ :total 2}]
+
+ [:button {:on-click finish
+ :class (stl/css :next-btn)} "Let's go"]]]]]])))
+
diff --git a/frontend/src/app/main/ui/releases/v2_3.scss b/frontend/src/app/main/ui/releases/v2_3.scss
new file mode 100644
index 0000000000..dd1b81c82b
--- /dev/null
+++ b/frontend/src/app/main/ui/releases/v2_3.scss
@@ -0,0 +1,102 @@
+// 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;
+
+ a {
+ color: var(--button-primary-background-color-rest);
+ }
+}
+
+.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 {
+ display: flex;
+ flex-direction: column;
+ gap: $s-8;
+}
+
+.feature-title {
+ @include bodyLargeTypography;
+ color: var(--modal-title-foreground-color);
+}
+
+.feature-content {
+ @include bodyMediumTypography;
+ margin: 0;
+ color: var(--modal-text-foreground-color);
+}
+
+.feature-list {
+ @include bodyMediumTypography;
+ color: var(--modal-text-foreground-color);
+ list-style: disc;
+ display: grid;
+ gap: $s-8;
+}
+
+.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;
+}
diff --git a/frontend/src/app/main/ui/routes.cljs b/frontend/src/app/main/ui/routes.cljs
index eeb5f156c3..a43038b730 100644
--- a/frontend/src/app/main/ui/routes.cljs
+++ b/frontend/src/app/main/ui/routes.cljs
@@ -8,6 +8,7 @@
(:require
[app.common.data.macros :as dm]
[app.common.spec :as us]
+ [app.common.uri :as u]
[app.common.uuid :as uuid]
[app.config :as cf]
[app.main.data.users :as du]
@@ -16,6 +17,7 @@
[app.util.router :as rt]
[beicon.v2.core :as rx]
[cljs.spec.alpha :as s]
+ [cuerdas.core :as str]
[potok.v2.core :as ptk]))
(s/def ::page-id ::us/uuid)
@@ -60,8 +62,6 @@
(when *assert*
["/debug/icons-preview" :debug-icons-preview])
- ["/debug/components-preview" :debug-components-preview]
-
;; Used for export
["/render-sprite/:file-id" :render-sprite]
@@ -96,10 +96,11 @@
(defn on-navigate
[router path]
(let [location (.-location js/document)
+ [base-path qs] (str/split path "?")
location-path (dm/str (.-origin location) (.-pathname location))
valid-location? (= location-path (dm/str cf/public-uri))
match (match-path router path)
- empty-path? (or (= path "") (= path "/"))]
+ empty-path? (or (= base-path "") (= base-path "/"))]
(cond
(not valid-location?)
(st/emit! (rt/assign-exception {:type :not-found}))
@@ -108,9 +109,9 @@
(st/emit! (rt/navigated match))
:else
- ;; We just recheck with an additional profile request; this avoids
- ;; some race conditions that causes unexpected redirects on
- ;; invitations workflows (and probably other cases).
+ ;; We just recheck with an additional profile request; this
+ ;; avoids some race conditions that causes unexpected redirects
+ ;; on invitations workflows (and probably other cases).
(->> (rp/cmd! :get-profile)
(rx/subs! (fn [{:keys [id] :as profile}]
(cond
@@ -118,7 +119,7 @@
(st/emit! (rt/nav :auth-login))
empty-path?
- (st/emit! (rt/nav :dashboard-projects {:team-id (du/get-current-team-id profile)}))
+ (st/emit! (rt/nav :dashboard-projects {:team-id (du/get-current-team-id profile)} (u/query-string->map qs)))
:else
(st/emit! (rt/assign-exception {:type :not-found})))))))))
diff --git a/frontend/src/app/main/ui/settings/access_tokens.cljs b/frontend/src/app/main/ui/settings/access_tokens.cljs
index c98ed00e3e..f084b03664 100644
--- a/frontend/src/app/main/ui/settings/access_tokens.cljs
+++ b/frontend/src/app/main/ui/settings/access_tokens.cljs
@@ -8,8 +8,8 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.schema :as sm]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.main.ui.components.context-menu-a11y :refer [context-menu-a11y]]
@@ -64,7 +64,7 @@
(fn [_]
(let [message (tr "dashboard.access-tokens.create.success")]
(st/emit! (du/fetch-access-tokens)
- (msg/success message)
+ (ntf/success message)
(reset! created? true)))))
on-close
@@ -77,7 +77,7 @@
on-error
(mf/use-fn
(fn [_]
- (st/emit! (msg/error (tr "errors.generic"))
+ (st/emit! (ntf/error (tr "errors.generic"))
(modal/hide))))
on-submit
@@ -99,8 +99,8 @@
(fn [event]
(dom/prevent-default event)
(wapi/write-to-clipboard (:token created))
- (st/emit! (msg/show {:type :info
- :notification-type :toast
+ (st/emit! (ntf/show {:level :info
+ :type :toast
:content (tr "dashboard.access-tokens.copied-success")
:timeout 7000}))))]
diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs
index f4998947b7..da5e13779a 100644
--- a/frontend/src/app/main/ui/settings/change_email.cljs
+++ b/frontend/src/app/main/ui/settings/change_email.cljs
@@ -8,8 +8,8 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.schema :as sm]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -30,11 +30,11 @@
(assoc-in data [:errors :email-1] error))))
:profile-is-muted
- (rx/of (msg/error (tr "errors.profile-is-muted")))
+ (rx/of (ntf/error (tr "errors.profile-is-muted")))
(:email-has-permanent-bounces
:email-has-complaints)
- (rx/of (msg/error (tr "errors.email-has-permanent-bounces" (:email error))))
+ (rx/of (ntf/error (tr "errors.email-has-permanent-bounces" (:email error))))
(rx/throw cause))))
@@ -44,7 +44,7 @@
(st/emit! (du/fetch-profile)
(modal/hide))
(let [message (tr "notifications.validation-email-sent" (:email profile))]
- (st/emit! (msg/info message)
+ (st/emit! (ntf/info message)
(modal/hide)))))
(defn- on-submit
@@ -95,7 +95,7 @@
[:div {:class (stl/css :modal-content)}
[:& context-notification
- {:type :info
+ {:level :info
:content (tr "modals.change-email.info" (:email profile))}]
[:div {:class (stl/css :fields-row)}
diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs
index d4ed25f78a..4836465bbf 100644
--- a/frontend/src/app/main/ui/settings/delete_account.cljs
+++ b/frontend/src/app/main/ui/settings/delete_account.cljs
@@ -7,8 +7,8 @@
(ns app.main.ui.settings.delete-account
(:require-macros [app.main.style :as stl])
(:require
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.store :as st]
[app.main.ui.icons :as i]
@@ -22,7 +22,7 @@
(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/of (ntf/error msg)))
(rx/throw cause))))
(mf/defc delete-account-modal
@@ -49,7 +49,7 @@
[:div {:class (stl/css :modal-content)}
[:& context-notification
- {:type :warning
+ {:level :warning
:content (tr "modals.delete-account.info")}]]
[:div {:class (stl/css :modal-footer)}
diff --git a/frontend/src/app/main/ui/settings/feedback.cljs b/frontend/src/app/main/ui/settings/feedback.cljs
index d8c5c1e3a5..4555e2a57c 100644
--- a/frontend/src/app/main/ui/settings/feedback.cljs
+++ b/frontend/src/app/main/ui/settings/feedback.cljs
@@ -9,7 +9,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.schema :as sm]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.refs :as refs]
[app.main.repo :as rp]
[app.main.store :as st]
@@ -36,7 +36,7 @@
(mf/deps profile)
(fn [_]
(reset! loading false)
- (st/emit! (msg/success (tr "labels.feedback-sent")))
+ (st/emit! (ntf/success (tr "labels.feedback-sent")))
(swap! form assoc :data {} :touched {} :errors {})))
on-error
@@ -45,8 +45,8 @@
(fn [{:keys [code] :as error}]
(reset! loading false)
(if (= code :feedback-disabled)
- (st/emit! (msg/error (tr "labels.feedback-disabled")))
- (st/emit! (msg/error (tr "errors.generic"))))))
+ (st/emit! (ntf/error (tr "labels.feedback-disabled")))
+ (st/emit! (ntf/error (tr "errors.generic"))))))
on-submit
(mf/use-fn
diff --git a/frontend/src/app/main/ui/settings/options.cljs b/frontend/src/app/main/ui/settings/options.cljs
index 36f0fe7783..e1d49acfd4 100644
--- a/frontend/src/app/main/ui/settings/options.cljs
+++ b/frontend/src/app/main/ui/settings/options.cljs
@@ -7,7 +7,7 @@
(ns app.main.ui.settings.options
(:require-macros [app.main.style :as stl])
(:require
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -23,7 +23,7 @@
(defn- on-success
[profile]
- (st/emit! (msg/success (tr "notifications.profile-saved"))
+ (st/emit! (ntf/success (tr "notifications.profile-saved"))
(du/profile-fetched profile)))
(defn- on-submit
diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs
index ac3373c451..ac93d65991 100644
--- a/frontend/src/app/main/ui/settings/password.cljs
+++ b/frontend/src/app/main/ui/settings/password.cljs
@@ -8,7 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.schema :as sm]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as udu]
[app.main.store :as st]
[app.main.ui.components.forms :as fm]
@@ -27,7 +27,7 @@
{:code "errors.email-as-password"})
(let [msg (tr "generic.error")]
- (st/emit! (msg/error msg)))))
+ (st/emit! (ntf/error msg)))))
(defn- on-success
[form]
@@ -36,7 +36,7 @@
msg (tr "dashboard.notifications.password-saved")]
(dom/clean-value! password-old-node)
(dom/focus! password-old-node)
- (st/emit! (msg/success msg))))
+ (st/emit! (ntf/success msg))))
(defn- on-submit
[form event]
diff --git a/frontend/src/app/main/ui/settings/profile.cljs b/frontend/src/app/main/ui/settings/profile.cljs
index 370938539e..e591162031 100644
--- a/frontend/src/app/main/ui/settings/profile.cljs
+++ b/frontend/src/app/main/ui/settings/profile.cljs
@@ -9,8 +9,8 @@
(:require
[app.common.schema :as sm]
[app.config :as cf]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.users :as du]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -30,7 +30,7 @@
(let [data (:clean-data @form)]
(st/emit! (du/update-profile data)
(du/persist-profile)
- (msg/success (tr "notifications.profile-saved")))))
+ (ntf/success (tr "notifications.profile-saved")))))
;; --- Profile Form
diff --git a/frontend/src/app/main/ui/shapes/attrs.cljs b/frontend/src/app/main/ui/shapes/attrs.cljs
index 15f99ddf47..dfb6094843 100644
--- a/frontend/src/app/main/ui/shapes/attrs.cljs
+++ b/frontend/src/app/main/ui/shapes/attrs.cljs
@@ -11,6 +11,7 @@
[app.common.data.macros :as dm]
[app.common.files.helpers :as cfh]
[app.common.geom.shapes :as gsh]
+ [app.common.json :as json]
[app.common.svg :as csvg]
[app.common.types.shape :refer [stroke-caps-line stroke-caps-marker]]
[app.common.types.shape.radius :as ctsr]
@@ -154,6 +155,7 @@
[shape render-id]
(let [attrs (get shape :svg-attrs {})
defs (get shape :svg-defs {})]
+
(if (and (empty? defs)
(empty? attrs))
#js {}
@@ -164,7 +166,7 @@
(dm/str render-id "-" id)
id)))
(dissoc :id)
- (obj/map->obj)))))
+ (json/->js :key-fn name)))))
(defn get-fill-style
([fill-data index render-id type]
diff --git a/frontend/src/app/main/ui/shapes/export.cljs b/frontend/src/app/main/ui/shapes/export.cljs
index 0f216186ff..6671ccd48f 100644
--- a/frontend/src/app/main/ui/shapes/export.cljs
+++ b/frontend/src/app/main/ui/shapes/export.cljs
@@ -12,9 +12,9 @@
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.geom.shapes :as gsh]
+ [app.common.json :as json]
[app.common.svg :as csvg]
[app.main.ui.context :as muc]
- [app.util.json :as json]
[app.util.object :as obj]
[cuerdas.core :as str]
[rumext.v2 :as mf]))
@@ -29,9 +29,11 @@
(cond
(map? node)
- [:> (d/name tag) (obj/map->obj (csvg/attrs->props attrs))
- (for [child content]
- [:& render-xml {:xml child :key (swap! internal-counter inc)}])]
+ (let [props (-> (csvg/attrs->props attrs)
+ (json/->js :key-fn name))]
+ [:> (d/name tag) props
+ (for [child content]
+ [:& render-xml {:xml child :key (swap! internal-counter inc)}])])
(string? node)
node
@@ -39,14 +41,6 @@
:else
nil))
-(defn uuid->string [m]
- (->> m
- (d/deep-mapm
- (fn [[k v]]
- (if (uuid? v)
- [k (str v)]
- [k v])))))
-
(defn bool->str [val]
(when (some? val) (str val)))
@@ -130,8 +124,8 @@
(add! :width)
(add! :height)
(add! :grow-type)
- (add! :content (comp json/encode uuid->string))
- (add! :position-data (comp json/encode uuid->string))))
+ (add! :content json/encode)
+ (add! :position-data json/encode)))
(cond-> mask?
(obj/set! "penpot:masked-group" "true"))
@@ -179,7 +173,7 @@
(mf/defc export-flows
[{:keys [flows]}]
[:> "penpot:flows" #js {}
- (for [{:keys [id name starting-frame]} flows]
+ (for [{:keys [id name starting-frame]} (vals flows)]
[:> "penpot:flow" #js {:id id
:name name
:starting-frame starting-frame}])])
@@ -193,14 +187,16 @@
:axis (d/name axis)}])])
(mf/defc export-page
- [{:keys [id options]}]
- (let [saved-grids (get options :saved-grids)
- flows (get options :flows)
- guides (get options :guides)]
+ {::mf/props :obj}
+ [{:keys [page]}]
+ (let [id (get page :id)
+ grids (get page :grids)
+ flows (get page :flows)
+ guides (get page :guides)]
[:> "penpot:page" #js {:id id}
- (when (d/not-empty? saved-grids)
+ (when (d/not-empty? grids)
(let [parse-grid (fn [[type params]] {:type type :params params})
- grids (->> saved-grids (mapv parse-grid))]
+ grids (mapv parse-grid grids)]
[:& export-grid-data {:grids grids}]))
(when (d/not-empty? flows)
diff --git a/frontend/src/app/main/ui/shapes/filters.cljs b/frontend/src/app/main/ui/shapes/filters.cljs
index f7ff505dbc..5d23c26ab2 100644
--- a/frontend/src/app/main/ui/shapes/filters.cljs
+++ b/frontend/src/app/main/ui/shapes/filters.cljs
@@ -10,6 +10,7 @@
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.geom.shapes.bounds :as gsb]
+ [app.common.math :as mth]
[app.common.uuid :as uuid]
[cuerdas.core :as str]
[rumext.v2 :as mf]))
@@ -129,6 +130,34 @@
[filters]
(map #(assoc %1 :filter-in %2) filters (cons nil (map :id filters))))
+(defn filter-coords
+ [bounds selrect padding]
+ (if (or (mth/close? 0.01 (:width selrect))
+ (mth/close? 0.01 (:height selrect)))
+
+ ;; We cannot use "objectBoundingbox" if the shape doesn't have width/heigth
+ ;; From the SVG spec (https://www.w3.org/TR/SVG11/coords.html#ObjectBoundingBox
+ ;; Keyword objectBoundingBox should not be used when the geometry of the applicable element
+ ;; has no width or no height, such as the case of a horizontal or vertical line, even when
+ ;; the line has actual thickness when viewed due to having a non-zero stroke width since
+ ;; stroke width is ignored for bounding box calculations. When the geometry of the
+ ;; applicable element has no width or height and objectBoundingBox is specified, then
+ ;; the given effect (e.g., a gradient or a filter) will be ignored.
+ (let [filter-width (+ (:width bounds) (* 2 (:horizontal padding)))
+ filter-height (+ (:height bounds) (* 2 (:vertical padding)))
+ filter-x (- (:x bounds) #_(:x selrect) (:horizontal padding))
+ filter-y (- (:y bounds) #_(:y selrect) (:vertical padding))
+ filter-units "userSpaceOnUse"]
+ [filter-x filter-y filter-width filter-height filter-units])
+
+ ;; If the width/height is not zero we use objectBoundingBox as it's more stable
+ (let [filter-width (/ (+ (:width bounds) (* 2 (:horizontal padding))) (:width selrect))
+ filter-height (/ (+ (:height bounds) (* 2 (:vertical padding))) (:height selrect))
+ filter-x (/ (- (:x bounds) (:x selrect) (:horizontal padding)) (:width selrect))
+ filter-y (/ (- (:y bounds) (:y selrect) (:vertical padding)) (:height selrect))
+ filter-units "objectBoundingBox"]
+ [filter-x filter-y filter-width filter-height filter-units])))
+
(mf/defc filters
[{:keys [filter-id shape]}]
@@ -136,17 +165,17 @@
bounds (gsb/get-rect-filter-bounds (:selrect shape) filters (or (-> shape :blur :value) 0))
padding (gsb/calculate-padding shape)
selrect (:selrect shape)
- filter-x (/ (- (:x bounds) (:x selrect) (:horizontal padding)) (:width selrect))
- filter-y (/ (- (:y bounds) (:y selrect) (:vertical padding)) (:height selrect))
- filter-width (/ (+ (:width bounds) (* 2 (:horizontal padding))) (:width selrect))
- filter-height (/ (+ (:height bounds) (* 2 (:vertical padding))) (:height selrect))]
+
+ [filter-x filter-y filter-width filter-height filter-units]
+ (filter-coords bounds selrect padding)]
+
(when (> (count filters) 2)
[:filter {:id filter-id
:x filter-x
:y filter-y
:width filter-width
:height filter-height
- :filterUnits "objectBoundingBox"
+ :filterUnits filter-units
:color-interpolation-filters "sRGB"}
(for [[index entry] (d/enumerate filters)]
[:& filter-entry {:key (dm/str filter-id "-" index)
diff --git a/frontend/src/app/main/ui/shapes/frame.cljs b/frontend/src/app/main/ui/shapes/frame.cljs
index 291c27130f..05191e8f5a 100644
--- a/frontend/src/app/main/ui/shapes/frame.cljs
+++ b/frontend/src/app/main/ui/shapes/frame.cljs
@@ -15,6 +15,7 @@
[app.main.ui.context :as muc]
[app.main.ui.shapes.attrs :as attrs]
[app.main.ui.shapes.custom-stroke :refer [shape-fills shape-strokes]]
+ [app.main.ui.shapes.filters :as filters]
[app.util.debug :as dbg]
[app.util.object :as obj]
[rumext.v2 :as mf]))
@@ -65,6 +66,11 @@
render-id (mf/use-ctx muc/render-id)
+ filter-id-blur (dm/fmt "filter-blur-%" render-id)
+ filter-id-shadows (dm/fmt "filter-shadow-%" render-id)
+ filter-str-blur (filters/filter-str filter-id-blur shape)
+ filter-str-shadows (filters/filter-str filter-id-shadows shape)
+
x (dm/get-prop shape :x)
y (dm/get-prop shape :y)
w (dm/get-prop shape :width)
@@ -86,29 +92,37 @@
:className "frame-background"})))
path? (some? (.-d props))]
- [:*
- [:g {:clip-path (when-not ^boolean show-content?
- (frame-clip-url shape render-id))
- ;; A frame sets back normal fill behavior (default
- ;; transparent). It may have been changed to default black
- ;; if a shape coming from an imported SVG file is
- ;; rendered. See main.ui.shapes.attrs/add-style-attrs.
- :fill "none"
- :opacity opacity}
+ ;; We need to separate blur from shadows because the blur is applied to the strokes
+ ;; while the shadows have to be placed *under* the stroke (for example, the inner shadows)
+ ;; and the shadows needs to be applied only to the content (without the stroke)
+ [:g {:filter filter-str-blur}
+ [:defs
+ [:& filters/filters {:shape (dissoc shape :blur) :filter-id filter-id-shadows}]
+ [:& filters/filters {:shape (assoc shape :shadow []) :filter-id filter-id-blur}]]
- [:& shape-fills {:shape shape}
- (if ^boolean path?
- [:> :path props]
- [:> :rect props])]
+ ;; This need to be separated in two layers so the clip doesn't affect the shadow filters
+ ;; otherwise the shadow will be clipped and not visible
+ [:g {:filter filter-str-shadows}
+ [:g {:clip-path (when-not ^boolean show-content? (frame-clip-url shape render-id))
+ ;; A frame sets back normal fill behavior (default
+ ;; transparent). It may have been changed to default black
+ ;; if a shape coming from an imported SVG file is
+ ;; rendered. See main.ui.shapes.attrs/add-style-attrs.
+ :fill "none"
+ :opacity opacity}
- children]
+ [:& shape-fills {:shape shape}
+ (if ^boolean path?
+ [:> :path props]
+ [:> :rect props])]
+
+ children]]
[:& shape-strokes {:shape shape}
(if ^boolean path?
[:> :path props]
[:> :rect props])]]))
-
(mf/defc frame-thumbnail-image
{::mf/wrap-props false}
[props]
diff --git a/frontend/src/app/main/ui/shapes/shape.cljs b/frontend/src/app/main/ui/shapes/shape.cljs
index c344ec857d..ba69c5753e 100644
--- a/frontend/src/app/main/ui/shapes/shape.cljs
+++ b/frontend/src/app/main/ui/shapes/shape.cljs
@@ -56,7 +56,6 @@
(let [shape (unchecked-get props "shape")
children (unchecked-get props "children")
pointer-events (unchecked-get props "pointer-events")
- disable-shadows? (unchecked-get props "disable-shadows?")
shape-id (dm/get-prop shape :id)
preview-blend-mode-ref
@@ -67,7 +66,6 @@
type (dm/get-prop shape :type)
render-id (h/use-render-id)
- filter-id (dm/str "filter-" render-id)
styles (-> (obj/create)
(obj/set! "pointerEvents" pointer-events)
(cond-> (not (cfh/frame-shape? shape))
@@ -82,32 +80,30 @@
shape-without-blur (dissoc shape :blur)
shape-without-shadows (assoc shape :shadow [])
+ filter-id (dm/str "filter-" render-id)
filter-str
- (when (and (or (cfh/group-shape? shape)
- (cfh/frame-shape? shape)
- (cfh/svg-raw-shape? shape))
- (not disable-shadows?))
+ (when (or (cfh/group-shape? shape)
+ (cfh/svg-raw-shape? shape))
(filters/filter-str filter-id shape))
wrapper-props
(-> (obj/clone props)
(obj/unset! "shape")
(obj/unset! "children")
- (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)))
- (-> (obj/set! "x" (:x shape))
- (obj/set! "y" (:y shape))
- (obj/set! "width" (:width shape))
- (obj/set! "height" (:height shape))))
(obj/set! "style" styles))
wrapper-props
(cond-> wrapper-props
+ ;; NOTE: This is added for backward compatibility
+ (and (cfh/text-shape? shape)
+ (empty? (:position-data shape)))
+ (-> (obj/set! "x" (:x shape))
+ (obj/set! "y" (:y shape))
+ (obj/set! "width" (:width shape))
+ (obj/set! "height" (:height shape)))
+
(= :group type)
(-> (attrs/add-fill-props! shape render-id)
(attrs/add-border-props! shape))
@@ -115,11 +111,13 @@
(some? filter-str)
(obj/set! "filter" filter-str))
- svg-group? (and (contains? shape :svg-attrs) (= :group type))
+ svg-group?
+ (and (contains? shape :svg-attrs) (= :group type))
- children (cond-> children
- svg-group?
- (propagate-wrapper-styles wrapper-props))]
+ children
+ (cond-> children
+ svg-group?
+ (propagate-wrapper-styles wrapper-props))]
[:& (mf/provider muc/render-id) {:value render-id}
[:> :g wrapper-props
@@ -128,9 +126,14 @@
[:defs
[:& defs/svg-defs {:shape shape :render-id render-id}]
- [:& filters/filters {:shape shape :filter-id filter-id}]
- [:& filters/filters {:shape shape-without-blur :filter-id (dm/fmt "filter-shadow-%" render-id)}]
- [:& filters/filters {:shape shape-without-shadows :filter-id (dm/fmt "filter-blur-%" render-id)}]
+
+ ;; The filters for frames should be setup inside the container.
+ (when-not (cfh/frame-shape? shape)
+ [:*
+ [:& filters/filters {:shape shape :filter-id filter-id}]
+ [:& filters/filters {:shape shape-without-blur :filter-id (dm/fmt "filter-shadow-%" render-id)}]
+ [:& filters/filters {:shape shape-without-shadows :filter-id (dm/fmt "filter-blur-%" render-id)}]])
+
[:& frame/frame-clip-def {:shape shape :render-id render-id}]
;; Text fills need to be defined afterwards because they are specified per text-block
diff --git a/frontend/src/app/main/ui/shapes/svg_defs.cljs b/frontend/src/app/main/ui/shapes/svg_defs.cljs
index f636bf205a..39328b752c 100644
--- a/frontend/src/app/main/ui/shapes/svg_defs.cljs
+++ b/frontend/src/app/main/ui/shapes/svg_defs.cljs
@@ -12,8 +12,8 @@
[app.common.geom.rect :as grc]
[app.common.geom.shapes :as gsh]
[app.common.geom.shapes.bounds :as gsb]
+ [app.common.json :as json]
[app.common.svg :as csvg]
- [app.util.object :as obj]
[rumext.v2 :as mf]))
(defn add-matrix [attrs transform-key transform-matrix]
@@ -79,12 +79,16 @@
:data-old-width (:width attrs)
:data-old-height (:height attrs)}))
- [wrapper wrapper-props] (if (= tag :mask)
- ["g" #js {:className "svg-mask-wrapper"
- :transform (str transform)}]
- [mf/Fragment #js {}])]
+ [wrapper wrapper-props]
+ (if (= tag :mask)
+ ["g" #js {:className "svg-mask-wrapper"
+ :transform (str transform)}]
+ [mf/Fragment #js {}])
- [:> (name tag) (obj/map->obj attrs)
+ props
+ (json/->js attrs :key-fn name)]
+
+ [:> (name tag) props
[:> wrapper wrapper-props
(for [[index node] (d/enumerate content)]
[:& svg-node {:key (dm/str "node-" index)
diff --git a/frontend/src/app/main/ui/shapes/text/styles.cljs b/frontend/src/app/main/ui/shapes/text/styles.cljs
index 7d46c98edf..a65daafc64 100644
--- a/frontend/src/app/main/ui/shapes/text/styles.cljs
+++ b/frontend/src/app/main/ui/shapes/text/styles.cljs
@@ -55,6 +55,7 @@
:fontSize 0 ;;(str (:font-size data (:font-size txt/default-text-attrs)) "px")
:lineHeight (:line-height data (:line-height txt/default-text-attrs))
:margin 0}]
+
(cond-> base
(some? line-height) (obj/set! "lineHeight" line-height)
(some? text-align) (obj/set! "textAlign" text-align))))
@@ -74,6 +75,7 @@
font-variant-id (:font-variant-id data)
font-size (:font-size data)
+
fill-color (or (-> data :fills first :fill-color) (:fill-color data))
fill-opacity (or (-> data :fills first :fill-opacity) (:fill-opacity data))
fill-gradient (or (-> data :fills first :fill-color-gradient) (:fill-color-gradient data))
@@ -92,6 +94,7 @@
base #js {:textDecoration text-decoration
:textTransform text-transform
+ :fontSize font-size
:color (if (and show-text? (not gradient?)) text-color "transparent")
:background (when (and show-text? gradient?) text-color)
:caretColor (if (and (not gradient?) text-color) text-color "black")
diff --git a/frontend/src/app/main/ui/shapes/text/svg_text.cljs b/frontend/src/app/main/ui/shapes/text/svg_text.cljs
index 20c8e8edc2..874877ef21 100644
--- a/frontend/src/app/main/ui/shapes/text/svg_text.cljs
+++ b/frontend/src/app/main/ui/shapes/text/svg_text.cljs
@@ -98,7 +98,11 @@
(obj/set! "fill" (str "url(#fill-" index "-" render-id ")")))}
(cond-> browser-props
(obj/merge! browser-props)))
- shape (assoc shape :fills (:fills data))
+ shape (-> shape
+ (assoc :fills (:fills data))
+ ;; The text elements have the shadow and blur already applied in the
+ ;; group parent.
+ (dissoc :shadow :blur))
;; Need to create new render-id per text-block
render-id (dm/str render-id "-" index)]
diff --git a/frontend/src/app/main/ui/static.cljs b/frontend/src/app/main/ui/static.cljs
index 5a0b0a11aa..50a3141e81 100644
--- a/frontend/src/app/main/ui/static.cljs
+++ b/frontend/src/app/main/ui/static.cljs
@@ -7,54 +7,333 @@
(ns app.main.ui.static
(:require-macros [app.main.style :as stl])
(:require
+ ["rxjs" :as rxjs]
[app.common.data :as d]
[app.common.pprint :as pp]
[app.common.uri :as u]
+ [app.main.data.common :as dc]
[app.main.data.events :as ev]
+ [app.main.refs :as refs]
+ [app.main.repo :as rp]
[app.main.store :as st]
+ [app.main.ui.auth.login :refer [login-methods]]
+ [app.main.ui.auth.recovery-request :refer [recovery-request-page recovery-sent-page]]
+ [app.main.ui.auth.register :as register]
+ [app.main.ui.dashboard.sidebar :refer [sidebar]]
+ [app.main.ui.ds.foundations.assets.icon :refer [icon*]]
+ [app.main.ui.ds.foundations.assets.raw-svg :refer [raw-svg*]]
[app.main.ui.icons :as i]
+ [app.main.ui.viewer.header :as viewer.header]
[app.util.dom :as dom]
- [app.util.globals :as globals]
[app.util.i18n :refer [tr]]
[app.util.router :as rt]
[app.util.webapi :as wapi]
+ [beicon.v2.core :as rx]
+ [cuerdas.core :as str]
[potok.v2.core :as ptk]
[rumext.v2 :as mf]))
-(mf/defc error-container
- {::mf/wrap-props false}
+;; FIXME: this is a workaround until we export this class on beicon library
+(def TimeoutError rxjs/TimeoutError)
+
+(mf/defc error-container*
+ {::mf/props :obj}
[{:keys [children]}]
- (let [on-click (mf/use-callback #(set! (.-href globals/location) "/"))]
+ (let [profile-id (:profile-id @st/state)
+ on-nav-root (mf/use-fn #(st/emit! (rt/nav-root)))]
[:section {:class (stl/css :exception-layout)}
[:button
{:class (stl/css :exception-header)
- :on-click on-click}
- i/logo-icon]
+ :on-click on-nav-root}
+ [:> raw-svg* {:id "penpot-logo-icon" :class (stl/css :penpot-logo)}]
+ (when profile-id
+ [:div {:class (stl/css :go-back-wrapper)} [:> icon* {:id "arrow" :class (stl/css :back-arrow)}] [:span (tr "not-found.no-permission.go-dashboard")]])]
[:div {:class (stl/css :deco-before)} i/logo-error-screen]
+ (when-not profile-id
+ [:button {:class (stl/css :login-header)
+ :on-click on-nav-root}
+ (tr "labels.login")])
[:div {:class (stl/css :exception-content)}
[:div {:class (stl/css :container)} children]]
- [:div {:class (stl/css :deco-after)} i/logo-error-screen]]))
+ [:div {:class (stl/css :deco-after2)}
+ [:span (tr "labels.copyright")]
+ i/logo-error-screen
+ [:span (tr "not-found.made-with-love")]]]))
(mf/defc invalid-token
[]
- [:> error-container {}
+ [:> error-container* {}
[:div {:class (stl/css :main-message)} (tr "errors.invite-invalid")]
[:div {:class (stl/css :desc-message)} (tr "errors.invite-invalid.info")]])
-(mf/defc not-found
- []
- [:> error-container {}
- [:div {:class (stl/css :main-message)} (tr "labels.not-found.main-message")]
- [:div {:class (stl/css :desc-message)} (tr "labels.not-found.desc-message")]])
+(mf/defc login-dialog
+ {::mf/props :obj}
+ [{:keys [show-dialog]}]
+ (let [current-section (mf/use-state :login)
+ user-email (mf/use-state "")
+ register-token (mf/use-state "")
-(mf/defc bad-gateway
+ set-section
+ (mf/use-fn
+ (fn [event]
+ (let [section (-> (dom/get-current-target event)
+ (dom/get-data "section")
+ (keyword))]
+ (reset! current-section section))))
+
+ set-section-recovery
+ (mf/use-fn
+ #(reset! current-section :recovery-request))
+
+ set-section-login
+ (mf/use-fn
+ #(reset! current-section :login))
+
+ success-login
+ (mf/use-fn
+ (fn []
+ (reset! show-dialog false)
+ (st/emit! (rt/reload true))))
+
+ success-register
+ (mf/use-fn
+ (fn [data]
+ (reset! register-token (:token data))
+ (reset! current-section :register-validate)))
+
+ register-email-sent
+ (mf/use-fn
+ (fn [email]
+ (reset! user-email email)
+ (reset! current-section :register-email-sent)))
+
+ recovery-email-sent
+ (mf/use-fn
+ (fn [email]
+ (reset! user-email email)
+ (reset! current-section :recovery-email-sent)))
+
+ on-nav-root
+ (mf/use-fn #(st/emit! (rt/nav-root)))]
+
+ [:div {:class (stl/css :overlay)}
+ [:div {:class (stl/css :dialog-login)}
+ [:div {:class (stl/css :modal-close)}
+ [:button {:class (stl/css :modal-close-button)
+ :on-click on-nav-root}
+ i/close]]
+ [:div {:class (stl/css :login)}
+ [:div {:class (stl/css :logo)} i/logo]
+
+ (case @current-section
+ :login
+ [:*
+ [:div {:class (stl/css :logo-title)} (tr "labels.login")]
+ [:div {:class (stl/css :logo-subtitle)} (tr "not-found.login.free")]
+ [:& login-methods {:on-recovery-request set-section-recovery
+ :on-success-callback success-login
+ :params {:save-login-redirect true}}]
+ [:hr {:class (stl/css :separator)}]
+ [:div {:class (stl/css :change-section)}
+ (tr "auth.register")
+ " "
+ [:a {:data-section "register"
+ :on-click set-section}
+ (tr "auth.register-submit")]]]
+
+ :register
+ [:*
+ [:div {:class (stl/css :logo-title)} (tr "not-found.login.signup-free")]
+ [:div {:class (stl/css :logo-subtitle)} (tr "not-found.login.start-using")]
+ [:& register/register-methods {:on-success-callback success-register :hide-separator true}]
+ #_[:hr {:class (stl/css :separator)}]
+ [:div {:class (stl/css :separator)}]
+ [:div {:class (stl/css :change-section)}
+ (tr "auth.already-have-account")
+ " "
+ [:a {:data-section "login"
+ :on-click set-section} (tr "auth.login-here")]]
+ [:div {:class (stl/css :links)}
+ [:hr {:class (stl/css :separator)}]
+ [:& register/terms-register]]]
+
+ :register-validate
+ [:div {:class (stl/css :form-container)}
+ [:& register/register-validate-form
+ {:params {:token @register-token}
+ :on-success-callback register-email-sent}]
+ [:div {:class (stl/css :links)}
+ [:div {:class (stl/css :register)}
+ [:a {:data-section "register"
+ :on-click set-section}
+ (tr "labels.go-back")]]]]
+
+ :register-email-sent
+ [:div {:class (stl/css :form-container)}
+ [:& register/register-success-page {:params {:email @user-email :hide-logo true}}]]
+
+ :recovery-request
+ [:& recovery-request-page {:go-back-callback set-section-login
+ :on-success-callback recovery-email-sent}]
+
+ :recovery-email-sent
+ [:div {:class (stl/css :form-container)}
+ [:& recovery-sent-page {:email @user-email}]])]]]))
+
+(mf/defc request-dialog
+ {::mf/props :obj}
+ [{:keys [title content button-text on-button-click cancel-text on-close]}]
+ (let [on-click (or on-button-click on-close)]
+ [:div {:class (stl/css :overlay)}
+ [:div {:class (stl/css :dialog)}
+ [:div {:class (stl/css :modal-close)}
+ [:button {:class (stl/css :modal-close-button) :on-click on-close}
+ i/close]]
+ [:div {:class (stl/css :dialog-title)} title]
+ (for [[index content] (d/enumerate content)]
+ [:div {:key index} content])
+ [:div {:class (stl/css :sign-info)}
+ (when cancel-text
+ [:button {:class (stl/css :cancel-button)
+ :on-click on-close}
+ cancel-text])
+ [:button {:on-click on-click} button-text]]]]))
+
+(mf/defc request-access
+ {::mf/props :obj}
+ [{:keys [file-id team-id is-default workspace?]}]
+ (let [profile (mf/deref refs/profile)
+ requested* (mf/use-state {:sent false :already-requested false})
+ requested (deref requested*)
+ show-dialog (mf/use-state true)
+
+ on-close
+ (mf/use-fn
+ (mf/deps profile)
+ (fn []
+ (st/emit! (rt/nav :dashboard-projects {:team-id (:default-team-id profile)}))))
+
+ on-success
+ (mf/use-fn
+ #(reset! requested* {:sent true :already-requested false}))
+
+ on-error
+ (mf/use-fn
+ #(reset! requested* {:sent true :already-requested true}))
+
+ on-request-access
+ (mf/use-fn
+ (mf/deps file-id team-id workspace?)
+ (fn []
+ (let [params (if (some? file-id)
+ {:file-id file-id
+ :is-viewer (not workspace?)}
+ {:team-id team-id})
+ mdata {:on-success on-success
+ :on-error on-error}]
+ (st/emit! (dc/create-team-access-request
+ (with-meta params mdata))))))]
+
+ [:*
+ (if (some? file-id)
+ (if workspace?
+ [:div {:class (stl/css :workspace)}
+ [:div {:class (stl/css :workspace-left)}
+ i/logo-icon
+ [:div
+ [:div {:class (stl/css :project-name)} (tr "not-found.no-permission.project-name")]
+ [:div {:class (stl/css :file-name)} (tr "not-found.no-permission.penpot-file")]]]
+ [:div {:class (stl/css :workspace-right)}]]
+
+ [:div {:class (stl/css :viewer)}
+ ;; FIXME: the viewer header was never designed to be reused
+ ;; from other parts of the application, and this code looks
+ ;; like a fast workaround reusing it as-is without a proper
+ ;; component adaptation for be able to use it easily it on
+ ;; viewer context or static error page context
+ [:& viewer.header/header {:project
+ {:name (tr "not-found.no-permission.project-name")}
+ :index 0
+ :file {:name (tr "not-found.no-permission.penpot-file")}
+ :page nil
+ :frame nil
+ :permissions {:is-logged true}
+ :zoom 1
+ :section :interactions
+ :shown-thumbnails false
+ :interactions-mode nil}]])
+
+ [:div {:class (stl/css :dashboard)}
+ [:div {:class (stl/css :dashboard-sidebar)}
+ [:& sidebar
+ {:team nil
+ :projects []
+ :project (:default-project-id profile)
+ :profile profile
+ :section :dashboard-projects
+ :search-term ""}]]])
+
+ (when @show-dialog
+ (cond
+ (nil? profile)
+ [:& login-dialog {:show-dialog show-dialog}]
+
+ is-default
+ [:& request-dialog {:title (tr "not-found.no-permission.project")
+ :button-text (tr "not-found.no-permission.go-dashboard")
+ :on-close on-close}]
+
+ (and (some? file-id) (:already-requested requested))
+ [:& request-dialog {:title (tr "not-found.no-permission.already-requested.file")
+ :content [(tr "not-found.no-permission.already-requested.or-others.file")]
+ :button-text (tr "not-found.no-permission.go-dashboard")
+ :on-close on-close}]
+
+ (:already-requested requested)
+ [:& request-dialog {:title (tr "not-found.no-permission.already-requested.project")
+ :content [(tr "not-found.no-permission.already-requested.or-others.project")]
+ :button-text (tr "not-found.no-permission.go-dashboard")
+ :on-close on-close}]
+
+ (:sent requested)
+ [:& request-dialog {:title (tr "not-found.no-permission.done.success")
+ :content [(tr "not-found.no-permission.done.remember")]
+ :button-text (tr "not-found.no-permission.go-dashboard")
+ :on-close on-close}]
+
+ (some? file-id)
+ [:& request-dialog {:title (tr "not-found.no-permission.file")
+ :content [(tr "not-found.no-permission.you-can-ask.file")
+ (tr "not-found.no-permission.if-approves")]
+ :button-text (tr "not-found.no-permission.ask")
+ :on-button-click on-request-access
+ :cancel-text (tr "not-found.no-permission.go-dashboard")
+ :on-close on-close}]
+
+ (some? team-id)
+ [:& request-dialog {:title (tr "not-found.no-permission.project")
+ :content [(tr "not-found.no-permission.you-can-ask.project")
+ (tr "not-found.no-permission.if-approves")]
+ :button-text (tr "not-found.no-permission.ask")
+ :on-button-click on-request-access
+ :cancel-text (tr "not-found.no-permission.go-dashboard")
+ :on-close on-close}]))]))
+
+(mf/defc not-found*
+ []
+ [:> error-container* {}
+ [:div {:class (stl/css :main-message)} (tr "labels.not-found.main-message")]
+ [:div {:class (stl/css :desc-message)} (tr "not-found.desc-message.error")]
+ [:div {:class (stl/css :desc-message)} (tr "not-found.desc-message.doesnt-exist")]])
+
+(mf/defc bad-gateway*
[]
(let [handle-retry
- (mf/use-callback
+ (mf/use-fn
(fn [] (st/emit! (rt/assign-exception nil))))]
- [:> error-container {}
+ [:> error-container* {}
[:div {:class (stl/css :main-message)} (tr "labels.bad-gateway.main-message")]
[:div {:class (stl/css :desc-message)} (tr "labels.bad-gateway.desc-message")]
[:div {:class (stl/css :sign-info)}
@@ -63,13 +342,12 @@
(mf/defc service-unavailable
[]
(let [on-click (mf/use-fn #(st/emit! (rt/assign-exception nil)))]
- [:> error-container {}
+ [:> error-container* {}
[:div {:class (stl/css :main-message)} (tr "labels.service-unavailable.main-message")]
[:div {:class (stl/css :desc-message)} (tr "labels.service-unavailable.desc-message")]
[:div {:class (stl/css :sign-info)}
[:button {:on-click on-click} (tr "labels.retry")]]]))
-
(defn generate-report
[data]
(try
@@ -113,17 +391,16 @@
(println))]
(wapi/create-blob content "text/plain"))
- (catch :default err
- (.error js/console err)
+ (catch :default cause
+ (.error js/console "error on generating report.txt" cause)
nil)))
-
-(mf/defc internal-error
+(mf/defc internal-error*
{::mf/props :obj}
- [{:keys [data]}]
- (let [on-click (mf/use-fn #(st/emit! (rt/assign-exception nil)))
- report-uri (mf/use-ref nil)
+ [{:keys [data on-reset] :as props}]
+ (let [report-uri (mf/use-ref nil)
report (mf/use-memo (mf/deps data) #(generate-report data))
+ on-reset (or on-reset #(st/emit! (rt/assign-exception nil)))
on-download
(mf/use-fn
@@ -134,34 +411,107 @@
(mf/with-effect [report]
(when (some? report)
+
(let [uri (wapi/create-uri report)]
(mf/set-ref-val! report-uri uri)
(fn []
(wapi/revoke-uri uri)))))
- [:> error-container {}
+ [:> error-container* {}
[:div {:class (stl/css :main-message)} (tr "labels.internal-error.main-message")]
[:div {:class (stl/css :desc-message)} (tr "labels.internal-error.desc-message")]
(when (some? report)
[:a {:on-click on-download} "Download report.txt"])
[:div {:class (stl/css :sign-info)}
- [:button {:on-click on-click} (tr "labels.retry")]]]))
+ [:button {:on-click on-reset} (tr "labels.retry")]]]))
-(mf/defc exception-page
+(defn- load-info
+ "Load exception page info"
+ [path-params]
+ (let [default {:loaded true}
+ stream (cond
+ (:file-id path-params)
+ (->> (rp/cmd! :get-file-info {:id (:file-id path-params)})
+ (rx/map (fn [info]
+ {:loaded true
+ :file-id (:id info)})))
+
+ (:team-id path-params)
+ (->> (rp/cmd! :get-team-info {:id (:team-id path-params)})
+ (rx/map (fn [info]
+ {:loaded true
+ :team-id (:id info)
+ :team-default (:is-default info)})))
+
+ :else
+ (rx/of default))]
+
+ (->> stream
+ (rx/timeout 3000)
+ (rx/catch (fn [cause]
+ (if (instance? TimeoutError cause)
+ (rx/of default)
+ (rx/throw cause)))))))
+
+
+(mf/defc exception-page*
{::mf/props :obj}
[{:keys [data route] :as props}]
- (let [type (:type data)
- path (:path route)
- query-params (u/map->query-string (:query-params route))]
- (st/emit! (ptk/event ::ev/event {::ev/name "exception-page" :type type :path path :query-params query-params}))
- (case (:type data)
- :not-found
- [:& not-found]
- :bad-gateway
- [:& bad-gateway]
+ (let [type (:type data)
+ path (:path route)
- :service-unavailable
- [:& service-unavailable]
+ query-params (:query-params route)
+ path-params (:path-params route)
- [:> internal-error props])))
+ workspace? (str/includes? path "workspace")
+ dashboard? (str/includes? path "dashboard")
+ view? (str/includes? path "view")
+
+ ;; We stora the request access info int this state
+ info* (mf/use-state nil)
+ info (deref info*)
+
+ loaded? (get info :loaded false)
+
+ request-access?
+ (and
+ (= (:type data) :not-found)
+ (or workspace? dashboard? view?)
+ (or (:file-id info)
+ (:team-id info)))]
+
+ (mf/with-effect [type path query-params path-params]
+ (let [query-params (u/map->query-string query-params)
+ event-params {::ev/name "exception-page"
+ :type type
+ :path path
+ :query-params query-params}]
+ (st/emit! (ptk/event ::ev/event event-params))))
+
+ (mf/with-effect [path-params info]
+ (when-not (:loaded info)
+ (->> (load-info path-params)
+ (rx/subs! (partial reset! info*)))))
+
+ (when loaded?
+ (if request-access?
+ [:& request-access {:file-id (:file-id info)
+ :team-id (:team-id info)
+ :is-default (:team-default info)
+ :workspace? workspace?}]
+
+ (case (:type data)
+ :not-found
+ [:> not-found* {}]
+
+ :authentication
+ [:> not-found* {}]
+
+ :bad-gateway
+ [:> bad-gateway* props]
+
+ :service-unavailable
+ [:& service-unavailable]
+
+ [:> internal-error* props])))))
diff --git a/frontend/src/app/main/ui/static.scss b/frontend/src/app/main/ui/static.scss
index 1d2ea861a6..0a509f0164 100644
--- a/frontend/src/app/main/ui/static.scss
+++ b/frontend/src/app/main/ui/static.scss
@@ -28,6 +28,7 @@
.deco-before {
height: 34vh;
top: 0;
+
svg {
bottom: 0;
}
@@ -36,22 +37,80 @@
.deco-after {
height: 34vh;
bottom: 0;
+
svg {
top: 0;
}
}
+.deco-after2 {
+ display: flex;
+ justify-content: center;
+ gap: $s-8;
+ width: 100%;
+ height: 34vh;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ color: var(--color-foreground-primary);
+
+ svg {
+ fill: var(--color-foreground-secondary);
+ height: 1537px;
+ width: $s-80;
+ }
+
+ span {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ height: 100%;
+ width: 25%;
+ padding-bottom: $s-28;
+
+ &:first-child {
+ text-align: right;
+ }
+ }
+}
+
.exception-header {
+ color: var(--color-foreground-secondary);
padding: $s-24 $s-32;
position: fixed;
background: none;
border: none;
cursor: pointer;
- svg {
- fill: var(--color-foreground-primary);
- width: $s-48;
- height: auto;
- }
+ display: flex;
+ align-items: center;
+}
+
+.penpot-logo {
+ fill: var(--color-foreground-primary);
+ width: $s-48;
+ height: $s-48;
+}
+
+.back-arrow {
+ transform: rotate(180deg);
+}
+
+.go-back-wrapper {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: $s-8;
+ margin-left: $s-12;
+ font-size: $fs-14;
+}
+
+.login-header {
+ @extend .button-primary;
+ padding: $s-8 $s-16;
+ font-size: $fs-11;
+ position: fixed;
+ right: 0;
+ margin: $s-40 $s-32;
}
.exception-content {
@@ -85,6 +144,7 @@
.sign-info {
text-align: center;
+
button {
@extend .button-primary;
text-transform: uppercase;
@@ -98,3 +158,180 @@
fill: var(--color-foreground-primary);
}
}
+
+.workspace {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: space-between;
+ background-color: var(--color-canvas);
+ position: relative;
+
+ .workspace-left,
+ .workspace-right {
+ padding: $s-12;
+ width: $s-276;
+ height: 100%;
+ background-color: var(--color-background-primary);
+ display: flex;
+ gap: $s-4;
+
+ svg {
+ width: 2rem;
+ height: 2rem;
+ fill: var(--icon-foreground-hover);
+ }
+
+ .project-name {
+ @include uppercaseTitleTipography;
+ color: var(--title-foreground-color);
+ }
+
+ .file-name {
+ @include smallTitleTipography;
+ text-transform: none;
+ color: var(--title-foreground-color-hover);
+ }
+ }
+}
+
+.dashboard {
+ width: 100%;
+ height: 100%;
+
+ .dashboard-sidebar {
+ width: $s-300;
+ height: 100%;
+ }
+}
+
+.viewer {
+ width: 100%;
+ height: 100%;
+}
+
+.overlay {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 100;
+ background-color: rgba(0, 0, 0, 0.65);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .dialog,
+ .dialog-login {
+ width: 556px;
+ background-color: var(--color-background-primary);
+ border-radius: $s-8;
+ display: flex;
+ flex-direction: column;
+ align-content: stretch;
+ padding: $s-36;
+ color: var(--modal-text-foreground-color);
+
+ .modal-close {
+ text-align: right;
+
+ .modal-close-button {
+ background: none;
+ border: none;
+ cursor: pointer;
+
+ svg {
+ cursor: pointer;
+ width: $s-24;
+ height: $s-24;
+ fill: var(--modal-text-foreground-color);
+ stroke: var(--modal-text-foreground-color);
+ }
+ }
+ }
+
+ .dialog-title {
+ font-size: $fs-20;
+ }
+
+ .sign-info {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: $s-32;
+
+ button {
+ @extend .button-primary;
+ text-transform: uppercase;
+ padding: $s-8 $s-16;
+ font-size: $fs-11;
+ }
+
+ .cancel-button {
+ @extend .button-secondary;
+ text-transform: uppercase;
+ padding: $s-8 $s-16;
+ font-size: $fs-11;
+ margin-right: $s-16;
+ }
+ }
+ }
+
+ .dialog {
+ gap: $s-12;
+ }
+
+ .login {
+ gap: 0;
+ padding: 0 $s-36 $s-72 $s-36;
+
+ .logo {
+ margin-bottom: $s-40;
+
+ svg {
+ fill: var(--color-foreground-primary);
+ width: $s-120;
+ height: $s-40;
+ }
+ }
+
+ .logo-title {
+ font-size: $fs-20;
+ color: var(--title-foreground-color-hover);
+ margin-bottom: $s-4;
+ }
+
+ .logo-subtitle {
+ font-size: $fs-14;
+ color: var(--title-foreground-color-hover);
+ margin-bottom: $s-24;
+ }
+
+ .change-section {
+ width: 100%;
+ text-align: center;
+
+ a {
+ color: var(--link-foreground-color);
+ }
+ }
+
+ hr {
+ margin: $s-20 0;
+ border-top: solid 1px var(--modal-separator-backogrund-color);
+ }
+
+ .separator {
+ margin: $s-20 0;
+ }
+
+ form div {
+ margin-bottom: $s-8;
+ }
+ }
+}
+
+.login-container {
+ width: 100%;
+ background-color: red;
+}
diff --git a/frontend/src/app/main/ui/viewer.cljs b/frontend/src/app/main/ui/viewer.cljs
index 2fe3734918..0410bd1df4 100644
--- a/frontend/src/app/main/ui/viewer.cljs
+++ b/frontend/src/app/main/ui/viewer.cljs
@@ -276,7 +276,7 @@
(mf/defc viewer-content
{::mf/wrap-props false}
- [{:keys [data page-id share-id section index interactions-mode] :as props}]
+ [{:keys [data page-id share-id section index interactions-mode share] :as props}]
(let [{:keys [file users project permissions]} data
allowed (or
(= section :interactions)
@@ -615,7 +615,8 @@
:zoom zoom
:section section
:shown-thumbnails (:show-thumbnails local)
- :interactions-mode interactions-mode}]]))
+ :interactions-mode interactions-mode
+ :share share}]]))
;; --- Component: Viewer
diff --git a/frontend/src/app/main/ui/viewer/comments.cljs b/frontend/src/app/main/ui/viewer/comments.cljs
index fe72f96b3b..a84f44b7d5 100644
--- a/frontend/src/app/main/ui/viewer/comments.cljs
+++ b/frontend/src/app/main/ui/viewer/comments.cljs
@@ -139,7 +139,7 @@
:viewport-size)
tpos-ref (mf/with-memo [page-id]
- (-> (l/in [:pages page-id :options :comment-threads-position])
+ (-> (l/in [:pages page-id :comment-thread-positions])
(l/derived refs/viewer-data)))
positions (mf/deref tpos-ref)
diff --git a/frontend/src/app/main/ui/viewer/header.cljs b/frontend/src/app/main/ui/viewer/header.cljs
index 603c1cba12..9270c5aa6f 100644
--- a/frontend/src/app/main/ui/viewer/header.cljs
+++ b/frontend/src/app/main/ui/viewer/header.cljs
@@ -18,7 +18,7 @@
[app.main.ui.formats :as fmt]
[app.main.ui.icons :as i]
[app.main.ui.viewer.comments :refer [comments-menu]]
- [app.main.ui.viewer.interactions :refer [flows-menu interactions-menu]]
+ [app.main.ui.viewer.interactions :refer [flows-menu* interactions-menu]]
[app.util.dom :as dom]
[app.util.i18n :refer [tr]]
[okulary.core :as l]
@@ -120,7 +120,7 @@
:key (dm/str "zoom-fullscreen-" sc)} sc])]]]]]))
(mf/defc header-options
- [{:keys [section zoom page file index permissions interactions-mode]}]
+ [{:keys [section zoom page file index permissions interactions-mode share]}]
(let [fullscreen? (mf/deref fullscreen-ref)
toggle-fullscreen
@@ -159,6 +159,12 @@
handle-zoom-fit
(mf/use-fn
#(st/emit! dv/zoom-to-fit))]
+ (mf/with-effect [permissions share]
+ (when (and
+ (:in-team permissions)
+ (:is-admin permissions)
+ share)
+ (open-share-dialog)))
[:div {:class (stl/css :options-zone)}
[:& export-progress-widget]
@@ -166,7 +172,7 @@
(case section
:interactions [:*
(when index
- [:& flows-menu {:page page :index index}])
+ [:> flows-menu* {:page page :index index}])
[:& interactions-menu {:interactions-mode interactions-mode}]]
:comments [:& comments-menu]
[:div {:class (stl/css :view-options)}])
@@ -261,7 +267,7 @@
(mf/defc header
- [{:keys [project file page frame zoom section permissions index interactions-mode shown-thumbnails]}]
+ [{:keys [project file page frame zoom section permissions index interactions-mode shown-thumbnails share]}]
(let [go-to-dashboard
(mf/use-fn
#(st/emit! (dv/go-to-dashboard)))
@@ -351,4 +357,5 @@
:file file
:index index
:zoom zoom
- :interactions-mode interactions-mode}]]))
+ :interactions-mode interactions-mode
+ :share share}]]))
diff --git a/frontend/src/app/main/ui/viewer/inspect.cljs b/frontend/src/app/main/ui/viewer/inspect.cljs
index 110317c186..836fa8cae4 100644
--- a/frontend/src/app/main/ui/viewer/inspect.cljs
+++ b/frontend/src/app/main/ui/viewer/inspect.cljs
@@ -43,7 +43,7 @@
[{:keys [local file page frame index viewer-pagination size share-id]}]
(let [inspect-svg-container-ref (mf/use-ref nil)
current-section* (mf/use-state :info)
- current-section (deref current-section*)
+ current-section (deref current-section*)
can-be-expanded? (= current-section :code)
diff --git a/frontend/src/app/main/ui/viewer/inspect/attributes.cljs b/frontend/src/app/main/ui/viewer/inspect/attributes.cljs
index 9798af6777..af75e956b8 100644
--- a/frontend/src/app/main/ui/viewer/inspect/attributes.cljs
+++ b/frontend/src/app/main/ui/viewer/inspect/attributes.cljs
@@ -41,7 +41,8 @@
content (when (= (count shapes) 1)
(ctkl/get-component-annotation (first shapes) libraries))]
- [:div {:class (stl/css :element-options)}
+ [:div {:class (stl/css-case :element-options true
+ :workspace-element-options (= from :workspace))}
(for [[idx option] (map-indexed vector options)]
[:> (case option
:geometry geometry-panel
diff --git a/frontend/src/app/main/ui/viewer/inspect/attributes.scss b/frontend/src/app/main/ui/viewer/inspect/attributes.scss
index 54980db833..3ae51a85d9 100644
--- a/frontend/src/app/main/ui/viewer/inspect/attributes.scss
+++ b/frontend/src/app/main/ui/viewer/inspect/attributes.scss
@@ -11,6 +11,13 @@
flex-direction: column;
gap: $s-16;
width: 100%;
- height: 100%;
+ height: calc(100vh - #{$s-128}); // TODO: Fix this hardcoded value
padding-top: $s-8;
+ overflow-y: auto;
+ overflow-x: hidden;
+ scrollbar-gutter: stable;
+}
+
+.workspace-element-options {
+ height: calc(100vh - #{$s-164}); // TODO: Fix this hardcoded value
}
diff --git a/frontend/src/app/main/ui/viewer/inspect/code.cljs b/frontend/src/app/main/ui/viewer/inspect/code.cljs
index bceac31ade..abfc29b90b 100644
--- a/frontend/src/app/main/ui/viewer/inspect/code.cljs
+++ b/frontend/src/app/main/ui/viewer/inspect/code.cljs
@@ -244,7 +244,8 @@
(fn [result]
(reset! images-data* result)))))
- [:div {:class (stl/css :element-options)}
+ [:div {:class (stl/css-case :element-options true
+ :viewer-code-block (= :viewer from))}
[:div {:class (stl/css :attributes-block)}
[:button {:class (stl/css :download-button)
:on-click handle-copy-all-code}
diff --git a/frontend/src/app/main/ui/viewer/inspect/code.scss b/frontend/src/app/main/ui/viewer/inspect/code.scss
index b0caabde27..341f269991 100644
--- a/frontend/src/app/main/ui/viewer/inspect/code.scss
+++ b/frontend/src/app/main/ui/viewer/inspect/code.scss
@@ -9,9 +9,16 @@
.element-options {
display: flex;
flex-direction: column;
- height: 100%;
+ height: calc(100vh - #{$s-160}); // TODO: Fix this hardcoded value
overflow: hidden;
padding-bottom: $s-16;
+ overflow-y: auto;
+ overflow-x: hidden;
+ scrollbar-gutter: stable;
+}
+
+.viewer-code-block {
+ height: calc(100vh - #{$s-108}); // TODO: Fix this hardcoded value
}
.download-button {
diff --git a/frontend/src/app/main/ui/viewer/inspect/exports.cljs b/frontend/src/app/main/ui/viewer/inspect/exports.cljs
index 392b6d8cd2..2e38efd40a 100644
--- a/frontend/src/app/main/ui/viewer/inspect/exports.cljs
+++ b/frontend/src/app/main/ui/viewer/inspect/exports.cljs
@@ -8,6 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.data :as d]
+ [app.main.data.events :as ev]
[app.main.data.exports :as de]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -17,6 +18,7 @@
[app.util.dom :as dom]
[app.util.i18n :refer [tr c]]
[app.util.keyboard :as kbd]
+ [potok.v2.core :as ptk]
[rumext.v2 :as mf]))
(mf/defc exports
@@ -62,8 +64,14 @@
(cond-> share-id (assoc :share-id share-id)))
exports (mapv #(merge % defaults) @exports)]
(if (= 1 (count exports))
- (st/emit! (de/request-simple-export {:export (first exports)}))
- (st/emit! (de/request-multiple-export {:exports exports :filename filename}))))))
+ (st/emit!
+ (de/request-simple-export {:export (first exports)})
+ (ptk/event
+ ::ev/event {::ev/name "export-shapes" ::ev/origin "viewer" :num-shapes 1}))
+ (st/emit!
+ (de/request-multiple-export {:exports exports})
+ (ptk/event
+ ::ev/event {::ev/name "export-shapes" ::ev/origin "viewer" :num-shapes (count exports)}))))))
add-export
(mf/use-callback
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 fe76cb6f3d..839adf0bc5 100644
--- a/frontend/src/app/main/ui/viewer/inspect/right_sidebar.cljs
+++ b/frontend/src/app/main/ui/viewer/inspect/right_sidebar.cljs
@@ -11,7 +11,7 @@
[app.common.types.component :as ctk]
[app.main.refs :as refs]
[app.main.ui.components.shape-icon :as sir]
- [app.main.ui.components.tab-container :refer [tab-container tab-element]]
+ [app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
[app.main.ui.icons :as i]
[app.main.ui.viewer.inspect.attributes :refer [attributes]]
[app.main.ui.viewer.inspect.code :refer [code]]
@@ -61,9 +61,9 @@
(mf/use-fn
(mf/deps from on-change-section)
(fn [new-section]
- (reset! section new-section)
+ (reset! section (keyword new-section))
(when on-change-section
- (on-change-section new-section))))
+ (on-change-section (keyword new-section)))))
handle-expand
(mf/use-fn
@@ -74,7 +74,33 @@
navigate-to-help
(mf/use-fn
(fn []
- (dom/open-new-window "https://help.penpot.app/user-guide/inspect/")))]
+ (dom/open-new-window "https://help.penpot.app/user-guide/inspect/")))
+
+ info-content
+ (mf/html [:& attributes {:page-id page-id
+ :objects objects
+ :file-id file-id
+ :frame frame
+ :shapes shapes
+ :from from
+ :libraries libraries
+ :share-id share-id}])
+
+ code-content
+ (mf/html [:& code {:frame frame
+ :shapes shapes
+ :on-expand handle-expand
+ :from from}])
+
+ tabs
+ #js [#js {:label (tr "inspect.tabs.info")
+ :id "info"
+ :content info-content}
+
+ #js {:label (tr "inspect.tabs.code")
+ :data-testid "code"
+ :id "code"
+ :content code-content}]]
(mf/use-effect
(mf/deps shapes handle-change-tab)
@@ -108,25 +134,11 @@
;; (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
- :selected @section
- :content-class (stl/css :tab-content)
- :header-class (stl/css :tab-header)}
- [:& tab-element {:id :info :title (tr "inspect.tabs.info")}
- [:& attributes {:page-id page-id
- :objects objects
- :file-id file-id
- :frame frame
- :shapes shapes
- :from from
- :libraries libraries
- :share-id share-id}]]
- [:& tab-element {:id :code :title (tr "inspect.tabs.code")}
- [:& code {:frame frame
- :shapes shapes
- :on-expand handle-expand
- :from from}]]]]]
+ [:> tab-switcher* {:tabs tabs
+ :default-selected "info"
+ :on-change-tab handle-change-tab
+ :class (stl/css :viewer-tab-switcher)}]]]
[:div {:class (stl/css :empty)}
[:div {:class (stl/css :code-info)}
[:span {:class (stl/css :placeholder-icon)}
diff --git a/frontend/src/app/main/ui/viewer/inspect/right_sidebar.scss b/frontend/src/app/main/ui/viewer/inspect/right_sidebar.scss
index 48bb94620a..1f1f8cf89a 100644
--- a/frontend/src/app/main/ui/viewer/inspect/right_sidebar.scss
+++ b/frontend/src/app/main/ui/viewer/inspect/right_sidebar.scss
@@ -97,10 +97,6 @@
overflow: hidden;
}
-.tab-content {
- scrollbar-gutter: stable;
-}
-
-.tab-header {
- margin-right: $s-12;
+.viewer-tab-switcher {
+ --tabs-nav-padding-inline-end: var(--sp-m);
}
diff --git a/frontend/src/app/main/ui/viewer/interactions.cljs b/frontend/src/app/main/ui/viewer/interactions.cljs
index 9fc794f608..ca5965656a 100644
--- a/frontend/src/app/main/ui/viewer/interactions.cljs
+++ b/frontend/src/app/main/ui/viewer/interactions.cljs
@@ -218,24 +218,27 @@
:delta delta
:fixed? fixed?}]))
-(mf/defc flows-menu
- {::mf/wrap [mf/memo]}
+(mf/defc flows-menu*
+ {::mf/wrap [mf/memo]
+ ::mf/props :obj}
[{:keys [page index]}]
- (let [flows (dm/get-in page [:options :flows])
- frames (:frames page)
- frame (get frames index)
- current-flow* (mf/use-state
- #(ctp/get-frame-flow flows (:id frame)))
+ (let [flows (not-empty (:flows page))
+ frames (:frames page)
- current-flow (deref current-flow*)
+ frame (get frames index)
+ frame-id (dm/get-prop frame :id)
+
+ current-flow* (mf/use-state #(ctp/get-frame-flow flows frame-id))
+ current-flow (deref current-flow*)
show-dropdown?* (mf/use-state false)
show-dropdown? (deref show-dropdown?*)
+
toggle-dropdown (mf/use-fn #(swap! show-dropdown?* not))
hide-dropdown (mf/use-fn #(reset! show-dropdown?* false))
select-flow
- (mf/use-callback
+ (mf/use-fn
(fn [event]
(let [flow (-> (dom/get-current-target event)
(dom/get-data "value")
@@ -243,7 +246,7 @@
(reset! current-flow* flow)
(st/emit! (dv/go-to-frame (:starting-frame flow))))))]
- (when (seq flows)
+ (when flows
[:div {:on-click toggle-dropdown
:class (stl/css :view-options)}
[:span {:class (stl/css :icon)} i/play]
@@ -252,15 +255,16 @@
[:& dropdown {:show show-dropdown?
:on-close hide-dropdown}
[:ul {:class (stl/css :dropdown)}
- (for [[index flow] (d/enumerate flows)]
- [:li {:key (dm/str "flow-" (:id flow) "-" index)
+ (for [[flow-id flow] flows]
+ [:li {:key (dm/str "flow-" flow-id)
:class (stl/css-case :dropdown-element true
- :selected (= (:id flow) (:id current-flow)))
- ;; This is not a best practise, is not very performant Do not reproduce
+ :selected (= flow-id (:id current-flow)))
+ ;; WARN: This is not a best practise, is not very
+ ;; performant DO NOT COPY
:data-value (pr-str flow)
:on-click select-flow}
[:span {:class (stl/css :label)} (:name flow)]
- (when (= (:id flow) (:id current-flow))
+ (when (= flow-id (:id current-flow))
[:span {:class (stl/css :icon)} i/tick])])]]])))
(mf/defc interactions-menu
diff --git a/frontend/src/app/main/ui/viewer/login.cljs b/frontend/src/app/main/ui/viewer/login.cljs
index 1a1e692dcf..c8b02b2f15 100644
--- a/frontend/src/app/main/ui/viewer/login.cljs
+++ b/frontend/src/app/main/ui/viewer/login.cljs
@@ -10,14 +10,12 @@
[app.common.logging :as log]
[app.main.data.modal :as modal]
[app.main.store :as st]
- [app.main.ui.auth :refer [terms-login]]
[app.main.ui.auth.login :refer [login-methods]]
[app.main.ui.auth.recovery-request :refer [recovery-request-page]]
- [app.main.ui.auth.register :refer [register-methods register-validate-form register-success-page]]
+ [app.main.ui.auth.register :refer [register-methods register-validate-form register-success-page terms-register]]
[app.main.ui.icons :as i]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
- [app.util.storage :refer [storage]]
[rumext.v2 :as mf]))
(log/set-level! :warn)
@@ -26,8 +24,7 @@
{::mf/register modal/components
::mf/register-as :login-register}
[_]
- (let [uri (. (. js/document -location) -href)
- user-email (mf/use-state "")
+ (let [user-email (mf/use-state "")
register-token (mf/use-state "")
current-section* (mf/use-state :login)
@@ -66,9 +63,6 @@
(reset! register-token (:token data))
(set-current-section :register-validate))]
- (mf/with-effect []
- (swap! storage assoc :redirect-url uri))
-
[:div {:class (stl/css :modal-overlay)}
[:div {:class (stl/css :modal-container)}
[:div {:class (stl/css :modal-header)}
@@ -125,4 +119,4 @@
(when main-section
[:div {:class (stl/css :links)}
- [:& terms-login]])]]]))
+ [:& terms-register]])]]]))
diff --git a/frontend/src/app/main/ui/viewer/login.scss b/frontend/src/app/main/ui/viewer/login.scss
index 74dc3eb6e2..614bfa701d 100644
--- a/frontend/src/app/main/ui/viewer/login.scss
+++ b/frontend/src/app/main/ui/viewer/login.scss
@@ -12,6 +12,7 @@
.modal-container {
@extend .modal-container-base;
+ width: $s-368;
}
.modal-header {
@@ -32,8 +33,8 @@
@include bodySmallTypography;
gap: $s-24;
max-height: $s-400;
- width: $s-368;
overflow: hidden auto;
+
form {
display: flex;
flex-direction: column;
@@ -46,7 +47,6 @@
display: flex;
justify-content: center;
flex-direction: column;
- max-width: $s-368;
}
.links {
@@ -64,6 +64,7 @@
color: var(--modal-text-foreground-color);
margin-top: $s-12;
}
+
a {
@extend .button-secondary;
height: $s-40;
diff --git a/frontend/src/app/main/ui/viewer/shapes.cljs b/frontend/src/app/main/ui/viewer/shapes.cljs
index 833a9fd79b..0f9aec6bf8 100644
--- a/frontend/src/app/main/ui/viewer/shapes.cljs
+++ b/frontend/src/app/main/ui/viewer/shapes.cljs
@@ -427,7 +427,8 @@
(let [childs (mapv #(get objects %) (:shapes (unchecked-get props "shape")))
props (obj/merge! #js {} props
#js {:childs childs
- :objects objects})]
+ :objects objects
+ :all-objects all-objects})]
(when (not-empty childs)
[:> group-wrapper props])))))
diff --git a/frontend/src/app/main/ui/viewer/share_link.cljs b/frontend/src/app/main/ui/viewer/share_link.cljs
index 8b08ba935c..1f86f0ae29 100644
--- a/frontend/src/app/main/ui/viewer/share_link.cljs
+++ b/frontend/src/app/main/ui/viewer/share_link.cljs
@@ -13,8 +13,8 @@
[app.config :as cf]
[app.main.data.common :as dc]
[app.main.data.events :as ev]
- [app.main.data.messages :as msg]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.refs :as refs]
[app.main.store :as st]
[app.main.ui.components.select :refer [select]]
@@ -126,7 +126,7 @@
(let [params (prepare-params options)
params (assoc params :file-id (:id file))]
(st/emit! (dc/create-share-link params)
- (ptk/event ::ev/event {::ev/name "create-shared-link"
+ (ptk/event ::ev/event {::ev/name "create-share-link"
::ev/origin "viewer"
:can-comment (:who-comment params)
:can-inspect-code (:who-inspect params)}))))
@@ -134,10 +134,12 @@
copy-link
(fn [_]
(wapi/write-to-clipboard current-link)
- (st/emit! (msg/show {:type :info
- :notification-type :toast
+ (st/emit! (ntf/show {:level :info
+ :type :toast
:content (tr "common.share-link.link-copied-success")
- :timeout 1000})))
+ :timeout 1000})
+ (ptk/event ::ev/event {::ev/name "copy-share-link"
+ ::ev/origin "viewer"})))
try-delete-link
(fn [_]
diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs
index b6fcb3ae60..af72d196b1 100644
--- a/frontend/src/app/main/ui/workspace.cljs
+++ b/frontend/src/app/main/ui/workspace.cljs
@@ -8,8 +8,9 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.data.macros :as dm]
- [app.main.data.messages :as msg]
+ [app.config :as cf]
[app.main.data.modal :as modal]
+ [app.main.data.notifications :as ntf]
[app.main.data.persistence :as dps]
[app.main.data.workspace :as dw]
[app.main.data.workspace.colors :as dc]
@@ -32,6 +33,7 @@
[app.main.ui.workspace.sidebar.history :refer [history-toolbox]]
[app.main.ui.workspace.tokens.modals]
[app.main.ui.workspace.viewport :refer [viewport]]
+ [app.renderer-v2 :as renderer]
[app.util.debug :as dbg]
[app.util.dom :as dom]
[app.util.globals :as globals]
@@ -197,9 +199,13 @@
(st/emit! ::dps/force-persist
(dc/stop-picker)
(modal/hide)
- msg/hide
+ (ntf/hide)
(dw/finalize-file project-id file-id))))
+ (mf/with-effect [file-ready?]
+ (when (and file-ready? (contains? cf/flags :renderer-v2))
+ (renderer/print-msg "hello from wasm fn!")))
+
[:& (mf/provider ctx/current-file-id) {:value file-id}
[:& (mf/provider ctx/current-project-id) {:value project-id}
[:& (mf/provider ctx/current-team-id) {:value team-id}
@@ -211,7 +217,6 @@
:style {:background-color background-color
:touch-action "none"}}
[:& context-menu]
-
(if ^boolean file-ready?
[:& workspace-page {:page-id page-id
:file file
diff --git a/frontend/src/app/main/ui/workspace/colorpicker.cljs b/frontend/src/app/main/ui/workspace/colorpicker.cljs
index a762475384..fe6ea243e2 100644
--- a/frontend/src/app/main/ui/workspace/colorpicker.cljs
+++ b/frontend/src/app/main/ui/workspace/colorpicker.cljs
@@ -21,7 +21,8 @@
[app.main.store :as st]
[app.main.ui.components.file-uploader :refer [file-uploader]]
[app.main.ui.components.select :refer [select]]
- [app.main.ui.components.tab-container :refer [tab-container tab-element]]
+ [app.main.ui.ds.foundations.assets.icon :as ic]
+ [app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
[app.main.ui.icons :as i]
[app.main.ui.workspace.colorpicker.color-inputs :refer [color-inputs]]
[app.main.ui.workspace.colorpicker.gradients :refer [gradients]]
@@ -227,7 +228,50 @@
[{:value :linear-gradient :label (tr "media.linear")}
{:value :radial-gradient :label (tr "media.radial")}])
(when (not disable-image)
- [{:value :image :label (tr "media.image")}])))]
+ [{:value :image :label (tr "media.image")}])))
+
+ tabs
+ #js [#js {:aria-label (tr "workspace.libraries.colors.rgba")
+ :icon ic/rgba
+ :id "ramp"
+ :content (mf/html (if picking-color?
+ [:div {:class (stl/css :picker-detail-wrapper)}
+ [:div {:class (stl/css :center-circle)}]
+ [:canvas#picker-detail {:class (stl/css :picker-detail) :width 256 :height 140}]]
+ [:& ramp-selector
+ {:color current-color
+ :disable-opacity disable-opacity
+ :on-change handle-change-color
+ :on-start-drag on-start-drag
+ :on-finish-drag on-finish-drag}]))}
+
+ #js {:aria-label "Harmony"
+ :icon ic/rgba-complementary
+ :id "harmony"
+ :content (mf/html (if picking-color?
+ [:div {:class (stl/css :picker-detail-wrapper)}
+ [:div {:class (stl/css :center-circle)}]
+ [:canvas#picker-detail {:class (stl/css :picker-detail) :width 256 :height 140}]]
+ [:& harmony-selector
+ {:color current-color
+ :disable-opacity disable-opacity
+ :on-change handle-change-color
+ :on-start-drag on-start-drag
+ :on-finish-drag on-finish-drag}]))}
+
+ #js {:aria-label "HSVA"
+ :icon ic/hsva
+ :id "hsva"
+ :content (mf/html (if picking-color?
+ [:div {:class (stl/css :picker-detail-wrapper)}
+ [:div {:class (stl/css :center-circle)}]
+ [:canvas#picker-detail {:class (stl/css :picker-detail) :width 256 :height 140}]]
+ [:& hsva-selector
+ {:color current-color
+ :disable-opacity disable-opacity
+ :on-change handle-change-color
+ :on-start-drag on-start-drag
+ :on-finish-drag on-finish-drag}]))}]]
;; Initialize colorpicker state
(mf/with-effect []
@@ -309,46 +353,9 @@
:on-selected on-fill-image-selected}]]])
[:*
[:div {:class (stl/css :colorpicker-tabs)}
- [:& tab-container
- {:on-change-tab on-change-tab
- :selected @active-color-tab
- :collapsable false}
-
- [:& tab-element {:id :ramp :title i/rgba}
- (if picking-color?
- [:div {:class (stl/css :picker-detail-wrapper)}
- [:div {:class (stl/css :center-circle)}]
- [:canvas#picker-detail {:class (stl/css :picker-detail) :width 256 :height 140}]]
- [:& ramp-selector
- {:color current-color
- :disable-opacity disable-opacity
- :on-change handle-change-color
- :on-start-drag on-start-drag
- :on-finish-drag on-finish-drag}])]
-
- [:& tab-element {:id :harmony :title i/rgba-complementary}
- (if picking-color?
- [:div {:class (stl/css :picker-detail-wrapper)}
- [:div {:class (stl/css :center-circle)}]
- [:canvas#picker-detail {:class (stl/css :picker-detail) :width 256 :height 140}]]
- [:& harmony-selector
- {:color current-color
- :disable-opacity disable-opacity
- :on-change handle-change-color
- :on-start-drag on-start-drag
- :on-finish-drag on-finish-drag}])]
-
- [:& tab-element {:id :hsva :title i/hsva}
- (if picking-color?
- [:div {:class (stl/css :picker-detail-wrapper)}
- [:div {:class (stl/css :center-circle)}]
- [:canvas#picker-detail {:class (stl/css :picker-detail) :width 256 :height 140}]]
- [:& hsva-selector
- {:color current-color
- :disable-opacity disable-opacity
- :on-change handle-change-color
- :on-start-drag on-start-drag
- :on-finish-drag on-finish-drag}])]]]
+ [:> tab-switcher* {:tabs tabs
+ :default-selected "ramp"
+ :on-change-tab on-change-tab}]]
[:& color-inputs
{:type (if (= @active-color-tab :hsva) :hsv :rgb)
diff --git a/frontend/src/app/main/ui/workspace/colorpicker/libraries.scss b/frontend/src/app/main/ui/workspace/colorpicker/libraries.scss
index 63a0f83987..8b401448db 100644
--- a/frontend/src/app/main/ui/workspace/colorpicker/libraries.scss
+++ b/frontend/src/app/main/ui/workspace/colorpicker/libraries.scss
@@ -18,6 +18,7 @@
justify-content: space-between;
overflow: auto;
margin-top: $s-8;
+ max-height: $s-168;
}
.add-color-btn,
diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs
index 0d631ac45d..d64b6589ed 100644
--- a/frontend/src/app/main/ui/workspace/context_menu.cljs
+++ b/frontend/src/app/main/ui/workspace/context_menu.cljs
@@ -373,26 +373,25 @@
:on-click do-lock-shape}])]))
(mf/defc context-menu-prototype
+ {::mf/props :obj}
[{:keys [shapes]}]
- (let [options (mf/deref refs/workspace-page-options)
+ (let [flows (mf/deref refs/workspace-page-flows)
options-mode (mf/deref refs/options-mode-global)
do-add-flow #(st/emit! (dwi/add-flow-selected-frame))
do-remove-flow #(st/emit! (dwi/remove-flow (:id %)))
- flows (:flows options)
prototype? (= options-mode :prototype)
single? (= (count shapes) 1)
- has-frame? (->> shapes (d/seek cfh/frame-shape?))
+
+ has-frame? (d/seek cfh/frame-shape? shapes)
is-frame? (and single? has-frame?)]
(when (and prototype? is-frame?)
- (let [flow (ctp/get-frame-flow flows (-> shapes first :id))]
- (if (some? flow)
- [:& menu-entry {:title (tr "workspace.shape.menu.delete-flow-start")
- :on-click (do-remove-flow flow)}]
-
- [:& menu-entry {:title (tr "workspace.shape.menu.flow-start")
- :on-click do-add-flow}])))))
+ (if-let [flow (ctp/get-frame-flow flows (-> shapes first :id))]
+ [:& menu-entry {:title (tr "workspace.shape.menu.delete-flow-start")
+ :on-click (do-remove-flow flow)}]
+ [:& menu-entry {:title (tr "workspace.shape.menu.flow-start")
+ :on-click do-add-flow}]))))
(mf/defc context-menu-layout
{::mf/props :obj}
diff --git a/frontend/src/app/main/ui/workspace/libraries.cljs b/frontend/src/app/main/ui/workspace/libraries.cljs
index 5e354e423f..0eaca99b49 100644
--- a/frontend/src/app/main/ui/workspace/libraries.cljs
+++ b/frontend/src/app/main/ui/workspace/libraries.cljs
@@ -24,8 +24,8 @@
[app.main.ui.components.color-bullet :as cb]
[app.main.ui.components.link-button :as lb]
[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.ds.layout.tab-switcher :refer [tab-switcher*]]
[app.main.ui.hooks :as h]
[app.main.ui.icons :as i]
[app.util.color :as uc]
@@ -487,9 +487,6 @@
file-id (:id file)
shared? (:is-shared file)
- selected-tab* (mf/use-state starting-tab)
- selected-tab (deref selected-tab*)
-
libraries (mf/deref refs/workspace-libraries)
libraries (mf/with-memo [libraries]
(d/removem (fn [[_ val]] (:is-indirect val)) libraries))
@@ -498,9 +495,6 @@
shared-libraries
(mf/deref refs/workspace-shared-files)
- on-tab-change
- (mf/use-fn #(reset! selected-tab* %))
-
close-dialog-outside
(mf/use-fn (fn [event]
(when (= (dom/get-target event) (dom/get-current-target event))
@@ -509,7 +503,21 @@
close-dialog
(mf/use-fn (fn [_]
(modal/hide!)
- (modal/disallow-click-outside!)))]
+ (modal/disallow-click-outside!)))
+
+ tabs
+ #js [#js {:label (tr "workspace.libraries.libraries")
+ :id "libraries"
+ :content (mf/html [:& libraries-tab {:file-id file-id
+ :shared? shared?
+ :linked-libraries libraries
+ :shared-libraries shared-libraries}])}
+
+ #js {:label (tr "workspace.libraries.updates")
+ :id "updates"
+ :content (mf/html [:& updates-tab {:file-id file-id
+ :file-data file-data
+ :libraries libraries}])}]]
(mf/with-effect [team-id]
(when team-id
@@ -524,19 +532,9 @@
close-icon]
[:div {:class (stl/css :modal-title)}
(tr "workspace.libraries.libraries")]
- [:& tab-container
- {:on-change-tab on-tab-change
- :selected selected-tab
- :collapsable false}
- [:& tab-element {:id :libraries :title (tr "workspace.libraries.libraries")}
- [:& libraries-tab {:file-id file-id
- :shared? shared?
- :linked-libraries libraries
- :shared-libraries shared-libraries}]]
- [:& tab-element {:id :updates :title (tr "workspace.libraries.updates")}
- [:& updates-tab {:file-id file-id
- :file-data file-data
- :libraries libraries}]]]]]))
+
+ [:> tab-switcher* {:tabs tabs
+ :default-selected (dm/str starting-tab)}]]]))
(mf/defc v2-info-dialog
{::mf/register modal/components
diff --git a/frontend/src/app/main/ui/workspace/main_menu.cljs b/frontend/src/app/main/ui/workspace/main_menu.cljs
index db97bfd58b..fb2ba7148f 100644
--- a/frontend/src/app/main/ui/workspace/main_menu.cljs
+++ b/frontend/src/app/main/ui/workspace/main_menu.cljs
@@ -16,6 +16,7 @@
[app.main.data.events :as ev]
[app.main.data.exports :as de]
[app.main.data.modal :as modal]
+ [app.main.data.plugins :as dp]
[app.main.data.shortcuts :as scd]
[app.main.data.users :as du]
[app.main.data.workspace :as dw]
@@ -29,7 +30,6 @@
[app.main.ui.context :as ctx]
[app.main.ui.hooks.resize :as r]
[app.main.ui.icons :as i]
- [app.main.ui.workspace.plugins :as uwp]
[app.plugins.register :as preg]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
@@ -509,7 +509,7 @@
(on-add-shared event))))
on-export-shapes
- (mf/use-fn #(st/emit! (de/show-workspace-export-dialog)))
+ (mf/use-fn #(st/emit! (de/show-workspace-export-dialog {:origin "workspace:menu"})))
on-export-shapes-key-down
(mf/use-fn
@@ -637,7 +637,7 @@
::ev/origin "workspace:menu"
:name name
:host host}))
- (uwp/open-plugin! manifest))
+ (dp/open-plugin! manifest))
:class (stl/css :submenu-item)
:on-key-down (fn [event]
(when (kbd/enter? event)
@@ -646,7 +646,7 @@
::ev/origin "workspace:menu"
:name name
:host host}))
- (uwp/open-plugin! manifest))))}
+ (dp/open-plugin! manifest))))}
[:span {:class (stl/css :item-name)} name]])])))
(mf/defc menu
diff --git a/frontend/src/app/main/ui/workspace/plugins.cljs b/frontend/src/app/main/ui/workspace/plugins.cljs
index e337455351..3beba2d16d 100644
--- a/frontend/src/app/main/ui/workspace/plugins.cljs
+++ b/frontend/src/app/main/ui/workspace/plugins.cljs
@@ -9,9 +9,10 @@
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
- [app.config :as cf]
+ [app.config :as cfg]
[app.main.data.events :as ev]
[app.main.data.modal :as modal]
+ [app.main.data.plugins :as dp]
[app.main.store :as st]
[app.main.ui.components.search-bar :refer [search-bar]]
[app.main.ui.components.title-bar :refer [title-bar]]
@@ -19,7 +20,6 @@
[app.plugins.register :as preg]
[app.util.avatars :as avatars]
[app.util.dom :as dom]
- [app.util.http :as http]
[app.util.i18n :as i18n :refer [tr]]
[beicon.v2.core :as rx]
[cuerdas.core :as str]
@@ -59,22 +59,6 @@
[:button {:class (stl/css :trash-button)
:on-click handle-delete-click} i/delete]]))
-
-(defn open-plugin!
- [{:keys [plugin-id name description host code icon 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
::mf/register-as :plugin-management}
@@ -91,7 +75,9 @@
input-status* (mf/use-state nil) ;; :error-url :error-manifest :success
input-status @input-status*
- error? (contains? #{:error-url :error-manifest} input-status)
+ error-url? (= :error-url input-status)
+ error-manifest? (= :error-manifest input-status)
+ error? (or error-url? error-manifest?)
handle-close-dialog
(mf/use-callback
@@ -109,26 +95,26 @@
(mf/deps plugins-state plugin-url)
(fn []
(reset! fetching-manifest? true)
- (->> (http/send! {:method :get
- :uri plugin-url
- :omit-default-headers true
- :response-type :json})
- (rx/map :body)
+ (->> (dp/fetch-manifest plugin-url)
(rx/subs!
- (fn [body]
+ (fn [plugin]
(reset! fetching-manifest? false)
- (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
- (preg/install-plugin! plugin)
- (modal/show! :plugin-management {}))})
- (reset! input-status* :success)
- (reset! plugin-url* "")))
- (fn [_]
+ (if plugin
+ (do
+ (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
+ (preg/install-plugin! plugin)
+ (modal/show! :plugin-management {}))})
+ (reset! input-status* :success)
+ (reset! plugin-url* ""))
+ ;; Cannot get the manifest
+ (reset! input-status* :error-manifest)))
+ (fn [err]
+ (.error js/console err)
(reset! fetching-manifest? false)
(reset! input-status* :error-url))))))
@@ -139,7 +125,7 @@
::ev/origin "workspace:plugins"
:name (:name manifest)
:host (:host manifest)}))
- (open-plugin! manifest)
+ (dp/open-plugin! manifest)
(modal/hide!)))
handle-remove-plugin
@@ -151,6 +137,7 @@
(st/emit! (ptk/event ::ev/event {::ev/name "remove-plugin"
:name (:name plugin)
:host (:host plugin)}))
+ (dp/close-plugin! plugin)
(preg/remove-plugin! plugin)
(reset! plugins-state* (preg/plugins-list)))))]
@@ -170,14 +157,19 @@
:disabled @fetching-manifest?
:on-click handle-install-click} (tr "workspace.plugins.install")]]
- (when error?
+ (when error-url?
[: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)}]
+ (when error-manifest?
+ [:div {:class (stl/css-case :info true :error error?)}
+ (tr "workspace.plugins.error.manifest")])
+
+ (when-not (empty? plugins-state)
+ [:> 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" cfg/plugins-list-uri)}])
[:hr]
@@ -186,7 +178,7 @@
[: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
+ :href cfg/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]]
@@ -203,10 +195,66 @@
:on-open-plugin handle-open-plugin
:on-remove-plugin handle-remove-plugin}])]])]]]))
+(mf/defc plugins-permission-list
+ [{:keys [permissions]}]
+ [:div {:class (stl/css :permissions-list)}
+ (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")]])
+
+ (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")]])
+
+ (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-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-read")]])
+
+ (cond
+ (contains? permissions "comment:write")
+ [:div {:class (stl/css :permissions-list-entry)}
+ i/oauth-1
+ [:p {:class (stl/css :permissions-list-text)}
+ (tr "workspace.plugins.permissions.comment-write")]]
+
+ (contains? permissions "comment:read")
+ [:div {:class (stl/css :permissions-list-entry)}
+ i/oauth-1
+ [:p {:class (stl/css :permissions-list-text)}
+ (tr "workspace.plugins.permissions.comment-read")]])
+
+ (cond
+ (contains? permissions "allow:downloads")
+ [:div {:class (stl/css :permissions-list-entry)}
+ i/oauth-1
+ [:p {:class (stl/css :permissions-list-text)}
+ (tr "workspace.plugins.permissions.allow-download")]])])
+
(mf/defc plugins-permissions-dialog
{::mf/register modal/components
::mf/register-as :plugin-permissions}
- [{:keys [plugin on-accept]}]
+ [{:keys [plugin on-accept on-close]}]
(let [{:keys [host permissions]} plugin
permissions (set permissions)
@@ -215,63 +263,33 @@
(mf/use-callback
(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)))
+ (st/emit! (ptk/event ::ev/event {::ev/name "allow-plugin-permissions"
+ :host host
+ :permissions (->> permissions (str/join ", "))})
+ (modal/hide))
+ (when on-accept (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))))]
+ (st/emit! (ptk/event ::ev/event {::ev/name "reject-plugin-permissions"
+ :host host
+ :permissions (->> permissions (str/join ", "))})
+ (modal/hide))
+ (when on-close (on-close))))]
[: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-title)} (tr "workspace.plugins.permissions.title" (str/upper (:name plugin)))]
[:div {:class (stl/css :modal-content)}
- [:div {:class (stl/css :permissions-list)}
- (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")]]
+ [:& plugins-permission-list {:permissions permissions}]
- (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")]])
-
- (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")]])
-
- (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-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-read")]])]
-
- [:div {:class (stl/css :permissions-disclaimer)}
- (tr "workspace.plugins.permissions.disclaimer")]]
+ (when-not (contains? cfg/plugins-whitelist host)
+ [:div {:class (stl/css :permissions-disclaimer)}
+ (tr "workspace.plugins.permissions.disclaimer")])]
[:div {:class (stl/css :modal-footer)}
[:div {:class (stl/css :action-buttons)}
@@ -286,3 +304,109 @@
:type "button"
:value (tr "ds.confirm-allow")
:on-click handle-accept-dialog}]]]]]))
+
+
+(mf/defc plugins-permissions-updated-dialog
+ {::mf/register modal/components
+ ::mf/register-as :plugin-permissions-update}
+ [{:keys [plugin on-accept on-close]}]
+
+ (let [{:keys [host permissions]} plugin
+ permissions (set permissions)
+
+ handle-accept-dialog
+ (mf/use-callback
+ (fn [event]
+ (dom/prevent-default event)
+ (st/emit! (ptk/event ::ev/event {::ev/name "allow-plugin-permissions"
+ :host host
+ :permissions (->> permissions (str/join ", "))})
+ (modal/hide))
+ (when on-accept (on-accept))))
+
+ handle-close-dialog
+ (mf/use-callback
+ (fn [event]
+ (dom/prevent-default event)
+ (st/emit! (ptk/event ::ev/event {::ev/name "reject-plugin-permissions"
+ :host host
+ :permissions (->> permissions (str/join ", "))})
+ (modal/hide))
+ (when on-close (on-close))))]
+
+ [: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-update.title" (str/upper (:name plugin)))]
+
+ [:div {:class (stl/css :modal-content)}
+ [:div {:class (stl/css :modal-paragraph)}
+ (tr "workspace.plugins.permissions-update.warning")]
+ [:& plugins-permission-list {:permissions permissions}]]
+
+ [: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}]]]]]))
+
+
+(mf/defc plugins-try-out-dialog
+ {::mf/register modal/components
+ ::mf/register-as :plugin-try-out}
+ [{:keys [plugin on-accept on-close]}]
+
+ (let [{:keys [icon host name]} plugin
+
+ handle-accept-dialog
+ (mf/use-callback
+ (fn [event]
+ (dom/prevent-default event)
+ (st/emit! (ptk/event ::ev/event {::ev/name "try-out-accept"})
+ (modal/hide))
+ (when on-accept (on-accept))))
+
+ handle-close-dialog
+ (mf/use-callback
+ (fn [event]
+ (dom/prevent-default event)
+ (st/emit! (ptk/event ::ev/event {::ev/name "try-out-cancel"})
+ (modal/hide))
+ (when on-close (on-close))))]
+
+ [:div {:class (stl/css :modal-overlay)}
+ [:div {:class (stl/css :modal-dialog :plugin-try-out)}
+ [:button {:class (stl/css :close-btn) :on-click handle-close-dialog} close-icon]
+ [:div {:class (stl/css :modal-title)}
+ [:div {:class (stl/css :plugin-icon)}
+ [:img {:src (if (some? icon)
+ (dm/str host icon)
+ (avatars/generate {:name name}))}]]
+ (tr "workspace.plugins.try-out.title" (str/upper (:name plugin)))]
+
+ [:div {:class (stl/css :modal-content)}
+ [:div {:class (stl/css :modal-message)}
+ (tr "workspace.plugins.try-out.message")]]
+
+ [:div {:class (stl/css :modal-footer)}
+ [:div {:class (stl/css :action-buttons)}
+ [:input
+ {:class (stl/css :cancel-button :button-expand)
+ :type "button"
+ :value (tr "workspace.plugins.try-out.cancel")
+ :on-click handle-close-dialog}]
+
+ [:input
+ {:class (stl/css :primary-button :button-expand)
+ :type "button"
+ :value (tr "workspace.plugins.try-out.try")
+ :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 6dd52c739e..643b4957a8 100644
--- a/frontend/src/app/main/ui/workspace/plugins.scss
+++ b/frontend/src/app/main/ui/workspace/plugins.scss
@@ -14,6 +14,7 @@
@extend .modal-container-base;
display: grid;
grid-template-rows: auto 1fr auto;
+ max-height: initial;
&.plugin-permissions {
width: $s-412;
@@ -25,6 +26,11 @@
max-width: $s-472;
}
+ &.plugin-try-out {
+ width: $s-452;
+ max-width: $s-452;
+ }
+
hr {
border-color: var(--color-background-tertiary);
}
@@ -47,6 +53,8 @@
@include headlineMediumTypography;
margin-block-end: $s-32;
color: var(--modal-title-foreground-color);
+ display: flex;
+ gap: $s-12;
}
.modal-content {
@@ -63,6 +71,16 @@
}
}
+.modal-message {
+ font-size: $fs-14;
+ color: var(--color-foreground-secondary);
+}
+
+.modal-paragraph {
+ font-size: $fs-14;
+ color: var(--color-foreground-primary);
+}
+
.primary-button {
@extend .button-primary;
@include headlineSmallTypography;
@@ -253,8 +271,8 @@ div.input-error {
.permissions-disclaimer {
@include bodySmallTypography;
padding: $s-16;
- background: var(--color-background-tertiary);
- color: var(--color-foreground-secondary);
+ background: var(--color-background-quaternary);
+ color: var(--color-foreground-primary);
border-radius: $br-4;
}
diff --git a/frontend/src/app/main/ui/workspace/shapes/frame.cljs b/frontend/src/app/main/ui/workspace/shapes/frame.cljs
index be793c7559..346c5616b8 100644
--- a/frontend/src/app/main/ui/workspace/shapes/frame.cljs
+++ b/frontend/src/app/main/ui/workspace/shapes/frame.cljs
@@ -8,7 +8,6 @@
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
- [app.common.files.helpers :as cfh]
[app.common.geom.shapes.bounds :as gsb]
[app.common.math :as mth]
[app.common.thumbnails :as thc]
@@ -45,7 +44,7 @@
(refs/children-objects shape-id))
childs (mf/deref childs-ref)]
- [:& shape-container {:shape shape :ref ref :disable-shadows? (cfh/is-direct-child-of-root? shape)}
+ [:& shape-container {:shape shape :ref ref}
[:& frame-shape {:shape shape :childs childs}]
(when *assert*
[:& wsd/shape-debug {:shape shape}])]))))
@@ -187,7 +186,7 @@
(fdm/use-dynamic-modifiers objects (mf/ref-val content-ref) modifiers)
- [:& shape-container {:shape shape :disable-shadows? thumbnail?}
+ [:& shape-container {:shape shape}
[:g.frame-container
{:id (dm/str "frame-container-" frame-id)
:key "frame-container"
diff --git a/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs b/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs
index 7eace14e7c..654e836536 100644
--- a/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs
+++ b/frontend/src/app/main/ui/workspace/shapes/text/editor.cljs
@@ -200,7 +200,7 @@
(fn [editor]
(st/emit! (dwt/update-editor editor))
(when editor
- (dom/add-class! (dom/get-element-by-class "public-DraftEditor-content") "mousetrap")
+ (dom/add-class! (dom/get-element-by-class "public-DraftEditor-content") "mousetrap")
(.focus ^js editor))))
handle-return
diff --git a/frontend/src/app/main/ui/workspace/shapes/text/v2_editor.cljs b/frontend/src/app/main/ui/workspace/shapes/text/v2_editor.cljs
new file mode 100644
index 0000000000..01444ff743
--- /dev/null
+++ b/frontend/src/app/main/ui/workspace/shapes/text/v2_editor.cljs
@@ -0,0 +1,268 @@
+;; 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.workspace.shapes.text.v2-editor
+ (:require-macros [app.main.style :as stl])
+ (:require
+ [app.common.data :as d]
+ [app.common.data.macros :as dm]
+ [app.common.geom.shapes :as gsh]
+ [app.common.geom.shapes.text :as gst]
+ [app.common.math :as mth]
+ [app.common.text :as txt]
+ [app.config :as cf]
+ [app.main.data.workspace :as dw]
+ [app.main.data.workspace.texts :as dwt]
+ [app.main.refs :as refs]
+ [app.main.store :as st]
+ [app.main.ui.css-cursors :as cur]
+ [app.util.dom :as dom]
+ [app.util.globals :as global]
+ [app.util.keyboard :as kbd]
+ [app.util.object :as obj]
+ [app.util.text.content :as content]
+ [app.util.text.content.styles :as styles]
+ [rumext.v2 :as mf]))
+
+(defn- initialize-event-handlers
+ "Internal editor events handler initializer/destructor"
+ [shape-id content selection-ref editor-ref container-ref]
+ (let [editor-node
+ (mf/ref-val editor-ref)
+
+ selection-node
+ (mf/ref-val selection-ref)
+
+ ;; Gets the default font from the workspace refs.
+ default-font
+ (deref refs/default-font)
+
+ style-defaults
+ (styles/get-style-defaults
+ (merge txt/default-attrs default-font))
+
+ options
+ #js {:styleDefaults style-defaults
+ :selectionImposterElement selection-node}
+
+ instance
+ (dwt/create-editor editor-node options)
+
+ on-key-up
+ (fn [event]
+ (dom/stop-propagation event)
+ (when (kbd/esc? event)
+ (st/emit! :interrupt (dw/clear-edition-mode))))
+
+ on-blur
+ (fn []
+ (when-let [content (content/dom->cljs (dwt/get-editor-root instance))]
+ (st/emit! (dwt/v2-update-text-shape-content shape-id content true)))
+
+ (let [container-node (mf/ref-val container-ref)]
+ (dom/set-style! container-node "opacity" 0)))
+
+ on-focus
+ (fn []
+ (let [container-node (mf/ref-val container-ref)]
+ (dom/set-style! container-node "opacity" 1)))
+
+ on-style-change
+ (fn [event]
+ (let [styles (styles/get-styles-from-event event)]
+ (st/emit! (dwt/v2-update-text-editor-styles shape-id styles))))
+
+ on-needs-layout
+ (fn []
+ (when-let [content (content/dom->cljs (dwt/get-editor-root instance))]
+ (st/emit! (dwt/v2-update-text-shape-content shape-id content true)))
+ ;; FIXME: We need to find a better way to trigger layout changes.
+ #_(st/emit!
+ (dwt/v2-update-text-shape-position-data shape-id [])))
+
+ on-change
+ (fn []
+ (when-let [content (content/dom->cljs (dwt/get-editor-root instance))]
+ (st/emit! (dwt/v2-update-text-shape-content shape-id content true))))]
+
+ (.addEventListener ^js global/document "keyup" on-key-up)
+ (.addEventListener ^js instance "blur" on-blur)
+ (.addEventListener ^js instance "focus" on-focus)
+ (.addEventListener ^js instance "needslayout" on-needs-layout)
+ (.addEventListener ^js instance "stylechange" on-style-change)
+ (.addEventListener ^js instance "change" on-change)
+
+ (st/emit! (dwt/update-editor instance))
+ (when (some? content)
+ (dwt/set-editor-root! instance (content/cljs->dom content)))
+ (st/emit! (dwt/focus-editor))
+
+ ;; This function is called when the component is unmount
+ (fn []
+ (.removeEventListener ^js global/document "keyup" on-key-up)
+ (.removeEventListener ^js instance "blur" on-blur)
+ (.removeEventListener ^js instance "focus" on-focus)
+ (.removeEventListener ^js instance "needslayout" on-needs-layout)
+ (.removeEventListener ^js instance "stylechange" on-style-change)
+ (.removeEventListener ^js instance "change" on-change)
+ (dwt/dispose! instance)
+ (st/emit! (dwt/update-editor nil)))))
+
+(mf/defc text-editor-html
+ "Text editor (HTML)"
+ {::mf/wrap [mf/memo]
+ ::mf/props :obj}
+ [{:keys [shape]}]
+ (let [content (:content shape)
+ shape-id (dm/get-prop shape :id)
+
+ ;; This is a reference to the dom element that
+ ;; should contain the TextEditor.
+ editor-ref (mf/use-ref nil)
+
+ ;; This reference is to the container
+ container-ref (mf/use-ref nil)
+ selection-ref (mf/use-ref nil)]
+
+ ;; WARN: we explicitly do not pass content on effect dependency
+ ;; array because we only need to initialize this once with initial
+ ;; content
+ (mf/with-effect [shape-id]
+ (initialize-event-handlers shape-id
+ content
+ selection-ref
+ editor-ref
+ container-ref))
+
+ [:div
+ {:class (dm/str (cur/get-dynamic "text" (:rotation shape))
+ " "
+ (stl/css :text-editor-container))
+ :ref container-ref
+ :data-testid "text-editor-container"
+ :style {:width (:width shape)
+ :height (:height shape)}
+ ;; We hide the editor when is blurred because otherwise the
+ ;; selection won't let us see the underlying text. Use opacity
+ ;; because display or visibility won't allow to recover focus
+ ;; afterwards.
+
+ ;; IMPORTANT! This is now done through DOM mutations (see
+ ;; on-blur and on-focus) but I keep this for future references.
+ ;; :opacity (when @blurred 0)}}
+ }
+ [:div
+ {:class (stl/css :text-editor-selection-imposter)
+ :ref selection-ref}]
+ [:div
+ {:class (dm/str
+ "mousetrap "
+ (stl/css-case
+ :text-editor-content true
+ :grow-type-fixed (= (:grow-type shape) :fixed)
+ :grow-type-auto-width (= (:grow-type shape) :auto-width)
+ :grow-type-auto-height (= (:grow-type shape) :auto-height)
+ :align-top (= (:vertical-align content "top") "top")
+ :align-center (= (:vertical-align content) "center")
+ :align-bottom (= (:vertical-align content) "bottom")))
+ :ref editor-ref
+ :data-testid "text-editor-content"
+ :data-x (dm/get-prop shape :x)
+ :data-y (dm/get-prop shape :y)
+ :content-editable true
+ :role "textbox"
+ :aria-multiline true
+ :aria-autocomplete "none"}]]))
+
+(defn- shape->justify
+ [{:keys [content]}]
+ (case (d/nilv (:vertical-align content) "top")
+ "center" "center"
+ "top" "flex-start"
+ "bottom" "flex-end"
+ nil))
+
+;;
+;; Text Editor Wrapper
+;; This is an SVG element that wraps the HTML editor.
+;;
+(mf/defc text-editor
+ "Text editor wrapper component"
+ {::mf/wrap [mf/memo]
+ ::mf/props :obj
+ ::mf/forward-ref true}
+ [{:keys [shape modifiers] :as props} _]
+ (let [shape-id (dm/get-prop shape :id)
+ modifiers (dm/get-in modifiers [shape-id :modifiers])
+
+ clip-id (dm/str "text-edition-clip" shape-id)
+
+ text-modifier-ref
+ (mf/use-memo (mf/deps (:id shape)) #(refs/workspace-text-modifier-by-id (:id shape)))
+
+ text-modifier
+ (mf/deref text-modifier-ref)
+
+ ;; For Safari It's necesary to scale the editor with the zoom
+ ;; level to fix a problem with foreignObjects not scaling
+ ;; correctly with the viewbox
+ ;;
+ ;; NOTE: this teoretically breaks hooks rules, but in practice
+ ;; it is imposible to really break it
+ maybe-zoom
+ (when (cf/check-browser? :safari-16)
+ (mf/deref refs/selected-zoom))
+
+ shape (cond-> shape
+ (some? text-modifier)
+ (dwt/apply-text-modifier text-modifier)
+
+ (some? modifiers)
+ (gsh/transform-shape modifiers))
+
+ bounds (gst/shape->rect shape)
+
+ x (mth/min (dm/get-prop bounds :x)
+ (dm/get-prop shape :x))
+ y (mth/min (dm/get-prop bounds :y)
+ (dm/get-prop shape :y))
+ width (mth/max (dm/get-prop bounds :width)
+ (dm/get-prop shape :width))
+ height (mth/max (dm/get-prop bounds :height)
+ (dm/get-prop shape :height))
+ style
+ (cond-> #js {:pointerEvents "all"}
+
+ (not (cf/check-browser? :safari))
+ (obj/merge!
+ #js {:transform (dm/fmt "translate(%px, %px)" (- (dm/get-prop shape :x) x) (- (dm/get-prop shape :y) y))})
+
+ (cf/check-browser? :safari-17)
+ (obj/merge!
+ #js {:height "100%"
+ :display "flex"
+ :flexDirection "column"
+ :justifyContent (shape->justify shape)})
+
+ (cf/check-browser? :safari-16)
+ (obj/merge!
+ #js {:position "fixed"
+ :left 0
+ :top (- (dm/get-prop shape :y) y)
+ :transform-origin "top left"
+ :transform (when (some? maybe-zoom)
+ (dm/fmt "scale(%)" maybe-zoom))}))]
+
+ [:g.text-editor {:clip-path (dm/fmt "url(#%)" clip-id)
+ :transform (dm/str (gsh/transform-matrix shape))}
+ [:defs
+ [:clipPath {:id clip-id}
+ [:rect {:x x :y y :width width :height height}]]]
+
+ [:foreignObject {:x x :y y :width width :height height}
+ [:div {:style style}
+ [:& text-editor-html {:shape shape
+ :key (dm/str shape-id)}]]]]))
diff --git a/frontend/src/app/main/ui/workspace/shapes/text/v2_editor.scss b/frontend/src/app/main/ui/workspace/shapes/text/v2_editor.scss
new file mode 100644
index 0000000000..cc4ab2ea8d
--- /dev/null
+++ b/frontend/src/app/main/ui/workspace/shapes/text/v2_editor.scss
@@ -0,0 +1,84 @@
+:global {
+ .selection-imposter-rect {
+ position: absolute;
+ background-color: var(--text-editor-selection-background-color);
+ }
+}
+
+.text-editor-container {
+ height: 100%;
+ position: relative;
+}
+
+.text-editor-selection-imposter {
+ position: relative;
+}
+
+.text-editor-content {
+ height: 100%;
+ font-family: sourcesanspro;
+
+ outline: none;
+ user-select: text;
+ white-space: pre-wrap;
+ overflow-wrap: break-word;
+
+ caret-color: black;
+
+ color: transparent;
+
+ [data-itype="paragraph"] {
+ line-height: inherit;
+ user-select: text;
+ margin: 0px;
+ font-size: 0px;
+ }
+
+ [data-itype="inline"] {
+ line-break: auto;
+ line-height: inherit;
+ overflow-wrap: initial;
+ caret-color: rgb(0, 0, 0);
+ }
+
+ [data-itype="root"] {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ }
+}
+
+// Grow type
+.grow-type-fixed,
+.grow-type-auto-height {
+ [data-itype="inline"],
+ [data-itype="paragraph"] {
+ white-space: break-spaces;
+ }
+}
+
+.grow-type-auto-width {
+ [data-itype="inline"],
+ [data-itype="paragraph"] {
+ white-space: nowrap;
+ }
+}
+
+// Vertical align.
+.align-top {
+ [data-itype="root"] {
+ justify-content: start;
+ }
+}
+
+.align-center {
+ [data-itype="root"] {
+ justify-content: center;
+ }
+}
+
+.align-bottom {
+ [data-itype="root"] {
+ justify-content: end;
+ }
+}
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 681dffd372..d6b9019074 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
@@ -26,6 +26,7 @@
[app.util.object :as obj]
[app.util.text-editor :as ted]
[app.util.text-svg-position :as tsp]
+ [app.util.text.content :as content]
[promesa.core :as p]
[rumext.v2 :as mf]))
@@ -46,6 +47,12 @@
(dissoc :modifiers)))
shape))
+(defn- update-shape-with-content
+ [shape content editor-content]
+ (cond-> shape
+ (and (some? shape) (some? editor-content))
+ (assoc :content (d/txt-merge content editor-content))))
+
(defn- update-with-editor-state
"Updates the shape with the current state in the editor"
[shape editor-state]
@@ -56,32 +63,39 @@
(ted/get-editor-current-content)
(ted/export-content)))]
- (cond-> shape
- (and (some? shape) (some? editor-content))
- (assoc :content (d/txt-merge content editor-content)))))
+ (update-shape-with-content shape content editor-content)))
+
+(defn- update-with-editor-v2
+ "Updates the shape with the current editor"
+ [shape editor]
+ (let [content (:content shape)
+ editor-content (content/dom->cljs (.-root editor))]
+
+ (update-shape-with-content shape content editor-content)))
(defn- update-text-shape
[{:keys [grow-type id migrate] :as shape} node]
;; Check if we need to update the size because it's auto-width or auto-height
;; Update the position-data of every text fragment
- (p/let [position-data (tsp/calc-position-data id)]
- ;; At least one paragraph needs to be inside the bounding box
- (when (gsht/overlaps-position-data? shape position-data)
- (st/emit! (dwt/update-position-data id position-data)))
+ (->> (tsp/calc-position-data id)
+ (p/fmap (fn [position-data]
+ ;; At least one paragraph needs to be inside the bounding box
+ (when (gsht/overlaps-position-data? shape position-data)
+ (st/emit! (dwt/update-position-data id position-data)))
- (when (contains? #{:auto-height :auto-width} grow-type)
- (let [{:keys [width height]}
- (-> (dom/query node ".paragraph-set")
- (dom/get-bounding-rect))
+ (when (contains? #{:auto-height :auto-width} grow-type)
+ (let [{:keys [width height]}
+ (-> (dom/query node ".paragraph-set")
+ (dom/get-bounding-rect))
- width (mth/ceil width)
- height (mth/ceil height)]
- (when (and (not (mth/almost-zero? width))
- (not (mth/almost-zero? height))
- (not migrate))
- (st/emit! (dwt/resize-text id width height)))))
+ width (mth/ceil width)
+ height (mth/ceil height)]
+ (when (and (not (mth/almost-zero? width))
+ (not (mth/almost-zero? height))
+ (not migrate))
+ (st/emit! (dwt/resize-text id width height)))))
- (st/emit! (dwt/clean-text-modifier id))))
+ (st/emit! (dwt/clean-text-modifier id))))))
(defn- update-text-modifier
[{:keys [grow-type id] :as shape} node]
@@ -218,22 +232,28 @@
{::mf/wrap-props false
::mf/wrap [mf/memo]}
[props]
-
(let [shape (obj/get props "shape")
+ shape-id (:id shape)
workspace-editor-state (mf/deref refs/workspace-editor-state)
+ workspace-v2-editor-state (mf/deref refs/workspace-v2-editor-state)
+ workspace-editor (mf/deref refs/workspace-editor)
- editor-state (get workspace-editor-state (:id shape))
+ editor-state (get workspace-editor-state shape-id)
+ v2-editor-state (get workspace-v2-editor-state shape-id)
text-modifier-ref
- (mf/use-memo (mf/deps (:id shape)) #(refs/workspace-text-modifier-by-id (:id shape)))
+ (mf/use-memo (mf/deps shape-id) #(refs/workspace-text-modifier-by-id shape-id))
text-modifier
(mf/deref text-modifier-ref)
shape (cond-> shape
(some? editor-state)
- (update-with-editor-state editor-state))
+ (update-with-editor-state editor-state)
+
+ (and (some? v2-editor-state) (some? workspace-editor))
+ (update-with-editor-v2 workspace-editor))
;; When we have a text with grow-type :auto-height or :auto-height we need to check the correct height
;; otherwise the center alignment will break
diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs
index 17e03fb2fd..ac6ed2d636 100644
--- a/frontend/src/app/main/ui/workspace/sidebar.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar.cljs
@@ -11,8 +11,9 @@
[app.main.data.workspace :as dw]
[app.main.refs :as refs]
[app.main.store :as st]
- [app.main.ui.components.tab-container :refer [tab-container tab-element]]
- [app.main.ui.context :as ctx]
+ [app.main.ui.context :as muc]
+ [app.main.ui.ds.foundations.assets.icon :refer [icon*]]
+ [app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
[app.main.ui.hooks.resize :refer [use-resize-hook]]
[app.main.ui.workspace.comments :refer [comments-sidebar]]
[app.main.ui.workspace.left-header :refer [left-header]]
@@ -32,6 +33,17 @@
;; --- Left Sidebar (Component)
+(mf/defc collapse-button
+ {::mf/wrap [mf/memo]
+ ::mf/wrap-props false}
+ [{:keys [on-click] :as props}]
+ ;; NOTE: This custom button may be replace by an action button when this variant is designed
+ [:button {:class (stl/css :collapse-sidebar-button)
+ :on-click on-click}
+ [:& icon* {:id "arrow"
+ :size "s"
+ :aria-label (tr "workspace.sidebar.collapse")}]])
+
(mf/defc left-sidebar
{::mf/wrap [mf/memo]
::mf/wrap-props false}
@@ -40,7 +52,7 @@
mode-inspect? (= options-mode :inspect)
project (mf/deref refs/workspace-project)
- design-tokens? (mf/use-ctx ctx/design-tokens)
+ design-tokens? (mf/use-ctx muc/design-tokens)
section (cond (or mode-inspect? (contains? layout :layers)) :layers
(contains? layout :assets) :assets
@@ -63,9 +75,51 @@
(mf/use-fn #(st/emit! (dw/toggle-layout-flag :collapse-left-sidebar)))
on-tab-change
- (mf/use-fn #(st/emit! (dw/go-to-layout %)))]
+ (mf/use-fn #(st/emit! (dw/go-to-layout (keyword %))))
- [:& (mf/provider ctx/sidebar) {:value :left}
+ layers-tab
+ (mf/html
+ [:article {:class (stl/css :layers-tab)
+ :style #js {"--height" (str size-pages "px")}}
+
+ [:& sitemap {:layout layout
+ :toggle-pages toggle-pages
+ :show-pages? @show-pages?
+ :size size-pages}]
+
+ (when @show-pages?
+ [:div {:class (stl/css :resize-area-horiz)
+ :on-pointer-down on-pointer-down-pages
+ :on-lost-pointer-capture on-lost-pointer-capture-pages
+ :on-pointer-move on-pointer-move-pages}])
+
+ [:& layers-toolbox {:size-parent size
+ :size size-pages}]])
+
+
+ assets-tab
+ (mf/html [:& assets-toolbox {:size (- size 58)}])
+
+ tokens-tab
+ (mf/html [:& tokens-sidebar-tab])
+
+ tabs
+ (if ^boolean mode-inspect?
+ #js [#js {:label (tr "workspace.sidebar.layers")
+ :id "layers"
+ :content layers-tab}]
+ #js [#js {:label (tr "workspace.sidebar.layers")
+ :id "layers"
+ :content layers-tab}
+ #js {:label (tr "workspace.toolbar.assets")
+ :id "assets"
+ :content assets-tab}
+ (when design-tokens?
+ #js {:label "Tokens"
+ :id "tokens"
+ :content tokens-tab})])]
+
+ [:& (mf/provider muc/sidebar) {:value :left}
[:aside {:ref parent-ref
:id "left-sidebar-aside"
:data-testid "left-sidebar"
@@ -92,42 +146,13 @@
:else
[:div {:class (stl/css :settings-bar-content)}
- [:& tab-container
- {:on-change-tab on-tab-change
- :selected section
- :collapsable true
- :handle-collapse handle-collapse
- :header-class (stl/css :tab-spacing)}
-
- [:& tab-element {:id :layers
- :title (tr "workspace.sidebar.layers")}
- [:article {:class (stl/css :layers-tab)
- :style #js {"--height" (str size-pages "px")}}
-
- [:& sitemap {:layout layout
- :toggle-pages toggle-pages
- :show-pages? @show-pages?
- :size size-pages}]
-
- (when @show-pages?
- [:div {:class (stl/css :resize-area-horiz)
- :on-pointer-down on-pointer-down-pages
- :on-lost-pointer-capture on-lost-pointer-capture-pages
- :on-pointer-move on-pointer-move-pages}])
-
- [:& layers-toolbox {:size-parent size
- :size size-pages}]]]
-
- (when-not ^boolean mode-inspect?
- [:& tab-element {:id :assets
- :title (tr "workspace.toolbar.assets")}
- [:& assets-toolbox {:size (- size 58)}]])
-
- (when (and (not ^boolean mode-inspect?)
- design-tokens?)
- [:& tab-element {:id :tokens
- :title "Tokens"}
- [:& tokens-sidebar-tab]])]])]]))
+ [:> tab-switcher* {:tabs tabs
+ :default-selected "layers"
+ :selected (name section)
+ :on-change-tab on-tab-change
+ :class (stl/css :left-sidebar-tabs)
+ :action-button-position "start"
+ :action-button (mf/html [:& collapse-button {:on-click handle-collapse}])}]])]]))
;; --- Right Sidebar (Component)
@@ -141,9 +166,6 @@
is-history? (contains? layout :document-history)
is-inspect? (= section :inspect)
- ;;expanded? (mf/deref refs/inspect-expanded)
- ;;prev-expanded? (hooks/use-previous expanded?)
-
current-section* (mf/use-state :info)
current-section (deref current-section*)
@@ -172,7 +194,7 @@
:on-change-section handle-change-section
:on-expand handle-expand)]
- [:& (mf/provider ctx/sidebar) {:value :right}
+ [:& (mf/provider muc/sidebar) {:value :right}
[:aside {:class (stl/css-case :right-settings-bar true
:not-expand (not can-be-expanded?)
:expanded (> size 276))
@@ -180,7 +202,7 @@
:id "right-sidebar-aside"
:data-testid "right-sidebar"
:data-size (str size)
- :style #js {"--width" (if can-be-expanded? (dm/str size "px") 276)}}
+ :style #js {"--width" (if can-be-expanded? (dm/str size "px") "276px")}}
(when can-be-expanded?
[:div {:class (stl/css :resize-area)
:on-pointer-down on-pointer-down
diff --git a/frontend/src/app/main/ui/workspace/sidebar.scss b/frontend/src/app/main/ui/workspace/sidebar.scss
index f70e37e5e0..af53021b1f 100644
--- a/frontend/src/app/main/ui/workspace/sidebar.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar.scss
@@ -59,11 +59,11 @@ $width-settings-bar-max: $s-500;
.right-settings-bar {
grid-area: right-sidebar;
+ display: grid;
+ grid-template-rows: auto 1fr;
+ height: 100vh;
width: $width-settings-bar;
background-color: var(--panel-background-color);
- height: 100%;
- display: flex;
- flex-direction: column;
z-index: 0;
&.not-expand {
max-width: $width-settings-bar;
@@ -89,3 +89,22 @@ $width-settings-bar-max: $s-500;
border-bottom: $s-2 solid var(--resize-area-border-color);
cursor: ns-resize;
}
+
+.left-sidebar-tabs {
+ --tabs-nav-padding-inline-start: var(--sp-m);
+ --tabs-nav-padding-inline-end: var(--sp-m);
+}
+
+.collapse-sidebar-button {
+ --collapse-icon-color: var(--color-foreground-secondary);
+ @include flexCenter;
+ @include buttonStyle;
+ height: 100%;
+ width: $s-24;
+ border-radius: $br-5;
+ color: var(--collapse-icon-color);
+ transform: rotate(180deg);
+ &:hover {
+ --collapse-icon-color: var(--color-foreground-primary);
+ }
+}
diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.scss b/frontend/src/app/main/ui/workspace/sidebar/assets.scss
index f72363a23c..830ec17be8 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/assets.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/assets.scss
@@ -11,7 +11,7 @@
height: 100%;
grid-auto-rows: max-content;
// TODO: ugly hack :( Fix this! we shouldn't be hardcoding this height
- max-height: calc(100vh - $s-80);
+ height: calc(100vh - $s-92);
scrollbar-gutter: stable;
overflow-y: auto;
padding-top: $s-8;
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 965f02bb37..7f7e67d926 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/assets/colors.cljs
@@ -42,7 +42,7 @@
(cond-> color
(:value color) (assoc :color (:value color) :opacity 1)
(:value color) (dissoc :value)
- true (assoc :file-id file-id)))
+ :always (assoc :file-id file-id)))
color-id (:id color)
@@ -70,7 +70,7 @@
(fn [event]
(st/emit!
(dwl/add-recent-color color)
- (dc/apply-color-from-palette (merge uc/empty-color color) (kbd/alt? event)))))
+ (dc/apply-color-from-palette color (kbd/alt? event)))))
rename-color
(mf/use-fn
diff --git a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs
index 31c9b0af59..11adff3db7 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.cljs
@@ -9,7 +9,7 @@
(:require
[app.main.data.workspace :as dw]
[app.main.store :as st]
- [app.main.ui.icons :as i]
+ [app.main.ui.ds.foundations.assets.icon :refer [icon*]]
[app.util.i18n :refer [tr]]
[rumext.v2 :as mf]))
@@ -22,6 +22,8 @@
:class (stl/css :collapsed-sidebar)}
[:div {:class (stl/css :collapsed-title)}
[:button {:class (stl/css :collapsed-button)
- :on-click on-click
- :aria-label (tr "workspace.sidebar.expand")}
- i/arrow]]]))
+ :title (tr "workspace.sidebar.expand")
+ :on-click on-click}
+ [:& icon* {:id "arrow"
+ :size "s"
+ :aria-label (tr "workspace.sidebar.expand")}]]]]))
diff --git a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.scss b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.scss
index 072a072a58..3f62cd24b0 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/collapsable_button.scss
@@ -14,10 +14,11 @@
padding: $s-4;
border-radius: $br-8;
background: var(--color-background-primary);
+ margin-inline-start: var(--sp-m);
}
.collapsed-title {
@include flexCenter;
- height: $s-32;
+ height: $s-36;
width: $s-24;
border-radius: $br-8;
background: var(--color-background-secondary);
diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss b/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss
index 124ee6f48e..b5a212c4f1 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.scss
@@ -230,6 +230,10 @@
}
}
+ .layer-row:hover .element-actions.selected & {
+ opacity: $op-10;
+ }
+
.layer-row.highlight &,
.layer-row:hover & {
display: flex;
diff --git a/frontend/src/app/main/ui/workspace/sidebar/layers.scss b/frontend/src/app/main/ui/workspace/sidebar/layers.scss
index 2dbde9595c..5db6c61b77 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/layers.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/layers.scss
@@ -91,6 +91,7 @@
@include buttonStyle;
display: grid;
grid-template-columns: auto 1fr auto;
+ align-items: center;
width: 100%;
padding: 0;
}
@@ -108,10 +109,8 @@
}
.focus-name {
+ @include textEllipsis;
@include bodySmallTypography;
- display: flex;
- align-items: center;
- height: 100%;
padding-left: $s-4;
color: var(--title-foreground-color);
}
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.cljs b/frontend/src/app/main/ui/workspace/sidebar/options.cljs
index ea54143606..abd2aaf7e8 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options.cljs
@@ -15,8 +15,8 @@
[app.main.data.workspace :as udw]
[app.main.refs :as refs]
[app.main.store :as st]
- [app.main.ui.components.tab-container :refer [tab-container tab-element]]
[app.main.ui.context :as ctx]
+ [app.main.ui.ds.layout.tab-switcher :refer [tab-switcher*]]
[app.main.ui.viewer.inspect.right-sidebar :as hrs]
[app.main.ui.workspace.sidebar.options.menus.align :refer [align-options]]
[app.main.ui.workspace.sidebar.options.menus.bool :refer [bool-options]]
@@ -72,102 +72,125 @@
(when (= (:type panel) :component-swap)
[:& component-menu {:shapes (:shapes panel) :swap-opened? true}]))
+(mf/defc design-menu
+ {::mf/wrap [mf/memo]}
+ [{:keys [selected objects page-id file-id selected-shapes shapes-with-children]}]
+ (let [sp-panel (mf/deref refs/specialized-panel)
+ drawing (mf/deref refs/workspace-drawing)
+ shared-libs (mf/deref refs/workspace-libraries)
+ edition (mf/deref refs/selected-edition)
+ edit-grid? (ctl/grid-layout? objects edition)
+ grid-edition (mf/deref refs/workspace-grid-edition)
+ selected-cells (->> (dm/get-in grid-edition [edition :selected])
+ (map #(dm/get-in objects [edition :layout-grid-cells %])))]
+
+ [:div {:class (stl/css :element-options :design-options)}
+ [:& align-options]
+ [:& bool-options]
+
+ (cond
+ (and edit-grid? (d/not-empty? selected-cells))
+ [:& grid-cell/options
+ {:shape (get objects edition)
+ :cells selected-cells}]
+
+ edit-grid?
+ [:& layout-container/grid-layout-edition
+ {:ids [edition]
+ :values (get objects edition)}]
+
+ (not (nil? sp-panel))
+ [:& specialized-panel {:panel sp-panel}]
+
+ (d/not-empty? drawing)
+ [:& shape-options
+ {:shape (:object drawing)
+ :page-id page-id
+ :file-id file-id
+ :shared-libs shared-libs}]
+
+ (= 0 (count selected))
+ [:& page/options]
+
+ (= 1 (count selected))
+ [:& shape-options
+ {:shape (first selected-shapes)
+ :page-id page-id
+ :file-id file-id
+ :shared-libs shared-libs
+ :shapes-with-children shapes-with-children}]
+
+ :else
+ [:& multiple/options
+ {:shapes-with-children shapes-with-children
+ :shapes selected-shapes
+ :page-id page-id
+ :file-id file-id
+ :shared-libs shared-libs}])]))
(mf/defc options-content
{::mf/memo true
::mf/props :obj}
- [{:keys [selected section shapes shapes-with-children page-id file-id on-change-section on-expand]}]
- (let [drawing (mf/deref refs/workspace-drawing)
- objects (mf/deref refs/workspace-page-objects)
- shared-libs (mf/deref refs/workspace-libraries)
- edition (mf/deref refs/selected-edition)
- grid-edition (mf/deref refs/workspace-grid-edition)
- sp-panel (mf/deref refs/specialized-panel)
+ [{:keys [selected shapes shapes-with-children page-id file-id on-change-section on-expand]}]
+ (let [objects (mf/deref refs/workspace-page-objects)
selected-shapes (into [] (keep (d/getf objects)) selected)
first-selected-shape (first selected-shapes)
shape-parent-frame (cfh/get-frame objects (:frame-id first-selected-shape))
- edit-grid? (ctl/grid-layout? objects edition)
- selected-cells (->> (dm/get-in grid-edition [edition :selected])
- (map #(dm/get-in objects [edition :layout-grid-cells %])))
+ options-mode (mf/deref refs/options-mode-global)
on-change-tab
(fn [options-mode]
- (st/emit! (udw/set-options-mode options-mode))
- (if (= options-mode :inspect)
- (st/emit! :interrupt (udw/set-workspace-read-only true))
- (st/emit! :interrupt (udw/set-workspace-read-only false))))]
+ (let [options-mode (keyword options-mode)]
+ (st/emit! (udw/set-options-mode options-mode))
+ (if (= options-mode :inspect)
+ (st/emit! :interrupt (udw/set-workspace-read-only true))
+ (st/emit! :interrupt (udw/set-workspace-read-only false)))))
+
+ design-content
+ (mf/html [:& design-menu {:selected selected
+ :objects objects
+ :page-id page-id
+ :file-id file-id
+ :selected-shapes selected-shapes
+ :shapes-with-children shapes-with-children}])
+
+ inspect-content
+ (mf/html [:div {:class (stl/css :element-options :inspect-options)}
+ [:& hrs/right-sidebar {:page-id page-id
+ :objects objects
+ :file-id file-id
+ :frame shape-parent-frame
+ :shapes selected-shapes
+ :on-change-section on-change-section
+ :on-expand on-expand
+ :from :workspace}]])
+
+ interactions-content
+ (mf/html [:div {:class (stl/css :element-options :interaction-options)}
+ [:& interactions-menu {:shape (first shapes)}]])
+
+
+ tabs
+ #js [#js {:label (tr "workspace.options.design")
+ :id "design"
+ :content design-content}
+
+ #js {:label (tr "workspace.options.prototype")
+ :id "prototype"
+ :content interactions-content}
+
+ #js {:label (tr "workspace.options.inspect")
+ :id "inspect"
+ :content inspect-content}]]
[:div {:class (stl/css :tool-window)}
- [:& tab-container
- {:on-change-tab on-change-tab
- :selected section
- :collapsable false
- :content-class (stl/css-case
- :content-class true
- :inspect (= section :inspect))
- :header-class (stl/css :tab-spacing)}
- [:& tab-element {:id :design
- :title (tr "workspace.options.design")}
- [:div {:class (stl/css :element-options)}
- [:& align-options]
- [:& bool-options]
-
- (cond
- (and edit-grid? (d/not-empty? selected-cells))
- [:& grid-cell/options
- {:shape (get objects edition)
- :cells selected-cells}]
-
- edit-grid?
- [:& layout-container/grid-layout-edition
- {:ids [edition]
- :values (get objects edition)}]
-
- (not (nil? sp-panel))
- [:& specialized-panel {:panel sp-panel}]
-
- (d/not-empty? drawing)
- [:& shape-options
- {:shape (:object drawing)
- :page-id page-id
- :file-id file-id
- :shared-libs shared-libs}]
-
- (= 0 (count selected))
- [:& page/options]
-
- (= 1 (count selected))
- [:& shape-options
- {:shape (first selected-shapes)
- :page-id page-id
- :file-id file-id
- :shared-libs shared-libs
- :shapes-with-children shapes-with-children}]
-
- :else
- [:& multiple/options
- {:shapes-with-children shapes-with-children
- :shapes selected-shapes
- :page-id page-id
- :file-id file-id
- :shared-libs shared-libs}])]]
- [:& tab-element {:id :prototype
- :title (tr "workspace.options.prototype")}
- [:div {:class (stl/css :element-options)}
- [:& interactions-menu {:shape (first shapes)}]]]
- [:& tab-element {:id :inspect
- :title (tr "workspace.options.inspect")}
- [:div {:class (stl/css :element-options)}
- [:& hrs/right-sidebar {:page-id page-id
- :objects objects
- :file-id file-id
- :frame shape-parent-frame
- :shapes selected-shapes
- :on-change-section on-change-section
- :on-expand on-expand
- :from :workspace}]]]]]))
+ [:> tab-switcher* {:tabs tabs
+ :default-selected "info"
+ :on-change-tab on-change-tab
+ :selected (name options-mode)
+ :class (stl/css :options-tab-switcher)}]]))
;; TODO: this need optimizations, selected-objects and
;; selected-objects-with-children are derefed always but they only
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.scss b/frontend/src/app/main/ui/workspace/sidebar/options.scss
index 80a1229947..940a929086 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/options.scss
@@ -8,8 +8,7 @@
.tool-window {
position: relative;
- display: flex;
- flex-direction: column;
+ display: grid;
width: 100%;
height: 100%;
padding-left: $s-12;
@@ -27,14 +26,24 @@
}
.element-options {
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
+ display: grid;
+ grid-auto-rows: min-content;
gap: $s-8;
+ width: 100%;
+ height: calc(100vh - $s-80);
padding-top: $s-8;
}
+.design-options,
+.interaction-options {
+ overflow: auto;
+ scrollbar-gutter: stable;
+}
+
.inspect {
scrollbar-gutter: unset;
}
+
+.options-tab-switcher {
+ --tabs-nav-padding-inline-end: 12px;
+}
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 b0c5b0cdc3..e6c904beb3 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
@@ -14,6 +14,7 @@
[app.main.data.workspace.selection :as dws]
[app.main.store :as st]
[app.main.ui.components.title-bar :refer [title-bar]]
+ [app.main.ui.hooks :as h]
[app.main.ui.workspace.sidebar.options.rows.color-row :refer [color-row]]
[app.util.i18n :as i18n :refer [tr]]
[rumext.v2 :as mf]))
@@ -21,82 +22,96 @@
(defn- prepare-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)
+ groups (d/group-by :attrs #(dissoc % :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
+ {:groups groups
:all-colors all-colors
:colors colors
:library-colors library-colors}))
+(def xf:map-shape-id
+ (map :shape-id))
+
(mf/defc color-selection-menu
{::mf/wrap [#(mf/memo' % (mf/check-props ["shapes"]))]
::mf/wrap-props false}
[{:keys [shapes file-id shared-libs]}]
- (let [{:keys [grouped-colors library-colors colors]} (mf/with-memo [shapes file-id shared-libs]
- (prepare-colors shapes file-id shared-libs))
+ (let [{:keys [groups library-colors colors]} (mf/with-memo [shapes file-id shared-libs]
+ (prepare-colors shapes file-id shared-libs))
- state* (mf/use-state true)
- open? (deref state*)
+ state* (mf/use-state true)
+ open? (deref state*)
- has-colors? (or (some? (seq colors)) (some? (seq library-colors)))
+ has-colors? (or (some? (seq colors)) (some? (seq library-colors)))
- toggle-content (mf/use-fn #(swap! state* not))
+ toggle-content (mf/use-fn #(swap! state* not))
expand-lib-color (mf/use-state false)
expand-color (mf/use-state false)
- grouped-colors* (mf/use-var nil)
- prev-colors* (mf/use-var [])
+ groups-ref (h/use-ref-value groups)
+ prev-colors-ref (mf/use-ref nil)
+
+ ;; grouped-colors* (mf/use-var nil)
+ ;; prev-colors* (mf/use-var [])
on-change
(mf/use-fn
(fn [new-color old-color from-picker?]
- (let [old-color (-> old-color (dissoc :name :path) d/without-nils)
+ (prn "new-color" new-color)
+ (prn "old-color" old-color)
+ (let [old-color (-> old-color
+ (dissoc :name :path)
+ (d/without-nils))
;; When dragging on the color picker sometimes all
;; the shapes hasn't updated the color to the prev
;; value so we need this extra calculation
- shapes-by-old-color (get @grouped-colors* old-color)
- prev-color (d/seek #(get @grouped-colors* %) @prev-colors*)
- shapes-by-prev-color (get @grouped-colors* prev-color)
- shapes-by-color (or shapes-by-prev-color shapes-by-old-color)]
+ groups (mf/ref-val groups-ref)
+ prev-colors (mf/ref-val prev-colors-ref)
+
+ prev-color (d/seek (partial get groups) prev-colors)
+
+ cops-old (get groups old-color)
+ cops-prev (get groups prev-colors)
+ cops (or cops-prev cops-old)
+ old-color (or prev-color old-color)]
(when from-picker?
- (swap! prev-colors* conj (-> new-color (dissoc :name :path) d/without-nils)))
+ (let [color (-> new-color
+ (dissoc :name :path)
+ (d/without-nils))]
+ (mf/set-ref-val! prev-colors-ref
+ (conj prev-colors color))))
- (st/emit! (dc/change-color-in-selected new-color shapes-by-color (or prev-color old-color))))))
+ (st/emit! (dc/change-color-in-selected cops new-color old-color)))))
on-open
- (mf/use-fn
- (fn []
- (reset! prev-colors* [])))
+ (mf/use-fn #(mf/set-ref-val! prev-colors-ref []))
on-close
- (mf/use-fn
- (fn []
- (reset! prev-colors* [])))
+ (mf/use-fn #(mf/set-ref-val! prev-colors-ref []))
on-detach
(mf/use-fn
(fn [color]
- (let [shapes-by-color (get @grouped-colors* color)
- new-color (assoc color :id nil :file-id nil)]
- (st/emit! (dc/change-color-in-selected new-color shapes-by-color color)))))
+ (let [groups (mf/ref-val groups-ref)
+ cops (get groups color)
+ color' (dissoc color :id :file-id)]
+ (st/emit! (dc/change-color-in-selected cops color' color)))))
select-only
(mf/use-fn
(fn [color]
- (let [shapes-by-color (get @grouped-colors* color)
- ids (into (d/ordered-set) (map :shape-id) shapes-by-color)]
+ (let [groups (mf/ref-val groups-ref)
+ cops (get groups color)
+ ids (into (d/ordered-set) xf:map-shape-id cops)]
(st/emit! (dws/select-shapes ids)))))]
- (mf/with-effect [grouped-colors]
- (reset! grouped-colors* grouped-colors))
-
[:div {:class (stl/css :element-set)}
[:div {:class (stl/css :element-title)}
[:& title-bar {:collapsable has-colors?
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.scss b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.scss
index 88da9410d8..2384facf21 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/constraints.scss
@@ -36,32 +36,37 @@
.constraints-bottom {
@include flexCenter;
grid-area: top;
- .constraint-btn,
- .constraint-btn-special,
- .constraint-btn-rotated {
- @include buttonStyle;
- @include flexCenter;
- width: 100%;
- height: 100%;
- .resalted-area {
- width: $s-32;
- height: $s-3;
- border-radius: $br-8;
- background-color: var(--button-constraint-background-color-rest);
- padding: 0;
- margin: 0;
- }
- &.active .resalted-area {
- outline: $s-4 solid var(--button-constraint-border-color-hover);
- background-color: var(--button-constraint-background-color-hover);
- }
- &:hover .resalted-area,
- &:focus .resalted-area {
- outline: $s-4 solid var(--button-constraint-border-color-hover);
- background-color: var(--button-constraint-background-color-hover);
- }
+}
+.constraint-btn,
+.constraint-btn-special,
+.constraint-btn-rotated {
+ @include buttonStyle;
+ @include flexCenter;
+ width: 100%;
+ height: 100%;
+ --resalted-area-background-color: var(--button-constraint-background-color-rest);
+ --resalted-area-border-color: none;
+ &.active {
+ --resalted-area-border-color: var(--button-constraint-border-color-hover);
+ --resalted-area-background-color: var(--button-constraint-background-color-hover);
+ }
+ &:hover,
+ &:focus-visible {
+ --resalted-area-border-color: var(--button-constraint-border-color-hover);
+ --resalted-area-background-color: var(--button-constraint-background-color-hover);
}
}
+
+.resalted-area {
+ width: $s-32;
+ height: $s-3;
+ border-radius: $br-8;
+ background-color: var(--resalted-area-background-color);
+ outline: $s-4 solid var(--resalted-area-border-color);
+ padding: 0;
+ margin: 0;
+}
+
.constraints-left {
grid-area: left;
.constraint-btn-rotated {
@@ -73,6 +78,7 @@
}
}
}
+
.constraints-center {
grid-area: center;
position: relative;
@@ -113,7 +119,7 @@
grid-area: bottom;
}
-.contraints-selects {
+.constraints-selects {
@include flexColumn;
}
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 a1981f1912..13133cc472 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
@@ -8,6 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.data :as d]
+ [app.main.data.events :as ev]
[app.main.data.exports :as de]
[app.main.data.workspace.shapes :as dwsh]
[app.main.data.workspace.state-helpers :as wsh]
@@ -20,6 +21,7 @@
[app.util.dom :as dom]
[app.util.i18n :refer [tr c]]
[app.util.keyboard :as kbd]
+ [potok.v2.core :as ptk]
[rumext.v2 :as mf]))
(def exports-attrs
@@ -75,8 +77,12 @@
(cond-> sname
(some? suffix)
(str suffix))
- (st/emit! (de/request-simple-export {:export (merge export defaults)})))
- (st/emit! (de/show-workspace-export-dialog {:selected (reverse ids)})))
+ (st/emit!
+ (de/request-simple-export {:export (merge export defaults)})
+ (ptk/event
+ ::ev/event {::ev/name "export-shapes" ::ev/origin "workspace:sidebar" :num-shapes 1})))
+ (st/emit!
+ (de/show-workspace-export-dialog {:selected (reverse ids) :origin "workspace:sidebar"})))
;; In other all cases we only allowed to have a single
;; shape-id because multiple shape-ids are handled
@@ -88,8 +94,14 @@
exports (mapv #(merge % defaults) exports)]
(if (= 1 (count exports))
(let [export (first exports)]
- (st/emit! (de/request-simple-export {:export export})))
- (st/emit! (de/request-multiple-export {:exports exports})))))))
+ (st/emit!
+ (de/request-simple-export {:export export})
+ (ptk/event
+ ::ev/event {::ev/name "export-shapes" ::ev/origin "workspace:sidebar" :num-shapes 1})))
+ (st/emit!
+ (de/request-multiple-export {:exports exports})
+ (ptk/event
+ ::ev/event {::ev/name "export-shapes" ::ev/origin "workspace:sidebar" :num-shapes (count exports)})))))))
;; TODO: maybe move to specific events for avoid to have this logic here?
add-export
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 3d8574ef1f..04a73f9365 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
@@ -49,23 +49,23 @@
(tr "workspace.options.fill"))
;; Excluding nil values
- values (d/without-nils values)
- fills (:fills values)
- has-fills? (or (= :multiple fills) (some? (seq fills)))
+ values (d/without-nils values)
+ fills (:fills values)
+ has-fills? (or (= :multiple fills) (some? (seq fills)))
- state* (mf/use-state has-fills?)
- open? (deref state*)
+ state* (mf/use-state has-fills?)
+ open? (deref state*)
- toggle-content (mf/use-fn #(swap! state* not))
+ toggle-content (mf/use-fn #(swap! state* not))
- open-content (mf/use-fn #(reset! state* true))
+ open-content (mf/use-fn #(reset! state* true))
- close-content (mf/use-fn #(reset! state* false))
+ close-content (mf/use-fn #(reset! state* false))
hide-fill-on-export? (:hide-fill-on-export values false)
- checkbox-ref (mf/use-ref)
+ checkbox-ref (mf/use-ref)
on-add
(mf/use-fn
@@ -94,7 +94,7 @@
(st/emit! (dc/remove-fill ids {:color default-color
:opacity 1} index))
(when (or (= :multiple fills)
- (= 1 (count (seq fills))))
+ (= 0 (count (seq fills))))
(close-content))))
on-remove-all
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
index 7b7e69aedc..732c67b3c2 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/frame_grid.cljs
@@ -8,6 +8,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.geom.grid :as gg]
+ [app.common.types.grid :as ctg]
[app.main.data.workspace.grid :as dw]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -22,8 +23,8 @@
[okulary.core :as l]
[rumext.v2 :as mf]))
-(def workspace-saved-grids
- (l/derived :saved-grids refs/workspace-page-options))
+(def lens:default-grids
+ (l/derived :default-grids refs/workspace-page))
(defn- get-size-options []
[{:value nil :label (tr "workspace.options.grid.auto")}
@@ -297,10 +298,16 @@
has-frame-grids? (or (= :multiple frame-grids) (some? (seq frame-grids)))
toggle-content (mf/use-fn #(swap! state* not))
+
id (:id shape)
- saved-grids (mf/deref workspace-saved-grids)
- default-grid-params (mf/use-memo (mf/deps saved-grids) #(merge dw/default-grid-params saved-grids))
- handle-create-grid (mf/use-fn (mf/deps id) #(st/emit! (dw/add-frame-grid id)))]
+ default-grids (mf/deref lens:default-grids)
+ default-grid-params (mf/with-memo [default-grids]
+ (merge ctg/default-grid-params default-grids))
+
+ handle-create-grid
+ (mf/use-fn
+ (mf/deps id)
+ #(st/emit! (dw/add-frame-grid id)))]
[:div {:class (stl/css :element-set)}
[:& title-bar {:collapsable has-frame-grids?
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 c4be7026a4..bb4bf23661 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
@@ -199,7 +199,6 @@
.height {
@extend .input-element;
@include bodySmallTypography;
- width: $s-108;
.icon-text {
padding-top: $s-1;
}
@@ -208,7 +207,6 @@
.margin {
@extend .input-element;
@include bodySmallTypography;
- width: $s-108;
.icon {
&.rotated svg {
transform: rotate(90deg);
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
index 3a1ba4bd9b..4949433e27 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/interactions.cljs
@@ -154,19 +154,21 @@
i/remove-icon]]))
(mf/defc page-flows
+ {::mf/props :obj}
[{:keys [flows]}]
- (when (seq flows)
+ (when flows
[:div {:class (stl/css :interaction-options)}
[:& title-bar {:collapsable false
:title (tr "workspace.options.flows.flow-starts")
:class (stl/css :title-spacing-layout-flow)}]
- (for [flow flows]
- [:& flow-item {:flow flow :key (str (:id flow))}])]))
+ (for [[id flow] flows]
+ [:& flow-item {:flow flow :key (dm/str id)}])]))
(mf/defc shape-flows
+ {::mf/props :obj}
[{:keys [flows shape]}]
- (when (= (:type shape) :frame)
- (let [flow (ctp/get-frame-flow flows (:id shape))
+ (when (cfh/frame-shape? shape)
+ (let [flow (ctp/get-frame-flow flows (:id shape))
add-flow (mf/use-fn #(st/emit! (dwi/add-flow-selected-frame)))]
[:div {:class (stl/css :element-set)}
@@ -179,8 +181,8 @@
:on-click add-flow}
i/add])]
- (when flow
- [:& flow-item {:flow flow :key (str (:id flow))}])])))
+ (when (some? flow)
+ [:& flow-item {:flow flow :key (dm/str (:id flow))}])])))
(def ^:private corner-center-icon
(i/icon-xref :corner-center (stl/css :corner-icon)))
@@ -695,11 +697,12 @@
:on-change change-offset-effect}]]]])])])]))
(mf/defc interactions-menu
- [{:keys [shape] :as props}]
- (let [interactions (get shape :interactions [])
+ {::mf/props :obj}
+ [{:keys [shape]}]
+ (let [interactions
+ (get shape :interactions [])
- options (mf/deref refs/workspace-page-options)
- flows (:flows options)
+ flows (mf/deref refs/workspace-page-flows)
add-interaction
(fn []
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs
index d3d95ca1a2..5bede159dd 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs
@@ -11,7 +11,6 @@
[app.common.data.macros :as dm]
[app.common.math :as mth]
[app.common.types.shape.layout :as ctl]
- [app.common.types.tokens-lib :as ctob]
[app.config :as cf]
[app.main.data.events :as-alias ev]
[app.main.data.workspace :as udw]
@@ -28,12 +27,6 @@
[app.main.ui.formats :as fmt]
[app.main.ui.hooks :as h]
[app.main.ui.icons :as i]
- [app.main.ui.workspace.tokens.changes :as wtch]
- [app.main.ui.workspace.tokens.core :as wtc]
- [app.main.ui.workspace.tokens.editable-select :refer [editable-select]]
- [app.main.ui.workspace.tokens.style-dictionary :as sd]
- [app.main.ui.workspace.tokens.token :as wtt]
- [app.main.ui.workspace.tokens.token-types :as wtty]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
[app.util.keyboard :as kbd]
@@ -300,7 +293,7 @@
(mf/defc simple-padding-selection
{::mf/props :obj}
- [{:keys [value on-change padding-x-options padding-y-options]}]
+ [{:keys [value on-change]}]
(let [p1 (:p1 value)
p2 (:p2 value)
p3 (:p3 value)
@@ -319,12 +312,15 @@
on-change'
(mf/use-fn
(mf/deps on-change)
- (fn [value attr]
- (on-change :simple attr value)))
+ (fn [value event]
+ (let [attr (-> (dom/get-current-target event)
+ (dom/get-data "attr")
+ (keyword))]
+ (on-change :simple attr value event))))
on-focus
(mf/use-fn
- (fn [attr event]
+ (fn [event]
(let [attr (-> (dom/get-current-target event)
(dom/get-data "attr")
(keyword))]
@@ -340,39 +336,28 @@
:title "Vertical padding"}
[:span {:class (stl/css :icon)}
i/padding-top-bottom]
- [:& editable-select
- {:placeholder "--"
- :on-change #(on-change' %1 :p1)
- :on-token-remove #(on-change' (wtc/maybe-resolve-token-value %) :p1)
- :options padding-x-options
- :position :left
- :value p1
- :input-props {:type "number"
- :data-attr "p1"
- :onFocus on-focus
- :no-validate true
- :nillable true
- :min 0
- :class (stl/css :numeric-input)}}]]
+ [:> numeric-input*
+ {:class (stl/css :numeric-input)
+ :placeholder "--"
+ :data-attr "p1"
+ :on-change on-change'
+ :on-focus on-focus
+ :min 0
+ :value p1}]]
[:div {:class (stl/css :padding-simple)
:title "Horizontal padding"}
[:span {:class (stl/css :icon)}
i/padding-left-right]
- [:& editable-select
- {:placeholder "--"
- :on-change #(on-change' %1 :p2)
- :on-token-remove #(on-change' (wtc/maybe-resolve-token-value %) :p2)
- :options padding-y-options
- :position :right
- :value p2
- :input-props {:type "number"
- :data-attr "p2"
- :onFocus on-focus
- :no-validate true
- :nillable true
- :min 0
- :class (stl/css :numeric-input)}}]]]))
+ [:> numeric-input*
+ {:className (stl/css :numeric-input)
+ :placeholder "--"
+ :data-attr "p2"
+ :on-change on-change'
+ :on-focus on-focus
+ :on-blur on-padding-blur
+ :min 0
+ :value p2}]]]))
(mf/defc multiple-padding-selection
{::mf/props :obj}
@@ -413,7 +398,6 @@
:on-change on-change'
:on-focus on-focus
:on-blur on-padding-blur
- :nillable true
:min 0
:value p1}]]
@@ -428,7 +412,6 @@
:on-change on-change'
:on-focus on-focus
:on-blur on-padding-blur
- :nillable true
:min 0
:value p2}]]
@@ -443,7 +426,6 @@
:on-change on-change'
:on-focus on-focus
:on-blur on-padding-blur
- :nillable true
:min 0
:value p3}]]
@@ -458,7 +440,6 @@
:on-change on-change'
:on-focus on-focus
:on-blur on-padding-blur
- :nillable true
:min 0
:value p4}]]]))
@@ -520,7 +501,7 @@
(mf/defc gap-section
{::mf/props :obj}
- [{:keys [is-column wrap-type on-change value spacing-column-options spacing-row-options]
+ [{:keys [is-column wrap-type on-change value]
:or {wrap-type :none}
:as props}]
(let [nowrap? (= :nowrap wrap-type)
@@ -536,8 +517,11 @@
on-change'
(mf/use-fn
(mf/deps on-change)
- (fn [value wrap-type type]
- (on-change (= "nowrap" wrap-type) type value)))]
+ (fn [value event]
+ (let [target (dom/get-current-target event)
+ wrap-type (dom/get-data target "wrap-type")
+ type (keyword (dom/get-data target "type"))]
+ (on-change (= "nowrap" wrap-type) type value event))))]
(mf/with-effect []
;; on destroy component
@@ -551,45 +535,38 @@
:disabled row-gap-disabled?)
:title "Row gap"}
[:span {:class (stl/css :icon)} i/gap-vertical]
- [:& editable-select
- {:disabled row-gap-disabled?
+ [:> numeric-input*
+ {:class (stl/css :numeric-input true)
+ :no-validate true
:placeholder "--"
- :on-change #(on-change' %1 (d/name wrap-type) :row-gap)
+ :data-type "row-gap"
+ :data-wrap-type (d/name wrap-type)
+ :on-focus on-gap-focus
+ :on-change on-change'
:on-blur on-gap-blur
- :on-token-remove #(on-change' (wtc/maybe-resolve-token-value %) (d/name wrap-type) :row-gap)
- :options spacing-row-options
- :position :left
+ :nillable true
+ :min 0
:value (:row-gap value)
- :input-props {:type "number"
- :data-type "row-gap"
- :data-wrap-type (d/name wrap-type)
- :no-validate true
- :nillable true
- :min 0
- :class (stl/css :numeric-input)}}]]
+ :disabled row-gap-disabled?}]]
[:div {:class (stl/css-case
:column-gap true
:disabled col-gap-disabled?)
:title "Column gap"}
[:span {:class (stl/css :icon)} i/gap-horizontal]
- [:& editable-select
- {:disabled col-gap-disabled?
+ [:> numeric-input*
+ {:class (stl/css :numeric-input true)
+ :no-validate true
:placeholder "--"
- :on-change #(on-change' %1 (d/name wrap-type) :column-gap)
+ :data-type "column-gap"
+ :data-wrap-type (d/name wrap-type)
+ :on-focus on-gap-focus
+ :on-change on-change'
:on-blur on-gap-blur
- :on-token-remove #(on-change' (wtc/maybe-resolve-token-value %) (d/name wrap-type) :column-gap)
- :options spacing-column-options
- :position :right
+ :nillable true
+ :min 0
:value (:column-gap value)
- :input-props {:type "number"
- :data-type "column-gap"
- :data-wrap-type (d/name wrap-type)
- :no-validate true
- :onFocus on-gap-focus
- :nillable true
- :min 0
- :class (stl/css :numeric-input)}}]]]))
+ :disabled col-gap-disabled?}]]]))
;; GRID COMPONENTS
@@ -700,7 +677,7 @@
[{:keys [type value]}]
(case type
:auto "auto"
- :percent (fmt/format-percent value)
+ :percent (fmt/format-percent (/ value 100))
:flex (fmt/format-frs value)
:fixed (fmt/format-pixels value)
value))
@@ -840,9 +817,9 @@
(st/emit! (dom/open-new-window cf/grid-help-uri)))
(mf/defc layout-container-menu
- {#_#_::mf/memo #{:ids :values :multiple :shape}
+ {::mf/memo #{:ids :values :multiple}
::mf/props :obj}
- [{:keys [ids values multiple] :as props}]
+ [{:keys [ids values multiple]}]
(let [;; Display
layout-type (:layout values)
has-layout? (some? layout-type)
@@ -856,49 +833,6 @@
on-toggle-visibility
(mf/use-fn #(swap! open* not))
- shape (when-not multiple
- (first (deref (refs/objects-by-id ids))))
- tokens (sd/use-active-theme-sets-tokens)
- spacing-tokens (mf/use-memo
- (mf/deps tokens)
- #(ctob/filter-by-type :spacing tokens))
-
- spacing-column-options (mf/use-memo
- (mf/deps shape spacing-tokens)
- #(when shape
- (wtc/tokens-name-map->select-options
- {:shape shape
- :tokens spacing-tokens
- :attributes (wtty/token-attributes :spacing)
- :selected-attributes #{:spacing-column}})))
-
- spacing-row-options (mf/use-memo
- (mf/deps shape spacing-tokens)
- #(when shape
- (wtc/tokens-name-map->select-options
- {:shape shape
- :tokens spacing-tokens
- :attributes (wtty/token-attributes :spacing)
- :selected-attributes #{:spacing-row}})))
-
- padding-x-options (mf/use-memo
- (mf/deps shape spacing-tokens)
- #(when shape
- (wtc/tokens-name-map->select-options
- {:shape shape
- :tokens spacing-tokens
- :attributes (wtty/token-attributes :spacing)
- :selected-attributes #{:padding-p1 :padding-p3}})))
-
- padding-y-options (mf/use-memo
- (mf/deps shape spacing-tokens)
- #(when shape
- (wtc/tokens-name-map->select-options
- {:shape shape
- :tokens spacing-tokens
- :attributes (wtty/token-attributes :spacing)
- :selected-attributes #{:padding-p2 :padding-p4}})))
-
on-add-layout
(mf/use-fn
(fn [event]
@@ -965,20 +899,14 @@
;; Gap
on-gap-change
- (fn [multiple? type value]
- (let [token-value (wtc/maybe-resolve-token-value value)
- val (or token-value (mth/finite value 0))
- token-type (case type
- :column-gap :spacing-column
- :row-gap :spacing-row)]
+ (fn [multiple? type val]
+ (let [val (mth/finite val 0)]
(cond
^boolean multiple?
- (st/emit! (dwsl/update-layout ids {:layout-gap {:row-gap val :column-gap val}
- :applied-tokens {token-type (if token-value (:id value) nil)}}))
+ (st/emit! (dwsl/update-layout ids {:layout-gap {:row-gap val :column-gap val}}))
(some? type)
- (st/emit! (dwsl/update-layout ids {:layout-gap {type val}
- :applied-tokens {token-type (if token-value (:id value) nil)}})))))
+ (st/emit! (dwsl/update-layout ids {:layout-gap {type val}})))))
;; Padding
on-padding-type-change
@@ -990,26 +918,14 @@
on-padding-change
(mf/use-fn
(mf/deps ids)
- (fn [type prop value]
- (let [token-identifier (wtt/token-identifier value)
- val (or token-identifier (mth/finite value 0))
- on-update-shape wtch/update-layout-padding]
+ (fn [type prop val]
+ (let [val (mth/finite val 0)]
(cond
(and (= type :simple) (= prop :p1))
- (if token-identifier
- (st/emit! (wtch/apply-token {:shape-ids ids
- :attributes #{:p1 :p3}
- :token value
- :on-update-shape on-update-shape}))
- (st/emit! (on-update-shape value ids #{:p1 :p3})))
+ (st/emit! (dwsl/update-layout ids {:layout-padding {:p1 val :p3 val}}))
(and (= type :simple) (= prop :p2))
- (if token-identifier
- (st/emit! (wtch/apply-token {:shape-ids ids
- :attributes #{:p2 :p4}
- :token value
- :on-update-shape on-update-shape}))
- (st/emit! (on-update-shape value ids #{:p2 :p4})))
+ (st/emit! (dwsl/update-layout ids {:layout-padding {:p2 val :p4 val}}))
(some? prop)
(st/emit! (dwsl/update-layout ids {:layout-padding {prop val}}))))))
@@ -1162,16 +1078,12 @@
[:& gap-section {:is-column is-column
:wrap-type wrap-type
:on-change on-gap-change
- :value (:layout-gap values)
- :spacing-column-options spacing-column-options
- :spacing-row-options spacing-row-options}]
+ :value (:layout-gap values)}]
[:& padding-section {:value (:layout-padding values)
:type (:layout-padding-type values)
:on-type-change on-padding-type-change
- :on-change on-padding-change
- :padding-x-options padding-x-options
- :padding-y-options padding-y-options}]]]
+ :on-change on-padding-change}]]]
:grid
[:div {:class (stl/css :grid-layout-menu)}
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 531b94989b..00d7c2f7fc 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
@@ -150,6 +150,7 @@
.grid-layout-menu {
@include flexColumn;
gap: $s-8;
+ overflow: hidden;
.row {
@include flexRow;
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 9f7969f2cd..a9fbb4f4b8 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
@@ -97,14 +97,11 @@
(when-not (str/empty? value)
(st/emit! (dc/change-stroke ids {:stroke-alignment value} index))))
-
-
on-stroke-width-change
(fn [index value]
(when-not (str/empty? value)
(st/emit! (dc/change-stroke ids {:stroke-width value} index))))
-
open-caps-select
(fn [caps-state]
(fn [event]
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 2f6f6b74c4..9309b1a76e 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
@@ -24,6 +24,7 @@
[app.main.ui.workspace.sidebar.options.menus.typography :refer [typography-entry text-options]]
[app.util.dom :as dom]
[app.util.i18n :as i18n :refer [tr]]
+ [app.util.text.ui :as txu]
[app.util.timers :as ts]
[rumext.v2 :as mf]))
@@ -278,7 +279,7 @@
100
(fn []
(when (not= "INPUT" (-> (dom/get-active) (dom/get-tag-name)))
- (let [node (dom/get-element-by-class "public-DraftEditor-content")]
+ (let [node (txu/get-text-editor-content)]
(dom/focus! node))))))}]
[:div {:class (stl/css :element-set)}
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
index 44d3de561a..ca14bbab40 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/typography.cljs
@@ -15,6 +15,7 @@
[app.main.data.fonts :as fts]
[app.main.data.shortcuts :as dsc]
[app.main.data.workspace :as dw]
+ [app.main.features :as features]
[app.main.fonts :as fonts]
[app.main.refs :as refs]
[app.main.store :as st]
@@ -293,6 +294,7 @@
:show-recent show-recent}])
[:div {:class (stl/css :font-option)
+ :title (tr "inspect.attributes.typography.font-family")
:on-click #(reset! open-selector? true)}
(cond
(= :multiple font-id)
@@ -309,7 +311,8 @@
(tr "dashboard.fonts.deleted-placeholder"))]
[:div {:class (stl/css :font-modifiers)}
- [:div {:class (stl/css :font-size-options)}
+ [:div {:class (stl/css :font-size-options)
+ :title (tr "inspect.attributes.typography.font-size")}
(let [size-options [8 9 10 11 12 14 16 18 24 36 48 72]
size-options (if (= font-size :multiple) (into [""] size-options) size-options)]
[:& editable-select
@@ -324,7 +327,8 @@
:on-change on-font-size-change
:on-blur on-blur}])]
- [:div {:class (stl/css :font-variant-options)}
+ [:div {:class (stl/css :font-variant-options)
+ :title (tr "inspect.attributes.typography.font-style")}
(let [basic-variant-options (->> (:variants font)
(map (fn [variant]
{:value (:id variant)
@@ -336,7 +340,7 @@
:key :multiple-variants
:label "--"})
basic-variant-options)]
- ;; TODO Add disabled mode
+ ;; TODO Add disabled mode
[:& select
{:class (stl/css :font-variant-select)
:default-value (attr->string font-variant-id)
@@ -359,7 +363,8 @@
(on-change {attr (str value)}))]
[:div {:class (stl/css :spacing-options)}
- [:div {:class (stl/css :line-height)}
+ [:div {:class (stl/css :line-height)
+ :title (tr "inspect.attributes.typography.line-height")}
[:span {:class (stl/css :icon)
:alt (tr "workspace.options.text-options.line-height")}
i/text-lineheight]
@@ -375,7 +380,8 @@
:on-change #(handle-change % :line-height)
:on-blur on-blur}]]
- [:div {:class (stl/css :letter-spacing)}
+ [:div {:class (stl/css :letter-spacing)
+ :title (tr "inspect.attributes.typography.letter-spacing")}
[:span
{:class (stl/css :icon)
:alt (tr "workspace.options.text-options.letter-spacing")}
@@ -394,10 +400,11 @@
{::mf/wrap-props false}
[{:keys [values on-change on-blur]}]
(let [text-transform (or (:text-transform values) "none")
+ unset-value (if (features/active-feature? @st/state "text-editor/v2") "none" "unset")
handle-change
(fn [type]
(if (= text-transform type)
- (on-change {:text-transform "unset"})
+ (on-change {:text-transform unset-value})
(on-change {:text-transform type}))
(when (some? on-blur) (on-blur)))]
@@ -407,14 +414,17 @@
:name "text-transform"}
[:& radio-button {:icon i/text-uppercase
:type "checkbox"
+ :title (tr "inspect.attributes.typography.text-transform.uppercase")
:value "uppercase"
:id "text-transform-uppercase"}]
[:& radio-button {:icon i/text-mixed
:type "checkbox"
:value "capitalize"
+ :title (tr "inspect.attributes.typography.text-transform.titlecase")
:id "text-transform-capitalize"}]
[:& radio-button {:icon i/text-lowercase
:type "checkbox"
+ :title (tr "inspect.attributes.typography.text-transform.lowercase")
:value "lowercase"
:id "text-transform-lowercase"}]]]))
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs
index 791d7d3da7..aa3294438b 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs
@@ -9,6 +9,7 @@
(:require-macros [app.main.style :as stl])
(:require
[app.common.colors :as clr]
+ [app.common.data :as d]
[app.main.data.workspace :as dw]
[app.main.data.workspace.undo :as dwu]
[app.main.refs :as refs]
@@ -16,16 +17,21 @@
[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]]
+ [okulary.core :as l]
[rumext.v2 :as mf]))
+(def lens:background-color
+ (-> (l/key :background)
+ (l/derived refs/workspace-page)))
+
(mf/defc options
{::mf/wrap [mf/memo]
::mf/wrap-props false}
[]
- (let [options (mf/deref refs/workspace-page-options)
- on-change (mf/use-fn #(st/emit! (dw/change-canvas-color %)))
- on-open (mf/use-fn #(st/emit! (dwu/start-undo-transaction :options)))
- on-close (mf/use-fn #(st/emit! (dwu/commit-undo-transaction :options)))]
+ (let [background (mf/deref lens:background-color)
+ on-change (mf/use-fn #(st/emit! (dw/change-canvas-color %)))
+ on-open (mf/use-fn #(st/emit! (dwu/start-undo-transaction :options)))
+ on-close (mf/use-fn #(st/emit! (dwu/commit-undo-transaction :options)))]
[:div {:class (stl/css :element-set)}
[:div {:class (stl/css :element-title)}
[:& title-bar {:collapsable false
@@ -37,7 +43,7 @@
:disable-opacity true
:disable-image true
:title (tr "workspace.options.canvas-background")
- :color {:color (get options :background clr/canvas)
+ :color {:color (d/nilv background clr/canvas)
:opacity 1}
:on-change on-change
:on-open on-open
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs
index dcbabace67..d6ad61822a 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs
@@ -113,9 +113,9 @@
handle-value-change
(mf/use-fn
(mf/deps color on-change)
- (fn [new-value]
+ (fn [value]
(let [color (-> color
- (assoc :color new-value)
+ (assoc :color value)
(dissoc :gradient))]
(st/emit! (dwl/add-recent-color color)
(on-change color)))))
@@ -146,7 +146,9 @@
:else
color)
- {:keys [x y]} (dom/get-client-position event)
+ cpos (dom/get-client-position event)
+ x (dm/get-prop cpos :x)
+ y (dm/get-prop cpos :y)
props {:x x
:y y
@@ -154,14 +156,14 @@
:disable-opacity disable-opacity
:disable-image disable-image
;; on-change second parameter means if the source is the color-picker
- :on-change #(on-change (merge uc/empty-color %) true)
+ :on-change #(on-change % true)
:on-close (fn [value opacity id file-id]
(when on-close
(on-close value opacity id file-id)))
:data color}]
- (when on-open
- (on-open (merge uc/empty-color color)))
+ (when (fn? on-open)
+ (on-open color))
(modal/show! :colorpicker props))))
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 634075ea2d..d2a367b495 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
@@ -8,44 +8,7 @@
.stroke-data {
@include flexColumn;
- .stroke-options {
- @include flexRow;
- .stroke-width-input-element {
- @extend .input-element;
- @include bodySmallTypography;
- width: $s-60;
- }
- .select-wrapper {
- width: $s-124;
- }
- }
- .stroke-caps-options {
- @include flexRow;
- .cap-select {
- width: $s-124;
- }
- .stroke-cap-dropdown,
- .stroke-cap-dropdown-start {
- min-width: $s-124;
- width: fit-content;
- max-width: $s-252;
- right: 0;
- left: unset;
- }
- .stroke-cap-dropdown-start {
- left: 0;
- right: unset;
- }
- .swap-caps-btn {
- @extend .button-secondary;
- height: $s-32;
- width: $s-28;
- svg {
- @extend .button-icon;
- }
- }
- }
&.dnd-over-top {
border-top: $s-1 solid var(--layer-row-foreground-color-drag);
}
@@ -53,3 +16,46 @@
border-bottom: $s-1 solid var(--layer-row-foreground-color-drag);
}
}
+
+.stroke-options {
+ display: grid;
+ align-items: center;
+ gap: $s-4;
+ grid-template-columns: 1fr 2fr 2fr;
+
+ .stroke-width-input-element {
+ @extend .input-element;
+ @include bodySmallTypography;
+ }
+}
+.stroke-caps-options {
+ display: grid;
+ align-items: center;
+ gap: $s-4;
+ grid-template-columns: 1fr auto 1fr;
+}
+
+.cap-select {
+ width: 100%;
+}
+.stroke-cap-dropdown,
+.stroke-cap-dropdown-start {
+ min-width: $s-124;
+ width: fit-content;
+ max-width: $s-252;
+ right: 0;
+ left: unset;
+}
+
+.stroke-cap-dropdown-start {
+ left: 0;
+ right: unset;
+}
+.swap-caps-btn {
+ @extend .button-secondary;
+ height: $s-32;
+ width: $s-28;
+ svg {
+ @extend .button-icon;
+ }
+}
diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs
index a3b9f3c4e0..ae912c12b4 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs
+++ b/frontend/src/app/main/ui/workspace/sidebar/options/shapes/text.cljs
@@ -10,7 +10,9 @@
[app.common.text :as txt]
[app.common.types.shape.layout :as ctl]
[app.main.data.workspace.texts :as dwt]
+ [app.main.features :as features]
[app.main.refs :as refs]
+ [app.main.store :as st]
[app.main.ui.hooks :as hooks]
[app.main.ui.workspace.sidebar.options.menus.blur :refer [blur-menu]]
[app.main.ui.workspace.sidebar.options.menus.color-selection :refer [color-selection-menu]]
@@ -47,15 +49,22 @@
parents-by-ids-ref (mf/use-memo (mf/deps ids) #(refs/parents-by-ids ids))
parents (mf/deref parents-by-ids-ref)
- state-map (mf/deref refs/workspace-editor-state)
+ state-map (if (features/active-feature? @st/state "text-editor/v2")
+ (mf/deref refs/workspace-v2-editor-state)
+ (mf/deref refs/workspace-editor-state))
+
shared-libs (mf/deref refs/workspace-libraries)
- editor-state (get state-map (:id shape))
+ editor-state (when (not (features/active-feature? @st/state "text-editor/v2"))
+ (get state-map (:id shape)))
layer-values (select-keys shape layer-attrs)
+ editor-instance (when (features/active-feature? @st/state "text-editor/v2")
+ (mf/deref refs/workspace-editor))
fill-values (-> (dwt/current-text-values
{:editor-state editor-state
+ :editor-instance editor-instance
:shape shape
:attrs (conj txt/text-fill-attrs :fills)})
(d/update-in-when [:fill-color-gradient :type] keyword))
@@ -75,10 +84,12 @@
:attrs txt/root-attrs})
(dwt/current-paragraph-values
{:editor-state editor-state
+ :editor-instance editor-instance
:shape shape
:attrs txt/paragraph-attrs})
(dwt/current-text-values
{:editor-state editor-state
+ :editor-instance editor-instance
:shape shape
:attrs txt/text-node-attrs}))
layout-item-values (select-keys shape layout-item-attrs)]
diff --git a/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss b/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss
index cd12ae5727..c24801d0f5 100644
--- a/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss
+++ b/frontend/src/app/main/ui/workspace/sidebar/sitemap.scss
@@ -55,6 +55,7 @@
overflow-x: hidden;
overflow-y: overlay;
scrollbar-gutter: stable;
+ max-width: var(--width);
}
.pages-list {
diff --git a/frontend/src/app/main/ui/workspace/tokens/sets.cljs b/frontend/src/app/main/ui/workspace/tokens/sets.cljs
index 570faa8c02..6ba57882ba 100644
--- a/frontend/src/app/main/ui/workspace/tokens/sets.cljs
+++ b/frontend/src/app/main/ui/workspace/tokens/sets.cljs
@@ -7,10 +7,10 @@
(ns app.main.ui.workspace.tokens.sets
(:require-macros [app.main.style :as stl])
(:require
- [app.main.data.messages :as msg]
[app.main.data.tokens :as wdt]
[app.main.refs :as refs]
[app.main.store :as st]
+ [app.main.data.notifications :as ntf]
[app.main.ui.hooks :as h]
[app.main.ui.icons :as i]
[app.main.ui.workspace.tokens.sets-context :as sets-context]
@@ -166,7 +166,7 @@
:selected-set-id selected-token-set-id)])]))])]]))
(defn warn-on-try-create-token-set-group! []
- (st/emit! (msg/show {:content "Token Set grouping is not supported yet."
+ (st/emit! (ntf/show {:content "Token Set grouping is not supported yet."
:notification-type :toast
:type :warning
:timeout 3000})))
diff --git a/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs b/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs
index 39fea97682..d36b561996 100644
--- a/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs
+++ b/frontend/src/app/main/ui/workspace/tokens/sidebar.cljs
@@ -10,7 +10,7 @@
[app.common.data :as d]
[app.common.transit :as t]
[app.common.types.tokens-lib :as ctob]
- [app.main.data.messages :as msg]
+ [app.main.data.notifications :as ntf]
[app.main.data.modal :as modal]
[app.main.data.tokens :as dt]
[app.main.refs :as refs]
@@ -294,7 +294,7 @@
(st/emit! (dt/import-tokens-lib lib)))
(fn [err]
(let [{:keys [user-error]} (ex-data err)]
- (st/emit! (msg/show {:content user-error
+ (st/emit! (ntf/show {:content user-error
:notification-type :toast
:type :warning
:timeout 3000}))))))
diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs
index 789df3efc6..7040c2c1e5 100644
--- a/frontend/src/app/main/ui/workspace/viewport.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport.cljs
@@ -15,15 +15,18 @@
[app.common.types.shape-tree :as ctt]
[app.common.types.shape.layout :as ctl]
[app.main.data.workspace.modifiers :as dwm]
+ [app.main.features :as features]
[app.main.refs :as refs]
+ [app.main.store :as st]
[app.main.ui.context :as ctx]
[app.main.ui.flex-controls :as mfc]
[app.main.ui.hooks :as ui-hooks]
[app.main.ui.measurements :as msr]
[app.main.ui.shapes.export :as use]
[app.main.ui.workspace.shapes :as shapes]
- [app.main.ui.workspace.shapes.text.editor :as editor]
+ [app.main.ui.workspace.shapes.text.editor :as editor-v1]
[app.main.ui.workspace.shapes.text.text-edition-outline :refer [text-edition-outline]]
+ [app.main.ui.workspace.shapes.text.v2-editor :as editor-v2]
[app.main.ui.workspace.shapes.text.viewport-texts-html :as stvh]
[app.main.ui.workspace.viewport.actions :as actions]
[app.main.ui.workspace.viewport.comments :as comments]
@@ -92,28 +95,24 @@
vbox' (mf/use-debounce 100 vbox)
- ;; CONTEXT
- page-id (mf/use-ctx ctx/current-page-id)
-
;; DEREFS
drawing (mf/deref refs/workspace-drawing)
- options (mf/deref refs/workspace-page-options)
focus (mf/deref refs/workspace-focus-selected)
- objects-ref (mf/use-memo #(refs/workspace-page-objects-by-id page-id))
- objects (mf/deref objects-ref)
- base-objects (-> objects (ui-hooks/with-focus-objects focus))
+ page (mf/deref refs/workspace-page)
+ objects (get page :objects)
+ page-id (get page :id)
+ background (get page :background clr/canvas)
+
+ base-objects (ui-hooks/with-focus-objects objects focus)
modifiers (mf/deref refs/workspace-modifiers)
text-modifiers (mf/deref refs/workspace-text-modifier)
- objects-modified (mf/with-memo
- [base-objects text-modifiers modifiers]
+ objects-modified (mf/with-memo [base-objects text-modifiers modifiers]
(apply-modifiers-to-selected selected base-objects text-modifiers modifiers))
- selected-shapes (->> selected (keep (d/getf objects-modified)))
-
- background (get options :background clr/canvas)
+ selected-shapes (keep (d/getf objects-modified) selected)
;; STATE
alt? (mf/use-state false)
@@ -305,7 +304,6 @@
(when picking-color?
[:& pixel-overlay/pixel-overlay {:vport vport
:vbox vbox
- :options options
:layout layout
:viewport-ref viewport-ref}])]
@@ -338,7 +336,7 @@
[:stop {:offset "100%" :stop-color (str "color-mix(in srgb-linear, " background " 90%, #777)") :stop-opacity 1}]]]
(when (dbg/enabled? :show-export-metadata)
- [:& use/export-page {:options options}])
+ [:& use/export-page {:page page}])
;; We need a "real" background shape so layer transforms work properly in firefox
[:rect {:width (:width vbox 0)
@@ -388,15 +386,18 @@
[:g {:style {:pointer-events (if disable-events? "none" "auto")}}
(when show-text-editor?
- [:& editor/text-editor-svg {:shape editing-shape
- :modifiers modifiers}])
+ (if (features/active-feature? @st/state "text-editor/v2")
+ [:& editor-v2/text-editor {:shape editing-shape
+ :modifiers modifiers}]
+ [:& editor-v1/text-editor-svg {:shape editing-shape
+ :modifiers modifiers}]))
(when show-frame-outline?
(let [outlined-frame-id
(->> @hover-ids
(filter #(cfh/frame-shape? (get base-objects %)))
(remove selected)
- (first))
+ (last))
outlined-frame (get objects outlined-frame-id)]
[:*
[:& outline/shape-outlines
@@ -485,8 +486,8 @@
:focus focus}]
(when show-prototypes?
- [:& widgets/frame-flows
- {:flows (:flows options)
+ [:> widgets/frame-flows*
+ {:flows (:flows page)
:objects objects-modified
:selected selected
:zoom zoom
@@ -556,11 +557,11 @@
:show-rulers? show-rulers?}])
(when (and show-rulers? show-grids?)
- [:& guides/viewport-guides
+ [:> guides/viewport-guides*
{:zoom zoom
:vbox vbox
:hover-frame guide-frame
- :disabled-guides? disabled-guides?
+ :disabled-guides disabled-guides?
:modifiers modifiers}])
;; DEBUG LAYOUT DROP-ZONES
diff --git a/frontend/src/app/main/ui/workspace/viewport.scss b/frontend/src/app/main/ui/workspace/viewport.scss
index 647ce88a4b..be6d5f9d8b 100644
--- a/frontend/src/app/main/ui/workspace/viewport.scss
+++ b/frontend/src/app/main/ui/workspace/viewport.scss
@@ -36,14 +36,4 @@
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/actions.cljs b/frontend/src/app/main/ui/workspace/viewport/actions.cljs
index 013a157dc4..8aaef6be1c 100644
--- a/frontend/src/app/main/ui/workspace/viewport/actions.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport/actions.cljs
@@ -30,6 +30,7 @@
[app.util.mouse :as mse]
[app.util.object :as obj]
[app.util.rxops :refer [throttle-fn]]
+ [app.util.text.ui :as txu]
[app.util.timers :as ts]
[app.util.webapi :as wapi]
[beicon.v2.core :as rx]
@@ -49,7 +50,7 @@
;; We need to handle editor related stuff here because
;; handling on editor dom node does not works properly.
(let [target (dom/get-target bevent)
- editor (.closest ^js target ".public-DraftEditor-content")]
+ editor (txu/closest-text-editor-content target)]
;; Capture mouse pointer to detect the movements even if cursor
;; leaves the viewport or the browser itself
;; https://developer.mozilla.org/en-US/docs/Web/API/Element/setPointerCapture
@@ -319,7 +320,7 @@
mod? (kbd/mod? event)
target (dom/get-target event)
- editing? (or (some? (.closest ^js target ".public-DraftEditor-content"))
+ editing? (or (txu/some-text-editor-content? target)
(= "rich-text" (obj/get target "className"))
(= "INPUT" (obj/get target "tagName"))
(= "TEXTAREA" (obj/get target "tagName")))]
@@ -338,7 +339,7 @@
mod? (kbd/mod? event)
target (dom/get-target event)
- editing? (or (some? (.closest ^js target ".public-DraftEditor-content"))
+ editing? (or (txu/some-text-editor-content? target)
(= "rich-text" (obj/get target "className"))
(= "INPUT" (obj/get target "tagName"))
(= "TEXTAREA" (obj/get target "tagName")))]
diff --git a/frontend/src/app/main/ui/workspace/viewport/comments.cljs b/frontend/src/app/main/ui/workspace/viewport/comments.cljs
index f75559b5e5..0e35d681ab 100644
--- a/frontend/src/app/main/ui/workspace/viewport/comments.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport/comments.cljs
@@ -41,7 +41,8 @@
positions-ref
(mf/with-memo [page-id]
- (-> (l/in [:workspace-data :pages-index page-id :options :comment-threads-position])
+ ;; FIXME: use lookup helpers here
+ (-> (l/in [:workspace-data :pages-index page-id :comment-thread-positions])
(l/derived st/state)))
positions (mf/deref positions-ref)
diff --git a/frontend/src/app/main/ui/workspace/viewport/guides.cljs b/frontend/src/app/main/ui/workspace/viewport/guides.cljs
index 79321b508d..691ea4a246 100644
--- a/frontend/src/app/main/ui/workspace/viewport/guides.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport/guides.cljs
@@ -7,6 +7,7 @@
(ns app.main.ui.workspace.viewport.guides
(:require
[app.common.colors :as colors]
+ [app.common.data.macros :as dm]
[app.common.files.helpers :as cfh]
[app.common.geom.point :as gpt]
[app.common.geom.shapes :as gsh]
@@ -21,6 +22,7 @@
[app.main.ui.formats :as fmt]
[app.main.ui.workspace.viewport.rulers :as rulers]
[app.util.dom :as dom]
+ [okulary.core :as l]
[rumext.v2 :as mf]))
(def guide-width 1)
@@ -256,14 +258,15 @@
(and (>= (:position guide) (:y frame))
(<= (:position guide) (+ (:y frame) (:height frame))))))
-(mf/defc guide
- {::mf/wrap [mf/memo]}
- [{:keys [guide hover? on-guide-change get-hover-frame vbox zoom hover-frame disabled-guides? frame-modifier]}]
+(mf/defc guide*
+ {::mf/wrap [mf/memo]
+ ::mf/props :obj}
+ [{:keys [guide is-hover on-guide-change get-hover-frame vbox zoom hover-frame disabled-guides frame-modifier]}]
(let [axis (:axis guide)
handle-change-position
- (mf/use-callback
+ (mf/use-fn
(mf/deps on-guide-change)
(fn [changes]
(when on-guide-change
@@ -296,7 +299,7 @@
(and (cfh/root-frame? frame)
(not (ctst/rotated-frame? frame))))
[:g.guide-area {:opacity (when frame-guide-outside? 0)}
- (when-not disabled-guides?
+ (when-not disabled-guides
(let [{:keys [x y width height]} (guide-area-axis pos vbox zoom frame axis)]
[:rect {:x x
:y y
@@ -318,7 +321,7 @@
l3-x1 l3-y1 l3-x2 l3-y2]}
(guide-line-axis pos vbox frame axis)]
[:g
- (when (or hover? (:hover @state))
+ (when (or is-hover (:hover @state))
[:line {:x1 l1-x1
:y1 l1-y1
:x2 l1-x2
@@ -334,10 +337,10 @@
:y2 l2-y2
:style {:stroke guide-color
:stroke-width guide-width
- :stroke-opacity (if (or hover? (:hover @state))
+ :stroke-opacity (if (or is-hover (:hover @state))
guide-opacity-hover
guide-opacity)}}]
- (when (or hover? (:hover @state))
+ (when (or is-hover (:hover @state))
[:line {:x1 l3-x1
:y1 l3-y1
:x2 l3-x2
@@ -355,11 +358,11 @@
:y2 y2
:style {:stroke guide-color
:stroke-width guide-width
- :stroke-opacity (if (or hover? (:hover @state))
+ :stroke-opacity (if (or is-hover (:hover @state))
guide-opacity-hover
guide-opacity)}}]))
- (when (or hover? (:hover @state))
+ (when (or is-hover (:hover @state))
(let [{:keys [rect-x rect-y rect-width rect-height text-x text-y]}
(guide-pill-axis pos vbox zoom axis)]
[:g.guide-pill
@@ -382,16 +385,17 @@
;; If the guide is associated to a frame we show the position relative to the frame
(fmt/format-number (- pos (if (= axis :x) (:x frame) (:y frame))))]]))])))
-(mf/defc new-guide-area
- [{:keys [vbox zoom axis get-hover-frame disabled-guides?]}]
+(mf/defc new-guide-area*
+ {::mf/props :obj}
+ [{:keys [vbox zoom axis get-hover-frame disabled-guides]}]
(let [on-guide-change
- (mf/use-callback
+ (mf/use-fn
(mf/deps vbox)
(fn [guide]
(let [guide (-> guide
- (assoc :id (uuid/next)
- :axis axis))]
+ (assoc :id (uuid/next))
+ (assoc :axis axis))]
(when (guide-inside-vbox? zoom vbox guide)
(st/emit! (dw/update-guides guide))))))
@@ -402,10 +406,11 @@
on-lost-pointer-capture
on-pointer-move
state
- frame]} (use-guide on-guide-change get-hover-frame zoom {:axis axis})]
+ frame]}
+ (use-guide on-guide-change get-hover-frame zoom {:axis axis})]
[:g.new-guides
- (when-not disabled-guides?
+ (when-not disabled-guides
(let [{:keys [x y width height]} (guide-creation-area vbox zoom axis)]
[:rect {:x x
:y y
@@ -422,25 +427,25 @@
:pointer-events "fill"}}]))
(when (:new-position @state)
- [:& guide {:guide {:axis axis
- :position (:new-position @state)}
- :get-hover-frame get-hover-frame
- :vbox vbox
- :zoom zoom
- :hover? true
- :hover-frame frame}])]))
+ [:& guide* {:guide {:axis axis :position (:new-position @state)}
+ :get-hover-frame get-hover-frame
+ :vbox vbox
+ :zoom zoom
+ :is-hover true
+ :hover-frame frame}])]))
-(mf/defc viewport-guides
- {::mf/wrap [mf/memo]}
- [{:keys [zoom vbox hover-frame disabled-guides? modifiers]}]
+(def ^:private lens:workspace-guides
+ (-> (l/key :guides)
+ (l/derived refs/workspace-page)))
- (let [page (mf/deref refs/workspace-page)
-
- guides (mf/use-memo
- (mf/deps page vbox)
- #(->> (get-in page [:options :guides] {})
- (vals)
- (filter (guide-inside-vbox? zoom vbox))))
+(mf/defc viewport-guides*
+ {::mf/wrap [mf/memo]
+ ::mf/props :obj}
+ [{:keys [zoom vbox hover-frame disabled-guides modifiers]}]
+ (let [guides (mf/deref lens:workspace-guides)
+ guides (mf/with-memo [guides vbox]
+ (->> (vals guides)
+ (filter (partial guide-inside-vbox? zoom vbox))))
focus (mf/deref refs/workspace-focus-selected)
@@ -449,46 +454,42 @@
;; We use the ref to not redraw every guide everytime the hovering frame change
;; we're only interested to get the frame in the guide we're moving
get-hover-frame
- (mf/use-callback
- (fn []
- (mf/ref-val hover-frame-ref)))
+ (mf/use-fn
+ #(mf/ref-val hover-frame-ref))
on-guide-change
- (mf/use-callback
+ (mf/use-fn
(mf/deps vbox)
(fn [guide]
(if (guide-inside-vbox? zoom vbox guide)
(st/emit! (dw/update-guides guide))
(st/emit! (dw/remove-guide guide)))))]
- (mf/use-effect
- (mf/deps hover-frame)
- (fn []
- (mf/set-ref-val! hover-frame-ref hover-frame)))
+ (mf/with-effect [hover-frame]
+ (mf/set-ref-val! hover-frame-ref hover-frame))
[:g.guides {:pointer-events "none"}
- [:& new-guide-area {:vbox vbox
- :zoom zoom
- :axis :x
- :get-hover-frame get-hover-frame
- :disabled-guides? disabled-guides?}]
+ [:> new-guide-area* {:vbox vbox
+ :zoom zoom
+ :axis :x
+ :get-hover-frame get-hover-frame
+ :disabled-guides disabled-guides}]
- [:& new-guide-area {:vbox vbox
- :zoom zoom
- :axis :y
- :get-hover-frame get-hover-frame
- :disabled-guides? disabled-guides?}]
+ [:> new-guide-area* {:vbox vbox
+ :zoom zoom
+ :axis :y
+ :get-hover-frame get-hover-frame
+ :disabled-guides disabled-guides}]
(for [current guides]
(when (or (nil? (:frame-id current))
(empty? focus)
(contains? focus (:frame-id current)))
- [:& guide {:key (str "guide-" (:id current))
+ [:> guide* {:key (dm/str "guide-" (:id current))
:guide current
:vbox vbox
:zoom zoom
- :frame-modifier (get-in modifiers [(:frame-id current) :modifiers])
+ :frame-modifier (dm/get-in modifiers [(:frame-id current) :modifiers])
:get-hover-frame get-hover-frame
:on-guide-change on-guide-change
- :disabled-guides? disabled-guides?}]))]))
-
+ :disabled-guides disabled-guides}]))]))
diff --git a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs
index 0fba360081..f0ba58b365 100644
--- a/frontend/src/app/main/ui/workspace/viewport/hooks.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport/hooks.cljs
@@ -218,7 +218,7 @@
(rx/filter some?))))))
over-shapes-stream
- (mf/with-memo [move-stream mod-str]
+ (mf/with-memo [query-point move-stream mod-str]
(->> (rx/merge
;; This stream works to "refresh" the outlines when the control is pressed
;; but the mouse has not been moved from its position.
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 b600551632..4ac339c484 100644
--- a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs
@@ -5,7 +5,9 @@
;; Copyright (c) KALEIDOS INC
(ns app.main.ui.workspace.viewport.pixel-overlay
+ (:require-macros [app.main.style :as stl])
(:require
+ [app.common.data.macros :as dm]
[app.common.math :as mth]
[app.config :as cfg]
[app.main.data.modal :as modal]
@@ -51,10 +53,10 @@
(mf/defc pixel-overlay
{::mf/wrap-props false}
[props]
- (let [vport (unchecked-get props "vport")
+ (let [vport (unchecked-get props "vport")
- viewport-ref (unchecked-get props "viewport-ref")
- viewport-node (mf/ref-val viewport-ref)
+ viewport-ref (unchecked-get props "viewport-ref")
+ viewport-node (mf/ref-val viewport-ref)
canvas (get-offscreen-canvas (:width vport) (:height vport))
canvas-context (.getContext canvas "2d" #js {:willReadFrequently true})
@@ -186,11 +188,9 @@
;; Disconnect on unmount
#(.disconnect observer))))
- [:*
- [:div.pixel-overlay
- {:id "pixel-overlay"
- :tab-index 0
- :class (cur/get-static "picker")
- :on-pointer-down handle-pointer-down-picker
- :on-pointer-up handle-pointer-up-picker
- :on-pointer-move handle-pointer-move-picker}]]))
+ [:div {:id "pixel-overlay"
+ :tab-index 0
+ :class (dm/str (cur/get-static "picker") " " (stl/css :pixel-overlay))
+ :on-pointer-down handle-pointer-down-picker
+ :on-pointer-up handle-pointer-up-picker
+ :on-pointer-move handle-pointer-move-picker}]))
diff --git a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.scss b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.scss
new file mode 100644
index 0000000000..fbbe82c72e
--- /dev/null
+++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.scss
@@ -0,0 +1,15 @@
+// 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
+
+.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/widgets.cljs b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs
index 1d2ee19481..3082435d42 100644
--- a/frontend/src/app/main/ui/workspace/viewport/widgets.cljs
+++ b/frontend/src/app/main/ui/workspace/viewport/widgets.cljs
@@ -92,23 +92,22 @@
"#8f9da3") ;; TODO: Set this color on the DS
on-pointer-down
- (mf/use-callback
+ (mf/use-fn
(mf/deps (:id frame) on-frame-select workspace-read-only?)
- (fn [bevent]
- (let [event (.-nativeEvent bevent)]
- (when (= 1 (.-which event))
- (dom/prevent-default bevent)
- (dom/stop-propagation bevent)
- (on-frame-select event (:id frame))))))
+ (fn [event]
+ (when (dom/left-mouse? event)
+ (dom/prevent-default event)
+ (dom/stop-propagation event)
+ (on-frame-select event (:id frame)))))
on-double-click
- (mf/use-callback
+ (mf/use-fn
(mf/deps (:id frame))
#(st/emit! (dw/go-to-layout :layers)
(dw/start-rename-shape (:id frame))))
on-context-menu
- (mf/use-callback
+ (mf/use-fn
(mf/deps frame workspace-read-only?)
(fn [bevent]
(let [event (.-nativeEvent bevent)
@@ -119,13 +118,13 @@
(st/emit! (dw/show-shape-context-menu {:position position :shape frame}))))))
on-pointer-enter
- (mf/use-callback
+ (mf/use-fn
(mf/deps (:id frame) on-frame-enter)
(fn [_]
(on-frame-enter (:id frame))))
on-pointer-leave
- (mf/use-callback
+ (mf/use-fn
(mf/deps (:id frame) on-frame-leave)
(fn [_]
(on-frame-leave (:id frame))))
@@ -221,75 +220,75 @@
:on-frame-select on-frame-select
:grid-edition? (and (= id edition) grid-edition?)}]))]))
-(mf/defc frame-flow
- [{:keys [flow frame selected? zoom on-frame-enter on-frame-leave on-frame-select]}]
- (let [{:keys [x y]} frame
- flow-pos (gpt/point x (- y (/ 35 zoom)))
+(mf/defc frame-flow*
+ {::mf/props :obj}
+ [{:keys [flow frame is-selected zoom on-frame-enter on-frame-leave on-frame-select]}]
+ (let [x (dm/get-prop frame :x)
+ y (dm/get-prop frame :y)
+ pos (gpt/point x (- y (/ 35 zoom)))
+
+ frame-id (:id frame)
+ flow-id (:id flow)
+ flow-name (:name flow)
on-pointer-down
- (mf/use-callback
- (mf/deps (:id frame) on-frame-select)
- (fn [bevent]
- (let [event (.-nativeEvent bevent)
- params {:section "interactions"
- :frame-id (:id frame)}]
- (when (= 1 (.-which event))
+ (mf/use-fn
+ (mf/deps frame-id on-frame-select)
+ (fn [event]
+ (let [params {:section "interactions"
+ :frame-id frame-id}]
+ (when (dom/left-mouse? event)
(dom/prevent-default event)
(dom/stop-propagation event)
(st/emit! (dw/go-to-viewer params))))))
on-double-click
- (mf/use-callback
- (mf/deps (:id frame))
- #(st/emit! (dwi/start-rename-flow (:id flow))))
+ (mf/use-fn
+ (mf/deps flow-id)
+ #(st/emit! (dwi/start-rename-flow flow-id)))
on-pointer-enter
- (mf/use-callback
- (mf/deps (:id frame) on-frame-enter)
+ (mf/use-fn
+ (mf/deps frame-id on-frame-enter)
(fn [_]
- (on-frame-enter (:id frame))))
+ (when (fn? on-frame-enter)
+ (on-frame-enter frame-id))))
on-pointer-leave
- (mf/use-callback
- (mf/deps (:id frame) on-frame-leave)
+ (mf/use-fn
+ (mf/deps frame-id on-frame-leave)
(fn [_]
- (on-frame-leave (:id frame))))]
+ (when (fn? on-frame-leave)
+ (on-frame-leave frame-id))))]
[:foreignObject {:x 0
:y -15
:width 100000
:height 24
- :transform (vwu/text-transform flow-pos zoom)}
+ :transform (vwu/text-transform pos zoom)}
[:div {:class (stl/css-case :flow-badge true
- :selected selected?)}
+ :selected is-selected)}
[:div {:class (stl/css :content)
:on-pointer-down on-pointer-down
:on-double-click on-double-click
:on-pointer-enter on-pointer-enter
:on-pointer-leave on-pointer-leave}
i/play
- [:span (:name flow)]]]]))
+ [:span flow-name]]]]))
-(mf/defc frame-flows
- {::mf/wrap-props false}
- [props]
- (let [flows (unchecked-get props "flows")
- objects (unchecked-get props "objects")
- zoom (unchecked-get props "zoom")
- selected (or (unchecked-get props "selected") #{})
-
- on-frame-enter (unchecked-get props "on-frame-enter")
- on-frame-leave (unchecked-get props "on-frame-leave")
- on-frame-select (unchecked-get props "on-frame-select")]
- [:g.frame-flows
- (for [[index flow] (d/enumerate flows)]
- (let [frame (get objects (:starting-frame flow))]
- [:& frame-flow {:key (dm/str (:id frame) "-" index)
- :flow flow
- :frame frame
- :selected? (contains? selected (:id frame))
- :zoom zoom
- :on-frame-enter on-frame-enter
- :on-frame-leave on-frame-leave
- :on-frame-select on-frame-select}]))]))
+(mf/defc frame-flows*
+ {::mf/props :obj}
+ [{:keys [flows objects zoom selected on-frame-enter on-frame-leave on-frame-select]}]
+ [:g.frame-flows
+ (for [[flow-id flow] flows]
+ (let [frame (get objects (:starting-frame flow))
+ frame-id (dm/get-prop frame :id)]
+ [:> frame-flow* {:key (dm/str frame-id "-" flow-id)
+ :flow flow
+ :frame frame
+ :is-selected (contains? selected frame-id)
+ :zoom zoom
+ :on-frame-enter on-frame-enter
+ :on-frame-leave on-frame-leave
+ :on-frame-select on-frame-select}]))])
diff --git a/frontend/src/app/plugins.cljs b/frontend/src/app/plugins.cljs
index d3a4872a73..31c8b18bae 100644
--- a/frontend/src/app/plugins.cljs
+++ b/frontend/src/app/plugins.cljs
@@ -10,8 +10,13 @@
[app.main.features :as features]
[app.main.store :as st]
[app.plugins.api :as api]
+ [app.plugins.flex :as flex]
+ [app.plugins.format :as format]
+ [app.plugins.grid :as grid]
+ [app.plugins.library :as library]
[app.plugins.public-utils]
- [app.plugins.register :as register]
+ [app.plugins.ruler-guides :as rg]
+ [app.plugins.shape :as shape]
[app.util.globals :refer [global]]
[app.util.object :as obj]
[beicon.v2.core :as rx]
@@ -20,7 +25,6 @@
(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
@@ -36,3 +40,12 @@
(rx/tap init-plugins-runtime!)
(rx/ignore)))))
+;; Prevent circular dependency
+(set! flex/shape-proxy? shape/shape-proxy?)
+(set! grid/shape-proxy? shape/shape-proxy?)
+(set! format/shape-proxy shape/shape-proxy)
+(set! rg/shape-proxy shape/shape-proxy)
+(set! rg/shape-proxy? shape/shape-proxy?)
+
+(set! shape/lib-typography-proxy? library/lib-typography-proxy?)
+(set! shape/lib-component-proxy library/lib-component-proxy)
diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs
index cefacb0afe..0b4b7259d6 100644
--- a/frontend/src/app/plugins/api.cljs
+++ b/frontend/src/app/plugins/api.cljs
@@ -76,18 +76,15 @@
(getFile
[_]
- (file/file-proxy $plugin (:current-file-id @st/state)))
+ (when (some? (: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 $plugin file-id page-id)))
-
- (getSelected
- [_]
- (let [selection (get-in @st/state [:workspace-local :selected])]
- (apply array (map str selection))))
+ (when (and (some? file-id) (some? page-id))
+ (page/page-proxy $plugin file-id page-id))))
(getSelectedShapes
[_]
@@ -143,7 +140,9 @@
(getRoot
[_]
- (shape/shape-proxy $plugin uuid/zero))
+ (when (and (some? (:current-file-id @st/state))
+ (some? (:current-page-id @st/state)))
+ (shape/shape-proxy $plugin uuid/zero)))
(getTheme
[_]
@@ -227,7 +226,7 @@
ids (into #{} (map #(obj/get % "$id")) shapes)]
(st/emit! (dwg/ungroup-shapes ids)))))
- (createFrame
+ (createBoard
[_]
(create-shape $plugin :frame))
@@ -368,7 +367,73 @@
(openPage
[_ page]
(let [id (obj/get page "$id")]
- (st/emit! (dw/go-to-page id)))))
+ (st/emit! (dw/go-to-page id))))
+
+ (alignHorizontal
+ [_ shapes direction]
+ (let [dir (case direction
+ "left" :hleft
+ "center" :hcenter
+ "right" :hright
+ nil)]
+ (cond
+ (nil? dir)
+ (u/display-not-valid :alignHorizontal-direction "Direction not valid")
+
+ (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes)))
+ (u/display-not-valid :alignHorizontal-shapes "Not valid shapes")
+
+ :else
+ (let [ids (into #{} (map #(obj/get % "$id")) shapes)]
+ (st/emit! (dw/align-objects dir ids))))))
+
+ (alignVertical
+ [_ shapes direction]
+ (let [dir (case direction
+ "top" :vtop
+ "center" :vcenter
+ "bottom" :vbottom
+ nil)]
+ (cond
+ (nil? dir)
+ (u/display-not-valid :alignVertical-direction "Direction not valid")
+
+ (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes)))
+ (u/display-not-valid :alignVertical-shapes "Not valid shapes")
+
+ :else
+ (let [ids (into #{} (map #(obj/get % "$id")) shapes)]
+ (st/emit! (dw/align-objects dir ids))))))
+
+ (distributeHorizontal
+ [_ shapes]
+ (cond
+ (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes)))
+ (u/display-not-valid :distributeHorizontal-shapes "Not valid shapes")
+
+ :else
+ (let [ids (into #{} (map #(obj/get % "$id")) shapes)]
+ (st/emit! (dw/distribute-objects :horizontal ids)))))
+
+ (distributeVertical
+ [_ shapes]
+ (cond
+ (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes)))
+ (u/display-not-valid :distributeVertical-shapes "Not valid shapes")
+
+ :else
+ (let [ids (into #{} (map #(obj/get % "$id")) shapes)]
+ (st/emit! (dw/distribute-objects :vertical ids)))))
+
+ (flatten
+ [_ shapes]
+ (cond
+ (or (not (array? shapes)) (not (every? shape/shape-proxy? shapes)))
+ (u/display-not-valid :flatten-shapes "Not valid shapes")
+
+ :else
+ (let [ids (into #{} (map #(obj/get % "$id")) shapes)]
+ (st/emit! (dw/convert-selected-to-path ids))))))
(defn create-context
[plugin-id]
@@ -378,6 +443,7 @@
{:name "root" :get #(.getRoot ^js %)}
{:name "currentFile" :get #(.getFile ^js %)}
{:name "currentPage" :get #(.getPage ^js %)}
+ {:name "theme" :get #(.getTheme ^js %)}
{:name "selection"
:get #(.getSelectedShapes ^js %)
diff --git a/frontend/src/app/plugins/comments.cljs b/frontend/src/app/plugins/comments.cljs
new file mode 100644
index 0000000000..ff3a331065
--- /dev/null
+++ b/frontend/src/app/plugins/comments.cljs
@@ -0,0 +1,178 @@
+;; 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.comments
+ (:require
+ [app.common.geom.point :as gpt]
+ [app.common.record :as crc]
+ [app.common.spec :as us]
+ [app.main.data.comments :as dc]
+ [app.main.data.workspace.comments :as dwc]
+ [app.main.repo :as rp]
+ [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.user :as user]
+ [app.plugins.utils :as u]
+ [beicon.v2.core :as rx]
+ [promesa.core :as p]))
+
+(deftype CommentProxy [$plugin $file $page $thread $id]
+ Object
+ (remove [_]
+ (p/create
+ (fn [resolve reject]
+ (cond
+ (not (r/check-permission $plugin "comment:write"))
+ (do
+ (u/display-not-valid :remove "Plugin doesn't have 'comment:write' permission")
+ (reject "Plugin doesn't have 'comment:write' permission"))
+
+ :else
+ (->> (rp/cmd! :delete-comment {:id $id})
+ (rx/tap #(st/emit! (dc/retrieve-comment-threads $file)))
+ (rx/subs! #(resolve) reject)))))))
+
+(defn comment-proxy? [p]
+ (instance? CommentProxy p))
+
+(defn comment-proxy
+ [plugin-id file-id page-id thread-id users data]
+ (let [data* (atom data)]
+ (crc/add-properties!
+ (CommentProxy. plugin-id file-id page-id thread-id (:id data))
+ {: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 "$thread" :enumerable false :get (constantly thread-id)}
+ {:name "$id" :enumerable false :get (constantly (:id data))}
+
+ {:name "user" :get (fn [_] (user/user-proxy plugin-id (get users (:owner-id data))))}
+ {:name "date" :get (fn [_] (:created-at data))}
+
+ {:name "content"
+ :get (fn [_] (:content @data*))
+ :set
+ (fn [_ content]
+ (let [profile (:profile @st/state)]
+ (cond
+ (or (not (string? content)) (empty? content))
+ (u/display-not-valid :content "Not valid")
+
+ (not= (:id profile) (:owner-id data))
+ (u/display-not-valid :content "Cannot change content from another user's comments")
+
+ (not (r/check-permission plugin-id "comment:write"))
+ (u/display-not-valid :content "Plugin doesn't have 'comment:write' permission")
+
+ :else
+ (->> (rp/cmd! :update-comment {:id (:id data) :content content})
+ (rx/tap #(st/emit! (dc/retrieve-comment-threads file-id)))
+ (rx/subs! #(swap! data* assoc :content content))))))})))
+
+(deftype CommentThreadProxy [$plugin $file $page $users $id owner]
+ Object
+ (findComments
+ [_]
+ (p/create
+ (fn [resolve reject]
+ (cond
+ (not (r/check-permission $plugin "comment:read"))
+ (do
+ (u/display-not-valid :findComments "Plugin doesn't have 'comment:read' permission")
+ (reject "Plugin doesn't have 'comment:read' permission"))
+
+ :else
+ (->> (rp/cmd! :get-comments {:thread-id $id})
+ (rx/subs!
+ (fn [comments]
+ (resolve
+ (format/format-array
+ #(comment-proxy $plugin $file $page $id $users %) comments)))
+ reject))))))
+
+ (reply
+ [_ content]
+ (cond
+ (not (r/check-permission $plugin "comment:write"))
+ (u/display-not-valid :reply "Plugin doesn't have 'comment:write' permission")
+
+ (or (not (string? content)) (empty? content))
+ (u/display-not-valid :reply "Not valid")
+
+ :else
+ (p/create
+ (fn [resolve reject]
+ (->> (rp/cmd! :create-comment {:thread-id $id :content content})
+ (rx/subs! #(resolve (comment-proxy $plugin $file $page $id $users %)) reject))))))
+
+ (remove [_]
+ (let [profile (:profile @st/state)]
+ (cond
+ (not (r/check-permission $plugin "comment:write"))
+ (u/display-not-valid :remove "Plugin doesn't have 'comment:write' permission")
+
+ (not= (:id profile) owner)
+ (u/display-not-valid :remove "Cannot change content from another user's comments")
+
+ :else
+ (p/create
+ (fn [resolve]
+ (p/create
+ (st/emit! (dc/delete-comment-thread-on-workspace {:id $id} #(resolve))))))))))
+
+(defn comment-thread-proxy? [p]
+ (instance? CommentThreadProxy p))
+
+(defn comment-thread-proxy
+ [plugin-id file-id page-id users data]
+ (let [data* (atom data)]
+ (crc/add-properties!
+ (CommentThreadProxy. plugin-id file-id page-id users (:id data) (:owner-id data))
+ {: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 data))}
+ {:name "$users" :enumerable false :get (constantly users)}
+ {:name "page" :enumerable false :get (fn [_] (u/locate-page file-id page-id))}
+
+ {:name "seqNumber" :get (fn [_] (:seqn data))}
+ {:name "owner" :get (fn [_] (user/user-proxy plugin-id (get users (:owner-id data))))}
+ {:name "board" :get (fn [_] (shape/shape-proxy plugin-id file-id page-id (:frame-id data)))}
+
+ {:name "position"
+ :get (fn [_] (format/format-point (:position @data*)))
+ :set
+ (fn [_ position]
+ (let [position (parser/parse-point position)]
+ (cond
+ (or (not (us/safe-number? (:x position))) (not (us/safe-number? (:y position))))
+ (u/display-not-valid :position "Not valid point")
+
+ (not (r/check-permission plugin-id "comment:write"))
+ (u/display-not-valid :position "Plugin doesn't have 'comment:write' permission")
+
+ :else
+ (do (st/emit! (dwc/update-comment-thread-position @data* [(:x position) (:y position)]))
+ (swap! data* assoc :position (gpt/point position))))))}
+
+ {:name "resolved"
+ :get (fn [_] (:is-resolved @data*))
+ :set
+ (fn [_ is-resolved]
+ (cond
+ (not (boolean? is-resolved))
+ (u/display-not-valid :resolved "Not a boolean type")
+
+ (not (r/check-permission plugin-id "comment:write"))
+ (u/display-not-valid :resolved "Plugin doesn't have 'comment:write' permission")
+
+ :else
+ (do (st/emit! (dc/update-comment-thread (assoc @data* :is-resolved is-resolved)))
+ (swap! data* assoc :is-resolved is-resolved))))})))
+
diff --git a/frontend/src/app/plugins/format.cljs b/frontend/src/app/plugins/format.cljs
index 42d116b393..86a3d0d26c 100644
--- a/frontend/src/app/plugins/format.cljs
+++ b/frontend/src/app/plugins/format.cljs
@@ -31,14 +31,22 @@
"mixed"
value))
-;; export type PenpotPoint = { x: number; y: number };
+;; export type Point = { x: number; y: number };
(defn format-point
[{:keys [x y] :as point}]
(when (some? point)
- (obj/clear-empty
+ (obj/without-empty
#js {:x x :y y})))
-;;export type PenpotBounds = {
+(defn shape-type
+ [type]
+ (case type
+ :frame "board"
+ :rect "rectangle"
+ :circle "ellipse"
+ (d/name type)))
+
+;;export type Bounds = {
;; x: number;
;; y: number;
;; width: number;
@@ -47,10 +55,10 @@
(defn format-bounds
[{:keys [x y width height] :as bounds}]
(when (some? bounds)
- (obj/clear-empty
+ (obj/without-empty
#js {:x x :y y :width width :height height})))
-;; export interface PenpotColorShapeInfoEntry {
+;; export interface ColorShapeInfoEntry {
;; readonly property: string;
;; readonly index?: number;
;; readonly shapeId: string;
@@ -58,12 +66,12 @@
(defn format-shape-info
[{:keys [prop shape-id index] :as info}]
(when (some? info)
- (obj/clear-empty
+ (obj/without-empty
#js {:property (d/name prop)
:index index
:shapeId (dm/str shape-id)})))
-;; export type PenpotGradient = {
+;; export type Gradient = {
;; type: 'linear' | 'radial';
;; startX: number;
;; startY: number;
@@ -75,12 +83,12 @@
(defn format-stop
[{:keys [color opacity offset] :as stop}]
(when (some? stop)
- (obj/clear-empty #js {:color color :opacity opacity :offset offset})))
+ (obj/without-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
+ (obj/without-empty
#js {:type (format-key type)
:startX start-x
:startY start-y
@@ -89,7 +97,7 @@
:width width
:stops (format-array format-stop stops)})))
-;; export type PenpotImageData = {
+;; export type ImageData = {
;; name?: string;
;; width: number;
;; height: number;
@@ -100,7 +108,7 @@
(defn format-image
[{:keys [name width height mtype id keep-aspect-ratio] :as image}]
(when (some? image)
- (obj/clear-empty
+ (obj/without-empty
#js {:name name
:width width
:height height
@@ -108,7 +116,7 @@
:id (format-id id)
:keepAspectRatio keep-aspect-ratio})))
-;; export interface PenpotColor {
+;; export interface Color {
;; id?: string;
;; name?: string;
;; path?: string;
@@ -116,13 +124,13 @@
;; opacity?: number;
;; refId?: string;
;; refFile?: string;
-;; gradient?: PenpotGradient;
-;; image?: PenpotImageData;
+;; gradient?: Gradient;
+;; image?: ImageData;
;; }
(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
+ (obj/without-empty
#js {:id (format-id id)
:name name
:path path
@@ -133,7 +141,7 @@
:gradient (format-gradient gradient)
:image (format-image image)})))
-;; PenpotColor & PenpotColorShapeInfo
+;; Color & ColorShapeInfo
(defn format-color-result
[[color attrs]]
(let [shapes-info (apply array (map format-shape-info attrs))
@@ -142,7 +150,7 @@
color))
-;; export interface PenpotShadow {
+;; export interface Shadow {
;; id?: string;
;; style?: 'drop-shadow' | 'inner-shadow';
;; offsetX?: number;
@@ -150,12 +158,12 @@
;; blur?: number;
;; spread?: number;
;; hidden?: boolean;
-;; color?: PenpotColor;
+;; color?: Color;
;; }
(defn format-shadow
[{:keys [id style offset-x offset-y blur spread hidden color] :as shadow}]
(when (some? shadow)
- (obj/clear-empty
+ (obj/without-empty
#js {:id (-> id format-id)
:style (-> style format-key)
:offsetX offset-x
@@ -170,18 +178,18 @@
(when (some? shadows)
(format-array format-shadow shadows)))
-;;export interface PenpotFill {
+;;export interface Fill {
;; fillColor?: string;
;; fillOpacity?: number;
-;; fillColorGradient?: PenpotGradient;
+;; fillColorGradient?: Gradient;
;; fillColorRefFile?: string;
;; fillColorRefId?: string;
-;; fillImage?: PenpotImageData;
+;; fillImage?: ImageData;
;;}
(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
+ (obj/without-empty
#js {:fillColor fill-color
:fillOpacity fill-opacity
:fillColorGradient (format-gradient fill-color-gradient)
@@ -201,7 +209,7 @@
(some? fills)
(format-array format-fill fills)))
-;; export interface PenpotStroke {
+;; export interface Stroke {
;; strokeColor?: string;
;; strokeColorRefFile?: string;
;; strokeColorRefId?: string;
@@ -209,9 +217,9 @@
;; strokeStyle?: 'solid' | 'dotted' | 'dashed' | 'mixed' | 'none' | 'svg';
;; strokeWidth?: number;
;; strokeAlignment?: 'center' | 'inner' | 'outer';
-;; strokeCapStart?: PenpotStrokeCap;
-;; strokeCapEnd?: PenpotStrokeCap;
-;; strokeColorGradient?: PenpotGradient;
+;; strokeCapStart?: StrokeCap;
+;; strokeCapEnd?: StrokeCap;
+;; strokeColorGradient?: Gradient;
;; }
(defn format-stroke
[{:keys [stroke-color stroke-color-ref-file stroke-color-ref-id
@@ -219,7 +227,7 @@
stroke-cap-start stroke-cap-end stroke-color-gradient] :as stroke}]
(when (some? stroke)
- (obj/clear-empty
+ (obj/without-empty
#js {:strokeColor stroke-color
:strokeColorRefFile (format-id stroke-color-ref-file)
:strokeColorRefId (format-id stroke-color-ref-id)
@@ -236,7 +244,7 @@
(when (some? strokes)
(format-array format-stroke strokes)))
-;; export interface PenpotBlur {
+;; export interface Blur {
;; id?: string;
;; type?: 'layer-blur';
;; value?: number;
@@ -245,13 +253,13 @@
(defn format-blur
[{:keys [id type value hidden] :as blur}]
(when (some? blur)
- (obj/clear-empty
+ (obj/without-empty
#js {:id (format-id id)
:type (format-key type)
:value value
:hidden hidden})))
-;; export interface PenpotExport {
+;; export interface Export {
;; type: 'png' | 'jpeg' | 'svg' | 'pdf';
;; scale: number;
;; suffix: string;
@@ -259,7 +267,7 @@
(defn format-export
[{:keys [type scale suffix] :as export}]
(when (some? export)
- (obj/clear-empty
+ (obj/without-empty
#js {:type (format-key type)
:scale scale
:suffix suffix})))
@@ -269,7 +277,7 @@
(when (some? exports)
(format-array format-export exports)))
-;; export interface PenpotFrameGuideColumnParams {
+;; export interface GuideColumnParams {
;; color: { color: string; opacity: number };
;; type?: 'stretch' | 'left' | 'center' | 'right';
;; size?: number;
@@ -280,7 +288,7 @@
(defn format-frame-guide-column-params
[{:keys [color type size margin item-length gutter] :as params}]
(when (some? params)
- (obj/clear-empty
+ (obj/without-empty
#js {:color (format-color color)
:type (format-key type)
:size size
@@ -288,53 +296,53 @@
:itemLength item-length
:gutter gutter})))
-;; export interface PenpotFrameGuideColumn {
+;; export interface GuideColumn {
;; type: 'column';
;; display: boolean;
-;; params: PenpotFrameGuideColumnParams;
+;; params: GuideColumnParams;
;; }
(defn format-frame-guide-column
[{:keys [type display params] :as guide}]
(when (some? guide)
- (obj/clear-empty
+ (obj/without-empty
#js {:type (format-key type)
:display display
:params (format-frame-guide-column-params params)})))
-;; export interface PenpotFrameGuideRow {
+;; export interface GuideRow {
;; type: 'row';
;; display: boolean;
-;; params: PenpotFrameGuideColumnParams;
+;; params: GuideColumnParams;
;; }
(defn format-frame-guide-row
[{:keys [type display params] :as guide}]
(when (some? guide)
- (obj/clear-empty
+ (obj/without-empty
#js {:type (format-key type)
:display display
:params (format-frame-guide-column-params params)})))
-;;export interface PenpotFrameGuideSquareParams {
+;;export interface GuideSquareParams {
;; color: { color: string; opacity: number };
;; size?: number;
;;}
(defn format-frame-guide-square-params
[{:keys [color size] :as params}]
(when (some? params)
- (obj/clear-empty
+ (obj/without-empty
#js {:color (format-color color)
:size size})))
-;; export interface PenpotFrameGuideSquare {
+;; export interface GuideSquare {
;; type: 'square';
;; display: boolean;
-;; params: PenpotFrameGuideSquareParams;
+;; params: GuideSquareParams;
;; }
(defn format-frame-guide-square
[{:keys [type display params] :as guide}]
(when (some? guide)
- (obj/clear-empty
+ (obj/without-empty
#js {:type (format-key type)
:display display
:params (format-frame-guide-column-params params)})))
@@ -352,7 +360,7 @@
(when (some? guides)
(format-array format-frame-guide guides)))
-;;interface PenpotPathCommand {
+;;interface PathCommand {
;; command:
;; | 'M' | 'move-to'
;; | 'Z' | 'close-path'
@@ -382,7 +390,7 @@
(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
+ (obj/without-empty
#js {:x x
:y y
:c1x c1x
@@ -398,7 +406,7 @@
(defn format-command
[{:keys [command params] :as props}]
(when (some? props)
- (obj/clear-empty
+ (obj/without-empty
#js {:command (format-key command)
:params (format-command-params params)})))
@@ -407,16 +415,16 @@
(when (some? content)
(format-array format-command content)))
-;; export type PenpotTrackType = 'flex' | 'fixed' | 'percent' | 'auto';
+;; export type TrackType = 'flex' | 'fixed' | 'percent' | 'auto';
;;
-;; export interface PenpotTrack {
-;; type: PenpotTrackType;
+;; export interface Track {
+;; type: TrackType;
;; value: number | null;
;; }
(defn format-track
[{:keys [type value] :as track}]
(when (some? track)
- (obj/clear-empty
+ (obj/without-empty
#js {:type (-> type format-key)
:value value})))
@@ -426,13 +434,13 @@
(format-array format-track tracks)))
-;; export interface PenpotDissolve {
+;; export interface Dissolve {
;; type: 'dissolve';
;; duration: number;
;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
;; }
;;
-;; export interface PenpotSlide {
+;; export interface Slide {
;; type: 'slide';
;; way: 'in' | 'out';
;; direction?:
@@ -445,7 +453,7 @@
;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
;; }
;;
-;; export interface PenpotPush {
+;; export interface Push {
;; type: 'push';
;; direction?:
;; | 'right'
@@ -457,12 +465,12 @@
;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
;; }
;;
-;; export type PenpotAnimation = PenpotDissolve | PenpotSlide | PenpotPush;
+;; export type Animation = Dissolve | Slide | Push;
(defn format-animation
[animation]
(when animation
- (obj/clear-empty
+ (obj/without-empty
(case (:animation-type animation)
:dissolve
@@ -485,24 +493,24 @@
:easing (format-key (:easing animation))}
nil))))
-;;export type PenpotAction =
-;; | PenpotNavigateTo
-;; | PenpotOpenOverlay
-;; | PenpotToggleOverlay
-;; | PenpotCloseOverlay
-;; | PenpotPreviousScreen
-;; | PenpotOpenUrl;
+;;export type Action =
+;; | NavigateTo
+;; | OpenOverlay
+;; | ToggleOverlay
+;; | CloseOverlay
+;; | PreviousScreen
+;; | OpenUrl;
;;
-;;export interface PenpotNavigateTo {
+;;export interface NavigateTo {
;; type: 'navigate-to';
-;; destination: PenpotFrame;
+;; destination: Board;
;; preserveScrollPosition?: boolean;
-;; animation: PenpotAnimation;
+;; animation: Animation;
;;}
;;
-;;export interface PenpotOverlayAction {
-;; destination: PenpotFrame;
-;; relativeTo?: PenpotShape;
+;;export interface OverlayAction {
+;; destination: Board;
+;; relativeTo?: Shape;
;; position?:
;; | 'manual'
;; | 'center'
@@ -512,38 +520,38 @@
;; | 'bottom-left'
;; | 'bottom-right'
;; | 'bottom-center';
-;; manualPositionLocation?: PenpotPoint;
+;; manualPositionLocation?: Point;
;; closeWhenClickOutside?: boolean;
;; addBackgroundOverlay?: boolean;
-;; animation: PenpotAnimation;
+;; animation: Animation;
;;}
;;
-;;export interface PenpotOpenOverlay extends PenpotOverlayAction {
+;;export interface OpenOverlay extends OverlayAction {
;; type: 'open-overlay';
;;}
;;
-;;export interface PenpotToggleOverlay extends PenpotOverlayAction {
+;;export interface ToggleOverlay extends OverlayAction {
;; type: 'toggle-overlay';
;;}
;;
-;;export interface PenpotCloseOverlay {
+;;export interface CloseOverlay {
;; type: 'close-overlay';
-;; destination?: PenpotFrame;
-;; animation: PenpotAnimation;
+;; destination?: Board;
+;; animation: Animation;
;;}
;;
-;;export interface PenpotPreviousScreen {
+;;export interface PreviousScreen {
;; type: 'previous-screen';
;;}
;;
-;;export interface PenpotOpenUrl {
+;;export interface OpenUrl {
;; type: 'open-url';
;; url: string;
;;}
(defn format-action
[interaction plugin file-id page-id]
(when interaction
- (obj/clear-empty
+ (obj/without-empty
(case (:action-type interaction)
:navigate
#js {:type "navigate-to"
@@ -584,3 +592,9 @@
:url (:url interaction)}
nil))))
+
+(defn axis->orientation
+ [axis]
+ (case axis
+ :y "horizontal"
+ :x "vertical"))
diff --git a/frontend/src/app/plugins/library.cljs b/frontend/src/app/plugins/library.cljs
index 1e00d27f31..31080c7205 100644
--- a/frontend/src/app/plugins/library.cljs
+++ b/frontend/src/app/plugins/library.cljs
@@ -413,8 +413,6 @@
(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))
@@ -758,8 +756,6 @@
value (dm/str value " / " (:name component))]
(st/emit! (dwl/rename-component id value)))))}))
-(set! shape/lib-component-proxy lib-component-proxy)
-
(deftype Library [$plugin $id]
Object
diff --git a/frontend/src/app/plugins/page.cljs b/frontend/src/app/plugins/page.cljs
index 75df73d2a1..9160d739e1 100644
--- a/frontend/src/app/plugins/page.cljs
+++ b/frontend/src/app/plugins/page.cljs
@@ -5,23 +5,32 @@
;; Copyright (c) KALEIDOS INC
(ns app.plugins.page
- "RPC for plugins runtime."
(:require
[app.common.colors :as cc]
[app.common.data :as d]
[app.common.data.macros :as dm]
+ [app.common.files.helpers :as cfh]
+ [app.common.geom.point :as gpt]
[app.common.record :as crc]
+ [app.common.spec :as us]
[app.common.uuid :as uuid]
+ [app.main.data.comments :as dc]
[app.main.data.workspace :as dw]
+ [app.main.data.workspace.guides :as dwgu]
[app.main.data.workspace.interactions :as dwi]
+ [app.main.repo :as rp]
[app.main.store :as st]
+ [app.plugins.comments :as pc]
[app.plugins.format :as format]
[app.plugins.parser :as parser]
[app.plugins.register :as r]
+ [app.plugins.ruler-guides :as rg]
[app.plugins.shape :as shape]
[app.plugins.utils :as u]
[app.util.object :as obj]
- [cuerdas.core :as str]))
+ [beicon.v2.core :as rx]
+ [cuerdas.core :as str]
+ [promesa.core :as p]))
(deftype FlowProxy [$plugin $file $page $id]
Object
@@ -52,7 +61,7 @@
:else
(st/emit! (dwi/update-flow page-id id #(assoc % :name value)))))}
- {:name "startingFrame"
+ {:name "startingBoard"
:get
(fn [self]
(let [frame (-> self u/proxy->flow :starting-frame)]
@@ -61,7 +70,7 @@
(fn [_ value]
(cond
(not (shape/shape-proxy? value))
- (u/display-not-valid :startingFrame value)
+ (u/display-not-valid :startingBoard value)
:else
(st/emit! (dwi/update-flow page-id id #(assoc % :starting-frame (obj/get value "$id"))))))}))
@@ -75,8 +84,10 @@
(u/display-not-valid :getShapeById shape-id)
:else
- (let [shape-id (uuid/uuid shape-id)]
- (shape/shape-proxy $plugin $file $id shape-id))))
+ (let [shape-id (uuid/uuid shape-id)
+ shape (u/locate-shape $file $id shape-id)]
+ (when (some? shape)
+ (shape/shape-proxy $plugin $file $id shape-id)))))
(getRoot
[_]
@@ -115,7 +126,7 @@
:else
(let [page (u/proxy->page self)]
- (dm/get-in page [:options :plugin-data (keyword "plugin" (str $plugin)) key]))))
+ (dm/get-in page [:plugin-data (keyword "plugin" (str $plugin)) key]))))
(setPluginData
[_ key value]
@@ -135,7 +146,7 @@
(getPluginDataKeys
[self]
(let [page (u/proxy->page self)]
- (apply array (keys (dm/get-in page [:options :plugin-data (keyword "plugin" (str $plugin))])))))
+ (apply array (keys (dm/get-in page [:plugin-data (keyword "plugin" (str $plugin))])))))
(getSharedPluginData
[self namespace key]
@@ -148,7 +159,7 @@
:else
(let [page (u/proxy->page self)]
- (dm/get-in page [:options :plugin-data (keyword "shared" namespace) key]))))
+ (dm/get-in page [:plugin-data (keyword "shared" namespace) key]))))
(setSharedPluginData
[_ namespace key value]
@@ -177,7 +188,7 @@
: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 [:plugin-data (keyword "shared" namespace)]))))))
(openPage
[_]
@@ -209,7 +220,138 @@
(u/display-not-valid :removeFlow-flow flow)
:else
- (st/emit! (dwi/remove-flow $id (obj/get flow "$id"))))))
+ (st/emit! (dwi/remove-flow $id (obj/get flow "$id")))))
+
+ (addRulerGuide
+ [_ orientation value board]
+ (let [shape (u/proxy->shape board)]
+ (cond
+ (not (us/safe-number? value))
+ (u/display-not-valid :addRulerGuide "Value not a safe number")
+
+ (not (contains? #{"vertical" "horizontal"} orientation))
+ (u/display-not-valid :addRulerGuide "Orientation should be either 'vertical' or 'horizontal'")
+
+ (and (some? shape)
+ (or (not (shape/shape-proxy? board))
+ (not (cfh/frame-shape? shape))))
+ (u/display-not-valid :addRulerGuide "The shape is not a board")
+
+ (not (r/check-permission $plugin "content:write"))
+ (u/display-not-valid :addRulerGuide "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (let [id (uuid/next)]
+ (st/emit!
+ (dwgu/update-guides
+ (d/without-nils
+ {:id id
+ :axis (parser/orientation->axis orientation)
+ :position value
+ :frame-id (when board (obj/get board "$id"))})))
+ (rg/ruler-guide-proxy $plugin $file $id id)))))
+
+ (removeRulerGuide
+ [_ value]
+ (cond
+ (not (rg/ruler-guide-proxy? value))
+ (u/display-not-valid :removeRulerGuide "Guide not provided")
+
+ (not (r/check-permission $plugin "content:write"))
+ (u/display-not-valid :removeRulerGuide "Plugin doesn't have 'comment:write' permission")
+
+ :else
+ (let [guide (u/proxy->ruler-guide value)]
+ (st/emit! (dwgu/remove-guide guide)))))
+
+ (addCommentThread
+ [_ content position board]
+ (let [shape (when board (u/proxy->shape board))
+ position (parser/parse-point position)]
+ (cond
+ (or (not (string? content)) (empty? content))
+ (u/display-not-valid :addCommentThread "Content not valid")
+
+ (or (not (us/safe-number? (:x position)))
+ (not (us/safe-number? (:y position))))
+ (u/display-not-valid :addCommentThread "Position not valid")
+
+ (and (some? board) (or (not (shape/shape-proxy? board)) (not (cfh/frame-shape? shape))))
+ (u/display-not-valid :addCommentThread "Board not valid")
+
+ (not (r/check-permission $plugin "comment:write"))
+ (u/display-not-valid :addCommentThread "Plugin doesn't have 'comment:write' permission")
+
+ :else
+ (let [position
+ (cond-> position
+ (some? board)
+ (-> (update :x - (:x board))
+ (update :y - (:y board))))]
+ (p/create
+ (fn [resolve]
+ (st/emit!
+ (dc/create-thread-on-workspace
+ {:file-id $file
+ :page-id $id
+ :position (gpt/point position)
+ :content content}
+
+ (fn [data]
+ (->> (rp/cmd! :get-team-users {:file-id $file})
+ (rx/subs!
+ (fn [users]
+ (let [users (d/index-by :id users)]
+ (resolve (pc/comment-thread-proxy $plugin $file $id users data)))))))
+ false))))))))
+
+ (removeCommentThread
+ [_ thread]
+ (cond
+ (not (pc/comment-thread-proxy? thread))
+ (u/display-not-valid :removeCommentThread "Comment thread not valid")
+
+ (not (r/check-permission $plugin "comment:write"))
+ (u/display-not-valid :removeCommentThread "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (p/create
+ (fn [resolve]
+ (let [thread-id (obj/get thread "$id")]
+ (p/create
+ (st/emit! (dc/delete-comment-thread-on-workspace {:id thread-id} #(resolve)))))))))
+
+ (findCommentThreads
+ [_ criteria]
+ (let [only-yours (boolean (obj/get criteria "onlyYours" false))
+ show-resolved (boolean (obj/get criteria "showResolved" true))
+ user-id (-> @st/state :profile :id)]
+ (p/create
+ (fn [resolve reject]
+ (cond
+ (not (r/check-permission $plugin "comment:read"))
+ (do
+ (u/display-not-valid :findCommentThreads "Plugin doesn't have 'comment:read' permission")
+ (reject "Plugin doesn't have 'comment:read' permission"))
+
+ :else
+ (->> (rx/zip (rp/cmd! :get-team-users {:file-id $file})
+ (rp/cmd! :get-comment-threads {:file-id $file}))
+ (rx/take 1)
+ (rx/subs!
+ (fn [[users comments]]
+ (let [users (d/index-by :id users)
+ comments
+ (cond->> comments
+ (not show-resolved)
+ (filter (comp not :is-resolved))
+
+ only-yours
+ (filter #(contains? (:participants %) user-id)))]
+ (resolve
+ (format/format-array
+ #(pc/comment-thread-proxy $plugin $file $id users %) comments))))
+ reject))))))))
(crc/define-properties!
PageProxy
@@ -250,7 +392,7 @@
{:name "background"
:enumerable false
- :get #(or (-> % u/proxy->page :options :background) cc/canvas)
+ :get #(or (-> % u/proxy->page :background) cc/canvas)
:set
(fn [_ value]
(cond
@@ -266,5 +408,14 @@
{: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)))}))
+ (let [flows (d/nilv (-> (u/proxy->page self) :flows) [])]
+ (format/format-array #(flow-proxy plugin-id file-id id (:id %)) flows)))}
+
+ {:name "rulerGuides"
+ :get
+ (fn [self]
+ (let [guides (-> (u/proxy->page self) :guides)]
+ (->> guides
+ (vals)
+ (filter #(nil? (:frame-id %)))
+ (format/format-array #(rg/ruler-guide-proxy plugin-id file-id id (:id %))))))}))
diff --git a/frontend/src/app/plugins/parser.cljs b/frontend/src/app/plugins/parser.cljs
index fcb2386170..8d6137cc12 100644
--- a/frontend/src/app/plugins/parser.cljs
+++ b/frontend/src/app/plugins/parser.cljs
@@ -29,17 +29,26 @@
{:x (obj/get point "x")
:y (obj/get point "y")}))
+(defn parse-shape-type
+ [type]
+ (case type
+ "board" :frame
+ "boolean" :bool
+ "rectangle" :rect
+ "ellipse" :circle
+ (parse-keyword type)))
+
;; {
;; name?: string;
;; nameLike?: string;
;; type?:
-;; | 'frame'
+;; | 'board'
;; | 'group'
-;; | 'bool'
-;; | 'rect'
+;; | 'boolean'
+;; | 'rectangle'
;; | 'path'
;; | 'text'
-;; | 'circle'
+;; | 'ellipse'
;; | 'svg-raw'
;; | 'image';
;; }
@@ -49,9 +58,9 @@
(d/without-nils
{:name (obj/get criteria "name")
:name-like (obj/get criteria "nameLike")
- :type (-> (obj/get criteria "type") parse-keyword)})))
+ :type (-> (obj/get criteria "type") parse-shape-type)})))
-;;export type PenpotImageData = {
+;;export type ImageData = {
;; name?: string;
;; width: number;
;; height: number;
@@ -70,7 +79,7 @@
:mtype (obj/get image-data "mtype")
:keep-aspect-ratio (obj/get image-data "keepApectRatio")})))
-;; export type PenpotGradient = {
+;; export type Gradient = {
;; type: 'linear' | 'radial';
;; startX: number;
;; startY: number;
@@ -100,7 +109,7 @@
:stops (->> (obj/get gradient "stops")
(mapv parse-gradient-stop))})))
-;; export interface PenpotColor {
+;; export interface Color {
;; id?: string;
;; name?: string;
;; path?: string;
@@ -108,8 +117,8 @@
;; opacity?: number;
;; refId?: string;
;; refFile?: string;
-;; gradient?: PenpotGradient;
-;; image?: PenpotImageData;
+;; gradient?: Gradient;
+;; image?: ImageData;
;; }
(defn parse-color
[^js color]
@@ -125,7 +134,7 @@
:gradient (-> (obj/get color "gradient") parse-gradient)
:image (-> (obj/get color "image") parse-image-data)})))
-;; export interface PenpotShadow {
+;; export interface Shadow {
;; id?: string;
;; style?: 'drop-shadow' | 'inner-shadow';
;; offsetX?: number;
@@ -133,7 +142,7 @@
;; blur?: number;
;; spread?: number;
;; hidden?: boolean;
-;; color?: PenpotColor;
+;; color?: Color;
;; }
(defn parse-shadow
[^js shadow]
@@ -153,13 +162,13 @@
(when (some? shadows)
(into [] (map parse-shadow) shadows)))
-;;export interface PenpotFill {
+;;export interface Fill {
;; fillColor?: string;
;; fillOpacity?: number;
-;; fillColorGradient?: PenpotGradient;
+;; fillColorGradient?: Gradient;
;; fillColorRefFile?: string;
;; fillColorRefId?: string;
-;; fillImage?: PenpotImageData;
+;; fillImage?: ImageData;
;;}
(defn parse-fill
[^js fill]
@@ -177,7 +186,7 @@
(when (some? fills)
(into [] (map parse-fill) fills)))
-;; export interface PenpotStroke {
+;; export interface Stroke {
;; strokeColor?: string;
;; strokeColorRefFile?: string;
;; strokeColorRefId?: string;
@@ -185,9 +194,9 @@
;; strokeStyle?: 'solid' | 'dotted' | 'dashed' | 'mixed' | 'none' | 'svg';
;; strokeWidth?: number;
;; strokeAlignment?: 'center' | 'inner' | 'outer';
-;; strokeCapStart?: PenpotStrokeCap;
-;; strokeCapEnd?: PenpotStrokeCap;
-;; strokeColorGradient?: PenpotGradient;
+;; strokeCapStart?: StrokeCap;
+;; strokeCapEnd?: StrokeCap;
+;; strokeColorGradient?: Gradient;
;; }
(defn parse-stroke
[^js stroke]
@@ -209,7 +218,7 @@
(when (some? strokes)
(into [] (map parse-stroke) strokes)))
-;; export interface PenpotBlur {
+;; export interface Blur {
;; id?: string;
;; type?: 'layer-blur';
;; value?: number;
@@ -225,7 +234,7 @@
:hidden (obj/get blur "hidden")})))
-;; export interface PenpotExport {
+;; export interface Export {
;; type: 'png' | 'jpeg' | 'svg' | 'pdf';
;; scale: number;
;; suffix: string;
@@ -243,7 +252,7 @@
(when (some? exports)
(into [] (map parse-export) exports)))
-;; export interface PenpotFrameGuideColumnParams {
+;; export interface GuideColumnParams {
;; color: { color: string; opacity: number };
;; type?: 'stretch' | 'left' | 'center' | 'right';
;; size?: number;
@@ -262,10 +271,10 @@
:item-length (obj/get params "itemLength")
:gutter (obj/get params "gutter")})))
-;; export interface PenpotFrameGuideColumn {
+;; export interface GuideColumn {
;; type: 'column';
;; display: boolean;
-;; params: PenpotFrameGuideColumnParams;
+;; params: GuideColumnParams;
;; }
(defn parse-frame-guide-column
[^js guide]
@@ -275,10 +284,10 @@
:display (obj/get guide "display")
:params (-> (obj/get guide "params") parse-frame-guide-column-params)})))
-;; export interface PenpotFrameGuideRow {
+;; export interface GuideRow {
;; type: 'row';
;; display: boolean;
-;; params: PenpotFrameGuideColumnParams;
+;; params: GuideColumnParams;
;; }
(defn parse-frame-guide-row
@@ -289,7 +298,7 @@
:display (obj/get guide "display")
:params (-> (obj/get guide "params") parse-frame-guide-column-params)})))
-;;export interface PenpotFrameGuideSquareParams {
+;;export interface GuideSquareParams {
;; color: { color: string; opacity: number };
;; size?: number;
;;}
@@ -300,10 +309,10 @@
{:color (-> (obj/get params "color") parse-color)
:size (obj/get params "size")})))
-;; export interface PenpotFrameGuideSquare {
+;; export interface GuideSquare {
;; type: 'square';
;; display: boolean;
-;; params: PenpotFrameGuideSquareParams;
+;; params: GuideSquareParams;
;; }
(defn parse-frame-guide-square
[^js guide]
@@ -331,7 +340,7 @@
(when (some? guides)
(into [] (map parse-frame-guide) guides)))
-;;interface PenpotPathCommand {
+;;interface PathCommand {
;; command:
;; | 'M' | 'move-to'
;; | 'Z' | 'close-path'
@@ -394,20 +403,20 @@
(when (some? command)
(d/without-nils
{:command (-> (obj/get command "command") parse-command-type)
- :params (-> (obj/get command "paras") parse-command-params)})))
+ :params (-> (obj/get command "params") parse-command-params)})))
(defn parse-path-content
[^js content]
(when (some? content)
(into [] (map parse-command) content)))
-;; export interface PenpotDissolve {
+;; export interface Dissolve {
;; type: 'dissolve';
;; duration: number;
;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
;; }
;;
-;; export interface PenpotSlide {
+;; export interface Slide {
;; type: 'slide';
;; way: 'in' | 'out';
;; direction?:
@@ -420,7 +429,7 @@
;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
;; }
;;
-;; export interface PenpotPush {
+;; export interface Push {
;; type: 'push';
;; direction?:
;; | 'right'
@@ -432,7 +441,7 @@
;; easing?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
;; }
;;
-;; export type PenpotAnimation = PenpotDissolve | PenpotSlide | PenpotPush;
+;; export type Animation = Dissolve | Slide | Push;
(defn parse-animation
[^js animation]
@@ -441,44 +450,44 @@
(d/without-nils
(case animation-type
:dissolve
- {:type animation-type
+ {:animation-type animation-type
:duration (obj/get animation "duration")
:easing (-> (obj/get animation "easing") parse-keyword)}
:slide
- {:type animation-type
+ {:animation-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")}
+ :offset-effect (boolean (obj/get animation "offsetEffect"))}
:push
- {:type animation-type
+ {:animation-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 type Action =
+;; | NavigateTo
+;; | OpenOverlay
+;; | ToggleOverlay
+;; | CloseOverlay
+;; | PreviousScreen
+;; | OpenUrl;
;;
-;;export interface PenpotNavigateTo {
+;;export interface NavigateTo {
;; type: 'navigate-to';
-;; destination: PenpotFrame;
+;; destination: Board;
;; preserveScrollPosition?: boolean;
-;; animation: PenpotAnimation;
+;; animation: Animation;
;;}
;;
-;;export interface PenpotOverlayAction {
-;; destination: PenpotFrame;
-;; relativeTo?: PenpotShape;
+;;export interface OverlayAction {
+;; destination: Board;
+;; relativeTo?: Shape;
;; position?:
;; | 'manual'
;; | 'center'
@@ -488,31 +497,31 @@
;; | 'bottom-left'
;; | 'bottom-right'
;; | 'bottom-center';
-;; manualPositionLocation?: PenpotPoint;
+;; manualPositionLocation?: Point;
;; closeWhenClickOutside?: boolean;
;; addBackgroundOverlay?: boolean;
-;; animation: PenpotAnimation;
+;; animation: Animation;
;;}
;;
-;;export interface PenpotOpenOverlay extends PenpotOverlayAction {
+;;export interface OpenOverlay extends OverlayAction {
;; type: 'open-overlay';
;;}
;;
-;;export interface PenpotToggleOverlay extends PenpotOverlayAction {
+;;export interface ToggleOverlay extends OverlayAction {
;; type: 'toggle-overlay';
;;}
;;
-;;export interface PenpotCloseOverlay {
+;;export interface CloseOverlay {
;; type: 'close-overlay';
-;; destination?: PenpotFrame;
-;; animation: PenpotAnimation;
+;; destination?: Board;
+;; animation: Animation;
;;}
;;
-;;export interface PenpotPreviousScreen {
+;;export interface PreviousScreen {
;; type: 'previous-screen';
;;}
;;
-;;export interface PenpotOpenUrl {
+;;export interface OpenUrl {
;; type: 'open-url';
;; url: string;
;;}
@@ -554,10 +563,15 @@
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)]
+ [trigger ^js action delay]
+ (when (and (string? trigger) (some? action))
+ (let [trigger (parse-keyword trigger)
+ action (parse-action action)]
(d/without-nils
(d/patch-object {:event-type trigger :delay delay} action)))))
+
+(defn orientation->axis
+ [axis]
+ (case axis
+ "horizontal" :y
+ "vertical" :x))
diff --git a/frontend/src/app/plugins/register.cljs b/frontend/src/app/plugins/register.cljs
index 1579b24b7a..f8e3e03bee 100644
--- a/frontend/src/app/plugins/register.cljs
+++ b/frontend/src/app/plugins/register.cljs
@@ -5,13 +5,16 @@
;; Copyright (c) KALEIDOS INC
(ns app.plugins.register
- "RPC for plugins runtime."
(:require
[app.common.data :as d]
[app.common.data.macros :as dm]
+ [app.common.schema :as sm]
+ [app.common.types.plugins :as ctp]
[app.common.uuid :as uuid]
+ [app.main.repo :as rp]
+ [app.main.store :as st]
[app.util.object :as obj]
- [app.util.storage :refer [storage]]))
+ [beicon.v2.core :as rx]))
;; Stores the installed plugins information
(defonce ^:private registry (atom {}))
@@ -22,6 +25,10 @@
(->> (:ids @registry)
(mapv #(dm/get-in @registry [:data %]))))
+(defn get-plugin
+ [id]
+ (dm/get-in @registry [:data id]))
+
(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."
@@ -38,7 +45,10 @@
(conj "content:read")
(contains? permissions "library:write")
- (conj "content:write"))
+ (conj "content:write")
+
+ (contains? permissions "comment:write")
+ (conj "comment:read"))
origin (obj/get (js/URL. plugin-url) "origin")
@@ -49,49 +59,31 @@
(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)}))
+ plugin-id (d/nilv (:plugin-id prev-plugin) (str (uuid/next)))
-;; FIXME: LEGACY version of the load from store
-;; can be removed before deploying plugins to production
-;; Needs to be preserved for the beta users
-(defn legacy-load-from-store
- []
- (let [parse-plugin-data
- (fn [^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"))})
-
- ls (.-localStorage js/window)
- plugins-val (.getItem ls "plugins")]
- (when plugins-val
- (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)})))))
+ manifest
+ (d/without-nils
+ {:plugin-id plugin-id
+ :url plugin-url
+ :name name
+ :description desc
+ :host origin
+ :code code
+ :icon icon
+ :permissions (into #{} (map str) permissions)})]
+ (when (sm/validate ::ctp/registry-entry manifest)
+ manifest)))
(defn save-to-store
[]
- (swap! storage assoc :plugins @registry))
+ ;; TODO: need this for the transition to the new schema. We can remove eventually
+ (let [registry (update @registry :data d/update-vals d/without-nils)]
+ (->> (rp/cmd! :update-profile-props {:props {:plugins registry}})
+ (rx/subs! identity))))
(defn load-from-store
[]
- (if (:plugins @storage)
- (reset! registry (:plugins @storage))
- (do (legacy-load-from-store)
- (save-to-store))))
+ (reset! registry (get-in @st/state [:profile :props :plugins] {})))
(defn init
[]
diff --git a/frontend/src/app/plugins/ruler_guides.cljs b/frontend/src/app/plugins/ruler_guides.cljs
new file mode 100644
index 0000000000..d0e8addbf3
--- /dev/null
+++ b/frontend/src/app/plugins/ruler_guides.cljs
@@ -0,0 +1,99 @@
+;; 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.ruler-guides
+ (:require
+ [app.common.data.macros :as dm]
+ [app.common.files.helpers :as cfh]
+ [app.common.record :as crc]
+ [app.common.spec :as us]
+ [app.main.data.workspace.guides :as dwgu]
+ [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]))
+
+(def shape-proxy identity)
+(def shape-proxy? identity)
+
+(deftype RulerGuideProxy [$plugin $file $page $id]
+ Object
+ (remove [self]
+ (let [guide (u/proxy->ruler-guide self)]
+ (st/emit! (dwgu/remove-guide guide)))))
+
+(defn ruler-guide-proxy? [p]
+ (instance? RulerGuideProxy p))
+
+(defn ruler-guide-proxy
+ [plugin-id file-id page-id id]
+ (crc/add-properties!
+ (RulerGuideProxy. 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 "board" :enumerable false
+ :get
+ (fn [self]
+ (let [board-id (-> self u/proxy->ruler-guide :frame-id)]
+ (when board-id
+ (shape-proxy plugin-id file-id page-id board-id))))
+
+ :set
+ (fn [self value]
+ (let [shape (u/locate-shape file-id page-id (obj/get value "$id"))]
+ (cond
+ (not (shape-proxy? value))
+ (u/display-not-valid :board "The board is not a shape proxy")
+
+ (not (cfh/frame-shape? shape))
+ (u/display-not-valid :board "The shape is not a board")
+
+ (not (r/check-permission plugin-id "content:write"))
+ (u/display-not-valid :board "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (let [board-id (when value (obj/get value "$id"))
+ guide (-> self u/proxy->ruler-guide)]
+ (st/emit! (dwgu/update-guides (assoc guide :frame-id board-id)))))))}
+
+ {:name "orientation"
+ :get #(-> % u/proxy->ruler-guide :axis format/axis->orientation)}
+
+ {:name "position"
+ :get
+ (fn [self]
+ (let [guide (u/proxy->ruler-guide self)]
+ (if (:frame-id guide)
+ (let [objects (u/locate-objects file-id page-id)
+ board-pos (dm/get-in objects [(:frame-id guide) (:axis guide)])
+ position (:position guide)]
+ (- position board-pos))
+
+ ;; No frame
+ (:position guide))))
+ :set
+ (fn [self value]
+ (cond
+ (not (us/safe-number? value))
+ (u/display-not-valid :position "Not valid position")
+
+ (not (r/check-permission plugin-id "content:write"))
+ (u/display-not-valid :position "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (let [guide (u/proxy->ruler-guide self)
+ position
+ (if (:frame-id guide)
+ (let [objects (u/locate-objects file-id page-id)
+ board-pos (dm/get-in objects [(:frame-id guide) (:axis guide)])]
+ (+ board-pos value))
+
+ value)]
+ (st/emit! (dwgu/update-guides (assoc guide :position position))))))}))
diff --git a/frontend/src/app/plugins/shape.cljs b/frontend/src/app/plugins/shape.cljs
index 1a8bb3e639..c480b6b0a2 100644
--- a/frontend/src/app/plugins/shape.cljs
+++ b/frontend/src/app/plugins/shape.cljs
@@ -5,7 +5,6 @@
;; Copyright (c) KALEIDOS INC
(ns app.plugins.shape
- "RPC for plugins runtime."
(:require
[app.common.colors :as clr]
[app.common.data :as d]
@@ -33,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.guides :as dwgu]
[app.main.data.workspace.interactions :as dwi]
[app.main.data.workspace.libraries :as dwl]
[app.main.data.workspace.selection :as dws]
@@ -46,6 +46,7 @@
[app.plugins.grid :as grid]
[app.plugins.parser :as parser]
[app.plugins.register :as r]
+ [app.plugins.ruler-guides :as rg]
[app.plugins.text :as text]
[app.plugins.utils :as u]
[app.util.object :as obj]
@@ -551,10 +552,10 @@
;; Interactions
(addInteraction
- [self interaction]
+ [self trigger action delay]
(let [interaction
(-> ctsi/default-interaction
- (d/patch-object (parser/parse-interaction interaction)))]
+ (d/patch-object (parser/parse-interaction trigger action delay)))]
(cond
(not (sm/validate ::ctsi/interaction interaction))
(u/display-not-valid :addInteraction interaction)
@@ -571,17 +572,56 @@
(u/display-not-valid :removeInteraction interaction)
:else
- (st/emit! (dwi/remove-interaction {:id $id} (obj/get interaction "$index"))))))
+ (st/emit! (dwi/remove-interaction {:id $id} (obj/get interaction "$index")))))
+
+ ;; Ruler guides
+ (addRulerGuide
+ [self orientation value]
+ (let [shape (u/proxy->shape self)]
+ (cond
+ (not (us/safe-number? value))
+ (u/display-not-valid :addRulerGuide "Value not a safe number")
+
+ (not (contains? #{"vertical" "horizontal"} orientation))
+ (u/display-not-valid :addRulerGuide "Orientation should be either 'vertical' or 'horizontal'")
+
+ (not (cfh/frame-shape? shape))
+ (u/display-not-valid :addRulerGuide "The shape is not a board")
+
+ (not (r/check-permission $plugin "content:write"))
+ (u/display-not-valid :addRulerGuide "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (let [id (uuid/next)
+ axis (parser/orientation->axis orientation)
+ objects (u/locate-objects $file $page)
+ frame (get objects $id)
+ board-pos (get frame axis)
+ position (+ board-pos value)]
+ (st/emit!
+ (dwgu/update-guides
+ {:id id
+ :axis axis
+ :position position
+ :frame-id $id}))
+ (rg/ruler-guide-proxy $plugin $file $page id)))))
+
+ (removeRulerGuide
+ [_ value]
+ (cond
+ (not (rg/ruler-guide-proxy? value))
+ (u/display-not-valid :removeRulerGuide "Guide not provided")
+
+ (not (r/check-permission $plugin "content:write"))
+ (u/display-not-valid :removeRulerGuide "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (let [guide (u/proxy->ruler-guide value)]
+ (st/emit! (dwgu/remove-guide guide))))))
(defn shape-proxy? [p]
(instance? ShapeProxy p))
-;; Prevent circular dependency
-(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
@@ -611,7 +651,7 @@
:get #(-> % u/proxy->shape :id str)}
{:name "type"
- :get #(-> % u/proxy->shape :type d/name)}
+ :get #(-> % u/proxy->shape :type format/shape-type)}
{:name "name"
:get #(-> % u/proxy->shape :name)
@@ -662,6 +702,21 @@
(let [id (obj/get self "$id")]
(st/emit! (dwsh/update-shapes [id] #(assoc % :hidden value))))))}
+ {:name "visible"
+ :get #(-> % u/proxy->shape :hidden boolean not)
+ :set
+ (fn [self value]
+ (cond
+ (not (boolean? value))
+ (u/display-not-valid :visible value)
+
+ (not (r/check-permission plugin-id "content:write"))
+ (u/display-not-valid :visible "Plugin doesn't have 'content:write' permission")
+
+ :else
+ (let [id (obj/get self "$id")]
+ (st/emit! (dwsh/update-shapes [id] #(assoc % :hidden (not value)))))))}
+
{:name "proportionLock"
:get #(-> % u/proxy->shape :proportion-lock boolean)
:set
@@ -932,7 +987,7 @@
: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)))}
+ (shape-proxy plugin-id (obj/get self "$file") (obj/get self "$page") parent-id)))}
{:name "parentX"
:get (fn [self]
(let [shape (u/proxy->shape self)
@@ -978,7 +1033,7 @@
parent-y (:y parent)]
(st/emit! (dw/update-position id {:y (+ parent-y value)})))))}
- {:name "frameX"
+ {:name "boardX"
:get (fn [self]
(let [shape (u/proxy->shape self)
frame-id (:parent-id shape)
@@ -1001,7 +1056,7 @@
frame-x (:x frame)]
(st/emit! (dw/update-position id {:x (+ frame-x value)})))))}
- {:name "frameY"
+ {:name "boardY"
:get (fn [self]
(let [shape (u/proxy->shape self)
frame-id (:parent-id shape)
@@ -1193,6 +1248,15 @@
:else
(st/emit! (dwsh/update-shapes [id] #(assoc % :grids value))))))}
+ {:name "rulerGuides"
+ :get
+ (fn [_]
+ (let [guides (-> (u/locate-page file-id page-id) :guides)]
+ (->> guides
+ (vals)
+ (filter #(= id (:frame-id %)))
+ (format/format-array #(rg/ruler-guide-proxy plugin-id file-id page-id (:id %))))))}
+
{:name "horizontalSizing"
:get #(-> % u/proxy->shape :layout-item-h-sizing (d/nilv :fix) d/name)
:set
diff --git a/frontend/src/app/plugins/text.cljs b/frontend/src/app/plugins/text.cljs
index b5e398d65c..d2343310a4 100644
--- a/frontend/src/app/plugins/text.cljs
+++ b/frontend/src/app/plugins/text.cljs
@@ -175,7 +175,12 @@
:set
(fn [self value]
(let [font (fonts/get-font-data (obj/get self "fontId"))
- variant (fonts/find-variant font {:weight (dm/str value)})]
+ weight (dm/str value)
+ style (obj/get self "fontStyle")
+ variant
+ (or
+ (fonts/find-variant font {:style style :weight weight})
+ (fonts/find-variant font {:weight weight}))]
(cond
(nil? variant)
(u/display-not-valid :fontWeight (dm/str "Font weight '" value "' not supported for the current font"))
@@ -193,7 +198,12 @@
:set
(fn [self value]
(let [font (fonts/get-font-data (obj/get self "fontId"))
- variant (fonts/find-variant font {:weight (dm/str value)})]
+ style (dm/str value)
+ weight (obj/get self "fontWeight")
+ variant
+ (or
+ (fonts/find-variant font {:weight weight :style style})
+ (fonts/find-variant font {:style style}))]
(cond
(nil? variant)
(u/display-not-valid :fontStyle (dm/str "Font style '" value "' not supported for the current font"))
@@ -439,7 +449,12 @@
(fn [self value]
(let [id (obj/get self "$id")
font (fonts/get-font-data (obj/get self "fontId"))
- variant (fonts/find-variant font {:weight (dm/str value)})]
+ weight (dm/str value)
+ style (obj/get self "fontStyle")
+ variant
+ (or
+ (fonts/find-variant font {:style style :weight weight})
+ (fonts/find-variant font {:weight weight}))]
(cond
(nil? variant)
(u/display-not-valid :fontWeight (dm/str "Font weight '" value "' not supported for the current font"))
@@ -456,7 +471,12 @@
(fn [self value]
(let [id (obj/get self "$id")
font (fonts/get-font-data (obj/get self "fontId"))
- variant (fonts/find-variant font {:weight (dm/str value)})]
+ style (dm/str value)
+ weight (obj/get self "fontWeight")
+ variant
+ (or
+ (fonts/find-variant font {:weight weight :style style})
+ (fonts/find-variant font {:style style}))]
(cond
(nil? variant)
(u/display-not-valid :fontStyle (dm/str "Font style '" value "' not supported for the current font"))
diff --git a/frontend/src/app/plugins/user.cljs b/frontend/src/app/plugins/user.cljs
index 220a5e08c1..20af5481e8 100644
--- a/frontend/src/app/plugins/user.cljs
+++ b/frontend/src/app/plugins/user.cljs
@@ -12,13 +12,13 @@
[app.plugins.utils :as u]
[app.util.object :as obj]))
-(deftype CurrentUserProxy [$plugin $session])
-(deftype ActiveUserProxy [$plugin $session])
+(deftype CurrentUserProxy [$plugin])
+(deftype ActiveUserProxy [$plugin])
+(deftype UserProxy [$plugin])
-(defn add-user-properties
- [user-proxy]
- (let [plugin-id (obj/get user-proxy "$plugin")
- session-id (obj/get user-proxy "$session")]
+(defn- add-session-properties
+ [user-proxy session-id]
+ (let [plugin-id (obj/get user-proxy "$plugin")]
(crc/add-properties!
user-proxy
{:name "$plugin" :enumerable false :get (constantly plugin-id)}
@@ -39,21 +39,43 @@
{: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)))
+ (-> (CurrentUserProxy. plugin-id)
+ (add-session-properties session-id)))
(defn active-user-proxy? [p]
(instance? ActiveUserProxy p))
(defn active-user-proxy
[plugin-id session-id]
- (-> (ActiveUserProxy. plugin-id session-id)
- (add-user-properties)
+ (-> (ActiveUserProxy. plugin-id)
+ (add-session-properties session-id)
(crc/add-properties!
{:name "position" :get (fn [_] (-> (u/locate-presence session-id) :point format/format-point))}
{:name "zoom" :get (fn [_] (-> (u/locate-presence session-id) :zoom))})))
+
+(defn- add-user-properties
+ [user-proxy data]
+ (let [plugin-id (obj/get user-proxy "$plugin")]
+ (crc/add-properties!
+ user-proxy
+ {:name "$plugin" :enumerable false :get (constantly plugin-id)}
+
+ {:name "id"
+ :get (fn [_] (-> data :id str))}
+
+ {:name "name"
+ :get (fn [_] (-> data :fullname))}
+
+ {:name "avatarUrl"
+ :get (fn [_] (cfg/resolve-profile-photo-url data))})))
+
+(defn user-proxy
+ [plugin-id data]
+ (-> (UserProxy. plugin-id)
+ (add-user-properties data)))
diff --git a/frontend/src/app/plugins/utils.cljs b/frontend/src/app/plugins/utils.cljs
index 0e143834e5..fe2b555cbe 100644
--- a/frontend/src/app/plugins/utils.cljs
+++ b/frontend/src/app/plugins/utils.cljs
@@ -120,7 +120,16 @@
flow-id (obj/get proxy "$id")
page (locate-page file-id page-id)]
(when (some? page)
- (d/seek #(= (:id %) flow-id) (-> page :options :flows)))))
+ (d/seek #(= (:id %) flow-id) (:flows page)))))
+
+(defn proxy->ruler-guide
+ [proxy]
+ (let [file-id (obj/get proxy "$file")
+ page-id (obj/get proxy "$page")
+ ruler-id (obj/get proxy "$id")
+ page (locate-page file-id page-id)]
+ (when (some? page)
+ (d/seek #(= (:id %) ruler-id) (-> page :guides vals)))))
(defn proxy->interaction
[proxy]
diff --git a/frontend/src/app/plugins/viewport.cljs b/frontend/src/app/plugins/viewport.cljs
index 6973f33f79..4623c375cb 100644
--- a/frontend/src/app/plugins/viewport.cljs
+++ b/frontend/src/app/plugins/viewport.cljs
@@ -5,7 +5,6 @@
;; Copyright (c) KALEIDOS INC
(ns app.plugins.viewport
- "RPC for plugins runtime."
(:require
[app.common.data.macros :as dm]
[app.common.record :as crc]
@@ -20,6 +19,12 @@
(deftype ViewportProxy [$plugin]
Object
+ (zoomReset [_]
+ (st/emit! dwz/reset-zoom))
+
+ (zoomToFitAll [_]
+ (st/emit! dwz/zoom-to-fit-all))
+
(zoomIntoView [_ shapes]
(let [ids
(->> shapes
@@ -88,7 +93,7 @@
{:name "bounds"
:get
(fn [_]
- (let [vport (dm/get-in @st/state [:workspace-local :vport])]
- (.freeze js/Object (format/format-bounds vport))))}))
+ (let [vbox (dm/get-in @st/state [:workspace-local :vbox])]
+ (.freeze js/Object (format/format-bounds vbox))))}))
diff --git a/frontend/src/app/render.cljs b/frontend/src/app/render.cljs
index 8dbcbf43fe..215f45648a 100644
--- a/frontend/src/app/render.cljs
+++ b/frontend/src/app/render.cljs
@@ -115,7 +115,7 @@
(def ^:private render-objects-decoder
(sm/lazy-decoder schema:render-objects
- sm/default-transformer))
+ sm/string-transformer))
(def ^:private render-objects-validator
(sm/lazy-validator schema:render-objects))
@@ -236,7 +236,7 @@
(def ^:private render-components-decoder
(sm/lazy-decoder schema:render-components
- sm/default-transformer))
+ sm/string-transformer))
(def ^:private render-components-validator
(sm/lazy-validator schema:render-components))
diff --git a/frontend/src/app/renderer_v2.cljs b/frontend/src/app/renderer_v2.cljs
new file mode 100644
index 0000000000..10509cf8e6
--- /dev/null
+++ b/frontend/src/app/renderer_v2.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.renderer-v2
+ (:require
+ [app.config :as cf]
+ [beicon.v2.core :as rx]
+ [potok.v2.core :as ptk]))
+
+(defonce internal-module #js {})
+
+(defn on-module-loaded
+ [module']
+ (let [init-fn (.-default ^js module')]
+ (->> (rx/from (init-fn))
+ (rx/map (constantly module')))))
+
+(defn- on-module-initialized
+ [module]
+ (set! internal-module module))
+
+(defn print-msg [msg]
+ (let [print-fn (.-print internal-module)]
+ (print-fn msg)))
+
+(defn init
+ []
+ (ptk/reify ::init
+ ptk/WatchEvent
+ (watch [_ _ _]
+ (let [module-uri (assoc cf/public-uri :path "/js/renderer/renderer.js")]
+ (->> (rx/from (js/dynamicImport (str module-uri)))
+ (rx/mapcat on-module-loaded)
+ (rx/tap on-module-initialized)
+ (rx/ignore))))))
diff --git a/frontend/src/app/util/array.cljs b/frontend/src/app/util/array.cljs
index 012b62c0ae..1e56d99b30 100644
--- a/frontend/src/app/util/array.cljs
+++ b/frontend/src/app/util/array.cljs
@@ -6,7 +6,9 @@
(ns app.util.array
"A collection of helpers for work with javascript arrays."
- (:refer-clojure :exclude [conj! conj filter]))
+ (:refer-clojure :exclude [conj! conj filter map reduce find])
+ (:require
+ [cljs.core :as c]))
(defn conj
"A conj like function for js arrays."
@@ -49,3 +51,19 @@
"A specific filter for js arrays."
[pred ^js/Array o]
(.filter o pred))
+
+(defn map
+ [f a]
+ (.map ^js/Array a f))
+
+(defn reduce
+ [f init val]
+ (.reduce ^js/Array val f init))
+
+(defn find-index
+ [f v]
+ (.findIndex ^js/Array v f))
+
+(defn find
+ [f v]
+ (.find ^js/Array v f))
diff --git a/frontend/src/app/util/color.cljs b/frontend/src/app/util/color.cljs
index aeb95d007b..078102d90f 100644
--- a/frontend/src/app/util/color.cljs
+++ b/frontend/src/app/util/color.cljs
@@ -80,9 +80,6 @@
(= id :multiple)
(= file-id :multiple)))
-(def empty-color
- (into {} (map #(vector % nil)) [:color :id :file-id :gradient :opacity :image]))
-
(defn get-color-name
[color]
(or (:color-library-name color)
diff --git a/frontend/src/app/util/dom.cljs b/frontend/src/app/util/dom.cljs
index 08b89d3640..874d9c9278 100644
--- a/frontend/src/app/util/dom.cljs
+++ b/frontend/src/app/util/dom.cljs
@@ -92,7 +92,6 @@
"")]
(.insertAdjacentHTML ^js node "beforeend" style)))
-
(defn get-element-by-class
([classname]
(dom/getElementByClass classname))
@@ -632,6 +631,11 @@
(when (some? node)
(.setAttribute node attr value)))
+(defn set-style!
+ [^js node ^string style value]
+ (when (some? node)
+ (.setProperty (.-style node) style value)))
+
(defn remove-attribute! [^js node ^string attr]
(when (some? node)
(.removeAttribute node attr)))
@@ -716,6 +720,19 @@
[filename blob]
(trigger-download-uri filename (.-type ^js blob) (wapi/create-uri blob)))
+(defn event
+ "Create an instance of DOM Event"
+ ([^string type]
+ (js/Event. type))
+ ([^string type options]
+ (js/Event. type options)))
+
+(defn dispatch-event
+ [target event]
+ (when (some? target)
+ (.dispatchEvent ^js target event)))
+
+
(defn save-as
[uri filename mtype description]
@@ -760,8 +777,10 @@
(.back (.-history js/window)))
(defn reload-current-window
- []
- (.reload (.-location js/window)))
+ ([]
+ (.reload globals/location))
+ ([force?]
+ (.reload globals/location force?)))
(defn scroll-by!
([element x y]
diff --git a/frontend/src/app/util/forms.cljs b/frontend/src/app/util/forms.cljs
index d1e1c9b480..a3997e7c1a 100644
--- a/frontend/src/app/util/forms.cljs
+++ b/frontend/src/app/util/forms.cljs
@@ -79,7 +79,7 @@
[f {:keys [schema validators]}]
(fn [& args]
(let [state (apply f args)
- cleaned (sm/decode schema (:data state))
+ cleaned (sm/decode schema (:data state) sm/string-transformer)
valid? (sm/validate schema cleaned)
errors (when-not valid?
(collect-schema-errors schema validators state))]
diff --git a/frontend/src/app/util/functions.cljs b/frontend/src/app/util/functions.cljs
new file mode 100644
index 0000000000..fa7818ea79
--- /dev/null
+++ b/frontend/src/app/util/functions.cljs
@@ -0,0 +1,29 @@
+;; 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.functions
+ "A functions helpers"
+ (:require
+ ["lodash/debounce.js" :as lodash-debounce]))
+
+;; NOTE: this is needed because depending on the type of the build and
+;; target execution evironment (browser, esm), the real export can be
+;; different. All this issue is about the commonjs and esm
+;; interop/conversion, because the js ecosystem decided that is should
+;; work this way.
+;;
+;; In this concrete case, lodash exposes commonjs module which works
+;; ok on browser build but for ESM build it is converted in the best
+;; effort to esm module, exporting the module.exports as the default
+;; property. This is why on ESM builds we need to look on .-default
+;; property.
+(def ^:private ext-debounce
+ (or (.-default lodash-debounce)
+ lodash-debounce))
+
+(defn debounce
+ [f timeout]
+ (ext-debounce f timeout #{:leading false :trailing true}))
diff --git a/frontend/src/app/util/i18n.cljs b/frontend/src/app/util/i18n.cljs
index 167c641669..06aecacc84 100644
--- a/frontend/src/app/util/i18n.cljs
+++ b/frontend/src/app/util/i18n.cljs
@@ -11,7 +11,7 @@
[app.common.logging :as log]
[app.config :as cfg]
[app.util.globals :as globals]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[cuerdas.core :as str]
[goog.object :as gobj]
[okulary.core :as l]
@@ -76,7 +76,7 @@
cfg/default-language))))
(defonce translations #js {})
-(defonce locale (l/atom (or (get @storage ::locale)
+(defonce locale (l/atom (or (get storage/global ::locale)
(autodetect))))
(defn init!
@@ -93,7 +93,7 @@
(if (or (nil? lname)
(str/empty? lname))
(let [lname (autodetect)]
- (swap! storage dissoc ::locale)
+ (swap! storage/global dissoc ::locale)
(reset! locale lname))
(let [supported (into #{} (map :value supported-locales))
lname (loop [locales (seq (parse-locale lname))]
@@ -102,7 +102,7 @@
locale
(recur (rest locales)))
cfg/default-language))]
- (swap! storage assoc ::locale lname)
+ (swap! storage/global assoc ::locale lname)
(reset! locale lname))))
(deftype C [val]
diff --git a/frontend/src/app/util/object.cljs b/frontend/src/app/util/object.cljs
index 30962acc5a..6066eb9522 100644
--- a/frontend/src/app/util/object.cljs
+++ b/frontend/src/app/util/object.cljs
@@ -6,12 +6,7 @@
(ns app.util.object
"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]
- ;; FIXME: we use goog.string here for performance reasons, pending
- ;; to apply this optimizations directly to cuerdas.
- [goog.string :as gstr]))
+ (:refer-clojure :exclude [set! new get merge clone contains? array? into-array]))
(defn array?
[o]
@@ -36,24 +31,6 @@
(when (some? obj)
(js/Object.hasOwn obj k)))
-(defn get-keys
- [obj]
- (js/Object.keys ^js obj))
-
-(defn get-in
- ([obj keys]
- (get-in obj keys nil))
-
- ([obj keys default]
- (loop [key (first keys)
- keys (rest keys)
- res obj]
- (if (or (nil? key) (nil? res))
- (or res default)
- (recur (first keys)
- (rest keys)
- (unchecked-get res key))))))
-
(defn clone
[a]
(js/Object.assign #js {} a))
@@ -80,84 +57,20 @@
(js-delete obj key)
obj)
+(def ^:private not-found-sym (js/Symbol "not-found"))
+
(defn update!
[obj key f & args]
- (let [found (get obj key ::not-found)]
- (if-not (identical? ::not-found found)
- (do (unchecked-set obj key (apply f found args))
- obj)
- obj)))
-
-(defn- props-key-fn
- [k]
- (if (or (keyword? k) (symbol? k))
- (let [nword (name k)]
- (cond
- (= nword "class") "className"
- (str/starts-with? nword "--") nword
- (str/starts-with? nword "data-") nword
- (str/starts-with? nword "aria-") nword
- :else (str/camel nword)))
- k))
-
-(defn clj->props
- [props]
- (clj->js props :keyword-fn props-key-fn))
+ (let [found (get obj key not-found-sym)]
+ (when-not ^boolean (identical? found not-found-sym)
+ (unchecked-set obj key (apply f found args)))
+ obj))
(defn ^boolean in?
[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
- "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)
-
- (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)
-
- :else x)))
-
-(defn clear-empty
+(defn without-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/src/app/util/path/tools.cljs b/frontend/src/app/util/path/tools.cljs
index 516ef047df..78d1064004 100644
--- a/frontend/src/app/util/path/tools.cljs
+++ b/frontend/src/app/util/path/tools.cljs
@@ -12,6 +12,8 @@
[app.common.svg.path.command :as upc]
[clojure.set :as set]))
+;; FIXME: move to common, there are nothing tied to frontend
+
(defn remove-line-curves
"Remove all curves that have both handlers in the same position that the
beginning and end points. This makes them really line-to commands"
@@ -28,7 +30,7 @@
(= cur-point handler-c2)
(= pre-point handler-c1))
(assoc content index {:command :line-to
- :params cur-point})
+ :params (into {} cur-point)})
content)))]
(reduce process-command content with-prev)))
@@ -69,10 +71,13 @@
h2 (gpt/add to-p dv2)]
(-> cmd
(assoc :command :curve-to)
- (assoc-in [:params :c1x] (:x h1))
- (assoc-in [:params :c1y] (:y h1))
- (assoc-in [:params :c2x] (:x h2))
- (assoc-in [:params :c2y] (:y h2)))))
+ (update :params (fn [params]
+ ;; ensure plain map
+ (-> (into {} params)
+ (assoc :c1x (:x h1))
+ (assoc :c1y (:y h1))
+ (assoc :c2x (:x h2))
+ (assoc :c2y (:y h2))))))))
(defn is-curve?
[content point]
@@ -81,36 +86,40 @@
handler-points (map #(upc/handler->point content (first %) (second %)) handlers)]
(some #(not= point %) handler-points)))
+(def ^:private xf:mapcat-points
+ (comp
+ (mapcat #(vector (:next-p %) (:prev-p %)))
+ (remove nil?)))
+
(defn make-curve-point
"Changes the content to make the point a 'curve'. The handlers will be positioned
in the same vector that results from the previous->next points but with fixed length."
[content point]
(let [indices (upc/point-indices content point)
- vectors (->> indices (mapv (fn [index]
- (let [cmd (nth content index)
- prev-i (dec index)
- prev (when (not (= :move-to (:command cmd)))
- (get content prev-i))
- next-i (inc index)
- next (get content next-i)
+ vectors (map (fn [index]
+ (let [cmd (nth content index)
+ prev-i (dec index)
+ prev (when (not (= :move-to (:command cmd)))
+ (get content prev-i))
+ next-i (inc index)
+ next (get content next-i)
- next (when (not (= :move-to (:command next)))
- next)]
- (hash-map :index index
- :prev-i (when (some? prev) prev-i)
- :prev-c prev
- :prev-p (upc/command->point prev)
- :next-i (when (some? next) next-i)
- :next-c next
- :next-p (upc/command->point next)
- :command cmd)))))
+ next (when (not (= :move-to (:command next)))
+ next)]
+ {:index index
+ :prev-i (when (some? prev) prev-i)
+ :prev-c prev
+ :prev-p (upc/command->point prev)
+ :next-i (when (some? next) next-i)
+ :next-c next
+ :next-p (upc/command->point next)
+ :command cmd}))
+ indices)
- points (->> vectors (mapcat #(vector (:next-p %) (:prev-p %))) (remove nil?) (into #{}))]
+ points (into #{} xf:mapcat-points vectors)]
- (cond
- (= (count points) 2)
- ;;
+ (if (= (count points) 2)
(let [v1 (gpt/to-vec (first points) point)
v2 (gpt/to-vec (first points) (second points))
vp (gpt/project v1 v2)
@@ -143,9 +152,9 @@
(and (= :curve-to (:command next-cmd)) (some? next-p))
(update next-i upc/update-handler :c1 next-h))))]
- (->> vectors (reduce add-curve content)))
- :else
+ (reduce add-curve content vectors))
+
(let [add-curve
(fn [content {:keys [index command prev-p next-c next-i]}]
(cond-> content
@@ -160,7 +169,7 @@
(= :curve-to (:command next-c))
(update next-i #(line->curve point %))))]
- (->> vectors (reduce add-curve content))))))
+ (reduce add-curve content vectors)))))
(defn get-segments
"Given a content and a set of points return all the segments in the path
@@ -175,18 +184,22 @@
cur-cmd (first content)
content (rest content)]
- (let [;; Close-path makes a segment from the last point to the initial path point
- cur-point (if (= :close-path (:command cur-cmd))
+ (let [command (:command cur-cmd)
+ close-path? (= command :close-path)
+ move-to? (= command :move-to)
+
+ ;; Close-path makes a segment from the last point to the initial path point
+ cur-point (if close-path?
start-point
(upc/command->point cur-cmd))
;; If there is a move-to we don't have a segment
- prev-point (if (= :move-to (:command cur-cmd))
+ prev-point (if move-to?
nil
prev-point)
;; We update the start point
- start-point (if (= :move-to (:command cur-cmd))
+ start-point (if move-to?
cur-point
start-point)
diff --git a/frontend/src/app/util/router.cljs b/frontend/src/app/util/router.cljs
index c4d541cfd8..1a92d4ec7a 100644
--- a/frontend/src/app/util/router.cljs
+++ b/frontend/src/app/util/router.cljs
@@ -13,8 +13,10 @@
[app.main.data.events :as ev]
[app.util.browser-history :as bhistory]
[app.util.dom :as dom]
+ [app.util.globals :as globals]
[app.util.timers :as ts]
[beicon.v2.core :as rx]
+ [cuerdas.core :as str]
[goog.events :as e]
[potok.v2.core :as ptk]
[reitit.core :as r]))
@@ -143,6 +145,45 @@
(= (.-hostname location) (:host referrer)))
(nav-back))))
+(defn nav-root
+ "Navigate to the root page."
+ []
+ (ptk/reify ::nav-root
+ ptk/EffectEvent
+ (effect [_ _ _]
+ (set! (.-href globals/location) "/"))))
+
+(defn reload
+ [force?]
+ (ptk/reify ::reload
+ ptk/EffectEvent
+ (effect [_ _ _]
+ (ts/asap (partial dom/reload-current-window force?)))))
+
+(defn nav-raw
+ [& {:keys [href uri]}]
+ (ptk/reify ::nav-raw
+ ptk/EffectEvent
+ (effect [_ _ _]
+ (cond
+ (string? uri)
+ (.replace globals/location uri)
+
+ (string? href)
+ (set! (.-href globals/location) href)))))
+
+(defn get-current-href
+ []
+ (.-href globals/location))
+
+(defn get-current-path
+ []
+ (let [hash (.-hash globals/location)]
+ (if (str/starts-with? hash "#")
+ (subs hash 1)
+ hash)))
+
+
;; --- History API
(defn initialize-history
diff --git a/frontend/src/app/util/snap_data.cljs b/frontend/src/app/util/snap_data.cljs
index 2fef2aa7bc..d8fc89cea9 100644
--- a/frontend/src/app/util/snap_data.cljs
+++ b/frontend/src/app/util/snap_data.cljs
@@ -211,11 +211,11 @@
(defn add-page
"Adds page information"
- [snap-data {:keys [objects options] :as page}]
+ [snap-data {:keys [objects guides] :as page}]
(let [frames (ctst/get-frames objects)
shapes (->> (vals (:objects page))
(remove cfh/frame-shape?))
- guides (vals (:guides options))
+ guides (vals guides)
page-data
(as-> {} $
diff --git a/frontend/src/app/util/storage.cljs b/frontend/src/app/util/storage.cljs
index a290497404..b7b604c145 100644
--- a/frontend/src/app/util/storage.cljs
+++ b/frontend/src/app/util/storage.cljs
@@ -8,39 +8,161 @@
(:require
[app.common.exceptions :as ex]
[app.common.transit :as t]
+ [app.util.functions :as fns]
[app.util.globals :as g]
- [app.util.timers :as tm]))
+ [app.util.time :as dt]
+ [cuerdas.core :as str]
+ [okulary.util :as ou]))
-(defn- persist
- [storage prev curr]
- (run! (fn [key]
- (let [prev* (get prev key)
- curr* (get curr key)]
- (when (not= curr* prev*)
- (tm/schedule-on-idle
- #(if (some? curr*)
- (.setItem ^js storage (t/encode-str key) (t/encode-str curr*))
- (.removeItem ^js storage (t/encode-str key)))))))
+;; Using ex/ignoring because can receive a DOMException like this when
+;; importing the code as a library: Failed to read the 'localStorage'
+;; property from 'Window': Storage is disabled inside 'data:' URLs.
+(defonce ^:private local-storage-backend
+ (ex/ignoring (unchecked-get g/global "localStorage")))
- (into #{} (concat (keys curr)
- (keys prev)))))
+(defonce ^:private session-storage-backend
+ (ex/ignoring (unchecked-get g/global "sessionStorage")))
-(defn- load
- [storage]
- (when storage
- (let [len (.-length ^js storage)]
- (reduce (fn [res index]
- (let [key (.key ^js storage index)
- val (.getItem ^js storage key)]
- (try
- (assoc res (t/decode-str key) (t/decode-str val))
- (catch :default _e
- res))))
- {}
- (range len)))))
+(def ^:dynamic *sync*
+ "Dynamic variable which determines the mode of operation of the
+ storage mutatio actions. By default is asynchronous."
+ false)
-;; Using ex/ignoring because can receive a DOMException like this when importing the code as a library:
-;; Failed to read the 'localStorage' property from 'Window': Storage is disabled inside 'data:' URLs.
-(defonce storage (atom (load (ex/ignoring (unchecked-get g/global "localStorage")))))
+(defn- encode-key
+ [prefix k]
+ (assert (keyword? k) "key must be keyword")
+ (let [kns (namespace k)
+ kn (name k)]
+ (str prefix ":" kns "/" kn)))
-(add-watch storage :persistence #(persist js/localStorage %3 %4))
+(defn- decode-key
+ [prefix k]
+ (when (str/starts-with? k prefix)
+ (let [l (+ (count prefix) 1)
+ k (subs k l)]
+ (if (str/starts-with? k "/")
+ (keyword (subs k 1))
+ (let [[kns kn] (str/split k "/" 2)]
+ (keyword kns kn))))))
+
+(defn- lookup-by-index
+ [backend prefix result index]
+ (try
+ (let [key (.key ^js backend index)
+ key' (decode-key prefix key)]
+ (if key'
+ (let [val (.getItem ^js backend key)]
+ (assoc! result key' (t/decode-str val)))
+ result))
+ (catch :default _
+ result)))
+
+(defn- load-data
+ [backend prefix]
+ (if (some? backend)
+ (let [length (.-length ^js backend)]
+ (loop [index 0
+ result (transient {})]
+ (if (< index length)
+ (recur (inc index)
+ (lookup-by-index backend prefix result index))
+ (persistent! result))))
+ {}))
+
+(defn create-storage
+ [backend prefix]
+ (let [initial (load-data backend prefix)
+ curr-data #js {:content initial}
+ last-data #js {:content initial}
+ watches (js/Map.)
+
+ update-key
+ (fn [key val]
+ (when (some? backend)
+ (if (some? val)
+ (.setItem ^js backend (encode-key prefix key) (t/encode-str val))
+ (.removeItem ^js backend (encode-key prefix key)))))
+
+ on-change*
+ (fn [curr-state]
+ (let [prev-state (unchecked-get last-data "content")]
+ (try
+ (run! (fn [key]
+ (let [prev-val (get prev-state key)
+ curr-val (get curr-state key)]
+ (when-not (identical? curr-val prev-val)
+ (update-key key curr-val))))
+ (into #{} (concat (keys curr-state)
+ (keys prev-state))))
+ (finally
+ (unchecked-set last-data "content" curr-state)))))
+
+ on-change
+ (fns/debounce on-change* 2000)]
+
+ (reify
+ IAtom
+
+ IDeref
+ (-deref [_] (unchecked-get curr-data "content"))
+
+ ILookup
+ (-lookup [coll k]
+ (-lookup coll k nil))
+ (-lookup [_ k not-found]
+ (let [state (unchecked-get curr-data "content")]
+ (-lookup state k not-found)))
+
+ IReset
+ (-reset! [self newval]
+ (let [oldval (unchecked-get curr-data "content")]
+ (unchecked-set curr-data "content" newval)
+ (if *sync*
+ (on-change* newval)
+ (on-change newval))
+ (when (> (.-size watches) 0)
+ (-notify-watches self oldval newval))
+ newval))
+
+ ISwap
+ (-swap! [self f]
+ (let [state (unchecked-get curr-data "content")]
+ (-reset! self (f state))))
+ (-swap! [self f x]
+ (let [state (unchecked-get curr-data "content")]
+ (-reset! self (f state x))))
+ (-swap! [self f x y]
+ (let [state (unchecked-get curr-data "content")]
+ (-reset! self (f state x y))))
+ (-swap! [self f x y more]
+ (let [state (unchecked-get curr-data "content")]
+ (-reset! self (apply f state x y more))))
+
+ IWatchable
+ (-notify-watches [self oldval newval]
+ (ou/doiter
+ (.entries watches)
+ (fn [n]
+ (let [f (aget n 1)
+ k (aget n 0)]
+ (f k self oldval newval)))))
+
+ (-add-watch [self key f]
+ (.set watches key f)
+ self)
+
+ (-remove-watch [_ key]
+ (.delete watches key)))))
+
+(defonce global (create-storage local-storage-backend "penpot-global"))
+(defonce user (create-storage local-storage-backend "penpot-user"))
+(defonce storage (create-storage local-storage-backend "penpot"))
+(defonce session (create-storage session-storage-backend "penpot"))
+
+(defonce before-unload
+ (letfn [(on-before-unload [_]
+ (binding [*sync* true]
+ (swap! global assoc ::last-refresh (dt/now))
+ (swap! user assoc ::last-refresh (dt/now))))]
+ (.addEventListener g/window "beforeunload" on-before-unload)
+ on-before-unload))
diff --git a/frontend/src/app/util/text/content.cljs b/frontend/src/app/util/text/content.cljs
new file mode 100644
index 0000000000..279b8f07cc
--- /dev/null
+++ b/frontend/src/app/util/text/content.cljs
@@ -0,0 +1,20 @@
+;; 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.text.content
+ (:require
+ [app.util.text.content.from-dom :as fd]
+ [app.util.text.content.to-dom :as td]))
+
+(defn dom->cljs
+ "Gets the editor content from a DOM structure"
+ [root]
+ (fd/create-root root))
+
+(defn cljs->dom
+ "Sets the editor content from a CLJS structure"
+ [root]
+ (td/create-root root))
diff --git a/frontend/src/app/util/text/content/from_dom.cljs b/frontend/src/app/util/text/content/from_dom.cljs
new file mode 100644
index 0000000000..32d03a4d17
--- /dev/null
+++ b/frontend/src/app/util/text/content/from_dom.cljs
@@ -0,0 +1,83 @@
+;; 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.text.content.from-dom
+ (:require
+ [app.common.data :as d]
+ [app.common.text :as txt]
+ [app.util.text.content.styles :as styles]))
+
+(defn is-text-node
+ [node]
+ (= (.-nodeType node) js/Node.TEXT_NODE))
+
+(defn is-element
+ [node tag]
+ (and (= (.-nodeType node) js/Node.ELEMENT_NODE)
+ (= (.-nodeName node) (.toUpperCase tag))))
+
+(defn is-line-break
+ [node]
+ (is-element node "br"))
+
+(defn is-inline-child
+ [node]
+ (or (is-line-break node)
+ (is-text-node node)))
+
+(defn get-inline-text
+ [element]
+ (when-not (is-inline-child (.-firstChild element))
+ (throw (js/TypeError. "Invalid inline child")))
+ (if (is-line-break (.-firstChild element))
+ ""
+ (.-textContent element)))
+
+(defn get-attrs-from-styles
+ [element attrs]
+ (reduce (fn [acc key]
+ (let [style (.-style element)]
+ (if (contains? styles/mapping key)
+ (let [style-name (styles/get-style-name-as-css-variable key)
+ [_ style-decode] (get styles/mapping key)
+ value (style-decode (.getPropertyValue style style-name))]
+ (assoc acc key value))
+ (let [style-name (styles/get-style-name key)]
+ (assoc acc key (styles/normalize-attr-value key (.getPropertyValue style style-name))))))) {} attrs))
+
+(defn get-inline-styles
+ [element]
+ (get-attrs-from-styles element txt/text-node-attrs))
+
+(defn get-paragraph-styles
+ [element]
+ (get-attrs-from-styles element (d/concat-set txt/paragraph-attrs txt/text-node-attrs)))
+
+(defn get-root-styles
+ [element]
+ (get-attrs-from-styles element txt/root-attrs))
+
+(defn create-inline
+ [element]
+ (d/merge {:text (get-inline-text element)
+ :key (.-id element)}
+ (get-inline-styles element)))
+
+(defn create-paragraph
+ [element]
+ (d/merge {:type "paragraph"
+ :key (.-id element)
+ :children (mapv create-inline (.-children element))}
+ (get-paragraph-styles element)))
+
+(defn create-root
+ [element]
+ (let [root-styles (get-root-styles element)]
+ (d/merge {:type "root",
+ :key (.-id element)
+ :children [{:type "paragraph-set"
+ :children (mapv create-paragraph (.-children element))}]}
+ root-styles)))
diff --git a/frontend/src/app/util/text/content/styles.cljs b/frontend/src/app/util/text/content/styles.cljs
new file mode 100644
index 0000000000..9a99e8aa0c
--- /dev/null
+++ b/frontend/src/app/util/text/content/styles.cljs
@@ -0,0 +1,198 @@
+;; 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.text.content.styles
+ (:require
+ [app.common.text :as txt]
+ [app.common.transit :as transit]
+ [cuerdas.core :as str]))
+
+(defn encode
+ [value]
+ (transit/encode-str value))
+
+(defn decode
+ [value]
+ (if (= value "")
+ nil
+ (transit/decode-str value)))
+
+(def mapping
+ {:fills [encode decode]
+ :typography-ref-id [encode decode]
+ :typography-ref-file [encode decode]
+ :font-id [identity identity]
+ :font-variant-id [identity identity]
+ :vertical-align [identity identity]})
+
+(defn normalize-style-value
+ "This function adds units to style values"
+ [k v]
+ (cond
+ (and (or (= k :font-size)
+ (= k :letter-spacing))
+ (not= (str/slice v -2) "px"))
+ (str v "px")
+
+ :else
+ v))
+
+(defn normalize-attr-value
+ "This function strips units from attr values"
+ [k v]
+ (cond
+ (and (or (= k :font-size)
+ (= k :letter-spacing))
+ (= (str/slice v -2) "px"))
+ (str/slice v 0 -2)
+
+ :else
+ v))
+
+(defn get-style-name-as-css-variable
+ [key]
+ (str/concat "--" (name key)))
+
+(defn get-style-name
+ [key]
+ (cond
+ (= key :text-direction)
+ "direction"
+
+ :else
+ (name key)))
+
+(defn get-style-keyword
+ [key]
+ (keyword (get-style-name-as-css-variable key)))
+
+(defn get-attr-keyword-from-css-variable
+ [style-name]
+ (keyword (str/slice style-name 2)))
+
+(defn get-attr-keyword
+ [style-name]
+ (cond
+ (= style-name "direction")
+ :text-direction
+
+ :else
+ (keyword style-name)))
+
+(defn attr-needs-mapping?
+ [key]
+ (let [contained? (contains? mapping key)]
+ contained?))
+
+(defn attr->style-key
+ [key]
+ (if (attr-needs-mapping? key)
+ (let [name (get-style-name-as-css-variable key)]
+ (keyword name))
+ (cond
+ (= key :text-direction)
+ (keyword "direction")
+
+ :else
+ key)))
+
+(defn attr->style-value
+ ([key value]
+ (attr->style-value key value false))
+ ([key value normalize?]
+ (if (attr-needs-mapping? key)
+ (let [[encoder] (get mapping key)]
+ (if normalize?
+ (normalize-style-value key (encoder value))
+ (encoder value)))
+ (if normalize?
+ (normalize-style-value key value)
+ value))))
+
+(defn attr->style
+ [[key value]]
+ [(attr->style-key key)
+ (attr->style-value key value)])
+
+(defn attrs->styles
+ "Maps attrs to styles"
+ [styles]
+ (let [mapped-styles
+ (into {} (map attr->style styles))]
+ (clj->js mapped-styles)))
+
+(defn style-needs-mapping?
+ [name]
+ (str/starts-with? name "--"))
+
+(defn style->attr-key
+ [key]
+ (if (style-needs-mapping? key)
+ (keyword (str/slice key 2))
+ (keyword key)))
+
+(defn style->attr-value
+ ([name value]
+ (style->attr-value name value false))
+ ([name value normalize?]
+ (if (style-needs-mapping? name)
+ (let [key (get-attr-keyword-from-css-variable name)
+ [_ decoder] (get mapping key)]
+ (if normalize?
+ (normalize-attr-value key (decoder value))
+ (decoder value)))
+ (let [key (get-attr-keyword name)]
+ (if normalize?
+ (normalize-attr-value key value)
+ value)))))
+
+(defn style->attr
+ "Maps style to attr"
+ [[key value]]
+ [(style->attr-key key)
+ (style->attr-value key value)])
+
+(defn styles->attrs
+ "Maps styles to attrs"
+ [styles]
+ (let [mapped-attrs
+ (into {} (map style->attr styles))]
+ mapped-attrs))
+
+(defn get-style-defaults
+ "Returns a Javascript object compatible with the TextEditor default styles"
+ [style-defaults]
+ (clj->js
+ (reduce
+ (fn [acc [k v]]
+ (if (contains? mapping k)
+ (let [[style-encode] (get mapping k)
+ style-name (get-style-name-as-css-variable k)
+ style-value (normalize-style-value style-name (style-encode v))]
+ (assoc acc style-name style-value))
+ (let [style-name (get-style-name k)
+ style-value (normalize-style-value style-name v)]
+ (assoc acc style-name style-value)))) {} style-defaults)))
+
+(defn get-styles-from-style-declaration
+ "Returns a ClojureScript object compatible with text nodes"
+ [style-declaration]
+ (reduce
+ (fn [acc k]
+ (if (contains? mapping k)
+ (let [style-name (get-style-name-as-css-variable k)
+ [_ style-decode] (get mapping k)
+ style-value (.getPropertyValue style-declaration style-name)]
+ (assoc acc k (style-decode style-value)))
+ (let [style-name (get-style-name k)
+ style-value (normalize-attr-value k (.getPropertyValue style-declaration style-name))]
+ (assoc acc k style-value)))) {} txt/text-style-attrs))
+
+(defn get-styles-from-event
+ "Returns a ClojureScript object compatible with text nodes"
+ [e]
+ (let [style-declaration (.-detail e)]
+ (get-styles-from-style-declaration style-declaration)))
diff --git a/frontend/src/app/util/text/content/to_dom.cljs b/frontend/src/app/util/text/content/to_dom.cljs
new file mode 100644
index 0000000000..fbf0890181
--- /dev/null
+++ b/frontend/src/app/util/text/content/to_dom.cljs
@@ -0,0 +1,124 @@
+;; 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.text.content.to-dom
+ (:require
+ [app.common.data :as d]
+ [app.common.text :as txt]
+ [app.util.dom :as dom]
+ [app.util.text.content.styles :as styles]))
+
+(defn set-dataset
+ [element data]
+ (doseq [[data-name data-value] data]
+ (dom/set-data! element (name data-name) data-value)))
+
+(defn set-styles
+ [element styles]
+ (doseq [[style-name style-value] styles]
+ (if (contains? styles/mapping style-name)
+ (let [[style-encode] (get styles/mapping style-name)
+ style-encoded-value (style-encode style-value)]
+ (dom/set-style! element (styles/get-style-name-as-css-variable style-name) style-encoded-value))
+ (dom/set-style! element (styles/get-style-name style-name) (styles/normalize-style-value style-name style-value)))))
+
+(defn create-element
+ ([tag]
+ (create-element tag nil nil))
+ ([tag attrs]
+ (create-element tag attrs nil))
+ ([tag attrs children]
+ (let [element (dom/create-element tag)]
+ ;; set attributes to the element if necessary.
+ (doseq [[attr-name attr-value] attrs]
+ (case attr-name
+ :data (set-dataset element attr-value)
+ :style (set-styles element attr-value)
+ (dom/set-attribute! element (name attr-name) attr-value)))
+
+ ;; add childs to the element if necessary.
+ (doseq [child children]
+ (dom/append-child! element child))
+
+ ;; we need to return the DOM element
+ element)))
+
+(defn get-styles-from-attrs
+ [node attrs]
+ (let [styles (reduce (fn [acc key] (assoc acc key (get node key))) {} attrs)
+ fills
+ (cond
+ ;; DEPRECATED: still here for backward compatibility with
+ ;; old penpot files that still has a single color.
+ (or (some? (:fill-color node))
+ (some? (:fill-opacity node))
+ (some? (:fill-color-gradient node)))
+ [(d/without-nils (select-keys node [:fill-color :fill-opacity :fill-color-gradient
+ :fill-color-ref-id :fill-color-ref-file]))]
+
+ (nil? (:fills node))
+ [{:fill-color "#000000" :fill-opacity 1}]
+
+ :else
+ (:fills node))]
+ (assoc styles :fills fills)))
+
+(defn get-paragraph-styles
+ [paragraph]
+ (let [styles (get-styles-from-attrs paragraph (d/concat-set txt/paragraph-attrs txt/text-node-attrs))
+ ;; If the text is not empty we must the paragraph font size to 0,
+ ;; it affects to the height calculation the browser does
+ font-size (if (some #(not= "" (:text %)) (:children paragraph))
+ "0"
+ (:font-size styles (:font-size txt/default-text-attrs)))]
+ (cond-> styles
+ ;; Every paragraph must have line-height to be correctly rendered
+ (nil? (:line-height styles)) (assoc :line-height (:line-height txt/default-text-attrs))
+ true (assoc :font-size font-size))))
+
+(defn get-root-styles
+ [root]
+ (get-styles-from-attrs root txt/root-attrs))
+
+(defn get-inline-styles
+ [inline paragraph]
+ (let [node (if (= "" (:text inline)) paragraph inline)
+ styles (get-styles-from-attrs node txt/text-node-attrs)]
+ (dissoc styles :line-height)))
+
+(defn get-inline-children
+ [inline]
+ [(if (= "" (:text inline))
+ (dom/create-element "br")
+ (dom/create-text (:text inline)))])
+
+(defn create-inline
+ [inline paragraph]
+ (create-element
+ "span"
+ {:id (:key inline)
+ :data {:itype "inline"}
+ :style (get-inline-styles inline paragraph)}
+ (get-inline-children inline)))
+
+(defn create-paragraph
+ [paragraph]
+ (create-element
+ "div"
+ {:id (:key paragraph)
+ :data {:itype "paragraph"}
+ :style (get-paragraph-styles paragraph)}
+ (mapv #(create-inline % paragraph) (:children paragraph))))
+
+(defn create-root
+ [root]
+ (let [root-styles (get-root-styles root)]
+ (create-element
+ "div"
+ {:id (:key root)
+ :data {:itype "root"}
+ :style root-styles}
+ (mapv create-paragraph (get-in root [:children 0 :children])))))
diff --git a/frontend/src/app/util/text/ui.cljs b/frontend/src/app/util/text/ui.cljs
new file mode 100644
index 0000000000..71bb704ee7
--- /dev/null
+++ b/frontend/src/app/util/text/ui.cljs
@@ -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 app.util.text.ui
+ (:require
+ [app.main.features :as features]
+ [app.main.store :as st]
+ [app.util.dom :as dom]))
+
+(defn v1-closest-text-editor-content
+ [target]
+ (.closest ^js target ".public-DraftEditor-content"))
+
+(defn v2-closest-text-editor-content
+ [target]
+ (.closest ^js target ".text-editor-content"))
+
+(defn closest-text-editor-content
+ [target]
+ (if (features/active-feature? @st/state "text-editor/v2")
+ (v2-closest-text-editor-content target)
+ (v1-closest-text-editor-content target)))
+
+(defn some-text-editor-content?
+ [target]
+ (some? (closest-text-editor-content target)))
+
+(defn v1-get-text-editor-content
+ []
+ (dom/get-element-by-class "public-DraftEditor-content"))
+
+(defn v2-get-text-editor-content
+ []
+ (dom/get-element-by-class "text-editor-content"))
+
+(defn get-text-editor-content
+ []
+ (if (features/active-feature? @st/state "text-editor/v2")
+ (v2-get-text-editor-content)
+ (v1-get-text-editor-content)))
diff --git a/frontend/src/app/util/theme.cljs b/frontend/src/app/util/theme.cljs
index a31c79f832..28c17efe58 100644
--- a/frontend/src/app/util/theme.cljs
+++ b/frontend/src/app/util/theme.cljs
@@ -10,11 +10,11 @@
(:require
[app.config :as cfg]
[app.util.dom :as dom]
- [app.util.storage :refer [storage]]
+ [app.util.storage :as storage]
[beicon.v2.core :as rx]
[rumext.v2 :as mf]))
-(defonce theme (get @storage ::theme cfg/default-theme))
+(defonce theme (get storage/global ::theme cfg/default-theme))
(defonce theme-sub (rx/subject))
(defonce themes #js {})
@@ -27,7 +27,7 @@
(when (not= theme v)
(when-some [el (dom/get-element "theme")]
(set! (.-href el) (str "css/main-" v ".css")))
- (swap! storage assoc ::theme v)
+ (swap! storage/global assoc ::theme v)
(set! theme v)
(rx/push! theme-sub v)))
diff --git a/frontend/src/app/util/time.cljs b/frontend/src/app/util/time.cljs
index 4a91fbdfce..85cd03319c 100644
--- a/frontend/src/app/util/time.cljs
+++ b/frontend/src/app/util/time.cljs
@@ -6,7 +6,7 @@
(ns app.util.time
(:require
- ["./time_impl.js" :as impl]
+ ["./time_impl" :as impl]
[app.common.data.macros :as dm]
[app.common.time :as common-time]
[app.util.object :as obj]
diff --git a/frontend/src/app/util/time_impl.js b/frontend/src/app/util/time_impl.js
index d6bb5f32b4..6bffde6231 100644
--- a/frontend/src/app/util/time_impl.js
+++ b/frontend/src/app/util/time_impl.js
@@ -1,5 +1,5 @@
-import fmt1 from "date-fns/format";
-import fmt2 from "date-fns/formatDistanceToNowStrict";
+import {format as dfnFormat} from "date-fns/format";
+import {formatDistanceToNowStrict as dfnFormatDistance} from "date-fns/formatDistanceToNowStrict";
import {arSA} from "date-fns/locale/ar-SA";
import {ca} from "date-fns/locale/ca";
@@ -67,5 +67,5 @@ export const locales = {
"ja_jp": ja,
};
-export const format = fmt1.format;
-export const format_distance_to_now = fmt2.formatDistanceToNowStrict;
+export const format = dfnFormat;
+export const format_distance_to_now = dfnFormatDistance;
diff --git a/frontend/src/app/util/timers.cljs b/frontend/src/app/util/timers.cljs
index 6df8e2c3a8..a1b1267cc8 100644
--- a/frontend/src/app/util/timers.cljs
+++ b/frontend/src/app/util/timers.cljs
@@ -31,7 +31,7 @@
(defn asap
[f]
(-> (p/resolved nil)
- (p/then f)))
+ (p/then (fn [_] (f)))))
(defn interval
[ms func]
diff --git a/frontend/src/app/util/webapi.cljs b/frontend/src/app/util/webapi.cljs
index 9d1ba5c2e1..2225a96dbc 100644
--- a/frontend/src/app/util/webapi.cljs
+++ b/frontend/src/app/util/webapi.cljs
@@ -103,6 +103,14 @@
(let [cboard (unchecked-get js/navigator "clipboard")]
(.writeText ^js cboard data)))
+(defn write-to-clipboard-promise
+ [mimetype promise]
+ (let [cboard (unchecked-get js/navigator "clipboard")
+ data (js/ClipboardItem.
+ (-> (obj/create)
+ (obj/set! mimetype promise)))]
+ (.write ^js cboard #js [data])))
+
(defn read-from-clipboard
[]
(try
diff --git a/frontend/src/app/worker.cljs b/frontend/src/app/worker.cljs
index 4b36decc98..f308d61794 100644
--- a/frontend/src/app/worker.cljs
+++ b/frontend/src/app/worker.cljs
@@ -24,24 +24,27 @@
;; --- Messages Handling
-(def ^:private
- schema:message
- (sm/define
- [:map {:title "WorkerMessage"}
- [:sender-id ::sm/uuid]
- [:payload
- [:map
- [:cmd :keyword]]]
- [:buffer? {:optional true} :boolean]]))
+(def ^:private schema:message
+ [:map {:title "WorkerMessage"}
+ [:sender-id ::sm/uuid]
+ [:payload
+ [:map
+ [:cmd :keyword]]]
+ [:buffer? {:optional true} :boolean]])
+
+(def ^:private check-message!
+ (sm/check-fn schema:message))
(def buffer (rx/subject))
(defn- handle-message
"Process the message and returns to the client"
[{:keys [sender-id payload transfer] :as message}]
+
(dm/assert!
"expected valid message"
- (sm/check! schema:message message))
+ (check-message! message))
+
(letfn [(post [msg]
(let [msg (-> msg (assoc :reply-to sender-id) (wm/encode))]
(.postMessage js/self msg)))
diff --git a/frontend/src/app/worker/export.cljs b/frontend/src/app/worker/export.cljs
index bd1ccd10c3..005108e687 100644
--- a/frontend/src/app/worker/export.cljs
+++ b/frontend/src/app/worker/export.cljs
@@ -7,6 +7,7 @@
(ns app.worker.export
(:require
[app.common.data :as d]
+ [app.common.json :as json]
[app.common.media :as cm]
[app.common.text :as ct]
[app.common.types.components-list :as ctkl]
@@ -16,7 +17,6 @@
[app.main.render :as r]
[app.main.repo :as rp]
[app.util.http :as http]
- [app.util.json :as json]
[app.util.webapi :as wapi]
[app.util.zip :as uz]
[app.worker.impl :as impl]
@@ -202,108 +202,61 @@
(defn make-local-external-references
[file file-id]
- (let [detach-text
+ (let [change-fill
+ (fn [fill]
+ (cond-> fill
+ (not= file-id (:fill-color-ref-file fill))
+ (assoc :fill-color-ref-file file-id)))
+
+ change-stroke
+ (fn [stroke]
+ (cond-> stroke
+ (not= file-id (:stroke-color-ref-file stroke))
+ (assoc :stroke-color-ref-file file-id)))
+
+ change-text
(fn [content]
(->> content
(ct/transform-nodes
- #(cond-> %
- (not= file-id (:fill-color-ref-file %))
- (assoc :fill-color-ref-file file-id)
+ (fn [node]
+ (-> node
+ (d/update-when :fills #(mapv change-fill %))
+ (cond-> (not= file-id (:typography-ref-file node))
+ (assoc :typography-ref-file file-id)))))))
- (not= file-id (:typography-ref-file %))
- (assoc :typography-ref-file file-id)))))
-
- detach-shape
+ change-shape
(fn [shape]
- (cond-> shape
- (not= file-id (:fill-color-ref-file shape))
- (assoc :fill-color-ref-file file-id)
+ (-> shape
+ (d/update-when :fills #(mapv change-fill %))
+ (d/update-when :strokes #(mapv change-stroke %))
+ (cond-> (not= file-id (:component-file shape))
+ (assoc :component-file file-id))
- (not= file-id (:stroke-color-ref-file shape))
- (assoc :stroke-color-ref-file file-id)
+ (cond-> (= :text (:type shape))
+ (update :content change-text))))
- (not= file-id (:component-file shape))
- (assoc :component-file file-id)
-
- (= :text (:type shape))
- (update :content detach-text)))
-
- detach-objects
+ change-objects
(fn [objects]
(->> objects
- (d/mapm #(detach-shape %2))))
+ (d/mapm #(change-shape %2))))
- detach-pages
+ change-pages
(fn [pages-index]
(->> pages-index
(d/mapm
(fn [_ data]
(-> data
- (update :objects detach-objects))))))]
+ (update :objects change-objects))))))]
(-> file
- (update-in [:data :pages-index] detach-pages))))
-
-(defn collect-external-references
- [file]
-
- (let [get-text-refs
- (fn [content]
- (->> content
- (ct/node-seq #(or (contains? % :fill-color-ref-id)
- (contains? % :typography-ref-id)))
-
- (mapcat (fn [node]
- (cond-> []
- (contains? node :fill-color-ref-id)
- (conj {:id (:fill-color-ref-id node)
- :file-id (:fill-color-ref-file node)})
-
- (contains? node :typography-ref-id)
- (conj {:id (:typography-ref-id node)
- :file-id (:typography-ref-file node)}))))
-
- (into [])))
-
- get-shape-refs
- (fn [[_ shape]]
- (cond-> []
- (contains? shape :fill-color-ref-id)
- (conj {:id (:fill-color-ref-id shape)
- :file-id (:fill-color-ref-file shape)})
-
- (contains? shape :stroke-color-ref-id)
- (conj {:id (:stroke-color-ref-id shape)
- :file-id (:stroke-color-ref-file shape)})
-
- (contains? shape :component-id)
- (conj {:id (:component-id shape)
- :file-id (:component-file shape)})
-
- (= :text (:type shape))
- (into (get-text-refs (:content shape)))))]
-
- (->> (get-in file [:data :pages-index])
- (vals)
- (mapcat :objects)
- (mapcat get-shape-refs)
- (filter (comp some? :file-id))
- (filter (comp some? :id))
- (group-by :file-id)
- (d/mapm #(mapv :id %2)))))
+ (update-in [:data :pages-index] change-pages))))
(defn merge-assets [target-file assets-files]
- (let [external-refs (collect-external-references target-file)
-
- merge-file-assets
+ (let [merge-file-assets
(fn [target file]
- (let [colors (-> (get-in file [:data :colors])
- (select-keys (get external-refs (:id file))))
- typographies (-> (get-in file [:data :typographies])
- (select-keys (get external-refs (:id file))))
- media (-> (get-in file [:data :media])
- (select-keys (get external-refs (:id file))))
- components (-> (ctkl/components (:data file))
- (select-keys (get external-refs (:id file))))]
+ (let [colors (get-in file [:data :colors])
+ typographies (get-in file [:data :typographies])
+ media (get-in file [:data :media])
+ components (ctkl/components (:data file))]
(cond-> target
(d/not-empty? colors)
(update-in [:data :colors] merge colors)
@@ -323,16 +276,20 @@
(defn process-export
[file-id export-type files]
- (case export-type
- :all files
- :merge (let [file-list (-> files (d/without-keys [file-id]) vals)]
- (-> (select-keys files [file-id])
- (update file-id merge-assets file-list)
- (update file-id make-local-external-references file-id)
- (update file-id dissoc :libraries)))
- :detach (-> (select-keys files [file-id])
- (update file-id ctf/detach-external-references file-id)
- (update file-id dissoc :libraries))))
+ (let [result
+ (case export-type
+ :all files
+ :merge (let [file-list (-> files (d/without-keys [file-id]) vals)]
+ (-> (select-keys files [file-id])
+ (update file-id merge-assets file-list)
+ (update file-id make-local-external-references file-id)
+ (update file-id dissoc :libraries)))
+ :detach (-> (select-keys files [file-id])
+ (update file-id ctf/detach-external-references file-id)
+ (update file-id dissoc :libraries)))]
+
+ ;;(.log js/console (clj->js result))
+ result))
(defn collect-files
[file-id export-type features]
diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs
index 89e50c6aa7..43a9db6545 100644
--- a/frontend/src/app/worker/import.cljs
+++ b/frontend/src/app/worker/import.cljs
@@ -9,18 +9,21 @@
(:require
["jszip" :as zip]
[app.common.data :as d]
+ [app.common.exceptions :as ex]
[app.common.files.builder :as fb]
[app.common.geom.point :as gpt]
[app.common.geom.shapes.path :as gpa]
+ [app.common.json :as json]
[app.common.logging :as log]
[app.common.media :as cm]
[app.common.pprint :as pp]
+ [app.common.schema :as sm]
[app.common.text :as ct]
+ [app.common.time :as tm]
[app.common.uuid :as uuid]
[app.main.repo :as rp]
[app.util.http :as http]
[app.util.i18n :as i18n :refer [tr]]
- [app.util.json :as json]
[app.util.sse :as sse]
[app.util.webapi :as wapi]
[app.util.zip :as uz]
@@ -37,6 +40,29 @@
(def conjv (fnil conj []))
+(def ^:private iso-date-rx
+ "Incomplete ISO regex for detect datetime-like values on strings"
+ #"^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d.*")
+
+(defn read-json-key
+ [m]
+ (or (sm/parse-uuid m)
+ (json/read-kebab-key m)))
+
+(defn read-json-val
+ [m]
+ (cond
+ (and (string? m)
+ (re-matches sm/uuid-rx m))
+ (uuid/uuid m)
+
+ (and (string? m)
+ (re-matches iso-date-rx m))
+ (or (ex/ignoring (tm/parse-instant m)) m)
+
+ :else
+ m))
+
(defn get-file
"Resolves the file inside the context given its id and the data"
([context type]
@@ -62,22 +88,22 @@
parse-svg? (and (not= type :media) (str/ends-with? path "svg"))
parse-json? (and (not= type :media) (str/ends-with? path "json"))
- no-parse? (or (= type :media)
- (not (or parse-svg? parse-json?)))
-
- file-type (if (or parse-svg? parse-json?) "text" "blob")]
+ file-type (if (or parse-svg? parse-json?) "text" "blob")]
(log/debug :action "parsing" :path path)
- (cond->> (uz/get-file (:zip context) path file-type)
- parse-svg?
- (rx/map (comp tubax/xml->clj :content))
+ (let [stream (->> (uz/get-file (:zip context) path file-type)
+ (rx/map :content))]
- parse-json?
- (rx/map (comp json/decode :content))
+ (cond
+ parse-svg?
+ (rx/map tubax/xml->clj stream)
- no-parse?
- (rx/map :content)))))
+ parse-json?
+ (rx/map #(json/decode % :key-fn read-json-key :val-fn read-json-val) stream)
+
+ :else
+ stream)))))
(defn progress!
([context type]
@@ -319,7 +345,7 @@
(assoc :id (resolve old-id)))
(cond-> (< (:version context 1) 2)
(translate-frame type file))
- ;; Shapes inside the deleted component should be stored with absolute coordinates
+ ;; 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)))
@@ -426,22 +452,30 @@
(defn import-page
[context file [page-id page-name content]]
- (let [nodes (->> content parser/node-seq)
- file-id (:id file)
- resolve (:resolve context)
+ (let [nodes (parser/node-seq content)
+ file-id (:id file)
+ resolve (:resolve context)
page-data (-> (parser/parse-page-data content)
(assoc :name page-name)
(assoc :id (resolve page-id)))
- flows (->> (get-in page-data [:options :flows])
- (mapv #(update % :starting-frame resolve)))
- guides (-> (get-in page-data [:options :guides])
- (update-vals #(update % :frame-id resolve)))
+ flows (->> (get page-data :flows)
+ (map #(update % :starting-frame resolve))
+ (d/index-by :id)
+ (not-empty))
- page-data (-> page-data
- (d/assoc-in-when [:options :flows] flows)
- (d/assoc-in-when [:options :guides] guides))
- file (-> file (fb/add-page page-data))
+ guides (-> (get page-data :guides)
+ (update-vals #(update % :frame-id resolve))
+ (not-empty))
+
+ page-data (cond-> page-data
+ flows
+ (assoc :flows flows)
+
+ guides
+ (assoc :guides guides))
+
+ file (fb/add-page file page-data)
;; Preprocess nodes to parallel upload the images. Store the result in a table
;; old-node => node with image
@@ -569,7 +603,7 @@
(update :id resolve))]
(fb/add-library-color file color)))]
(->> (get-file context :colors-list)
- (rx/merge-map (comp d/kebab-keys parser/string->uuid))
+ (rx/merge-map identity)
(rx/mapcat
(fn [[id color]]
(let [color (assoc color :id id)
@@ -599,7 +633,7 @@
(if (:has-typographies context)
(let [resolve (:resolve context)]
(->> (get-file context :typographies)
- (rx/merge-map (comp d/kebab-keys parser/string->uuid))
+ (rx/merge-map identity)
(rx/map (fn [[id typography]]
(-> typography
(d/kebab-keys)
@@ -613,7 +647,7 @@
(if (:has-media context)
(let [resolve (:resolve context)]
(->> (get-file context :media-list)
- (rx/merge-map (comp d/kebab-keys parser/string->uuid))
+ (rx/merge-map identity)
(rx/mapcat
(fn [[id media]]
(let [media (-> media
@@ -725,7 +759,6 @@
(rx/filter (fn [data] (= "application/zip" (:type data))))
(rx/merge-map #(zip/loadAsync (:body %)))
(rx/merge-map #(get-file {:zip %} :manifest))
- (rx/map (comp d/kebab-keys parser/string->uuid))
(rx/map
(fn [data]
;; Checks if the file is exported with components v2 and the current team only
@@ -784,9 +817,12 @@
:errors (:errors file)
:file-id (:file-id data)})))))))
(rx/catch (fn [cause]
- (log/error :hint (ex-message cause)
- :file-id (:file-id data)
- :cause cause)
+ (let [data (ex-data cause)]
+ (log/error :hint (ex-message cause)
+ :file-id (:file-id data))
+ (when-let [explain (:explain data)]
+ (js/console.log explain)))
+
(rx/of {:status :import-error
:file-id (:file-id data)
:error (ex-message cause)
diff --git a/frontend/src/app/worker/import/parser.cljs b/frontend/src/app/worker/import/parser.cljs
index adeb0dd5a9..861e4540fe 100644
--- a/frontend/src/app/worker/import/parser.cljs
+++ b/frontend/src/app/worker/import/parser.cljs
@@ -1136,16 +1136,16 @@
guides (parse-guides node)]
(cond-> {}
(some? background)
- (assoc-in [:options :background] background)
+ (assoc :background background)
(d/not-empty? grids)
- (assoc-in [:options :saved-grids] grids)
+ (assoc :default-grids grids)
(d/not-empty? flows)
- (assoc-in [:options :flows] flows)
+ (assoc :flows flows)
(d/not-empty? guides)
- (assoc-in [:options :guides] guides))))
+ (assoc :guides guides))))
(defn parse-interactions
[node]
diff --git a/frontend/src/app/worker/thumbnails.cljs b/frontend/src/app/worker/thumbnails.cljs
index 161ed28d5a..658429c198 100644
--- a/frontend/src/app/worker/thumbnails.cljs
+++ b/frontend/src/app/worker/thumbnails.cljs
@@ -7,7 +7,6 @@
(ns app.worker.thumbnails
(:require
["react-dom/server" :as rds]
- [app.common.data.macros :as dm]
[app.common.logging :as log]
[app.common.uri :as u]
[app.config :as cf]
@@ -63,7 +62,7 @@
(binding [fonts/loaded-hints (l/atom #{})]
(let [objects (:objects page)
frame (some->> page :thumbnail-frame-id (get objects))
- background-color (dm/get-in page [:options :background])
+ background-color (:background page)
element (if frame
(mf/element render/frame-svg #js
{:objects objects
diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs
index 9d79a2c24a..d127c4bf1a 100644
--- a/frontend/src/debug.cljs
+++ b/frontend/src/debug.cljs
@@ -10,8 +10,9 @@
[app.common.data.macros :as dm]
[app.common.files.repair :as cfr]
[app.common.files.validate :as cfv]
+ [app.common.json :as json]
[app.common.logging :as l]
- [app.common.math :as mth]
+ [app.common.schema :as sm]
[app.common.transit :as t]
[app.common.types.file :as ctf]
[app.common.uri :as u]
@@ -97,26 +98,14 @@
(effect-fn input)
(rf result input)))))
-(defn prettify
- "Prepare x for cleaner output when logged."
- [x]
- (cond
- (map? x) (d/mapm #(prettify %2) x)
- (vector? x) (mapv prettify x)
- (seq? x) (map prettify x)
- (set? x) (into #{} (map prettify) x)
- (number? x) (mth/precision x 4)
- (uuid? x) (str/concat "#uuid " x)
- :else x))
-
(defn ^:export logjs
([str] (tap (partial logjs str)))
([str val]
- (js/console.log str (clj->js (prettify val) :keyword-fn (fn [v] (str/concat v))))
+ (js/console.log str (json/->js val))
val))
(when (exists? js/window)
- (set! (.-dbg ^js js/window) clj->js)
+ (set! (.-dbg ^js js/window) json/->js)
(set! (.-pp ^js js/window) pprint))
(defonce widget-style "
@@ -479,7 +468,7 @@
(let [result (map (fn [row]
(update row :id str))
result)]
- (js/console.table (clj->js result))))
+ (js/console.table (json/->js result))))
(fn [cause]
(js/console.log "EE:" cause))))
nil))
@@ -494,22 +483,34 @@
(rx/map http/conditional-decode-transit)
(rx/mapcat rp/handle-response)
(rx/subs! (fn [{:keys [id]}]
- (println "Snapshot saved:" (str id)))
+ (println "Snapshot saved:" (str id) label))
(fn [cause]
(js/console.log "EE:" cause))))))
(defn ^:export restore-snapshot
- [id file-id]
+ [label file-id]
(when-let [file-id (or (d/parse-uuid file-id)
(:current-file-id @st/state))]
- (when-let [id (d/parse-uuid id)]
+ (let [snapshot-id (sm/parse-uuid label)
+ label (if snapshot-id nil label)
+ params (cond-> {:file-id file-id}
+ (uuid? snapshot-id)
+ (assoc :id snapshot-id)
+
+ (string? label)
+ (assoc :label label))]
(->> (http/send! {:method :post
:uri (u/join cf/public-uri "api/rpc/command/restore-file-snapshot")
- :body (http/transit-data {:file-id file-id :id id})})
+ :body (http/transit-data params)})
(rx/map http/conditional-decode-transit)
(rx/mapcat rp/handle-response)
(rx/subs! (fn [_]
- (println "Snapshot restored " id)
- #_(.reload js/location))
+ (println "Snapshot restored " (or snapshot-id label)))
+ #_(.reload js/location)
(fn [cause]
(js/console.log "EE:" cause)))))))
+
+
+(defn ^:export enable-text-v2
+ []
+ (st/emit! (features/enable-feature "text-editor/v2")))
diff --git a/frontend/test/frontend_tests/logic/frame_guides_test.cljs b/frontend/test/frontend_tests/logic/frame_guides_test.cljs
index 8d12179733..721220fcd5 100644
--- a/frontend/test/frontend_tests/logic/frame_guides_test.cljs
+++ b/frontend/test/frontend_tests/logic/frame_guides_test.cljs
@@ -46,7 +46,6 @@
page' (cthf/current-page file')
guide' (-> page'
- :options
:guides
(vals)
(first))]
diff --git a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs
index af6638b827..9a67f4a180 100644
--- a/frontend/test/frontend_tests/plugins/context_shapes_test.cljs
+++ b/frontend/test/frontend_tests/plugins/context_shapes_test.cljs
@@ -223,22 +223,22 @@
(t/is (= (-> (. shape -strokes) (aget 0) (aget "strokeWidth")) 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)
+ (let [board (.createBoard context)]
+ (set! (.-x board) 100)
+ (set! (.-y board) 200)
+ (t/is (= (.-x board) 100))
+ (t/is (= (.-y board) 200))
+ (.appendChild board shape)
- (t/testing " - frameX"
- (set! (.-frameX shape) 10)
- (t/is (m/close? (.-frameX shape) 10))
+ (t/testing " - boardX"
+ (set! (.-boardX shape) 10)
+ (t/is (m/close? (.-boardX 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/testing " - boardY"
+ (set! (.-boardY shape) 20)
+ (t/is (m/close? (.-boardY shape) 20))
(t/is (m/close? (.-y shape) 220))
(t/is (m/close? (get-in @store (get-shape-path :y)) 220)))
diff --git a/frontend/test/frontend_tests/util_snap_data_test.cljs b/frontend/test/frontend_tests/util_snap_data_test.cljs
index bdd42b5af5..d988c4e9a0 100644
--- a/frontend/test/frontend_tests/util_snap_data_test.cljs
+++ b/frontend/test/frontend_tests/util_snap_data_test.cljs
@@ -391,9 +391,9 @@
(t/testing "Update global guide"
(let [guide {:position 50 :axis :x}
- file (-> (fb/create-file "Test")
- (fb/add-page {:name "Page 1"})
- (fb/add-guide guide))
+ file (-> (fb/create-file "Test")
+ (fb/add-page {:name "Page 1"})
+ (fb/add-guide guide))
guide-id (:last-id file)
guide (assoc guide :id guide-id)
@@ -403,7 +403,7 @@
frame-id (:last-id file)
page (fb/get-current-page file)
- data (-> (sd/make-snap-data) (sd/add-page page))
+ data (-> (sd/make-snap-data) (sd/add-page page))
new-page (-> (fb/update-guide file (assoc guide :position 150))
(fb/get-current-page))
diff --git a/frontend/translations/af.po b/frontend/translations/af.po
index 2ade2f3edd..289d0db112 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,359 +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
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Reeds 'n rekening?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Wagwoord vergeet?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Volle naam"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Meld hier aan"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Meld aan"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Tik 'n nuwe wagwoord in"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Die hersteltoken is ongeldig."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Wagwoord"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Ten minste 8 karakters"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Privaatheidsbeleid"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Herstel Wagwoord"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Wagwoord vergeet?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Verander jou wagwoord"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Skep 'n rekening"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Genereer nuwe token"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nooit"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
msgid "dashboard.access-tokens.personal"
msgstr "Persoonlike toegangstokens"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:187
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:143
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:144
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -371,15 +397,22 @@ 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:202
msgid "dashboard.export-frames.title"
msgstr "Voer as PDF uit"
+#, unused
msgid "dashboard.export-multi"
msgstr "Voer %s Penpot lêers uit"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Die hersteltoken is ongeldig."
diff --git a/frontend/translations/ar.po b/frontend/translations/ar.po
index a47dac159d..c6bf5e5b54 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,192 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "هل لديك حساب؟"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr "تحقق من بريدك الإلكتروني وانقر على الرابط للتحقق والبدء في استخدام Penpot."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr "هذه خدمة تجريبية ، لا تستخدمها للعمل الحقيقي ، سيتم مسح المشاريع بشكل دوري."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "هل نسيت كلمة السر؟"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "الاسم الكامل"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "قم بتسجيل الدخول إلى حسابي"
+
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "تسجيل الدخول هنا"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "تسجيل الدخول"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr "Penpot هو أداة تصميم مجانية ومفتوحة المصدر للتعاون بين التصميم والبرمجة"
+
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "Github"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "Gitlabسجل دخولك عن طريق"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "جوجل"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAPسجل دخولك عن طريق"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID سجل دخولك عن طريق"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "اكتب كلمة مرور جديدة"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "رمز الاسترداد غير صالح."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "تم تغيير كلمة المرور بنجاح"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "لم يتم التأكيد على الحساب الشخصي ، يرجى التحقق قبل المواصلة"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "تم إرسال رمز الاسترداد لاستعادة كلمة المرور إلى صندوق البريد الخاص بك"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "كلمه السر"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "8 أحرف على الأقل"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "سياسة الخصوصية"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "إستعادة كلمة المرور"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "سنرسل لك رسالة بريد إلكتروني تحتوي على التعليمات"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "نسيت كلمة المرور؟"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "تغيير كلمة المرور"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "إنشاء حساب"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "إنشاء حساب"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "الحل (مفتوح المصدر) للتصميم والنمذجة."
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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 +207,247 @@ 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:104
+msgid "dashboard.access-tokens.copied-success"
+msgstr "الرمز منسوخ"
+
+#: src/app/main/ui/settings/access_tokens.cljs:191
+msgid "dashboard.access-tokens.create"
+msgstr "قم بإنشاء رمز جديد"
+
+#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
+msgid "dashboard.access-tokens.create-success"
+msgstr "تم إنشاء رمز الوصول بنجاح."
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
+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:72
msgid "dashboard.change-email"
msgstr "تغيير البريد الإلكتروني"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
+#, 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:202
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:110
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:181
msgid "dashboard.export-shapes.how-to"
msgstr ""
"يمكنك إضافة إعدادات التصدير إلى العناصر من خصائص التصميم (أسفل الشريط "
"الجانبي الأيمن)."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:185
msgid "dashboard.export-shapes.how-to-link"
msgstr "معلومات عن كيفية إعداد التصدير."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:180
msgid "dashboard.export-shapes.no-elements"
msgstr "لا يوجد عناصر بإعدادت التصدير."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* ربما يحتوي على عناصر، رسومات، الوان، و/أو خطوط."
+#: src/app/main/ui/export.cljs:429
msgid "dashboard.export.explain"
msgstr ""
"ملف أو أكثر تريد تصديرهم يستخدمون مكتبات مشتركة. ماذا تريد أن تفعل في "
"أصولهم*؟"
+#: src/app/main/ui/export.cljs:438
msgid "dashboard.export.options.all.message"
msgstr "سيتم ادراج الملفات التي لها مكتبات مشتركة في التصدير، مع الحفاظ على روابطهم."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "صدر المكتبات المشتركة"
+#: src/app/main/ui/export.cljs:440
msgid "dashboard.export.options.detach.message"
msgstr ""
"لن يتم تضمين المكتبات المشتركة في التصدير ولن يتم إضافة أي أصول إلى "
"المكتبة. "
+#: src/app/main/ui/export.cljs:441
msgid "dashboard.export.options.detach.title"
msgstr "عامل أصول المكتبة المشتركة كعناصر بسيطة"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr "سيتم تصدير ملفك مع دمج جميع الأصول الخارجية في مكتبة الملفات."
+#: src/app/main/ui/export.cljs:443
msgid "dashboard.export.options.merge.title"
msgstr "تضمين أصول المكتبة المشتركة في مكتبات الملفات"
+#: src/app/main/ui/export.cljs:421
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 +457,8 @@ msgstr[3] "عدد قليل من الخطوط المضافة"
msgstr[4] "تمت إضافة العديد من الخطوط"
msgstr[5] ""
+#: src/app/main/ui/dashboard/fonts.cljs:170
+#, markdown
msgid "dashboard.fonts.hero-text1"
msgstr ""
"ستتم إضافة أي خط ويب تقوم بتحميله هنا إلى قائمة عائلة الخطوط المتوفرة في "
@@ -395,6 +466,8 @@ msgstr ""
"عائلة الخطوط على أنها ** عائلة خط واحدة **. يمكنك تحميل الخطوط بالتنسيقات "
"التالية: ** TTF و OTF و WOFF ** (ستحتاج إلى تنسيق واحد فقط)."
+#: src/app/main/ui/dashboard/fonts.cljs:182
+#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
"يجب عليك فقط تحميل الخطوط التي تمتلكها أو لديك ترخيص لاستخدامها في Penpot. "
@@ -402,10 +475,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 +489,1010 @@ msgstr ""
"، نوصي باستخدام [Transfonter] (https://transfonter.org/) لإنشاء خطوط الويب "
"وإصلاح الأخطاء. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "استيراد ملفات"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "حصل خلل خلال إدراج الملف. لم يتم إدراج الملف على البرنامج."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "%s ملف تم ادراجهم بنجاح."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "تحتوي بعض الملفات على كائنات غير صالحة تمت إزالتها."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "يتم معالجة الألوان"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "يتم معالجة العناصر"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "يتم معالجة الوسائط"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "يتم معالجة الصفحة: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "يتم معالجة الخطوط"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "تحميل البيانات للخادم (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "تحميل الملف: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "تم تحديث عنوان بريدك الإلكتروني بنجاح"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "تم التحقق من عنوان بريدك الإلكتروني بنجاح"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "تم حفظ كلمة المرور بنجاح!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "حدد لغة واجهة المستخدم"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "معلومات الفريق"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "أعضاء الفريق"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "مشاريع الفريق"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "تحديث الإعدادات"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "نشط"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "عندما يتم تشغيل هذا الخطاف ، سيتم تسليم تفاصيل الحدث"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "نوع المحتوى"
+#: src/app/main/ui/dashboard/team.cljs:906
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:67
msgid "dashboard.your-email"
msgstr "البريد الالكتروني"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "موفر المصادقة غير معد ومسجل."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "البريد الإلكتروني مستخدم بالفعل"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
msgid "errors.email-already-validated"
msgstr "متم التحقق من صحة البريد الإلكتروني"
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "أدخل بريدًا إلكترونيًا صالحًا من فضلك"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "يجب أن يتطابق البريد الإلكتروني للتأكيد"
-
+#: src/app/main/ui/dashboard/team.cljs:187
msgid "errors.email-spam-or-permanent-bounces"
msgstr "تم الإبلاغ عن البريد الإلكتروني «٪ s» كبريد عشوائي أو مرتد بشكل دائم."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:233
msgid "errors.feature-mismatch"
msgstr ""
"يبدو أنك تفتح ملفًا تم تمكين الميزة \"٪ s\" فيه ولكن الواجهة الأمامية لـ "
"penpot لا تدعمه أو تم تعطيله."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "أدخل بريدًا إلكترونيًا صالحًا من فضلك"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "يجب أن يتطابق البريد الإلكتروني للتأكيد"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "رمز الاسترداد غير صالح."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "دعوة غير صالحة"
+#: src/app/main/ui/static.cljs:62
msgid "errors.invite-invalid.info"
msgstr "هذه الدعوة قد تلغى أو قد تنتهي."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:90
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:594
msgid "errors.member-is-muted"
msgstr ""
"يحتوي الملف الشخصي الذي تدعوه على رسائل بريد إلكتروني مكتومة (تقارير البريد "
"المزعج أو الارتدادات العالية)."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "يجب أن تتطابق كلمة مرور التأكيد"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "يجب ألا تقل كلمة المرور عن 8 أحرف"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
msgid "errors.profile-is-muted"
msgstr ""
"يحتوي ملفك الشخصي على رسائل بريد إلكتروني مكتومة (تقارير البريد المزعجة أو "
"الارتدادات العالية)."
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "التسجيل معطل حاليا."
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
msgid "errors.team-leave.insufficient-members"
msgstr "أعضاء غير كافيين لمغادرة الفريق ، ربما تريد حذفه."
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
msgid "errors.team-leave.member-does-not-exists"
msgstr "العضو الذي تحاول تعيينه غير موجود."
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
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:59
msgid "errors.unexpected-token"
msgstr "رمز غير معروف"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "خطأ في الاتصال ، عنوان إلكتروني لا يمكن الوصول إليه"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "آخر تسليم لم يكن ناجحًا."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "نفذ الوقت"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "خطأ غير متوقع في التحقق"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "حالة غير متوقعة٪ s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "يبدو أن اسم المستخدم أو كلمة المرور خاطئة."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "كلمة المرور القديمة غير صحيحة"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "وصف"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "انتقل إلى منتدى Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
msgid "feedback.discourse-subtitle1"
msgstr "يسعدنا وجودك هنا. إذا كنت بحاجة إلى مساعدة، يرجى البحث أولا قبل النشر."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:85
msgid "feedback.discourse-title"
msgstr "مجتمع Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "موضوع"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
msgid "feedback.subtitle"
msgstr ""
"يرجى وصف سبب بريدك الإلكتروني ، وتحديد ما إذا كانت مشكلة أم فكرة أم شك. "
"سيرد أحد أعضاء فريقنا في أسرع وقت ممكن."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "البريد الإلكتروني"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "اذهب إلى X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
msgid "feedback.twitter-subtitle1"
msgstr "هنا للمساعدة في استفساراتك التقنية."
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "رد عنوان تويتر"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
msgid "inspect.empty.help"
msgstr "إذا كنت تريد معرفة المزيد عن فحص التصميم ، فتفضل بزيارة مركز مساعدة لPenpot"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100
msgid "inspect.tabs.code"
msgstr "شفرة"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "دائرة"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "مكون"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "منحنى"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "لوح الرسم"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "مجموعة"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "صورة"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
msgid "inspect.tabs.code.selected.mask"
msgstr "قناع"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s محدد"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "مسار"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "رباعي"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "نص"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "مشرف"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "الكل"
+#: src/app/main/ui/auth/register.cljs:287
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:282
msgid "labels.bad-gateway.desc-message"
msgstr ""
"يبدو أنك بحاجة إلى الانتظار قليلا وإعادة المحاولة. نحن نقوم بصيانة صغيرة "
"لخوادمنا."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:281
msgid "labels.bad-gateway.main-message"
msgstr "مدخل خاطأ"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "الغاء"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "تأكيد كلمة المرور"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
msgid "labels.continue-with-penpot"
msgstr "يمكنك المتابعة مع حساب Penpot"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "حذف التعليق"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "حذف موضوع"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "محرر"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "منتهي الصلاحية"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "استخراج"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "تعطيل الملاحظات"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:367
msgid "labels.internal-error.desc-message"
msgstr "شيء سيء حدث الرجاء إعادة محاولة العملية وإذا استمرت المشكلة، اتصل بالدعم."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "الدعوات"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "الأعضاء"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "لا توجد دعوات."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "اضغط على الزر \"دعوة إلى الفريق\" لدعوة المزيد من الأعضاء إلى هذا الفريق."
#: src/app/main/ui/static.cljs
+#, unused
msgid "labels.not-found.desc-message"
msgstr "قد لا تكون هذه الصفحة موجودة أو ليس لديك أذونات للوصول إليها."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:1116
msgid "labels.num-of-files"
msgid_plural "labels.num-of-files"
msgstr[0] "0 ملف"
@@ -1360,6 +1502,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 +1512,7 @@ msgstr[3] "بعض"
msgstr[4] "العديد"
msgstr[5] "غير ذلك"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1111
msgid "labels.num-of-projects"
msgid_plural "labels.num-of-projects"
msgstr[0] "0"
@@ -1379,1167 +1522,1307 @@ msgstr[3] "بعض"
msgstr[4] "الكثير"
msgstr[5] "غير ذلك"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:125, 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:335
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:153
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:665
msgid "labels.resend-invitation"
msgstr "إعادة إرسال الدعوة"
-#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "أعد المحاولة"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "ارسل"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "ارسال…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "نحن في صيانة مبرمجة لأنظمتنا."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "مشاهد"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
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:111
msgid "modals.change-email.confirm-email"
msgstr "تحقق من البريد الإلكتروني الجديد"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:99
msgid "modals.change-email.info"
msgstr "سنرسل لك رسالة إلى بريدك الإلكتروني الحالي “%s” للتحقق من هويتك."
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:104
msgid "modals.change-email.new-email"
msgstr "بريد إلكتروني جديد"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:119
msgid "modals.change-email.submit"
msgstr "تغيير البريد الإلكتروني"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "حذف المحادثة"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
msgid "modals.delete-comment-thread.message"
msgstr ""
"هل أنت متأكد أنك تريد حذف هذه المحادثة؟ سيتم حذف جميع التعليقات في هذا "
"الموضوع."
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "حذف عضو"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
msgid "modals.delete-team-member-confirm.message"
msgstr "هل أنت متأكد أنك تريد حذف هذا العضو من الفريق؟"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
msgid "modals.delete-team-member-confirm.title"
msgstr "حذف العضو"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "إرسال دعوة"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "هل أنت متأكد أنك تريد مغادرة فريق %s ؟"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
msgid "modals.leave-and-reassign.forbidden"
msgstr ""
"لا يمكنك مغادرة الفريق إذا لم يكن هناك عضو آخر للترقية إلى المالك. قد ترغب "
"في حذف الفريق."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:54
msgid "modals.leave-and-reassign.hint1"
msgstr "أنت %s المالك."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:77
msgid "modals.leave-and-reassign.promote-and-leave"
msgstr "قم بالترقية والمغادرة"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "رقى"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
msgid "modals.promote-owner-confirm.hint"
msgstr ""
"إذا قمت بنقل الملكية ، فسوف تقوم بتغيير دورك إلى المسؤول ، وستفقد بعض "
"الأذونات على هذا الفريق. "
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:357
msgid "modals.promote-owner-confirm.message"
msgstr "هل أنت متأكد أنك تريد ترقية هذا المستخدم إلى مالك؟"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:356
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:170, src/app/main/ui/dashboard/team.cljs:615
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "تم حفظ الملف الشخصي بنجاح!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "مرحبًا بك في Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
msgid "onboarding.choice.team-up.create-team-desc"
msgstr "بعد تسمية فريقك ، ستتمكن من دعوة الأشخاص للانضمام."
+#: src/app/main/ui/onboarding/team_choice.cljs:222
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:220, 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:211
msgid "onboarding.team-modal.create-team"
msgstr "أنشئ فريقًا"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
msgid "onboarding.team-modal.create-team-desc"
msgstr ""
"يسمح لك الفريق بالتعاون مع مستخدمي Penpot الآخرين الذين يعملون في نفس "
"الملفات والمشاريع."
+#: src/app/main/ui/onboarding/team_choice.cljs:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "ملفات ومشاريع غير محدودة"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "إصدار متعدد اللاعبين"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "إدارة الأدوار"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "عدد غير محدود من الأعضاء"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - صمم حرية الفرق"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:281
msgid "title.settings.access-tokens"
msgstr "رموز الوصول للحساب"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "جواب الرد - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "إعدادات - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "كلمة المرور - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "واجهة الحساب - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "الدعوات - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "أعضاء الفريق - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "إعدادات - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
msgid "viewer.breaking-change.message"
msgstr "آسف"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:570
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:575
msgid "viewer.frame-not-found"
msgstr "لم يعثر على البورد ."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "تكبير الشاشة"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "خريطة الموقع"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
msgid "workspace.assets.create-group"
msgstr "إيجاد مجموعة"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "انسخ"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "مجموعة"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "إعادة تسمية"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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 العناصر المحددة"
@@ -2550,1775 +2833,1895 @@ 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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "التحرير"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "الملف"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
msgid "workspace.header.menu.option.help-info"
msgstr "المساعدة و المعلومة"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:765
msgid "workspace.header.menu.option.preferences"
msgstr "التفضيلات"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "انهيار الشريط الجانبي"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "منحنى (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "الشكل البيضاوي (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "لوحة (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "صورة (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "تحريك (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "مسار (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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/access-tokens.cljs
-msgid "dashboard.access-tokens.empty.add-one"
-msgstr "اضغط على الزر \"إنشاء رمز جديد\" لإنشاء واحد."
+#: src/app/main/ui/workspace/sidebar/history.cljs:146
+msgid "workspace.undo.entry.modify"
+msgstr "معدل %s"
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "branding-illustrations-marketing-pieces"
-msgstr "...علامة تجارية، رسوم توضيحية، قطع تسويقية، إلخ."
+#: src/app/main/ui/workspace/sidebar/history.cljs:148
+msgid "workspace.undo.entry.move"
+msgstr "المكونات المعدلة"
-#: src/app/main/ui/auth/login.cljs
-msgid "auth.login-account-title"
-msgstr "قم بتسجيل الدخول إلى حسابي"
+#: src/app/main/ui/workspace/sidebar/history.cljs:111
+msgid "workspace.undo.entry.multiple.circle"
+msgstr "دوائر"
-#: src/app/main/ui/settings/access-tokens.cljs
-msgid "dashboard.access-tokens.create"
-msgstr "قم بإنشاء رمز جديد"
+#: src/app/main/ui/workspace/sidebar/history.cljs:112
+msgid "workspace.undo.entry.multiple.color"
+msgstr "أصول اللون"
-#: src/app/main/ui/settings/access-tokens.cljs
-msgid "dashboard.access-tokens.create-success"
-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 "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:1097
+msgid "workspace.updates.dismiss"
+msgstr "رفض"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "مزيد من المعلومات"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "يوجد تحديثات في المكتبة المشتركة"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+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 478d20c961..d94a56b0b7 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "অ্যাকাউন্ট আছে?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr ""
"আপনার ইমেইল চেক করুন এবং লিংকে ক্লিক করে ভেরিফাই করে Penpot ব্যবহার শুরু "
"করুন।"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
msgid "auth.create-demo-account"
msgstr "ডেমো অ্যাকাউন্ট তৈরী করুন"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/login.cljs:41
msgid "auth.demo-warning"
msgstr ""
"এটি একটি ডেমো সার্ভিস। প্রয়োজনীয় কোনো কাজে ব্যবহার করবেন না। কিছু সময় পর "
"প্রজেক্টগুলো মুছে ফেলা হবে।"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "পাসওয়ার্ড ভুলে গেছেন?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "পুরো নাম"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "এখানে লগিন করুন"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "লগিন"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "গিটহাব"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "গিটল্যাব"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "গুগল"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "ওপেনআইডি"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "নতুন পাসওয়ার্ড টাইপ করুন"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:32
msgid "errors.invalid-recovery-token"
msgstr "রিকভারি টোকেন সঠিক নয়।"
diff --git a/frontend/translations/ca.po b/frontend/translations/ca.po
index 62017b4cae..3bc65530a3 100644
--- a/frontend/translations/ca.po
+++ b/frontend/translations/ca.po
@@ -1,395 +1,456 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
-"Last-Translator: Anonymous \n"
-"Language-Team: Catalan \n"
+"PO-Revision-Date: 2024-06-28 22:09+0000\n"
+"Last-Translator: Aryiu \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 5.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Ja teniu un compte?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Comproveu el correu"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Heu oblidat la contrasenya?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nom complet"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
-msgstr "Inicieu la sessió aquí"
+msgstr "Inicieu la sessió aquí."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
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:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Escriviu una contrasenya nova"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "El codi de recuperació no és vàlid."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Contrasenya"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Com a mínim 8 caràcters"
+#: src/app/main/ui/auth/register.cljs:291
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:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Heu oblidat la contrasenya?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Canvieu la contrasenya"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Creeu un compte"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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/settings/access_tokens.cljs:133
+msgid "dashboard.access-tokens.expiration-30-days"
+msgstr "30 dies"
+
+#: src/app/main/ui/settings/access_tokens.cljs:134
+msgid "dashboard.access-tokens.expiration-60-days"
+msgstr "60 dies"
+
+#: src/app/main/ui/settings/access_tokens.cljs:135
+msgid "dashboard.access-tokens.expiration-90-days"
+msgstr "90 dies"
+
+#: src/app/main/ui/settings/access_tokens.cljs:132
+msgid "dashboard.access-tokens.expiration-never"
+msgstr "Mai"
+
+#: 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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Pot incloure components, gràfics, colors i/o tipografies."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exporta les biblioteques compartides"
+#: src/app/main/ui/export.cljs:440
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:441
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:442
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:443
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:421
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 +459,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 +469,4095 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importa fitxers de Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "S'han importat %s fitxers correctament."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Alguns fitxers contenen objectes no vàlids que s'han eliminat."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "S'estan carregant els colors"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "S'estan carregant els components"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "S'està carregant la multimèdia"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "S'està carregant la pàgina: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "S'estan processant les tipografies"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "S'estan penjant les dades al servidor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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"
+msgstr "+ Crea un projecte"
-#: src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:727, src/app/main/data/dashboard.cljs:1184
msgid "dashboard.new-project-prefix"
-msgstr "Projecte nou"
+msgstr "Crea un projecte"
-#: 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informació de l'equip"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Membres de l'equip"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projectes de l'equip"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "Correu electrònic"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "L'autenticació del proveïdor no està configurada."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Aquest correu ja està validat."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email-confirmation"
-msgstr "El correu de confirmació ha de coincidir"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "El correu de confirmació ha de coincidir"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "El codi de recuperació no és vàlid."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Invitació no vàlida"
+#: src/app/main/ui/static.cljs:62
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:90
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "La contrasenya de confirmació ha de coincidir"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "La contrasenya ha de tenir 8 caràcters com a mínim"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "El registre està desactivat."
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Token desconegut"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "El nom d'usuari o la contrasenya sembla incorrecte."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Descripció"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Comunitat de Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Tema"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Correu electrònic"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Ves al X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Compte de X d'ajuda"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:100
msgid "inspect.tabs.code"
msgstr "Codi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Cercle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Component"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Corba"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Tauler"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grup"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Imatge"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s seleccionats"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Camí"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectangle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administració"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Tots"
+#: src/app/main/ui/auth/register.cljs:287
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:282
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:281
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Cancel·la"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirmeu la contrasenya"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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/dashboard/team.cljs:662
+msgid "labels.copy-invitation-link"
+msgstr "Copia l'enllaç"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Elimina el comentari"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Elimina el fil"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Ha caducat"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exporta"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Opinions desactivades"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:367
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Invitacions"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Membres"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "No hi ha invitacions."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:125, 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.cljs
+#, unused
+msgid "labels.reload-file"
+msgstr "Recarrega el fitxer"
+
+#: 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Tornar a intentar-ho"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/workspace/sidebar/options/menus/component.cljs:436
+msgid "labels.search"
+msgstr "Cerca"
+
+#: 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:79
msgid "labels.send"
msgstr "Envia"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "S'està enviant…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Configuració"
+#: src/app/main/ui/viewer/header.cljs:205
+msgid "labels.share"
+msgstr "Comparteix"
+
+#, 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:730
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:108
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/workspace/sidebar/sitemap.cljs:223
+msgid "labels.view-only"
+msgstr "Només lectura"
+
+#: src/app/main/ui/dashboard/team.cljs:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Visor"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/workspace/media.cljs:273, 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:212, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237
+msgid "media.image"
+msgstr "Imatge"
+
+#: src/app/main/data/media.cljs:49, src/app/main/data/workspace/media.cljs:223, src/app/main/data/workspace/media.cljs:451
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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/access_tokens.cljs:125
+msgid "modals.create-access-token.name.label"
+msgstr "Nom"
+
+#: 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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Elimina la conversa"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
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:237
msgid "modals.invite-member-confirm.accept"
msgstr "Envia una invitació"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Segur que vols deixar l'equip %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
msgid "modals.leave-confirm.title"
msgstr "S'està abandonant l'equip"
-#: 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] "Mou"
+msgstr[1] "Mou"
+
+#: 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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Ascendeix"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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/libraries.cljs:188
+msgid "modals.publish-empty-library.accept"
+msgstr "Publica"
+
+#: 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:170, src/app/main/ui/dashboard/team.cljs:615
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Us donem la benvinguda a Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:211
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:88
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:180, 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:191
+msgid "shortcuts.toggle-guides"
+msgstr "Mostra / Amaga les guies"
+
+#: 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:67, src/app/main/ui/auth.cljs:36
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:107
msgid "title.settings.feedback"
msgstr "Envia opinions - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Configuració - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Contrasenya - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Perfil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Invitacions - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Membres - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "No s'ha trobat el tauler."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
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:333
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Agrupa"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:62, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:347
+msgid "workspace.assets.local-library"
+msgstr "llibreria local"
+
+#: 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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:336
+msgid "workspace.header.menu.hide-guides"
+msgstr "Amaga les guies"
+
+#: 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:743
msgid "workspace.header.menu.option.edit"
msgstr "Edita"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Fixer"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Preferències"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
msgid "workspace.header.menu.option.view"
msgstr "Mostra"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:459
+msgid "workspace.header.menu.redo"
+msgstr "Refés"
+
+#: 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/workspace/main_menu.cljs:279
+msgid "workspace.header.menu.toggle-dark-theme"
+msgstr "Canvia al mode fosc"
+
+#: src/app/main/ui/workspace/main_menu.cljs:278
+msgid "workspace.header.menu.toggle-light-theme"
+msgstr "Canvia al mode clar"
+
+#: src/app/main/ui/workspace/main_menu.cljs:446
+msgid "workspace.header.menu.undo"
+msgstr "Desfés"
+
+#: 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/viewport/grid_layout_editor.cljs:65
+msgid "workspace.layout_grid.editor.top-bar.done"
+msgstr "Fet"
+
#: 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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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.cljs:177
+msgid "workspace.options.inspect"
+msgstr "Inspecciona"
+
+#: 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:173
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:285
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:189
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/plugins.cljs:58
+msgid "workspace.plugins.button-open"
+msgstr "Obre"
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Instal·la"
+
+#: 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:469
+msgid "workspace.shape.menu.create-multiple-components"
+msgstr "Crea components múltiples"
+
+#: 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:582
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Corba (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "El·lipse (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Tauler (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Imatge (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Mou (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Camí (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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/viewport/top_bar.cljs:38
+msgid "workspace.top-bar.read-only.done"
+msgstr "Fet"
+
+#: src/app/main/ui/workspace/viewport/top_bar.cljs:35
+#, markdown
+msgid "workspace.top-bar.view-only"
+msgstr "**S'està inspeccionant el codi** (només lectura)"
+
+#: 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:1097
msgid "workspace.updates.dismiss"
msgstr "Descarta"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 1140f40b0c..a6b0f1055b 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,466 +11,509 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Už máte účet?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Zapomněli jste heslo?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Jméno a příjmení"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Přihlaste se zde"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Přihlásit se"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Zadejte nové heslo"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Token pro obnovení je neplatný."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Heslo"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Minimálně 8 znaků"
+#: src/app/main/ui/auth/register.cljs:291
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:82
msgid "auth.recovery-request-submit"
msgstr "Obnovit heslo"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Zapomněli jste heslo?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Změnit heslo"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Vytvořit účet"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Generovat nový token"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nikdy"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Může obsahovat komponenty, grafiku, barvy a/nebo typografii."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportovat sdílené knihovny"
+#: src/app/main/ui/export.cljs:440
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:441
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:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Zahrnout sdílené položky knihovny do knihoven souborů"
+#: src/app/main/ui/export.cljs:421
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 "
@@ -479,6 +522,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 "
@@ -487,10 +532,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 "
@@ -500,1503 +547,1674 @@ msgstr ""
"[Transfonter](https://transfonter.org/) ke generování webových písem a "
"opravě chyb. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importovat Penpot soubory"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "Soubory %s byly úspěšně importovány."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Některé soubory obsahovaly neplatné objekty, které byly odstraněny."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Zpracovávání barev"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Zpracovávání komponentů"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Zpracovávání médií"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Zpracovává se stránka: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Zpracovávání typografií"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Nahrávání dat na server (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informace o týmu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Členové týmu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projekty týmu"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Aktualizovat nastavení"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Je aktivní"
+#: src/app/main/ui/dashboard/team.cljs:883
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:873
msgid "dashboard.webhooks.content-type"
msgstr "Typ obsahu"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Vytvořit webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook byl úspěšně vytvořen."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "E-mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Zprostředkovatel ověřování není nakonfigurován."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mail byl již ověřen."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Zadejte prosím platný email"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Potvrzovací e-mail se musí shodovat"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Funkce '%s' není podporována."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Zadejte prosím platný email"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Potvrzovací e-mail se musí shodovat"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Token pro obnovení je neplatný."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Neplatná pozvánka"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Ověřování LDAP je vypnuto."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Potvrzovací heslo se musí shodovat"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Heslo by mělo mít nejméně 8 znaků"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Neplatná data ve schránce"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Registrace je momentálně zakázána."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "Soubor má nekompatibilní číslo verze"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Chyba připojení, adresa URL není dostupná"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "Adresa URL neprošla ověřením."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Poslední dodávka nebyla úspěšná."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Chyba při ověřování SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Timeout"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Při ověřování došlo k neočekávané chybě"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
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:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Uživatelské jméno nebo heslo se zdá být chybné."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Popisek"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot komunita"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Předmět"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
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:96
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:95
msgid "feedback.twitter-title"
msgstr "Účet podpory na Xu"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Více informací o inspektorovi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kód"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Kruh"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Komponent"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Křivka"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Tabule"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Skupina"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Obrázek"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s vybráno"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Cesta"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Obdélník"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Správce"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Špatná brána"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Zrušit"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Potvrďte heslo"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Smazat komentář"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Smazat vlákno"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Platnost vypršela"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exportovat"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
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:39
msgid "labels.feedback-sent"
msgstr "Zpětná vazba byla odeslána"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Zakladatel / viceprezident"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Pozvánky"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Členové"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Nejsou žádné pozvánky."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Jiné (upřesněte)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:250
+msgid "labels.product-management"
+msgstr "Produktový nebo projektový manažer"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Zkusit znovu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Vyberte možnost"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Poslat"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Odesílání…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Nastavení"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Prohlížeč"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Vyberte obrázek"
+#, unused
msgid "media.gradient"
msgstr "Přechod"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:209
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:451
msgid "media.loading"
msgstr "Načítání obrázku…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radiální"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Plná"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Vygenerujte přístupový token"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Vytvořit webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Vytvořit webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Adresa URL datové části"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Smazat konverzaci"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Smazat člena"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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] ""
@@ -2009,1202 +2227,1340 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Smazat webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Opravdu chcete tento webhook smazat?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Mazání webhooku"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Upravit webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Upravit webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Poslat pozvánku"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Opravdu chcete opustit tým %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
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:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Vítejte v Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Pokračujte ve vytváření týmu"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Začněte bez týmu"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Pusťme se do toho!"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Jaká je vaše role?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Jaká je velikost vašeho týmu?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Více než 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Pracuji na osobním projektu"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Vytvořte tým"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Neomezené soubory a projekty"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Multiplayerová edice"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Správa rolí"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Neomezený počet členů"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profil – Přístupové tokeny"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
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:77
msgid "title.settings.options"
msgstr "Nastavení - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Heslo - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Pozvánky – %s – Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Členové - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Nastavení - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Tabule nenalezena."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Celá obrazovka"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Mapa stránek"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Duplikovat"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Skupina"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Přejmenovat"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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"
@@ -3212,1807 +3568,1938 @@ 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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Upravit"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Soubor"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Předvolby"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Upravit mřížku"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Sbalit postranní panel"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Křivka (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elipsa (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Tabule (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Obrázek (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Přesunout (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Cesta (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Zrušit"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Více informací"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 7c176ff70e..20e964a19d 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,169 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
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:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Glemt adgangskode?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Fulde Navn"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Log på her"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Log på"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "Github"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "Gitlab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Indtast et nyt kodeord"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Genopretningspoletten er ugyldig."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Adgangskode"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
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:82
msgid "auth.recovery-request-submit"
msgstr "Gendan Adgangskode"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Glemt adgangskode?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Skift din adgangskode"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Opret en konto"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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:268
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:72
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:763, 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 +183,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 +192,265 @@ 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:114
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:331
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Adgangskode gemt med succes!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:53
msgid "dashboard.select-ui-language"
msgstr "Vælg UI sprog"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Team info"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Medlemmer"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Team projekter"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "Email"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:1596
msgid "errors.clipboard-not-implemented"
msgstr "Din browser kan ikke gøre denne operation"
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Genopretningspoletten er ugyldig."
+
+#, 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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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 207abcb76a..1b84c1a22a 100644
--- a/frontend/translations/de.po
+++ b/frontend/translations/de.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: German \n"
@@ -9,2056 +9,2332 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Sie haben schon ein Konto?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Überprüfen Sie Ihre E-Mail"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Passwort vergessen?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Vollständiger Name"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
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:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
-msgstr "Hier anmelden"
+msgstr "Hier anmelden."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Anmelden"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
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:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Geben Sie ein neues Passwort ein"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Der Wiederherstellungscode ist ungültig."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Passwort"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Mindestens 8 Zeichen"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Datenschutzerklärung"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Passwort wiederherstellen"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Passwort vergessen?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Passwort ändern"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr ""
+"Teilen Sie uns mit, wie wir Sie auf dem Dashboard und in den E-Mails nennen "
+"sollen."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "Ihr Name"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Konto erstellen"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Mit einem kostenlosen Penpot-Konto können Sie unbegrenzt viele Teams "
+"erstellen und mit anderen Designern und Entwicklern an beliebig vielen "
+"Projekten zusammenarbeiten. "
+
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr ""
+"Ich stimme den [Nutzungsbedingungen](%s) und der "
+"[Datenschutzrichtlinie](%s) zu."
+
+#: src/app/main/ui/auth/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "Wir haben eine Bestätigungs-E-Mail gesendet an"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+msgstr "Geschäftliche E-Mail-Adresse"
+
#: 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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Neues Token generieren"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nie"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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."
+"Vorlagen](https://penpot.app/libraries-templates) 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* kann Komponenten, Grafiken, Farben und/oder Textstile enthalten."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Geteilte Bibliotheken exportieren"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Assets aus geteilten Bibliotheken als gewöhnliche Objekte behandeln"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Assets aus geteilten Bibliotheken in die Dateibibliothek aufnehmen"
+#: src/app/main/ui/export.cljs:421
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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Dateien importieren"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "%s Dateien wurden erfolgreich importiert."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Einige Dateien enthielten ungültige Objekte, die entfernt wurden."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Farben werden verarbeitet"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Komponenten werden verarbeitet"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Medien werden verarbeitet"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Seite %s wird verarbeitet"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Textstile werden verarbeitet"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Daten werden hochgeladen (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Passwort wurde erfolgreich gespeichert!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Teaminformationen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Teammitglieder"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Teamprojekte"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Einstellungen aktualisieren"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Aktiv"
+#: src/app/main/ui/dashboard/team.cljs:883
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:873
msgid "dashboard.webhooks.content-type"
msgstr "Inhaltstyp"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Webhook erstellen"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook wurde erfolgreich erstellt."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "E-Mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Authentifizierungsanbieter ist nicht konfiguriert."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-Mail-Adresse wurde bereits validiert."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
msgid "errors.email-has-permanent-bounces"
-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
-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.invalid-email-confirmation"
-msgstr "Bestätigungs-E-Mail muss übereinstimmen"
+msgstr "Die E-Mail-Adresse «%s» hat viele permanente Unzustellbarkeitsberichte."
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Die Funktion '%s' wird nicht unterstützt."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Geben Sie bitte eine gültige E-Mail-Adresse ein"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Bestätigungs-E-Mail muss übereinstimmen"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Der Wiederherstellungscode ist ungültig."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Einladung ist ungültig"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Die LDAP-Authentifizierung ist deaktiviert."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Bestätigungspasswort muss übereinstimmen"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Das Passwort sollte mindestens 8 Zeichen lang sein"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Ungültige Daten in der Zwischenablage"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Die Registrierung ist derzeit deaktiviert."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Unbekannter Token"
+#, unused
msgid "errors.validation"
msgstr "Validierungsfehler"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:241
msgid "errors.version-not-supported"
msgstr "Die Datei hat eine inkompatible Versionsnummer"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Verbindungsfehler, URL ist nicht erreichbar"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "Die URL erfüllt nicht die Validierungskriterien."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Die letzte Übertragung war nicht erfolgreich."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Fehler bei der SSL-Validierung."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Zeitüberschreitung"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Unerwarteter Fehler bei der Validierung"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Unerwarteter Status %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Die E-Mail-Adresse oder das Passwort ist falsch."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Altes Passwort ist falsch"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Beschreibung"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Zum Penpot-Forum wechseln"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot-Community"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Betreff"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-Mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Zu X wechseln"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "X Support-Konto"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Weitere Informationen zur Inspektion"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Code"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Kreis"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Komponente"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Kurve"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Zeichenfläche"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Gruppe"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Bild"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Ausgewählt(e)"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Pfad"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rechteck"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Admin"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Abbrechen"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Passwort bestätigen"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Kommentar löschen"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Thread löschen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+msgid "labels.developer"
+msgstr "Developer"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+msgstr "Geschäftsführer"
+
+#: 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Veranstaltung"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Abgelaufen"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exportieren"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback deaktiviert"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Feedback gesendet"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Gründer/VP"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Zurück"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+msgstr "Grafikdesign"
+
+#: 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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Einladungen"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Mitglieder"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Keine ausstehenden Einladungen."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Sonstiges (bitte angeben)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Sonstiges"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "Produkt- oder UX-Design"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Produkt- oder Projektmanager"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Wiederholen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Wählen Sie eine Option"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Senden"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Senden…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Einstellungen"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Schüler oder Lehrer"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Teamleiter"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+msgstr "Teammitglied"
+
+#: 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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Zuschauer"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Bild auswählen"
+#, unused
msgid "media.gradient"
msgstr "Verlauf"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
msgid "media.keep-aspect-ratio"
msgstr "Seitenverhältnis beibehalten"
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Bild laden…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radial"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Einfarbig"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Zugangstoken generieren"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Webhook erstellen"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Webhook erstellen"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Payload-URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Konversation löschen"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
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] ""
@@ -2068,3204 +2344,3612 @@ msgstr[1] ""
"Assets, die bereits in diesen Dateien verwendet wurden, bleiben dort "
"erhalten (das Design bleibt erhalten)."
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Webhook löschen"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Möchten Sie diesen Webhook wirklich löschen?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Webhook löschen"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Webhook bearbeiten"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Webhook bearbeiten"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Einladung senden"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Befördern"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Einladung erfolgreich gesendet"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Profil erfolgreich gespeichert!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Willkommen bei Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Mit der Erstellung eines Teams fortsetzen"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Ohne Team starten"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
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:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Suche nach einer Alternative zu Figma, XD, usw."
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "labels.marketing"
-msgstr "Marketing"
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Nur zum Ausprobieren"
-#: 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:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Prüfen, ob Penpot für mein Team geeignet ist"
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "labels.next"
-msgstr "Weiter"
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Vor dem Selbst-Hosting, testen"
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "labels.other"
-msgstr "Sonstiges (bitte angeben)"
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Generierung echter Code-Entwürfe"
-#: 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:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Erstellung von Design-Systemen"
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "labels.previous"
-msgstr "Zurück"
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototyping"
-#: src/app/main/ui/onboarding/questions.cljs
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "UI/UX-Design einer App"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Wireframing"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "Wofür werden Sie Penpot verwenden?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "Was führt Sie heute zu Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Lassen Sie uns ein wenig über Sie erfahren, damit wir Penpot für Sie "
+"optimieren können. Ihre Antworten werden helfen uns, neue Funktionen zu "
+"priorisieren und Ihnen den richtigen Einstieg zu erleichtern."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Helfen Sie uns, Sie kennen zu lernen"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Welches dieser Tools verwenden Sie am meisten?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Was machen Sie beruflich?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
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:317
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:287
+msgid "onboarding.questions.step3.title"
+msgstr "Erzählen Sie uns von Ihrem Job"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Wo möchten Sie gerne anfangen?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Wie haben Sie von Penpot erfahren?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Ich bin ein Freelancer"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Mehr als 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Ich arbeite an einem persönlichen Projekt"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Bildung"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Persönlich"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Arbeit"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
+msgid "onboarding.team-modal.create-team"
+msgstr "Ein Team erstellen"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:34
+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:39
+msgid "onboarding.team-modal.create-team-feature-1"
+msgstr "Unbegrenzte Anzahl von Dateien und Projekten"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:43
+msgid "onboarding.team-modal.create-team-feature-2"
+msgstr "Multiplayer-Edition"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:47
+msgid "onboarding.team-modal.create-team-feature-3"
+msgstr "Rollenverwaltung"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:51
+msgid "onboarding.team-modal.create-team-feature-4"
+msgstr "Unbegrenzte Anzahl von Mitgliedern"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:55
+msgid "onboarding.team-modal.create-team-feature-5"
+msgstr "100% kostenlos!"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
+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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profil - Zugangstokens"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Feedback geben - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Einstellungen - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Passwort - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Einladungen - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Mitglieder - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Einstellungen - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Keine Zeichenfläche gefunden."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Vollbildmodus"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Sitemap"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Duplizieren"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Gruppieren"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Umbenennen"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Bearbeiten"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Datei"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Einstellungen"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Grid bearbeiten"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
msgid "workspace.layout_grid.editor.options.exit"
msgstr "Beenden"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:58
+msgid "workspace.plugins.button-open"
+msgstr "Öffnen"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Noch keine Plugins installiert"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "Das Plugin existiert nicht oder die URL ist nicht korrekt."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Installieren"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+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:777
+msgid "workspace.plugins.menu.title"
+msgstr "Plugins"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Liste der Plugins"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+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:160
+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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Seitenleiste ausblenden"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Stift (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Ellipse (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Zeichenfläche (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Bild (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Verschieben (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Pfad (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Werkzeugleiste ein- und ausblenden"
+
+#: 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:1097
msgid "workspace.updates.dismiss"
msgstr "Ignorieren"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Mehr Info"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 27ea17f25a..51f1f1eaac 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,2179 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Δημιουργία λογαριασμού επίδειξης"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr ""
"Ελέγξτε το email σας και κάντε κλικ στον σύνδεσμο για επαλήθευση και έναρξη "
"χρήσης του Penpot."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr ""
"Αυτή είναι μια υπηρεσία DEMO, ΜΗ ΧΡΗΣΙΜΟΠΟΙΕΙΤΕ για πραγματική εργασία, τα "
"έργα θα σβήνονται περιοδικά."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Ξεχάσατε τον κωδικό;"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Πλήρες όνομα"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Συνδεθείτε εδώ"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
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:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Πληκτρολογήστε έναν νέο κωδικό πρόσβασης."
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Ο κωδικός ανάκτησης δεν είναι έγκυρος."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "Ο κωδικός έχει αλλάξει."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "Το προφίλ δεν έχει επαληθευτεί ακόμη, επικυρώστε το προφίλ πριν συνεχίσετε."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Κωδικός "
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Τουλάχιστον 8 χαρακτήρες"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Ανάκτηση κωδικού πρόσβασης"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "Θα σας στείλουμε ένα email με οδηγίες "
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "Ξεχάσατε τον κωδικό σας;"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Αλλάξτε τον κωδικό σας"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Δημιουργία λογαριασμού"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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:268
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:72
msgid "dashboard.change-email"
msgstr "Αλλαγή email"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:114
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:331
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:47
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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "Η διεύθυνση email σας ενημερώθηκε με επιτυχία"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "Η διεύθυνση email σας έχει επαληθευτεί"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "Ο κωδικός πρόσβασης αποθηκεύτηκε!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:53
msgid "dashboard.select-ui-language"
msgstr "Αλλάξτε τη γλώσσα διεπαφής"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Πληροφορίες ομάδας"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Μέλη ομάδας"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Ομαδικά έργα"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "Email"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "Το email έχει ήδη χρησιμοποιηθεί"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
msgid "errors.email-has-permanent-bounces"
msgstr "Το email «%s» έχει πολλές μόνιμες αναφορές αναπήδησης."
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
msgid "errors.generic"
msgstr "Έχει συμβεί κάτι λάθος."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Το email επιβεβαίωσης πρέπει να ταιριάζει"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Ο κωδικός ανάκτησης δεν είναι έγκυρος."
+
+#: src/app/main/ui/auth/login.cljs:90
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:594
msgid "errors.member-is-muted"
msgstr ""
"Το προφίλ που προσκαλείτε σταματά τα μηνύματα ηλεκτρονικού ταχυδρομείου "
"(λόγω ανεπιθύμητων αναφορών ή υψηλού ποσοστού εγκατάλειψης)."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Ο κωδικός επιβεβαίωσης πρέπει να ταιριάζει"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Ο κωδικός πρόσβασης πρέπει να είναι τουλάχιστον 8 χαρακτήρες"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
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:59
msgid "errors.unexpected-token"
msgstr "Άγνωστο διακριτικό"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Το όνομα χρήστη ή ο κωδικός πρόσβασης φαίνεται να είναι λάθος."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Ο παλιός κωδικός πρόσβασης είναι λάθος "
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Περιγραφή"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Επιχείρηση"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
msgid "feedback.subtitle"
msgstr ""
"Περιγράψτε τον λόγο του email σας, προσδιορίζοντας εάν πρόκειται για "
"ζήτημα, ιδέα ή αμφιβολία. Ένα μέλος της ομάδας μας θα απαντήσει το "
"συντομότερο δυνατό."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "Email"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:100
msgid "inspect.tabs.code"
msgstr "Κώδικας"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Κύκλος"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Κυρτότητα"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Τραπέζι εργασίας"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Ομάδα"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Εικόνα"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Επιλεγμένα"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Σχέδιο"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Ορθωγώνιο"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "Κείμενο"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
msgid "inspect.tabs.info"
msgstr "Πληροφορίες"
+#: src/app/main/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
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:282
msgid "labels.bad-gateway.desc-message"
msgstr ""
"Φαίνεται ότι πρέπει να περιμένετε λίγο και να προσπαθήσετε ξανά. εκτελούμε "
"μικρή συντήρηση των διακομιστών μας."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
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:91
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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Διαγραφή σχολίου"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Τα σχόλια απενεργοποιήθηκαν"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:367
msgid "labels.internal-error.desc-message"
msgstr ""
"Κάτι κακό συνέβη. Δοκιμάστε ξανά τη λειτουργία και εάν το πρόβλημα "
"παραμένει, επικοινωνήστε με την υποστήριξη."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:366
msgid "labels.internal-error.main-message"
msgstr "Εσωτερικό σφάλμα"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Μέλη"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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
+#, unused
msgid "labels.not-found.desc-message"
msgstr ""
"Αυτή η σελίδα ενδέχεται να μην υπάρχει ή δεν έχετε δικαιώματα πρόσβασης σε "
"αυτήν."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:125, 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:153
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Ξαναδοκιμάσετε"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Αποστολή ..."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Αποστολή…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "Είμαστε σε προγραμματισμένη συντήρηση των συστημάτων μας."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Θεατής"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:451
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:127
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:125
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:124
msgid "modals.add-shared-confirm.message"
msgstr "Προσθήκη “%s” ως Κοινόχρηστη βιβλιοθήκη"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:111
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:99
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:104
msgid "modals.change-email.new-email"
msgstr "Νέο email"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:119
msgid "modals.change-email.submit"
msgstr "Αλλαγή email"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Διαγραφή συζήτησης"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
msgid "modals.delete-comment-thread.message"
msgstr ""
"Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη συνομιλία; Όλα τα σχόλια "
"σε αυτό το νήμα θα διαγραφούν."
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Διαγραφή μέλους"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
msgid "modals.delete-team-member-confirm.message"
msgstr "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μέλος από την ομάδα;"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Διαγραφή μέλους της ομάδας"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Αποστολή πρόσκλησης"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:54
msgid "modals.leave-and-reassign.hint1"
msgstr "Είστε ο ιδιοκτήτης του %s"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:77
msgid "modals.leave-and-reassign.promote-and-leave"
msgstr "Προώθηση και αφήστε"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
msgid "modals.leave-confirm.title"
msgstr "Αφήστε την ομάδα"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Προώθηση"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:357
msgid "modals.promote-owner-confirm.message"
msgstr "Είστε σίγουροι ότι θέλετε να προωθήσετε αυτό το χρήστη στον ιδιοκτήτη;"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:356
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:170, src/app/main/ui/dashboard/team.cljs:615
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Το προφίλ αποθηκεύτηκε με επιτυχία!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
msgid "notifications.validation-email-sent"
msgstr "Το email επαλήθευσης εστάλη στο %s. Ελέγξτε το email σας!"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:88
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:180, 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:570
msgid "viewer.empty-state"
msgstr "Δεν βρέθηκαν πλαίσια στη σελίδα"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:575
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:194
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:173, src/app/main/ui/export.cljs:242, 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:173
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Στροφή (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Έλλειψη (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Artboard (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Εικόνα (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr ""
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Path (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
msgid "workspace.toolbar.rect"
msgstr "Ορθογώνιο (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Παράβλεψη"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
msgid "workspace.updates.there-are-updates"
msgstr "Υπάρχουν ενημερώσεις σε κοινόχρηστες βιβλιοθήκες"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1100
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 7d968ff1be..b0b931a058 100644
--- a/frontend/translations/en.po
+++ b/frontend/translations/en.po
@@ -11,506 +11,543 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Already have an account?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Check your email"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Forgot password?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Full Name"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
msgid "auth.login-account-title"
msgstr "Log into my account"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
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:186
msgid "auth.login-submit"
msgstr "Login"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
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:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
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 "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/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
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Type a new password"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "The recovery token is invalid."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Password"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "At least 8 characters"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Privacy policy"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Recover Password"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Forgot password?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Change your password"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:247
+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:246
msgid "auth.register-account-title"
msgstr "Your name"
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
+msgid "auth.register-submit"
+msgstr "Create an account"
+
+#: src/app/main/ui/auth/register.cljs:123
+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:121
+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:156
+#, 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:283, 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:268
msgid "auth.verification-email-sent"
msgstr "We've sent a verification email to"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Generate new token"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:65
+#, fuzzy
+msgid "dashboard.access-tokens.create.success"
+msgstr ""
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Never"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Might include components, graphics, colors and/or typographies."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Export shared libraries"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Treat shared library assets as basic objects"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Include shared library assets in file libraries"
+#: src/app/main/ui/export.cljs:421
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 ""
@@ -520,6 +557,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 ""
@@ -528,10 +566,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 ""
@@ -542,1475 +581,1771 @@ msgstr ""
"using [Transfonter](https://transfonter.org/) to generate webfonts and fix "
"errors. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Import Penpot files"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Some files containted invalid objects that have been removed."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Processing colors"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Processing components"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Processing media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Processing page: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Processing typographies"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Uploading data to server (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Uploading file: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Password saved successfully!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Select UI language"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Team info"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Team members"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Team projects"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Update settings"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Is active"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "When this hook is triggered event details will be delivered"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Content type"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Create webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook created successfully."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Press the button \"Add webhook\" to add one."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "Email"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:287
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:281
+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:700
msgid "errors.auth-provider-not-allowed"
msgstr "Auth provider not allowed for this profile"
-#: src/app/main/ui/auth/login.cljs
+msgid "errors.maximum-invitations-by-request-reached"
+msgstr "The maximum (%s) number of emails that can be invited in a single request has been reached"
+
+#: src/app/main/ui/auth/login.cljs:61
msgid "errors.auth-provider-not-configured"
msgstr "Authentication provider not configured."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Email already validated."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Enter a valid email please"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Confirmation email must match"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Feature '%s' is not supported."
-#: src/app/main/errors.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/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
+#, unused
+msgid "errors.field-max-length"
+msgstr "Must contain at most 1 characters."
+
+#, unused
+msgid "errors.field-min-length"
+msgstr "Must contain at least 1 character."
+
+#: 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
+#, unused
+msgid "errors.field-not-all-whitespace"
+msgstr "The name must contain some character other than space."
+
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Enter a valid email please"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Confirmation email must match"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "The recovery token is invalid."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Invite invalid"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "LDAP authentication is disabled."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
msgid "errors.member-is-muted"
msgstr "The profile you inviting has emails muted (spam reports or high bounces)."
+#: src/app/main/errors.cljs:219
+#, fuzzy
+msgid "errors.migration-in-progress"
+msgstr ""
+
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Confirmation password must match"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Password should at least be 8 characters"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Invalid data in clipboard"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "The registration is currently disabled."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Unknown token"
+#, unused
msgid "errors.validation"
msgstr "Validation Error"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:241
msgid "errors.version-not-supported"
msgstr "File has an incompatible version number"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Connection error, URL not reacheable"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL does not pass validation."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Last delivery was not successful."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Error on SSL validation."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Timeout"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Unexpected error on validating"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Unexpected status %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Email or password is incorrect."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Description"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Go to Penpot forum"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot community"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Subject"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Email"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Go to X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "X support account"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "More info about inspect"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Code"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Circle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Component"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curve"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Board"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Group"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Image"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Selected"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Path"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectangle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Admin"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
msgid "labels.and"
msgstr "and"
+#: 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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Cancel"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirm password"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
msgid "labels.copy-invitation-link"
msgstr "Copy link"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/static.cljs:54
+msgid "labels.copyright"
+msgstr "Kaleidos @2024"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Delete comment"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Delete thread"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+msgid "labels.developer"
+msgstr "Development"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Event"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Expired"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Export"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback disabled"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Feedback sent"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "CEO or Founder"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Go back"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Invitations"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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/auth/verify_token.cljs:97, src/app/main/ui/dashboard/grid.cljs:102, src/app/main/ui/dashboard/grid.cljs:122, src/app/main/ui/dashboard/import.cljs:272, src/app/main/ui/dashboard/placeholder.cljs:45, src/app/main/ui/export.cljs:323, src/app/main/ui/viewer.cljs:637, src/app/main/ui/workspace.cljs:127
+msgid "labels.loading"
+msgstr "Loading…"
+
+#: src/app/main/ui/viewer/header.cljs:209
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/static.cljs:48, src/app/main/ui/static.cljs:120
+msgid "labels.login"
+msgstr "Login"
+
+#: 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:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Members"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "No pending invitations."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, markdown
msgid "labels.no-invitations-hint"
msgstr "Click the **Invite people** button to invite people to this team."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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
+#, unused
+msgid "labels.ok"
+msgstr "Ok"
+
+#: src/app/main/ui/settings/password.cljs:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Other (specify)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Other"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "Product or UX design"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Product Managment"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Retry"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/workspace/sidebar/options/menus/component.cljs:436
msgid "labels.search"
msgstr "Search"
+#: 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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Select option"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Send"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Sending…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Settings"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Student or teacher"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Team Leader"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+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:108
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…"
-msgid "labels.loading"
-msgstr "Loading…"
-
+#: 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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Viewer"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Choose image"
+#, unused
msgid "media.gradient"
msgstr "Gradient"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
msgid "media.keep-aspect-ratio"
msgstr "Keep aspect ratio"
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Loading image…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radial"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Solid"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
msgid "modals.change-email.submit"
msgstr "Change email"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Generate access token"
+#: src/app/main/ui/settings/access_tokens.cljs:152
+#, fuzzy
+msgid "modals.create-access-token.token"
+msgstr ""
+
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Create webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Create webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Payload URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Delete conversation"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Delete member"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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,3305 +2355,3787 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Delete webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Are you sure you want to delete this webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Deleting webhook"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Edit webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Edit webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Send invitation"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Transfer ownership"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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
-msgid "notifications.by-code.upgrade-version"
-msgstr "A new version is available, please refresh the page"
+#: src/app/main/ui/static.cljs:271
+msgid "not-found.desc-message.doesnt-exist"
+msgstr "This page doesn't exist"
-#: src/app/main/data/common.cljs
+#: src/app/main/ui/static.cljs:270
+msgid "not-found.desc-message.error"
+msgstr "404 error"
+
+#: src/app/main/ui/static.cljs:121
+msgid "not-found.login.free"
+msgstr ""
+"Penpot is the free and open-source design tool for collaboration between "
+"Design and Code"
+
+#: src/app/main/ui/auth/recovery_request.cljs:114
+msgid "not-found.login.sent-recovery"
+msgstr "We have sent a recovery email to"
+
+#: src/app/main/ui/auth/recovery_request.cljs:116
+msgid "not-found.login.sent-recovery-check"
+msgstr "Check your email and click on the link to create a new password."
+
+#: src/app/main/ui/static.cljs:133
+msgid "not-found.login.signup-free"
+msgstr "Signup for free"
+
+#: src/app/main/ui/static.cljs:134
+msgid "not-found.login.start-using"
+msgstr "And start using Penpot in seconds!"
+
+#: src/app/main/ui/static.cljs:56
+msgid "not-found.made-with-love"
+msgstr "Made with LOVE and Open Source"
+
+#: src/app/main/ui/static.cljs:250
+msgid "not-found.no-permission.already-requested.file"
+msgstr "You have already requested access to this file."
+
+#: src/app/main/ui/static.cljs:250
+msgid "not-found.no-permission.already-requested.or-others.file"
+msgstr ""
+"You have already requested access to this file or other files or projects "
+"of this team."
+
+#: src/app/main/ui/static.cljs:253
+msgid "not-found.no-permission.already-requested.or-others.project"
+msgstr ""
+"You have already requested access to this project or other projects or "
+"files of this team."
+
+#: src/app/main/ui/static.cljs:253
+msgid "not-found.no-permission.already-requested.project"
+msgstr "You have already requested access to this project."
+
+#: src/app/main/ui/static.cljs:259, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.ask"
+msgstr "REQUEST ACCESS"
+
+#: src/app/main/ui/static.cljs:256
+msgid "not-found.no-permission.done.remember"
+msgstr ""
+"Remember that, if the owner allows it, you're going to be invited to the "
+"team."
+
+#: src/app/main/ui/static.cljs:256
+msgid "not-found.no-permission.done.success"
+msgstr "Your request has been sent correctly!"
+
+#: src/app/main/ui/static.cljs:259
+msgid "not-found.no-permission.file"
+msgstr "You don't have access to this file."
+
+#: src/app/main/ui/static.cljs:43, src/app/main/ui/static.cljs:247, src/app/main/ui/static.cljs:250, src/app/main/ui/static.cljs:253, src/app/main/ui/static.cljs:256, src/app/main/ui/static.cljs:259, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.go-dashboard"
+msgstr "Go to your Penpot"
+
+#: src/app/main/ui/static.cljs:259, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.if-approves"
+msgstr "If the owner allows it, you're going to be invited to the team."
+
+#: src/app/main/ui/static.cljs:217, src/app/main/ui/static.cljs:222
+msgid "not-found.no-permission.penpot-file"
+msgstr "Penpot file"
+
+#: src/app/main/ui/static.cljs:247, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.project"
+msgstr "You don't have access to this project."
+
+#: src/app/main/ui/static.cljs:216, src/app/main/ui/static.cljs:220
+msgid "not-found.no-permission.project-name"
+msgstr "PROJECT"
+
+#: src/app/main/ui/static.cljs:259
+msgid "not-found.no-permission.you-can-ask.file"
+msgstr "To access this file, you can ask the team owner."
+
+#: src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.you-can-ask.project"
+msgstr "To access this project, you can ask the team owner."
+
+#: src/app/main/data/common.cljs:85
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
+#: src/app/main/data/common.cljs:76
+msgid "notifications.by-code.upgrade-version"
+msgstr "A new version is available, please refresh the page"
+
+#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Invitation sent successfully"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Profile saved successfully!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Welcome to Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Continue creating team"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Start without a team"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Let's get started!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Looking for an alternative to Figma, XD, etc"
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Just exploring"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Reviewing whether Penpot is a good fit for my team"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Testing before self-hosting"
+
+#: src/app/main/ui/onboarding/questions.cljs:408
+msgid "onboarding.questions.referer.article"
+msgstr "Article (Blog, Post, Newsletter)"
+
+#: src/app/main/ui/onboarding/questions.cljs:406
+msgid "onboarding.questions.referer.search"
+msgstr "Search Engine (Google, Yahoo, Bing)"
+
+#: src/app/main/ui/onboarding/questions.cljs:407
+msgid "onboarding.questions.referer.social"
+msgstr "Social Media (X, Linkedin, FB, etc)"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+msgid "onboarding.questions.start-with.code"
+msgstr "Generating real code from designs"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+msgid "onboarding.questions.start-with.ds"
+msgstr "Creating Design Systems"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototyping"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Design the UI/UX of an app"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Wireframing"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "What will you be using Penpot for?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "What brings you to Penpot today?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+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:115
+msgid "onboarding.questions.step1.title"
+msgstr "Help us get to know you"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Which one of these tools do you use the most?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "What kind of work do you do?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "What's your role?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "What's the size of your company?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Tell us about your job"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Where would you like to get started?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "How did you hear about Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "I'm a freelancer"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "More than 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "I’m working in a personal project"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Education"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Personal"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Work"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Create a team"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Unlimited files and projects"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Multiplayer edition"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Roles management"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Unlimited members"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% free!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
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:88
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 "onboarding.questions.referer.search"
-msgstr "Search Engine (Google, Yahoo, Bing)"
-
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "onboarding.questions.referer.social"
-msgstr "Social Media (X, Linkedin, FB, etc)"
-
-#: src/app/main/ui/onboarding/questions.cljs
-msgid "onboarding.questions.referer.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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profile - Access tokens"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Give feedback - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Settings - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Password - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profile - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Invitations - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Members - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Settings - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Board not found."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Full Screen"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Sitemap"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Duplicate"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:525
+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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Group"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:521
+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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Rename"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Edit"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "File"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Preferences"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Edit grid"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
msgid "workspace.layout_grid.editor.options.exit"
msgstr "Exit"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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
-msgid "workspace.shape.menu.add-flex"
-msgstr "Add flex layout"
-
-msgid "workspace.shape.menu.add-grid"
-msgstr "Add grid layout"
-
-#: 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
-msgid "workspace.shape.menu.backward"
-msgstr "Send backward"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.copy"
-msgstr "Copy"
-
-msgid "workspace.shape.menu.create-annotation"
-msgstr "Create annotation"
-
-#: 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
-msgid "workspace.shape.menu.create-component"
-msgstr "Create component"
-
-msgid "workspace.shape.menu.create-multiple-components"
-msgstr "Create multiple components"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.cut"
-msgstr "Cut"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.delete"
-msgstr "Delete"
-
-#: 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/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/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"
-
-msgid "workspace.shape.menu.difference"
-msgstr "Difference"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.duplicate"
-msgstr "Duplicate"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.edit"
-msgstr "Edit"
-
-msgid "workspace.shape.menu.exclude"
-msgstr "Exclude"
-
-msgid "workspace.shape.menu.flatten"
-msgstr "Flatten"
-
-#: 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
-msgid "workspace.shape.menu.flip-vertical"
-msgstr "Flip vertical"
-
-#: 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
-msgid "workspace.shape.menu.forward"
-msgstr "Bring forward"
-
-#: 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
-msgid "workspace.shape.menu.go-main"
-msgstr "Go to main component file"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.group"
-msgstr "Group"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.hide"
-msgstr "Hide"
-
-msgid "workspace.shape.menu.hide-ui"
-msgstr "Show / Hide UI"
-
-msgid "workspace.shape.menu.intersection"
-msgstr "Intersection"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.lock"
-msgstr "Lock"
-
-#: 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, src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.paste"
-msgstr "Paste"
-
-msgid "workspace.shape.menu.path"
-msgstr "Path"
-
-#: 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
-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
-msgid "workspace.shape.menu.reset-overrides"
-msgstr "Reset overrides"
-
-msgid "workspace.shape.menu.restore-main"
-msgstr "Restore main component"
-
-#: 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
-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
-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
-msgid "workspace.shape.menu.show-main"
-msgstr "Show main component"
-
-msgid "workspace.shape.menu.thumbnail-remove"
-msgstr "Remove thumbnail"
-
-msgid "workspace.shape.menu.thumbnail-set"
-msgstr "Set as thumbnail"
-
-msgid "workspace.shape.menu.transform-to-path"
-msgstr "Transform to path"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.ungroup"
-msgstr "Ungroup"
-
-msgid "workspace.shape.menu.union"
-msgstr "Union"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.unlock"
-msgstr "Unlock"
-
-#: 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
-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
-msgid "workspace.shape.menu.update-main"
-msgstr "Update main component"
-
-msgid "workspace.sidebar.collapse"
-msgstr "Collapse sidebar"
-
-msgid "workspace.sidebar.expand"
-msgstr "Expand sidebar"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.sidebar.history"
-msgstr "History (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.sidebar.layers"
-msgstr "Layers"
-
-msgid "workspace.sidebar.layers.components"
-msgstr "Components"
-
-msgid "workspace.sidebar.layers.frames"
-msgstr "Boards"
-
-msgid "workspace.sidebar.layers.groups"
-msgstr "Groups"
-
-msgid "workspace.sidebar.layers.images"
-msgstr "Images"
-
-msgid "workspace.sidebar.layers.masks"
-msgstr "Masks"
-
-msgid "workspace.sidebar.layers.search"
-msgstr "Search layers"
-
-msgid "workspace.sidebar.layers.shapes"
-msgstr "Shapes"
-
-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
-msgid "workspace.sidebar.options.svg-attrs.title"
-msgstr "Imported SVG Attributes"
-
-#: 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 "Sitemap"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.assets"
-msgstr "Assets"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.color-palette"
-msgstr "Color Palette (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.comments"
-msgstr "Comments (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.curve"
-msgstr "Curve (%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 "Board (%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 "Move (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.path"
-msgstr "Path (%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 "Shortcuts (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.text"
-msgstr "Text (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-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"
-
-#, markdown
-msgid "workspace.top-bar.view-only"
-msgstr "**Inspecting code** (View Only)"
-
-#: 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
-msgid "workspace.undo.entry.delete"
-msgstr "Deleted %s"
-
-#: src/app/main/ui/workspace/sidebar/history.cljs
-msgid "workspace.undo.entry.modify"
-msgstr "Modified %s"
-
-#: src/app/main/ui/workspace/sidebar/history.cljs
-msgid "workspace.undo.entry.move"
-msgstr "Moved objects"
-
-msgid "workspace.undo.entry.multiple.circle"
-msgstr "circles"
-
-msgid "workspace.undo.entry.multiple.color"
-msgstr "color assets"
-
-msgid "workspace.undo.entry.multiple.component"
-msgstr "components"
-
-msgid "workspace.undo.entry.multiple.curve"
-msgstr "curves"
-
-msgid "workspace.undo.entry.multiple.frame"
-msgstr "board"
-
-msgid "workspace.undo.entry.multiple.group"
-msgstr "groups"
-
-msgid "workspace.undo.entry.multiple.media"
-msgstr "graphic assets"
-
-msgid "workspace.undo.entry.multiple.multiple"
-msgstr "objects"
-
-msgid "workspace.undo.entry.multiple.page"
-msgstr "pages"
-
-msgid "workspace.undo.entry.multiple.path"
-msgstr "paths"
-
-msgid "workspace.undo.entry.multiple.rect"
-msgstr "rectangles"
-
-msgid "workspace.undo.entry.multiple.shape"
-msgstr "shapes"
-
-msgid "workspace.undo.entry.multiple.text"
-msgstr "texts"
-
-msgid "workspace.undo.entry.multiple.typography"
-msgstr "typography assets"
-
-#: src/app/main/ui/workspace/sidebar/history.cljs
-msgid "workspace.undo.entry.new"
-msgstr "New %s"
-
-msgid "workspace.undo.entry.single.circle"
-msgstr "circle"
-
-msgid "workspace.undo.entry.single.color"
-msgstr "color asset"
-
-msgid "workspace.undo.entry.single.component"
-msgstr "component"
-
-msgid "workspace.undo.entry.single.curve"
-msgstr "curve"
-
-msgid "workspace.undo.entry.single.frame"
-msgstr "board"
-
-msgid "workspace.undo.entry.single.group"
-msgstr "group"
-
-msgid "workspace.undo.entry.single.image"
-msgstr "image"
-
-msgid "workspace.undo.entry.single.media"
-msgstr "graphic asset"
-
-msgid "workspace.undo.entry.single.multiple"
-msgstr "object"
-
-msgid "workspace.undo.entry.single.page"
-msgstr "page"
-
-msgid "workspace.undo.entry.single.path"
-msgstr "path"
-
-msgid "workspace.undo.entry.single.rect"
-msgstr "rectangle"
-
-msgid "workspace.undo.entry.single.shape"
-msgstr "shape"
-
-msgid "workspace.undo.entry.single.text"
-msgstr "text"
-
-msgid "workspace.undo.entry.single.typography"
-msgstr "typography asset"
-
-#: 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
-msgid "workspace.undo.title"
-msgstr "History"
-
-#: src/app/main/data/workspace/libraries.cljs
-msgid "workspace.updates.dismiss"
-msgstr "Dismiss"
-
-#: src/app/main/data/workspace/libraries.cljs
-msgid "workspace.updates.more-info"
-msgstr "More info"
-
-#: 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
-msgid "workspace.updates.update"
-msgstr "Update"
-
-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"
-
+#: src/app/main/ui/workspace/plugins.cljs:58
msgid "workspace.plugins.button-open"
msgstr "Open"
+#: src/app/main/ui/workspace/plugins.cljs:180
+#, markdown
+msgid "workspace.plugins.discover"
+msgstr "Discover [more plugins](%s)"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "No plugins installed yet"
+
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.error.manifest"
+msgstr "The plugin manifest is incorrect."
-msgid "workspace.plugins.menu.title"
-msgstr "Plugins"
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Install"
-msgid "workspace.toolbar.plugins"
-msgstr "Plugins (%s)"
+#: src/app/main/ui/workspace/plugins.cljs:196
+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"
-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."
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "Plugins"
+#: src/app/main/ui/workspace/plugins.cljs:251
msgid "workspace.plugins.permissions.content-read"
msgstr "Read the content of files that users have access to."
+#: src/app/main/ui/workspace/plugins.cljs:245
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."
+#: src/app/main/ui/workspace/plugins.cljs:274
+msgid "workspace.plugins.permissions.disclaimer"
+msgstr "Please note that this plugin is created by an external party, so ensure you trust it before granting access. Your data privacy and security are important to us. If you have any concerns, please contact support."
+#: src/app/main/ui/workspace/plugins.cljs:271
msgid "workspace.plugins.permissions.library-read"
msgstr "Read your libraries and assets."
+#: src/app/main/ui/workspace/plugins.cljs:265
msgid "workspace.plugins.permissions.library-write"
msgstr "Read and modify your libraries and assets."
+msgid "workspace.plugins.permissions.comment-read"
+msgstr "Read your comments and replies."
+
+msgid "workspace.plugins.permissions.comment-write"
+msgstr "Read and modify your comments and reply in your name."
+
+msgid "workspace.plugins.permissions.allow-download"
+msgstr "Start file downloads."
+
+#: src/app/main/ui/workspace/plugins.cljs:236
+msgid "workspace.plugins.permissions.title"
+msgstr "'%s' PLUGIN WANTS ACCESS TO:"
+
+#: src/app/main/ui/workspace/plugins.cljs:258
+msgid "workspace.plugins.permissions.user-read"
+msgstr "Read the profile information of the current user."
+
+msgid "workspace.plugins.permissions-update.title"
+msgstr "UPDATE THIS PLUGIN"
+
+msgid "workspace.plugins.permissions-update.warning"
+msgstr "The plugin has been modified since you last opened it. It now also wants to access:"
+
+msgid "workspace.plugins.try-out.title"
+msgstr "'%s' PLUGIN IS INSTALLED FOR YOUR USER!"
+
+msgid "workspace.plugins.try-out.message"
+msgstr "Want to take a look? It will open in a new draft for your current team. (If not, you can always find it in the installed plugins of any file.)"
+
+msgid "workspace.plugins.try-out.cancel"
+msgstr "NOT NOW"
+
+msgid "workspace.plugins.try-out.try"
+msgstr "TRY PLUGIN"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Plugins List"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+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:160
+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:193
+msgid "workspace.shape.menu.back"
+msgstr "Send to back"
+
+#: 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: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:275
+msgid "workspace.shape.menu.create-artboard-from-selection"
+msgstr "Selection to board"
+
+#: 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:142
+msgid "workspace.shape.menu.cut"
+msgstr "Cut"
+
+#: src/app/main/ui/workspace/context_menu.cljs:486
+msgid "workspace.shape.menu.delete"
+msgstr "Delete"
+
+#: 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/assets/common.cljs:432
+msgid "workspace.shape.menu.detach-instance"
+msgstr "Detach instance"
+
+#: 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:148
+msgid "workspace.shape.menu.duplicate"
+msgstr "Duplicate"
+
+#: 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:208
+msgid "workspace.shape.menu.flip-horizontal"
+msgstr "Flip horizontal"
+
+#: 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:394
+msgid "workspace.shape.menu.flow-start"
+msgstr "Flow start"
+
+#: 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: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:261
+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
+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
+msgid "workspace.shape.menu.lock"
+msgstr "Lock"
+
+#: src/app/main/ui/workspace/context_menu.cljs:266
+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
+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
+msgid "workspace.shape.menu.remove-flex"
+msgstr "Remove flex layout"
+
+#: 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/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:174
+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
+msgid "workspace.shape.menu.show"
+msgstr "Show"
+
+#: 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/assets/common.cljs:442, src/app/main/ui/workspace/sidebar/assets/components.cljs:582
+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
+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
+msgid "workspace.shape.menu.unlock"
+msgstr "Unlock"
+
+#: 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/assets/common.cljs:445
+msgid "workspace.shape.menu.update-main"
+msgstr "Update main component"
+
+#: src/app/main/ui/components/tab_container.cljs:50, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Collapse sidebar"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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
+msgid "workspace.sidebar.history"
+msgstr "History (%s)"
+
+#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:77, src/app/main/ui/workspace/sidebar.cljs:95
+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
+msgid "workspace.sidebar.options.svg-attrs.title"
+msgstr "Imported SVG Attributes"
+
+#: 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 "Sitemap"
+
+#: src/app/main/ui/workspace/sidebar.cljs:113
+msgid "workspace.toolbar.assets"
+msgstr "Assets"
+
+#: 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/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/top_toolbar.cljs:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Curve (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Ellipse (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Board (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Image (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Move (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Path (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:201, src/app/main/ui/workspace/top_toolbar.cljs:202
+msgid "workspace.toolbar.plugins"
+msgstr "Plugins (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+msgid "workspace.toolbar.text"
+msgstr "Text (%s)"
+
+#: 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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+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.plugins.discover"
-msgstr ""
-"Discover [more plugins](%s)"
+msgid "workspace.top-bar.view-only"
+msgstr "**Inspecting code** (View Only)"
+
+#: 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:147
+msgid "workspace.undo.entry.delete"
+msgstr "Deleted %s"
+
+#: 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: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: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:149
+msgid "workspace.undo.entry.unknown"
+msgstr "Operation over %s"
+
+#: src/app/main/ui/workspace/sidebar/history.cljs:335
+msgid "workspace.undo.title"
+msgstr "History"
+
+#: src/app/main/data/workspace/libraries.cljs:1097
+msgid "workspace.updates.dismiss"
+msgstr "Dismiss"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "More info"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "There are updates in shared libraries"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+msgid "workspace.updates.update"
+msgstr "Update"
+
+#, unused
+msgid "workspace.viewport.click-to-close-path"
+msgstr "Click to close the path"
diff --git a/frontend/translations/es.po b/frontend/translations/es.po
index 72d891e8a4..7400fd0b9c 100644
--- a/frontend/translations/es.po
+++ b/frontend/translations/es.po
@@ -1,523 +1,556 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-04-26 07:03+0000\n"
-"Last-Translator: Alejandro Alonso \n"
-"Language-Team: Spanish "
-" \n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
+"Last-Translator: Anonymous \n"
+"Language-Team: Spanish \n"
"Language: es\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\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "¿Tienes ya una cuenta?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Comprueba tu correo"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "¿Olvidaste tu contraseña?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nombre completo"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
msgid "auth.login-account-title"
msgstr "Entrar en mi cuenta"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Inicia sesión aquí."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Entrar"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
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:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
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 "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 "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
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Introduce la nueva contraseña"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-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:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Contraseña"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "8 caracteres como mínimo"
+#: src/app/main/ui/auth/register.cljs:291
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:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "¿Olvidaste tu contraseña?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Cambiar tu contraseña"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:247
+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:246
msgid "auth.register-account-title"
msgstr "Tu nombre"
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
+msgid "auth.register-submit"
+msgstr "Crear una cuenta"
+
+#: src/app/main/ui/auth/register.cljs:123
+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:121
+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:156
+#, 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:283, 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:268
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:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Generar nuevo token"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nunca"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Pueden incluir components, gráficos, colores y/o tipografias."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportar librerias compartidas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Usar los recursos como objetos básicos"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Incluir librerias compartidas dentro de las librerias del fichero"
+#: src/app/main/ui/export.cljs:421
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 ""
@@ -527,6 +560,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 ""
@@ -537,10 +571,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 ""
@@ -551,1526 +586,1755 @@ msgstr ""
"[Transfonter](https://transfonter.org/) para generar fuentes web y corregir "
"posibles errores."
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importar archivos Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Hubo un problema importando el fichero. No ha podido ser importado."
+#: src/app/main/ui/dashboard/import.cljs:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Algunos ficheros contenían objetos erroneos que no han sido importados."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Procesando colores"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Procesando componentes"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Procesando media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Procesando página: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Procesando tipografías"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Enviando datos al servidor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Enviando fichero: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "¡Contraseña guardada!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Información del equipo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Integrantes del equipo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Proyectos del equipo"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Actualizar opciones"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Activo"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Cuando se active este webhook se enviarán detalles del evento"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Tipo de contenido"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Crear webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook creado con éxito."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Pulsa el botón \"Crear webhook\" para añadir uno."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "Correo"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:287
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:281
+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:700
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Proveedor de autenticación no configurado."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Este correo ya está validado."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Por favor, escribe un email válido"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "El correo de confirmación debe coincidir"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Caracteristica no soportada: '%s'."
-#: src/app/main/errors.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/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
+#, unused
+msgid "errors.field-max-length"
+msgstr "Debe contener como máximo 1 caracter."
+
+#, unused
+msgid "errors.field-min-length"
+msgstr "Debe contener como mínimo 1 caracter."
+
+#: 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
+#, unused
+msgid "errors.field-not-all-whitespace"
+msgstr "Debe contener algún carácter diferente de espacio."
+
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Por favor, escribe un email válido"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "El correo de confirmación debe coincidir"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "El código de recuperación no es válido."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Invitación inválida"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "La autheticacion via LDAP esta deshabilitada."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "La contraseña de confirmación debe coincidir"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "La contraseña debe tener 8 caracteres como mínimo"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Datos inválidos en el portapapeles"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "El registro está actualmente desactivado."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "El fichero tiene un número de versión incompatible"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Error de conexion, la url no es alcanzable"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "La URL no pasa la validación."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Hubo un problema en el último envío."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Error en la validación SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Timeout"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Error inesperado al validar"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Estado inesperado %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "El email o la contraseña son incorrectos."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Descripción"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Comunidad de Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Asunto"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Correo electrónico"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Ir a X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Cuenta de X para soporte"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Más información sobre la inspección"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Código"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Círculo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Componente"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curva"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Mesa de trabajo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grupo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Imagen"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Seleccionado"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Trazado"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectángulo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administración"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Cancelar"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirmar contraseña"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
msgid "labels.copy-invitation-link"
msgstr "Copiar enlace"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/static.cljs:54
+msgid "labels.copyright"
+msgstr "Kaleidos @2024"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Eliminar comentario"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Eliminar hilo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+msgid "labels.developer"
+msgstr "Desarrollo"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Edición"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Expirada"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exportar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
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:39
msgid "labels.feedback-sent"
msgstr "Opinión enviada"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "CEO o Fundador"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Volver"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Invitaciones"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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/auth/verify_token.cljs:97, src/app/main/ui/dashboard/grid.cljs:102, src/app/main/ui/dashboard/grid.cljs:122, src/app/main/ui/dashboard/import.cljs:272, src/app/main/ui/dashboard/placeholder.cljs:45, src/app/main/ui/export.cljs:323, src/app/main/ui/viewer.cljs:637, src/app/main/ui/workspace.cljs:127
+msgid "labels.loading"
+msgstr "Cargando…"
+
+#: src/app/main/ui/viewer/header.cljs:209
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/static.cljs:48, src/app/main/ui/static.cljs:120
+msgid "labels.login"
+msgstr "Entrar"
+
+#: 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:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Integrantes"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "No hay invitaciones pendientes."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, 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
+#, unused
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:269
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:1116
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:1111
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
+#, unused
+msgid "labels.ok"
+msgstr "Ok"
+
+#: src/app/main/ui/settings/password.cljs:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Otra (especifica)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Otra"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "Diseño de Producto o UX"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Product Managment"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Reintentar"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Selecciona una opción"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Enviar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Enviando…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Configuración"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Estudiante o profesorado"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Líder de equipo"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+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:108
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…"
-msgid "labels.loading"
-msgstr "Cargando…"
-
+#: 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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Visualizador"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Elegir imagen"
+#, unused
msgid "media.gradient"
msgstr "Gradiente"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
msgid "media.keep-aspect-ratio"
msgstr "Mantener la proporción"
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Cargando imagen…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radial"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Sólido"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
msgid "modals.change-email.submit"
msgstr "Cambiar correo"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Generar access token"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Crear webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Crear webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Payload URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Eliminar conversación"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Eliminando miembro"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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,3349 +2344,3785 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Borrar webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "¿Seguro que quieres borrar este webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Borrando webhook"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Modificar webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Modificar webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Enviar invitacion"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "¿Seguro que quieres abandonar el equipo %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Transferir propiedad"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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/ui/static.cljs:271
+msgid "not-found.desc-message.doesnt-exist"
+msgstr "Esta página no existe"
+
+#: src/app/main/ui/static.cljs:270
+msgid "not-found.desc-message.error"
+msgstr "Error 404"
+
+#: src/app/main/ui/static.cljs:121
+msgid "not-found.login.free"
+msgstr ""
+"Penpot es la herramienta de diseño libre y de código abierto para la "
+"colaboración entre diseño y código"
+
+#: src/app/main/ui/auth/recovery_request.cljs:114
+msgid "not-found.login.sent-recovery"
+msgstr "Hemos enviado un email de recuperación a"
+
+#: src/app/main/ui/auth/recovery_request.cljs:116
+msgid "not-found.login.sent-recovery-check"
+msgstr "Revisa tu correo y haz clic en el enlace para crear una nueva contraseña."
+
+#: src/app/main/ui/static.cljs:133
+msgid "not-found.login.signup-free"
+msgstr "Registrate gratis"
+
+#: src/app/main/ui/static.cljs:134
+msgid "not-found.login.start-using"
+msgstr "¡Y comienza a usar Penpot en segundos!"
+
+#: src/app/main/ui/static.cljs:56
+msgid "not-found.made-with-love"
+msgstr "Hecho con AMOR y Software Libre"
+
+#: src/app/main/ui/static.cljs:250
+msgid "not-found.no-permission.already-requested.file"
+msgstr "Ya has solicitado acceso a este archivo."
+
+#: src/app/main/ui/static.cljs:250
+msgid "not-found.no-permission.already-requested.or-others.file"
+msgstr ""
+"Ya has solicitado acceso a este archivo o a otros archivos o proyectos del "
+"mismo equipo."
+
+#: src/app/main/ui/static.cljs:253
+msgid "not-found.no-permission.already-requested.or-others.project"
+msgstr ""
+"Ya has solicitado acceso a este proyecto o a otros proyectos o archivos del "
+"mismo equipo."
+
+#: src/app/main/ui/static.cljs:253
+msgid "not-found.no-permission.already-requested.project"
+msgstr "Ya has solicitado acceso a este proyecto."
+
+#: src/app/main/ui/static.cljs:259, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.ask"
+msgstr "SOLICITAR ACCESO"
+
+#: src/app/main/ui/static.cljs:256
+msgid "not-found.no-permission.done.remember"
+msgstr "Recuerda que, si el propietario la aprueba, entrarás en el equipo."
+
+#: src/app/main/ui/static.cljs:256
+msgid "not-found.no-permission.done.success"
+msgstr "¡Tu solicitud se ha enviado correctamente!"
+
+#: src/app/main/ui/static.cljs:259
+msgid "not-found.no-permission.file"
+msgstr "No tienes permiso para acceder a este archivo."
+
+#: src/app/main/ui/static.cljs:43, src/app/main/ui/static.cljs:247, src/app/main/ui/static.cljs:250, src/app/main/ui/static.cljs:253, src/app/main/ui/static.cljs:256, src/app/main/ui/static.cljs:259, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.go-dashboard"
+msgstr "Ir a tu Penpot"
+
+#: src/app/main/ui/static.cljs:259, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.if-approves"
+msgstr "Si el propietario lo aprueba, te invitará al equipo."
+
+#: src/app/main/ui/static.cljs:217, src/app/main/ui/static.cljs:222
+msgid "not-found.no-permission.penpot-file"
+msgstr "Archivo de Penpot"
+
+#: src/app/main/ui/static.cljs:247, src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.project"
+msgstr "No tienes permiso para acceder a este proyecto."
+
+#: src/app/main/ui/static.cljs:216, src/app/main/ui/static.cljs:220
+msgid "not-found.no-permission.project-name"
+msgstr "PROYECTO"
+
+#: src/app/main/ui/static.cljs:259
+msgid "not-found.no-permission.you-can-ask.file"
+msgstr "Para acceder a este archivo, puedes pedir permiso al propietario del equipo."
+
+#: src/app/main/ui/static.cljs:262
+msgid "not-found.no-permission.you-can-ask.project"
+msgstr ""
+"Para acceder a este proyecto, puedes pedir permiso al propietario del "
+"equipo."
+
+#: src/app/main/data/common.cljs:85
+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/data/common.cljs:76
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
+#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Perfil guardado correctamente!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "¡Te damos la bienvenida a Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Continuar creando equipo"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Comenzar sin equipo"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "¡Empecemos!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Buscar una alternativa a Figma, XD, etc."
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Estoy echando un vistazo"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Averiguar si Penpot es una buena opción para mi equipo"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Probar antes de self-hosting"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Generando código a partir de diseños"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Creando sistemas de diseño"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototipado"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Diseñando el UX/UI de una aplicación"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Wireframing"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "¿Para qué utilizarás Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "¿Qué te ha traído a Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+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:115
+msgid "onboarding.questions.step1.title"
+msgstr "Ayúdanos a conocerte"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "¿Cuál de estas herramientas utilizas más?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "¿Qué tipo de trabajo haces?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "¿Cuál es tu puesto?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "¿Cuál es el tamaño de tu empresa?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Háblanos de tu trabajo"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "¿Por dónde te apetecería empezar?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "¿Cómo nos has descubierto?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Soy autónomo"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Más de 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Estoy trabajando en un proyecto personal"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Educación"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Personal"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Trabajo"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Crea un equipo"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Archivos y proyectos ilimitados"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Edición multijugador"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Gestión de roles"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Sin límite de integrantes"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "¡100% gratis!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Perfil - Access tokens"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Danos tu opinión - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Configuración - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Contraseña - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Perfil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Invitaciones - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Integrantes - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Configuración - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "No se encuentra el tablero."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Pantalla completa"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Mapa del sitio"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Duplicar"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:525
+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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Agrupar"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:521
+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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Renombrar"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Editar"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Archivo"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Preferencias"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Editar rejilla"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
msgid "workspace.layout_grid.editor.options.exit"
msgstr "Salir"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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
-msgid "workspace.shape.menu.add-flex"
-msgstr "Añadir flex layout"
-
-msgid "workspace.shape.menu.add-grid"
-msgstr "Añadir grid layout"
-
-#: 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
-msgid "workspace.shape.menu.backward"
-msgstr "Enviar atrás"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.copy"
-msgstr "Copiar"
-
-msgid "workspace.shape.menu.create-annotation"
-msgstr "Crear una nota"
-
-#: 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
-msgid "workspace.shape.menu.create-component"
-msgstr "Crear componente"
-
-msgid "workspace.shape.menu.create-multiple-components"
-msgstr "Crear múltiples componentes"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.cut"
-msgstr "Cortar"
-
-#: 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 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
-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
-msgid "workspace.shape.menu.detach-instances-in-bulk"
-msgstr "Desacoplar instancias"
-
-msgid "workspace.shape.menu.difference"
-msgstr "Diferencia"
-
-#: 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 "Exclusión"
-
-msgid "workspace.shape.menu.flatten"
-msgstr "Aplanar"
-
-#: 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
-msgid "workspace.shape.menu.flip-vertical"
-msgstr "Voltear vertical"
-
-#: 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
-msgid "workspace.shape.menu.forward"
-msgstr "Mover hacia delante"
-
-#: 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
-msgid "workspace.shape.menu.go-main"
-msgstr "Ir al archivo del 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 Interfaz"
-
-msgid "workspace.shape.menu.intersection"
-msgstr "Intersección"
-
-#: 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 "Crear máscara"
-
-#: src/app/main/ui/workspace/context_menu.cljs,
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.paste"
-msgstr "Pegar"
-
-msgid "workspace.shape.menu.path"
-msgstr "Ruta"
-
-#: 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
-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
-msgid "workspace.shape.menu.reset-overrides"
-msgstr "Deshacer modificaciones"
-
-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 "Seleccionar capa"
-
-#: 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 "Ver en el panel de recursos"
-
-#: 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"
-
-msgid "workspace.shape.menu.thumbnail-remove"
-msgstr "Quitar miniatura"
-
-msgid "workspace.shape.menu.thumbnail-set"
-msgstr "Poner como miniatura"
-
-msgid "workspace.shape.menu.transform-to-path"
-msgstr "Convertir en vector"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.ungroup"
-msgstr "Desagrupar"
-
-msgid "workspace.shape.menu.union"
-msgstr "Unión"
-
-#: 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 "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
-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
-msgid "workspace.shape.menu.update-main"
-msgstr "Actualizar componente principal"
-
-msgid "workspace.sidebar.collapse"
-msgstr "Cerrar barra lateral"
-
-msgid "workspace.sidebar.expand"
-msgstr "Abrir barra lateral"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.sidebar.history"
-msgstr "Historial (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.sidebar.layers"
-msgstr "Capas"
-
-msgid "workspace.sidebar.layers.components"
-msgstr "Componentes"
-
-msgid "workspace.sidebar.layers.frames"
-msgstr "Paneles"
-
-msgid "workspace.sidebar.layers.groups"
-msgstr "Grupos"
-
-msgid "workspace.sidebar.layers.images"
-msgstr "Imágenes"
-
-msgid "workspace.sidebar.layers.masks"
-msgstr "Máscaras"
-
-msgid "workspace.sidebar.layers.search"
-msgstr "Buscar capas"
-
-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 "Atributos del SVG Importado"
-
-#: 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 del sitio"
-
-#: 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 colores (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.comments"
-msgstr "Comentarios (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.curve"
-msgstr "Curva (%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 "Tablero (%s)"
-
-#: src/app/main/ui/workspace/left_toolbar.cljs
-msgid "workspace.toolbar.image"
-msgstr "Imagen (%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 "Ruta (%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 "Atajos de teclado (%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 "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"
-
-#, markdown
-msgid "workspace.top-bar.view-only"
-msgstr "**Inspeccionando código** (View only)"
-
-#: 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
-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 "Objetos movidos"
-
-msgid "workspace.undo.entry.multiple.circle"
-msgstr "círculos"
-
-msgid "workspace.undo.entry.multiple.color"
-msgstr "colores"
-
-msgid "workspace.undo.entry.multiple.component"
-msgstr "componentes"
-
-msgid "workspace.undo.entry.multiple.curve"
-msgstr "curvas"
-
-msgid "workspace.undo.entry.multiple.frame"
-msgstr "mesa de trabajo"
-
-msgid "workspace.undo.entry.multiple.group"
-msgstr "grupos"
-
-msgid "workspace.undo.entry.multiple.media"
-msgstr "gráficos"
-
-msgid "workspace.undo.entry.multiple.multiple"
-msgstr "objetos"
-
-msgid "workspace.undo.entry.multiple.page"
-msgstr "páginas"
-
-msgid "workspace.undo.entry.multiple.path"
-msgstr "trazos"
-
-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 "tipografías"
-
-#: src/app/main/ui/workspace/sidebar/history.cljs
-msgid "workspace.undo.entry.new"
-msgstr "Nuevo %s"
-
-msgid "workspace.undo.entry.single.circle"
-msgstr "círculo"
-
-msgid "workspace.undo.entry.single.color"
-msgstr "color"
-
-msgid "workspace.undo.entry.single.component"
-msgstr "componente"
-
-msgid "workspace.undo.entry.single.curve"
-msgstr "curva"
-
-msgid "workspace.undo.entry.single.frame"
-msgstr "mesa de trabajo"
-
-msgid "workspace.undo.entry.single.group"
-msgstr "grupo"
-
-msgid "workspace.undo.entry.single.image"
-msgstr "imagen"
-
-msgid "workspace.undo.entry.single.media"
-msgstr "gráfico"
-
-msgid "workspace.undo.entry.single.multiple"
-msgstr "objeto"
-
-msgid "workspace.undo.entry.single.page"
-msgstr "página"
-
-msgid "workspace.undo.entry.single.path"
-msgstr "trazo"
-
-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 "tipografía"
-
-#: 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
-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 "Más información"
-
-#: 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
-msgid "workspace.updates.update"
-msgstr "Actualizar"
-
-msgid "workspace.viewport.click-to-close-path"
-msgstr "Pulsar para cerrar la ruta"
-
-msgid "workspace.plugins.title"
-msgstr "Extensiones"
-
-msgid "workspace.toolbar.plugins"
-msgstr "Extensiones (%s)"
-
-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"
-
+#: src/app/main/ui/workspace/plugins.cljs:58
msgid "workspace.plugins.button-open"
msgstr "Abrir"
+#: src/app/main/ui/workspace/plugins.cljs:180
+#, markdown
+msgid "workspace.plugins.discover"
+msgstr "Descubre [más extensiones](%s)"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "No se encuentran extensiones"
+
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.error.manifest"
+msgstr "El manifiesto de la expansión es incorrecto."
-msgid "workspace.plugins.menu.title"
-msgstr "Extensiones"
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Instalar"
+#: src/app/main/ui/workspace/plugins.cljs:196
+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"
-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."
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "Extensiones"
+#: src/app/main/ui/workspace/plugins.cljs:251
msgid "workspace.plugins.permissions.content-read"
msgstr "Leer el contenido de sus archivos."
+#: src/app/main/ui/workspace/plugins.cljs:245
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."
+#: src/app/main/ui/workspace/plugins.cljs:274
+msgid "workspace.plugins.permissions.disclaimer"
+msgstr "Ten en cuenta que las extensiones están desarrolladas por terceros, aseguraté que confías antes de conceder el permiso. Tu privacidad y seguridad es importante para nosotros. Si tienes cualquier duda, contacta con soporte."
+#: src/app/main/ui/workspace/plugins.cljs:271
msgid "workspace.plugins.permissions.library-read"
msgstr "Leer la información de sus bibliotecas y recursos."
+#: src/app/main/ui/workspace/plugins.cljs:265
msgid "workspace.plugins.permissions.library-write"
msgstr "Leer y modificar la información de sus bibliotecas y recursos."
+msgid "workspace.plugins.permissions.comment-read"
+msgstr "Leer tus comentarios y respuestas."
+
+msgid "workspace.plugins.permissions.comment-write"
+msgstr "Leer y modificar tus comentarios y responder en tu nombre."
+
+msgid "workspace.plugins.permissions.allow-download"
+msgstr "Comenzar descargas de ficheros."
+
+#: src/app/main/ui/workspace/plugins.cljs:236
+msgid "workspace.plugins.permissions.title"
+msgstr "LA EXTENSIÓN '%s' SOLICITA PERMISO PARA ACCEDER:"
+
+#: src/app/main/ui/workspace/plugins.cljs:258
+msgid "workspace.plugins.permissions.user-read"
+msgstr "Leer la información del usuario actual."
+
+msgid "workspace.plugins.permissions-update.title"
+msgstr "EXTENSIÓN ACTUALIZADA"
+
+msgid "workspace.plugins.permissions-update.warning"
+msgstr "La extensión ha cambiado desde la última vez que la abriste. Ahora quiere acceder a:"
+
+msgid "workspace.plugins.try-out.title"
+msgstr "¡LA EXTENSIÓN '%s' HA SIDO INSTALADA PARA TU USUARIO!"
+
+msgid "workspace.plugins.try-out.message"
+msgstr "¿Quieres echar un vistazo?. Crearemos un nuevo borrador en tu equipo actual. (Si no, puedes encontrar los plugins instalados en cualquier fichero.)"
+
+msgid "workspace.plugins.try-out.cancel"
+msgstr "AHORA NO"
+
+msgid "workspace.plugins.try-out.try"
+msgstr "PROBAR PLUGIN"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Lista de extensiones"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+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:160
+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:193
+msgid "workspace.shape.menu.back"
+msgstr "Enviar al fondo"
+
+#: 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: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:275
+msgid "workspace.shape.menu.create-artboard-from-selection"
+msgstr "Tablero de selección"
+
+#: 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:142
+msgid "workspace.shape.menu.cut"
+msgstr "Cortar"
+
+#: 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 inicio de flujo"
+
+#: 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/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: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 "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
+msgid "workspace.shape.menu.flip-horizontal"
+msgstr "Voltear horizontal"
+
+#: 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:394
+msgid "workspace.shape.menu.flow-start"
+msgstr "Inicio de flujo"
+
+#: 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: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
+#, unused
+msgid "workspace.shape.menu.go-main"
+msgstr "Ir al archivo del 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 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
+msgid "workspace.shape.menu.lock"
+msgstr "Bloquear"
+
+#: 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: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:432
+msgid "workspace.shape.menu.remove-flex"
+msgstr "Eliminar flex layout"
+
+#: 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/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:174
+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
+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 "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:582
+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
+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
+msgid "workspace.shape.menu.unlock"
+msgstr "Desbloquear"
+
+#: 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/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/assets/common.cljs:445
+msgid "workspace.shape.menu.update-main"
+msgstr "Actualizar componente principal"
+
+#: src/app/main/ui/components/tab_container.cljs:50, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Cerrar barra lateral"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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
+msgid "workspace.sidebar.history"
+msgstr "Historial (%s)"
+
+#: src/app/main/ui/workspace/sidebar/layers.cljs:522, src/app/main/ui/workspace/sidebar.cljs:77, src/app/main/ui/workspace/sidebar.cljs:95
+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
+msgid "workspace.sidebar.options.svg-attrs.title"
+msgstr "Atributos del SVG Importado"
+
+#: 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 del sitio"
+
+#: src/app/main/ui/workspace/sidebar.cljs:113
+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 colores (%s)"
+
+#: 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/top_toolbar.cljs:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Curva (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Elipse (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Tablero (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Imagen (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Mover (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Ruta (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:201, src/app/main/ui/workspace/top_toolbar.cljs:202
+msgid "workspace.toolbar.plugins"
+msgstr "Extensiones (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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 "Tipografías (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+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.plugins.discover"
-msgstr ""
-"Descubre [más extensiones](%s)"
+msgid "workspace.top-bar.view-only"
+msgstr "**Inspeccionando código** (View only)"
+
+#: 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:147
+msgid "workspace.undo.entry.delete"
+msgstr "%s eliminado"
+
+#: 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 "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
+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
+msgid "workspace.undo.entry.unknown"
+msgstr "Operación 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:1097
+msgid "workspace.updates.dismiss"
+msgstr "Ignorar"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "Más información"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "Hay actualizaciones en bibliotecas compartidas"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+msgid "workspace.updates.update"
+msgstr "Actualizar"
+
+#, unused
+msgid "workspace.viewport.click-to-close-path"
+msgstr "Pulsar para cerrar la ruta"
+
+msgid "errors.maximum-invitations-by-request-reached"
+msgstr "Se ha alcanzado el número máximo (%s) de correos electrónicos que se pueden invitar en una sola solicitud"
diff --git a/frontend/translations/es_419.po b/frontend/translations/es_419.po
index a89a3a2638..6e15008fde 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,373 +11,392 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "¿Ya tienes una cuenta?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "¿Has olvidado tu contraseña?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nombre completo"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Inicie sesión aquí"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Iniciar sesión"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
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 "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 "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
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Escribe una nueva contraseña"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "El token de recuperación no es válido."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Contraseña"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Al menos 8 carácteres"
+#: src/app/main/ui/auth/register.cljs:291
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:82
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:95
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:94
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:71
msgid "auth.recovery-submit"
msgstr "cambia tu contraseña"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Crea una cuenta"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Generar nuevo token"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nunca"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -385,153 +404,186 @@ 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Puede incluir componentes, gráficos, colores y/o tipografías."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportar bibliotecas compartidas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Trate los activos de biblioteca compartidos como objetos básicos"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Incluir recursos de biblioteca compartidos en bibliotecas de archivos"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Procesamiento de tipografías"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Subiendo datos al servidor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Subiendo archivo: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "Su dirección de correo electrónico se ha actualizado correctamente"
+
+#: 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
+#, unused
+msgid "errors.field-max-length"
+msgstr "El nombre debe contener como máximo 1 caracter."
+
+#: 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
+#, unused
+msgid "errors.field-not-all-whitespace"
+msgstr "El nombre debe contener algún carácter distinto al del espacio."
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "El token de recuperación no es válido."
diff --git a/frontend/translations/eu.po b/frontend/translations/eu.po
index c47aad698a..6a023449f3 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,420 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Baduzu kontua?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Pasahitza ahaztu duzu?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Izen osoa"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Sartu"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Sartu"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Sartu Pasahitz berria"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Berreskuratzeko kodea ez da zuzena."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Pasahitza"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Gutxienez 8 karaktere"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Pribatutasun politika"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Berreskuratu pasahitza"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Pasahitza ahaztu duzu?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Aldatu pasahitza"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Sortu kontua"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Osagaiak, grafikoak, koloreak edo/eta tipografiak izan ditzakete."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Esportatu partekatutako liburutegiak"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Erabili baliabideak oinarrizko objektu bezala"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr "Zure fitxategia baliabide guztiak bere baitan dituela esportatuko da."
+#: src/app/main/ui/export.cljs:443
msgid "dashboard.export.options.merge.title"
msgstr "Sartu partekatutako liburutegiak fitxategiaren liburutegietan"
+#: src/app/main/ui/export.cljs:421
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 +433,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 +444,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 +458,4508 @@ msgstr ""
"dezakezu. Gainera, weberako letra-tipoak sortzeko "
"[Transfonter](https://transfonter.org/) erabiltzea gomendatzen dugu. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Inportatu Penpot fitxategiak"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Errorea gertatu da fitxategia inportatzean. Ezin izan da inportatu."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "%s fitxategi ondo inportatu dira."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Fitxategi batzuk inportatu ez diren objektu akasdunak dituzte."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Koloreak prozesatzen"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Osagaiak prozesatzen"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Media prozesatzen"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "%s orrialdea prozesatzen"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Letra-tipoak prozesatzen"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Datuak zerbitzarira bidaltzen (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Fitxategia bidaltzen: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Pasahitza ondo gorde da!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Aldatu hizkuntza"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Taldearen informazioa"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Taldekideak"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Taldearen proiektuak"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Eguneratu aukerak"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Aktibo"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Webhook hau aktibatzen denean gertaeraren xehetasunak bidaliko dira"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Elementu mota"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Sortu webhooka"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhooka ondo sortu da."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Sakatu \"Sortu webhooka\" botoia bat gehitzeko."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "Eposta"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Saioa hasteko hornitzailea ez dago konfiguratuta."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Eposta helbide hori egiaztatuta dago."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Mesedez, idatzi eposta helbide zuzen bat"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Egiaztapenereko epostak bat etorri behar du aurrekoarekin"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Mesedez, idatzi eposta helbide zuzen bat"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Egiaztapenereko epostak bat etorri behar du aurrekoarekin"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Berreskuratzeko kodea ez da zuzena."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Gonbidapena ez da zuzena"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "LDAP bidez sartzea desgaituta dago."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Pasahitzaren egiaztapenak bat etorri behar du aurrekoarekin"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Pasahitzak gutxienez 8 karaktere izan behar ditu"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Erregistroa desgaituta dago."
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Tokena ez da zuzena"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Konexio errorea, URLa ezin da ireki"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URLak ez du balidazioa gainditu."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Errore bat gertatu da azken bidalketan."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Errorea gertatu da SSL balidazioan."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Denbora muga gainditu da"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Errore ezezaguna balidazioan"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
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:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Izena edo pasahitza ez dira zuzenak."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Deskribapena"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Penpoten forora joan"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot komunitatea"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Gaia"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Posta elektronikoa"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Xrera joan"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
msgid "feedback.twitter-subtitle1"
msgstr "Zure zalantza teknikoak erantzuteko kontua."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "Laguntzarako X kontua"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Informazio gehiago ikuskatzeari buruz"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kodea"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Borobila"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Osagaia"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Kurba"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Mahaigaina"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Taldea"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Irudia"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s aukeratuta"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Trazadura"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Laukia"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
msgid "labels.accept"
msgstr "Onartu"
+#: src/app/main/ui/dashboard/team.cljs:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Kudeaketa"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Guztia"
+#: src/app/main/ui/auth/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Zerbitzariaren errorea (Bad Gateway)"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Utzi"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Berretsi pasahitza"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Ezabatu iruzkina"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Ezabatu haria"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Edizioa"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Iraungita"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Esportatu"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Iritziak jasotzeko osagaia desgaituta dago"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Gonbidapenak"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Kideak"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Ez dago gonbidapenik."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "Sakatu 'Taldera gonbdiatu' taldekide gehiago izateko."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "Zain"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Berriz saiatu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Bidali"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Bidaltzen…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Bistarazlea"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhookak"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
msgid "modals.change-email.title"
msgstr "Aldatu zure posta elektronikoa"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Sortu webhooka"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Sortu webhooka"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Informazioaren URLa"
+#: src/app/main/ui/dashboard/team.cljs:871
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Ezabatu elkarrizketa"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Kidea ezabatzen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Taldekidea ezabatzen"
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Ezabatu webhooka"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Benetan webhook hau ezabatu egin nahi duzu?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Webhooka ezabatzen"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Aldatu webhooka"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Aldatu webhooka"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Bidali gonbidapena"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Benetan %s taldea utzi egin nahi duzu?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Eman jabetza"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Gonbidapena ondo bidali da"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Ongi etorri Penpotera!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:211
msgid "onboarding.team-modal.create-team"
msgstr "Sortu talde bat"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Mugarik gabeko fitxategi eta proiektu kopurua"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Jokalari anitzeko edizioa"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Rolen kudeaketa"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Partehartzaile muga gabe"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - Taldeentzako diseinu librea"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Eman zure iritzia - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Ezarpenak - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Pasahitza - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profila - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Gonbidapenak - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Kideak - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Ezarpenak - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Ez dago arbel hori."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Pantaila osoa"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Webgunearen mapa"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Bikoiztu"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Taldekatu"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Izena aldatu"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Editatu"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Fitxategia"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Hobespenak"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Itxi alboko barra"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Kurba (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elipsea (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Arbela (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Irudia (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Mugitu (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Bidea (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Baztertu"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 08838d22a7..aa95a9c841 100644
--- a/frontend/translations/fa.po
+++ b/frontend/translations/fa.po
@@ -1,392 +1,548 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
-"Last-Translator: Anonymous \n"
-"Language-Team: Persian \n"
+"PO-Revision-Date: 2024-08-05 19:09+0000\n"
+"Last-Translator: Nima K \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.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "از قبل حساب کاربری دارید؟"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "ایمیل خود را مرور کنید"
+
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr ""
"ایمیل خود را بررسی کنید و برای تأیید و شروع استفاده از Penpot روی لینک کلیک "
"کنید."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr ""
"این یک سرویس آزمایشی است، برای کار واقعی استفاده نکنید، پروژهها به صورت "
"دورهای پاک میشوند."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "کلمهعبور را فراموش کردهاید؟"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "نام کامل"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
-msgid "auth.login-here"
-msgstr "ورود از اینجا"
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "ورود به حسابِ من"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
+msgid "auth.login-here"
+msgstr "ورود از اینجا."
+
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "ورود"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr ""
+"Penpot یک ابزار طراحی و همکاری در کد نویسی است که رایگان و کد آن متن باز "
+"است."
+
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "گیتهاب"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "گیتلب"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "گوگل"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "یک رمزعبور جدید تایپ کنید"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "توکن بازیابی نامعتبر است."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "کلمهعبور با موفقیت تغییر یافت"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "پروفایل تأیید نشده است، لطفاً قبل از ادامه، پروفایل را تأیید کنید."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "لینک بازیابی رمزعبور به صندوق ورودی شما ارسال شد."
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "کلمهعبور"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "حداقل ۸ حرف"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "سیاست حفظ حریمخصوصی"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "بازیابی رمزعبور"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "ما یک ایمیل با دستورالعمل برای شما ارسال خواهیم کرد"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "رمزعبور را فراموش کردهاید؟"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "رمزعبور خود را تغییر دهید"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
msgid "auth.register"
msgstr "هنوز حسابی ندارید؟"
-#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "اطلاع دهید که شما را با چه نامی در ایمیل ها و حساب کاربری صدا کنیم."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "نام شما"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "ایجاد حسابکاربری"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"با اکانت رایگان پنپات، شما توانایی ایجاد تیم های نامحدود را برای همکاری با "
+"طراحان و برنامه نویسان روی پروژه های نامحدود دارید. "
+
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "ایجاد حساب"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "راه حل منبع-باز برای طراحی و نمونهسازی"
+#: src/app/main/ui/auth/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr ""
+"من با قوانین و مقررات این سرویس و چگونگی مراقبت از اطلاعات شخصی در این "
+"سرویس را قبول میکنم."
+
+#: src/app/main/ui/auth/register.cljs:283, 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 ""
+"با ایجاد اکانت جدید شما با تمامی مفاد terms of service (قوانین و مقررات "
+"استفاده از این سرویس و حقوق متقابل ما و شما) و مفاد privacy policy (چگونگی "
+"مراقبت از حریم شخصی شما توسط ما) موافقت میکنید."
+
+#: src/app/main/ui/auth/register.cljs:268
msgid "auth.verification-email-sent"
msgstr "ما یک ایمیل تأیید ارسال کردیم به"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+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 "تیم!"
+msgstr "تیم ایجاد کن!"
#: src/app/main/ui/dashboard/projects.cljs
+#, unused
msgid "dasboard.tutorial-hero.info"
-msgstr "در حالی که با این آموزش سرگرم میشوید، اصول اولیه را در Penpot بیاموزید."
+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
-#, 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/projects.cljs
+#, unused
+msgid "dasboard.walkthrough-hero.title"
+msgstr "گذری در رابط کاربریِ برنامه"
+
+#: src/app/main/ui/settings/access_tokens.cljs:104
+msgid "dashboard.access-tokens.copied-success"
+msgstr "توکن دسترسی با موفقیت کپی شد"
+
+#: src/app/main/ui/settings/access_tokens.cljs:191
+msgid "dashboard.access-tokens.create"
+msgstr "ایجاد توکن دسترسی جدید"
+
+#: src/app/main/ui/settings/access_tokens.cljs:65
+#, fuzzy
+msgid "dashboard.access-tokens.create.success"
+msgstr "توکن دسترسی با موفقیت ایجاد شد."
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
+msgid "dashboard.access-tokens.empty.add-one"
+msgstr "برای ایجاد توکن دسترسی جدید دکمه «ایجاد توکن دسترسی جدید» توکن را کلیک کنید."
+
+#: src/app/main/ui/settings/access_tokens.cljs:288
+msgid "dashboard.access-tokens.empty.no-access-tokens"
+msgstr "شما تا به حال هیچ توکن دسترسی نداشتید."
+
+#: src/app/main/ui/settings/access_tokens.cljs:136
+msgid "dashboard.access-tokens.expiration-180-days"
+msgstr "۱۸۰ روز"
+
+#: src/app/main/ui/settings/access_tokens.cljs:133
+msgid "dashboard.access-tokens.expiration-30-days"
+msgstr "۳۰ روز"
+
+#: src/app/main/ui/settings/access_tokens.cljs:134
+msgid "dashboard.access-tokens.expiration-60-days"
+msgstr "۶۰ روز"
+
+#: src/app/main/ui/settings/access_tokens.cljs:135
+msgid "dashboard.access-tokens.expiration-90-days"
+msgstr "۹۰ روز"
+
+#: src/app/main/ui/settings/access_tokens.cljs:132
+msgid "dashboard.access-tokens.expiration-never"
+msgstr "هیچ گاه (بدون تاریخ انقضا)"
+
+#: src/app/main/ui/settings/access_tokens.cljs:271
+msgid "dashboard.access-tokens.expired-on"
+msgstr "تاریخ انقضای توکن دسترسی %s بوده"
+
+#: src/app/main/ui/settings/access_tokens.cljs:272
+msgid "dashboard.access-tokens.expires-on"
+msgstr "تاریخ انقضا %s میباشد"
+
+#: src/app/main/ui/settings/access_tokens.cljs:270
+msgid "dashboard.access-tokens.no-expiration"
+msgstr "بدون تاریخ انقضا"
+
+#: src/app/main/ui/settings/access_tokens.cljs:186
+msgid "dashboard.access-tokens.personal"
+msgstr "توکنِ دسترسیِ شخصی"
+
+#: src/app/main/ui/settings/access_tokens.cljs:187
+msgid "dashboard.access-tokens.personal.description"
+msgstr ""
+"توکن های دسترسی شخصی میتوانند به عنوان جایگزینی به جای رمز عبور و نام "
+"کاربری باشند برای برنامه ها برای دسترسی به API درونی پنپات"
+
+#: src/app/main/ui/settings/access_tokens.cljs:143
+msgid "dashboard.access-tokens.token-will-expire"
+msgstr "توکن دسترسی تاریخ انقضایش در تاریخ %s تمام میشود"
+
+#: src/app/main/ui/settings/access_tokens.cljs:144
+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:72
msgid "dashboard.change-email"
msgstr "تغییر ایمیل"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
+#, 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)"
+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:202
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:110
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:181
msgid "dashboard.export-shapes.how-to"
msgstr ""
"میتوانید تنظیمات اکسپورت را از ویژگیهای طراحی (در پایین نوار کناری سمت "
"راست) به عناصر اضافه کنید."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:185
msgid "dashboard.export-shapes.how-to-link"
msgstr "اطلاعات نحوه تنظیم اکسپورت در پنپات."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:180
msgid "dashboard.export-shapes.no-elements"
msgstr "هیچ عنصری با تنظیمات اکسپورت وجود ندارد."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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)"
+msgstr "دانلود %s عدد فایل های استاندارد (.svg + .json)"
+#: src/app/main/ui/export.cljs:430
msgid "dashboard.export.detail"
msgstr "* ممکن است شامل کامپوننتها، گرافیک، رنگها و/یا تایپوگرافی باشد."
+#: src/app/main/ui/export.cljs:429
msgid "dashboard.export.explain"
msgstr ""
"یک یا چند فایلی که میخواهید اکسپورت کنید از کتابخانههای مشترک استفاده "
"میکنند. با داراییهای آنها چه میخواهید بکنید*؟"
+#: src/app/main/ui/export.cljs:438
msgid "dashboard.export.options.all.message"
msgstr ""
"فایلهای دارای کتابخانههای مشترک در اکسپورت گنجانده میشوند و پیوند خود را "
"حفظ میکنند."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "اکسپورت کتابخانههای مشترک"
+#: src/app/main/ui/export.cljs:440
msgid "dashboard.export.options.detach.message"
msgstr ""
"کتابخانههای مشترک در صادرات گنجانده نخواهند شد و هیچ دارایی به کتابخانه "
"اضافه نخواهد شد. "
+#: src/app/main/ui/export.cljs:441
msgid "dashboard.export.options.detach.title"
msgstr "داراییهای کتابخانه مشترک را به عنوان اشیاء اساسی در نظر بگیرید"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr ""
"فایل شما با تمام داراییهای خارجی که در کتابخانه فایل ادغام شدهاند اکسپورت "
"میشود."
+#: src/app/main/ui/export.cljs:443
msgid "dashboard.export.options.merge.title"
msgstr "داراییهای کتابخانه مشترک را در کتابخانههای فایل قرار دهید"
+#: src/app/main/ui/export.cljs:421
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 +551,8 @@ msgstr ""
"فرمتهای زیر بارگذاری کنید: **TTF، OTF و WOFF** (فقط یکی مورد نیاز خواهد "
"بود)."
+#: src/app/main/ui/dashboard/fonts.cljs:182
+#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
"شما فقط باید فونتهایی را که مالک آنها هستید یا مجوز استفاده از آنها را در "
@@ -402,2659 +560,2742 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "ایمپورت کردن فایلهای پنپات"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "مشکلی در ایمپورت کردن فایل وجود داشت. فایل ایمپورت نشد."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "فایلهای %s با موفقیت ایمپورت شد."
-#, fuzzy
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "برخی از فایلها حاوی آبجکتهای نامعتبر بودند که حذف شدهاند."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "در حال پردازش رنگها"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "در حال پردازش کامپوننتها"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "در حال پردازش رسانهها"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "در حال پردازش صفحه: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "در حال پردازش تایپوگرافیها"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "در حال آپلود اطلاعات روی سرور (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "در حال آپلود فایل: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "آدرس ایمیل شما با موفقیت بهروز شد"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "آدرس ایمیل شما با موفقیت تایید شد"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "رمزعبور با موفقیت ذخیره شد!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "زبان رابط کاربری را انتخاب کنید"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "اطلاعات تیم"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "اعضای تیم"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "پروژههای تیم"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "ایمیل"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "ارائه دهنده احراز هویت پیکربندی نشده است."
-#, fuzzy
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "ایمیل قبلا استفاده شده است"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
msgid "errors.email-already-validated"
msgstr "ایمیل قبلاً تأیید شده است."
+#, unused
msgid "errors.email-as-password"
msgstr "شما نمیتوانید از ایمیل خود به عنوان رمزعبور استفاده کنید"
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "ایمیل تأیید باید مطابقت داشته باشد"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "توکن بازیابی نامعتبر است."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "دعوت نامعتبر"
+#: src/app/main/ui/static.cljs:62
msgid "errors.invite-invalid.info"
msgstr "این دعوت ممکن است لغو یا منقضی شده باشد."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:90
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "رمزعبور تأیید باید مطابقت داشته باشد"
#: src/app/main/ui/settings/password.cljs
-#, fuzzy
+#, unused
msgid "errors.password-too-short"
msgstr "رمزعبور باید حداقل 8 کاراکتر باشد"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
msgid "errors.profile-blocked"
msgstr "پروفایل مسدود شده"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "ثبتنام در حال حاضر غیرفعال است."
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
msgid "errors.team-leave.insufficient-members"
msgstr "اعضای کافی برای ترک تیم وجود ندارد، احتمالاً میخواهید آن را حذف کنید."
-#, fuzzy
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
msgid "errors.team-leave.member-does-not-exists"
msgstr "عضوی که میخواهید اختصاص دهید وجود ندارد."
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
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:59
msgid "errors.unexpected-token"
msgstr "توکن ناشناخته"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "به نظر میرسد نامکاربری یا رمزعبور اشتباه است."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "رمزعبور قدیمی اشتباه است"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "شرح"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "به انجمن Penpot بروید"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:86
msgid "feedback.discourse-subtitle1"
msgstr ""
"ما خوشحالیم که شما اینجا هستید. اگر به کمک نیاز دارید، لطفا قبل از ارسال "
"پست جستجو کنید."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:85
msgid "feedback.discourse-title"
msgstr "انجمن Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "موضوع"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
msgid "feedback.subtitle"
msgstr ""
"لطفاً دلیل ایمیل خود را توضیح دهید و مشخص کنید که آیا یک مشکل، ایده یا شک "
"است. یکی از اعضای تیم ما در اسرع وقت پاسخ خواهد داد."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "ایمیل"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "به توییتر بروید"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:96
msgid "feedback.twitter-subtitle1"
msgstr "اینجا برای کمک به سوالات فنی شما."
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "حساب پشتیبانی در توییتر"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:100
msgid "inspect.tabs.code"
msgstr "کد"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "دایره"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "کامپوننت"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "منحنی"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "آرتبرد"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "گروه"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "تصویر"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s انتخاب شد"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "مسیر"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "مستطیل"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "متن"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "مدیر"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "همه"
+#: src/app/main/ui/auth/register.cljs:287
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:282
msgid "labels.bad-gateway.desc-message"
msgstr ""
"به نظر میرسد باید کمی صبر کنید و دوباره تلاش کنید; ما در حال انجام تعمیرات "
"کوچک روی سرورهای خود هستیم."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "لغو"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "تایید رمزعبور"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
msgid "labels.continue-with-penpot"
msgstr "شما میتوانید با یک حساب Penpot ادامه دهید"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "حذف نظر"
-#: src/app/main/ui/comments.cljs
-#, fuzzy
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "حذف موضوع"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "ویرایشگر"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "منقضی شده"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "اکسپورت"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "بازخورد غیرفعال شد"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:367
msgid "labels.internal-error.desc-message"
msgstr ""
"اتفاق بدی افتاد. لطفاً عملیات را دوباره امتحان کنید و اگر مشکل همچنان ادامه "
"داشت، با پشتیبانی تماس بگیرید."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "دعوتنامهها"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "اعضا"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "هیچ دعوتنامهای وجود ندارد."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "دکمه \"دعوت به تیم\" را فشار دهید تا اعضای بیشتری را به این تیم دعوت کنید."
#: src/app/main/ui/static.cljs
+#, unused
msgid "labels.not-found.desc-message"
msgstr "ممکن است این صفحه وجود نداشته باشد یا شما مجوز دسترسی به آن را نداشته باشید."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "در انتظار"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
msgid "labels.resend-invitation"
msgstr "فرستادن مجدد دعوتنامه"
-#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "امتحان دوباره"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "ارسال"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "درحال ارسال…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "ما در حال تعمیر و نگهداری برنامهریزی شده سیستمهای خود هستیم."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "بیننده"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
msgid "modals.add-shared-confirm.message"
msgstr "افزودن «%s» به عنوان کتابخانه مشترک"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:111
msgid "modals.change-email.confirm-email"
msgstr "تایید ایمیل جدید"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:99
msgid "modals.change-email.info"
msgstr "برای تأیید هویت شما یک ایمیل به ایمیل فعلی شما \"%s\" ارسال میکنیم."
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:104
msgid "modals.change-email.new-email"
msgstr "ایمیل جدید"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:119
msgid "modals.change-email.submit"
msgstr "تغییر ایمیل"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "حذف مکالمه"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
msgid "modals.delete-comment-thread.message"
msgstr ""
"آیا مطمئنید که میخواهید این مکالمه را حذف کنید؟ تمامی نظرات این تاپیک حذف "
"خواهد شد."
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "حذف عضو"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
msgid "modals.delete-team-member-confirm.message"
msgstr "آیا مطمئن هستید که میخواهید این عضو را از تیم حذف کنید؟"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
msgid "modals.delete-team-member-confirm.title"
msgstr "حذف عضو تیم"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "ارسال دعوتنامه"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "آیا مطمئنید که میخواهید تیم %s را ترک کنید؟"
-#, fuzzy
+#: src/app/main/ui/dashboard/change_owner.cljs:58
msgid "modals.leave-and-reassign.forbidden"
msgstr ""
"اگر عضو دیگری برای ارتقا به مالک وجود نداشته باشد، نمیتوانید تیم را ترک "
"کنید. شاید بخواهید تیم را حذف کنید."
-#: src/app/main/ui/dashboard/sidebar.cljs
-#, fuzzy
+#: src/app/main/ui/dashboard/change_owner.cljs:54
msgid "modals.leave-and-reassign.hint1"
msgstr ""
"شما مالک این تیم هستید. لطفاً قبل از ترک تیم، عضو دیگری را برای ارتقاء به "
"مالک انتخاب کنید."
-#: src/app/main/ui/dashboard/sidebar.cljs
-#, fuzzy
+#: src/app/main/ui/dashboard/change_owner.cljs:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
msgid "modals.leave-confirm.title"
msgstr "درحال ترک تیم"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:359
msgid "modals.promote-owner-confirm.accept"
msgstr "انتقال مالکیت"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
msgid "modals.promote-owner-confirm.hint"
msgstr ""
"اگر مالکیت را منتقل کنید، نقش خود را به مدیر تغییر میدهید و برخی از "
"مجوزهای این تیم را از دست میدهید. "
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:357
msgid "modals.promote-owner-confirm.message"
msgstr ""
"شما مالک فعلی این تیم هستید. آیا مطمئنید که میخواهید %s را مالک جدید تیم "
"کنید؟"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:356
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:26, src/app/main/ui/settings/profile.cljs:33
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:213
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:180, 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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - طراحی آزاد برای تیمها"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "بازخورد بدهید - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "تنظیمات - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "رمزعبور - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "پروفایل - پنپات"
-#: src/app/main/ui/dashboard/team.cljs
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "دعوتنامهها - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "اعضا - %s - پنپات"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "تنظیمات - %s - پنپات"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:420
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:143
msgid "viewer.breaking-change.description"
msgstr ""
"این لینک قابل اشتراکگذاری دیگر معتبر نیست. یک مورد جدید ایجاد کنید یا از "
"مالک یک مورد جدید بخواهید."
+#: src/app/main/ui.cljs:142
msgid "viewer.breaking-change.message"
msgstr "متاسفم!"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:570
msgid "viewer.empty-state"
msgstr "هیچ آرتبوردی در صفحه یافت نشد."
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:575
msgid "viewer.frame-not-found"
msgstr "آرتبورد یافت نشد."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
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:333
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
msgid "workspace.assets.create-group"
msgstr "ایجاد یک گروه"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "ویرایش"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "فایل"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:765
msgid "workspace.header.menu.option.preferences"
msgstr "اولویتها"
-#: src/app/main/ui/workspace/header.cljs
-#, fuzzy
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
msgid "workspace.libraries.colors.save-color"
msgstr "ذخیره استایل رنگ"
-#: src/app/main/ui/workspace/libraries.cljs
+#: src/app/main/ui/workspace/libraries.cljs:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:173, src/app/main/ui/export.cljs:242, 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:173
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:285
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:582
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:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "منحنی (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "بیضی (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "آرتبورد (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "تصویر (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "انتقال (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "مسیر (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "رد"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
msgid "workspace.updates.there-are-updates"
msgstr "بهروزرسانی در کتابخانههای مشترک وجود دارد"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1100
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 d16237c516..61303ab43c 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
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:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Unohditko salasanasi?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Koko nimi"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Kirjaudu sisään"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Kirjaudu"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Syötä uusi salasana"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Palautustunnus on virheellinen."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Salasana"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Vähintään 8 merkkiä"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Tietosuojaseloste"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Palauta salasana"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Unohtuiko salasana?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Vaihda salasanasi"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Luo uusi käyttäjä"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Palautustunnus on virheellinen."
diff --git a/frontend/translations/fo.po b/frontend/translations/fo.po
index bb79b065bf..2f2e7cb3a7 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
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:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Gloymt loyniorðið?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Fullfíggja navn"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Innrita her"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Rita inn"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Skriva eitt nýtt loyniorð"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Loyniorð"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Minst 8 stavir"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Privat politikkur"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Endurstovna loyniorð"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Gloymt loyniorð?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Broyt títt loyniorð"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Stovna konto"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "Stovna eina konto"
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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:72
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:763, 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:33
#, 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:202
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:110
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:185
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:180
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:191
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:439
msgid "dashboard.export.options.all.title"
msgstr "Útflyt deild søvn"
+#: src/app/main/ui/export.cljs:421
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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Innflyt Penpot fílur"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "% fílur eru innfluttir."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Viðgerð litir"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Viðgerð staklutir"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Viðgerð miðlar"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Viðger síðu: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Viðgerð stavsnið"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Sendur upp dátur til ambætara (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
msgid "dashboard.leave-team"
msgstr "Far úr toymu"
-#: src/app/main/ui/dashboard/grid.cljs
+#: src/app/main/ui/dashboard/placeholder.cljs:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Loyniorði er goymt!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Toymisupplýsingar"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Toymislimir"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Toymisverkætlanir"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:1116
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:125, 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:127
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:124
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:121
msgid "title.settings.profile"
msgstr "Vangamynd - Penpot"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Fílu"
diff --git a/frontend/translations/fr.po b/frontend/translations/fr.po
index 25217c5df9..6693cd53a9 100644
--- a/frontend/translations/fr.po
+++ b/frontend/translations/fr.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: French \n"
@@ -9,359 +9,432 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Vous avez déjà un compte ?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Vérifiez vos email"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Mot de passe oublié ?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nom complet"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
-msgid "auth.login-here"
-msgstr "Connectez-vous ici"
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "Connexion à mon compte"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
+msgid "auth.login-here"
+msgstr "Connectez-vous ici."
+
+#: src/app/main/ui/auth/login.cljs:186
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:276
+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:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Saisissez un nouveau mot de passe"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-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:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Mot de passe"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Au moins 8 caractères"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Politique de confidentialité"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Mot de passe oublié ?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Changez votre mot de passe"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr ""
+"Faites nous savoir ce que nous devons vous montrer sur le tableau de bord "
+"et dans les emails."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "Votre nom"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Créer un compte"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Avec un compte grauit Penpot, vous pouvez créer des équipes en illimité et "
+"collaborer avec d'autres designer et développeurs sur autant de projets que "
+"vous le souhaitez. "
+
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr ""
+"J'accepte les [termes du service](%s) et la [politique de "
+"confidentialité](%s)."
+
+#: src/app/main/ui/auth/register.cljs:283, 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
+#, unused
+msgid "auth.terms-privacy-agreement"
+msgstr ""
+"En créant un nouveau compte, vous acceptez nos termes d'usage du service et "
+"de politique de confidentialité."
+
+#: src/app/main/ui/auth/register.cljs:268
msgid "auth.verification-email-sent"
msgstr "Nous avons envoyé un e-mail de vérification à"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+msgstr "Email professionnel"
+
#: 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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Générer un nouveau jeton"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Jamais"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -369,105 +442,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:202
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:110
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:181
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)"
+"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:185
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:180
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:191
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:430
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:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exporter les bibliothèques partagées"
+#: src/app/main/ui/export.cljs:440
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:441
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:442
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:443
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:421
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 ""
@@ -477,6 +566,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 ""
@@ -486,10 +576,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 ""
@@ -501,263 +592,282 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importer fichiers"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr ""
"Un problème est survenu lors de l'importation du fichier. Le fichier n'a "
"pas été importé."
-msgid "dashboard.import.import-message"
-msgstr "%s fichiers ont été importés avec succès."
-
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Certains fichiers contenaient des objets invalides qui ont été enlevés."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Traitement des couleurs"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Traitement des composants"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Médias en cours de traitement"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Traitement de la page : %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Traitement des typographies"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Envoi des données au serveur (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Information de l’équipe"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Membres de l’équipe"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projets de l’équipe"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Mettre à jour les paramètres"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Actif"
+#: src/app/main/ui/dashboard/team.cljs:883
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:873
msgid "dashboard.webhooks.content-type"
msgstr "Type de contenu"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Créer un webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook créé avec succès."
+#: src/app/main/ui/dashboard/team.cljs:903
msgid "dashboard.webhooks.description"
msgstr ""
"Les webhooks sont une manière simple de permettre à d'autres site web et "
@@ -765,759 +875,893 @@ msgstr ""
"dans Penpot. Nous enverrons une requête POST à toutes les URLs que vous "
"avez indiquées."
+#: src/app/main/ui/dashboard/team.cljs:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "E‑mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
+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:61
msgid "errors.auth-provider-not-configured"
msgstr "Fournisseur d'authentification non configuré."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Adresse e‑mail déjà validée."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "Domaine non autorisé"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Veuillez entrer une adresse mail valide"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "L’adresse e‑mail de confirmation doit correspondre"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
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:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Veuillez entrer une adresse mail valide"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "L’adresse e‑mail de confirmation doit correspondre"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Le code de récupération n’est pas valide."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Invitation invalide"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Authentification LDAP désactivée."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Le mot de passe de confirmation doit correspondre"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Le mot de passe doit contenir au moins 8 caractères"
+#: src/app/main/errors.cljs:130
+msgid "errors.paste-data-validation"
+msgstr "Données du presse-papier invalides"
+
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "L’enregistrement est actuellement désactivé."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "Le numéro de version du fichier est incompatible"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Erreur de connexion, URL inaccessible"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "L'URL ne passe pas la validation."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Il y a eu une erreur dans le dernier envoi."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Erreur lors de la validation SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Délai d'attente dépassé"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Erreur inattendue lors de la validation"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Statut inattendu %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-mail ou mot de passe incorrect."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Description"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Communauté Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Sujet"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Email"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Accéder à X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Compte d’assistance X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Plus d'informations sur l'inspection"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Code"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Cercle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Composant"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Courbe"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Plan de travail"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Groupe"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Image"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Sélectionné"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Chemin"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectangle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administration"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Annuler"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canevas"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirmer le mot de passe"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Supprimer le commentaire"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Supprimer le fil"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+msgid "labels.developer"
+msgstr "Développeur"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+msgstr "Directeur"
+
+#: 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Éditeur"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Évènement"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Expirée"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exporter"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Avis désactivés"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Avis envoyé"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Fondateur/Direction"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Retour"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+msgstr "Designer graphique"
+
+#: 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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Invitations"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Membres"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Aucune invitation en attente."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, markdown
msgid "labels.no-invitations-hint"
msgstr ""
@@ -1525,458 +1769,562 @@ msgstr ""
"membres à cette équipe."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Autres (préciser)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Autre"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "Product ou UX Designer"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Gestionnaire de produit ou de projet"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Réessayer"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Sélectionnez une option"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Envoyer"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Envoi…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:205
+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:167
+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:730
msgid "labels.status"
msgstr "Statut"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Étudiant ou enseignant"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Chef de projet"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+msgstr "Membre d'une équipe"
+
+#: 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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Spectateur"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
+msgid "media.choose-image"
+msgstr "Choisir image"
+
+#, unused
+msgid "media.gradient"
+msgstr "Dégradé"
+
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
+msgid "media.keep-aspect-ratio"
+msgstr "Conserver le ratio"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
+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:451
msgid "media.loading"
msgstr "Chargement de l’image…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
+msgid "media.radial"
+msgstr "Radial"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:207
+msgid "media.solid"
+msgstr "Solide"
+
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Générer un jeton d'accès"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Créer un webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Créer un webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "URL de charge utile"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Supprimer la conversation"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
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] ""
@@ -1986,3214 +2334,3608 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Supprimer le webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Vous confirmez vouloir supprimer le webhook ?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Suppression du webhook en cours"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Modifier le webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Modifier le webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Envoyer l'invitation"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Promouvoir"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Bienvenue sur Penpot !"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
+msgid "onboarding.choice.team-up.continue-creating-team"
+msgstr "Continuer en créant une équipe"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:237
+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:213
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:222
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:220, 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:230
+msgid "onboarding.choice.team-up.start-without-a-team"
+msgstr "Commencer sans équipe"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:232
+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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "C'est parti !"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Regarder pour une alternative à Figma, XD, etc"
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Juste explorer"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Découvrir si Penpot est bien pour mon équipe"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Tester avant d'auto-héberger"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Générer du vrai code pour les designs"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Créer des Design Systems"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototyper"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Designer l'UX/UI pour une app"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Faire du wireframe"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "Pour quoi utiliserez-vous Penpot ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "Qu'est-ce qui vous amène sur Penpot aujourd'hui ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Laissez nous vous connaitre un peu pour nous aider à faire fonctionner "
+"Penpot pour vous. Vos questions nous aiderons à prioriser les nouvelles "
+"fonctionnalités et vous diriger dans la bonne direction pour commencer."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Aidez-nous à vous connaitre"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Lequel de ces outils utilisez-vous le plus ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Quel genre de travail faites-vous ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Quel est votre rôle ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Quelle est la taille de votre équipe ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Dites nous quel est votre poste"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Par où souhaitez-vous commencer ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Comment avez-vous entendu parlé de Penpot ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Je suis Freelance"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Plus que 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Je travaille sur un projet personnel"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Éducation"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Personnel"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Travail"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Créer une équipe"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Nombre de projets et de fichiers illimité"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Édition multijoueur"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Gestion des rôles"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Nombre de membres illimité"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% gratuit !"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
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:107
msgid "title.settings.feedback"
msgstr "Donnez votre avis - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Configuration - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Mot de passe - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Invitations - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Membres - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Configuration - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Plan de travail introuvable."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Plein écran"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Plan du site"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Dupliquer"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Grouper"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Renommer"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "Éditer"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "Fichier"
+
+#: src/app/main/ui/workspace/main_menu.cljs:789
+msgid "workspace.header.menu.option.help-info"
+msgstr "Aide et information"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "Préférences"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "Éditer la grille"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+msgid "workspace.layout_grid.editor.options.exit"
+msgstr "Quitter"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RVBA"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:379
+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:509, src/app/main/ui/workspace/libraries.cljs:534
+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:516
+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:169
+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:241
+msgid "workspace.options.exporting-complete"
+msgstr "L'export est terminé"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "L'export a échoué"
+
+#: src/app/main/ui/export.cljs:243
+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:177
+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:173
+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:285
+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:189
+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/plugins.cljs:58
+msgid "workspace.plugins.button-open"
+msgstr "Ouvrir"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Aucune extension installée pour le moment"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "Cette extension n'existe pas ou l'URL n'est pas correcte."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Installer"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+msgid "workspace.plugins.installed-plugins"
+msgstr "Extensions installées"
+
+#: src/app/main/ui/workspace/main_menu.cljs:624
+msgid "workspace.plugins.menu.plugins-manager"
+msgstr "Manager d'extensions"
+
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "Extensions"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Liste d'extensions"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+msgid "workspace.plugins.search-placeholder"
+msgstr "Écrire une URL d'extension"
+
+#, unused
+msgid "workspace.plugins.success"
+msgstr "Extension correctement chargée."
+
+#: src/app/main/ui/workspace/plugins.cljs:160
+msgid "workspace.plugins.title"
+msgstr "Extensions"
+
+#: 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:582
+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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Réduire la barre latérale"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Courbe (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Ellipse (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Plan de travail (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Image (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Déplacer (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Chemin (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Activer/Désactiver la barre d'outils"
+
+#: 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:1097
+msgid "workspace.updates.dismiss"
+msgstr "Ignorer"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "Plus d'information"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+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:1100
+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 3d89251d03..4c6c1dac1e 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,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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Xa tes unha conta?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Esqueciches o teu contrasinal?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nome completo"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Entra aquí"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Entrar"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "Gitlab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Escribe un contrasinal novo"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "O código de recuperación non é correcto."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Contrasinal"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Un mínimo de 8 caracteres"
+#: src/app/main/ui/auth/register.cljs:291
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:82
msgid "auth.recovery-request-submit"
msgstr "Recuperar contrasinal"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Esqueceches o teu contrasinal?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Cambiar o teu contrasinal"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Crea unha conta"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Pode incluir compoñentes, gráficos, cores e/ou fontes."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportar bibliotecas compartidas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Tratar os recursos da biblioteca compartida coma obxetos básicos"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Incluir os recursos de bibliotecas compartidas na biblioteca do ficheiro"
+#: src/app/main/ui/export.cljs:421
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 +432,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 +441,1157 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importar archivos de Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "% ficheiros importáronse correctamente."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
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:145
msgid "dashboard.import.progress.process-colors"
msgstr "Procesando cores"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Procesando compoñentes"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Procesando medios"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Procesando páxina: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Procesando fontes"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Enviando datos ao servidor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Enviando ficheiro: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Contrasinal gardado correctamente!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Escolle idioma da interface"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Información do equipo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Integrantes do equipo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Proxectos do equipo"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "Correo electrónico"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Provedor de autenticación non configurado."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "O código de recuperación non é correcto."
+
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Descrición"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Asunto"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
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:100
msgid "inspect.tabs.code"
msgstr "Código"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Círculo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Compoñente"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curva"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "taboleiro"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grupo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Imaxe"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
msgid "inspect.tabs.code.selected.mask"
msgstr "Máscara"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Trazado"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectángulo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administración"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Todo"
+#: src/app/main/ui/auth/register.cljs:287
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Cancelar"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:524, src/app/main/ui/export.cljs:468, 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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Caducada"
+#: src/app/main/ui/export.cljs:174
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Invitacións"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Integrantes"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:682
msgid "labels.pending-invitation"
msgstr "Pendente"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:153
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Volver tentar"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Enviar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
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:256
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:142
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Editar"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Ficheiro"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:765
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/libraries.cljs
+#: src/app/main/ui/workspace/libraries.cljs:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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 594d242297..bc9a283e34 100644
--- a/frontend/translations/ha.po
+++ b/frontend/translations/ha.po
@@ -1,445 +1,489 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
-"Last-Translator: Anonymous \n"
-"Language-Team: Hausa \n"
+"PO-Revision-Date: 2024-08-11 20:09+0000\n"
+"Last-Translator: Alhassan Atama \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.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "ka na da taska?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr ""
-"bincika taskarka ta imel,ka danna alamar mahaxa domin tabbatarwa,sannan ka "
+"Bincika taskar ka ta imel ka danna alamar mahada domin tabbatarwa sannan ka "
"fara amfani da fenfot."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
msgid "auth.confirm-password"
-msgstr "tabbatar da kalmar buxewa"
+msgstr "tabbatar da kalmar budewa"
-#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "ka manta lambar tsaro?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "cikakken suna"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "shiga nan"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "shiga ciki"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "matattarar manazarta"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "wurin nazari"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Gugul"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "shaidar buxewa"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "sanya sabuwar lambar tsaro"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "lambar tsaron da ka sanya ba daidai ba ce."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "lambar tsaro"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "aqalla a sami alamoni 8"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "matakan kaxaita"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:71
msgid "auth.recovery-submit"
msgstr "canza lambar tsaro"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "samo sabuwar lambar tsaro"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
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:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "*akwai sassan,hotuna,launuka,da/kozane-zane."
+#: src/app/main/ui/export.cljs:429
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:438
msgid "dashboard.export.options.all.message"
msgstr "manhajar tura kundi ta kunshi fitarwa, tattali mahaxarsu."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "fitar da manhajar tura kundi"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "lura da bayanan da ke cikin manhajar tura kundi"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "tura taska ya qunshi bayanan da ke cikin kundin taskoki"
+#: src/app/main/ui/export.cljs:421
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 ""
@@ -448,6 +492,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 ""
@@ -456,10 +501,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 ""
@@ -469,1405 +515,1601 @@ msgstr ""
"mun aminta da amfani da [taransifota](https://taransifota.org/) domin samo "
"webfonts da adana kurakurai. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "shigo da kundin fenfot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "akwi matsala a kundin. ba a shio da kundin ba."
+#: src/app/main/ui/dashboard/import.cljs:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "wasu kundayen na dauke da abubuwan da ba su da amfani."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "aikin rini"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "aikin sassa"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "kammala aiki"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "fejin kasuwar duniya: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "kula da rubutu"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "xora bayani akan sabis (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "xora kundaye: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "zavavven harshen UI"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "bayanin tawaga"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "mambobin tawaga"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "aiyukan tawaga"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "zamanartarwa wurin gyara"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "ya na amfani"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "idan an sami sauyi a nan ake kawo shi"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "irin ra'ayi"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "yin webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "an gina Webhook."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "danna qasa \"sanya webhook\" qara xaya."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "imel"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "manhajar tantancewar ba ta tsaru ba."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "an farfaxo da imel."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "sanya imel mai amfani"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "tabbata imel xinka ya yi daidai"
-
+#: src/app/main/ui/dashboard/team.cljs:187
msgid "errors.email-spam-or-permanent-bounces"
msgstr "saqonni marasa amfani na imel «%s»."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:233
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:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "sanya imel mai amfani"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "tabbata imel xinka ya yi daidai"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "lambar tsaron da ka sanya ba daidai ba ce."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "gaiyar ba ta yi ba"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "LDAP ya gaza tantancewa."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
msgid "errors.member-is-muted"
msgstr "bayanan da ka nema imel din su ya suma (bayanan matsaloli)."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "tabbata labar tsaro ta yi daidai"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "lambar tsaro dole ta kai yawan alamu 8"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "tukuicin da ba a san da shi ba"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "hadin bai yi ba, ba a iya samun URL"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL bai gyaru ba."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "saqon qarshe bai je ba."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "kuskure kan farfaxo da SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "dakatarwa"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "matsalar da ba zata ba lokacin farfaxowa"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
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:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "kuskuren imel ko lambar tsaro."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "bayani"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "je ka taskar fenfot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "dangin fenfot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "shugabanci"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "imel"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "je ka tiwita"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "wurin karvar qorafin tiwita"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "qarin bayani a fagen lura"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "lamba"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "da'ira"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "bangare"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "lankwasa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "hukuma"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "qungiya"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "hoto"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s zavavve"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "hanya"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "rektangul"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "shugaba"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "akwai matsala"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "sokewa"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "tabbatar da lambar tsaro"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "goge yabo"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "goge rubutu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "maigyara"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "daina aiki"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "fitarwa"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "kasa samun bayani"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "aika bayani"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "mawallafi/VP"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "teburin aiki"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "gayyata"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "kasuwanci"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "mambobi"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
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:716
#, markdown
msgid "labels.no-invitations-hint"
msgstr "danna **gayyato mutane** wurin da ake nemo mutane a wannan tawaga."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "idan akwai qari (bayyana)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:250
+msgid "labels.product-management"
+msgstr "shugaban aiki"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "sake gwadawa"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "dauki wanda kake so"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "aika"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "aikawa…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:167
+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:730
msgid "labels.status"
msgstr "daraja"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "ma su kallo"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
msgid "media.loading"
msgstr "xora hoto …"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
msgid "modals.change-email.submit"
msgstr "sake imel"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "samar da alamar shiga"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "qirqirar webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "qirqirar webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "farashin URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "goge fira"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "goge memba"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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] ""
@@ -1877,2888 +2119,3200 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "goge webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "ka tabbata ka na son goge webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "gogewa webhook"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "gyara webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "gyara webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "aika saqon"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "canza wurin mallaka"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "an aika da saqon"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "an ajiye bayanai!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "barka da zuwa fenfot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "za mu fara!"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "mi ne ne matsayinka?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "bayyana yawan tawagarka?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "fiye da 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "ina aikin kaina"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "yin tawaga"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "aiyuka da kundaye da yawa"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "ma su yin shiri dayawa lokaci xaya"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "aiyukan shugaba"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Unlimited members"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "karin bayani - Shiga alama"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "bada martani - Mazubin biruka"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Saiti - Mazubin biruka"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Nambobin sirri - Mazubin biruka"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Karin bayani - Mazubin biruka"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Gayyata - %s - Mazubin biruka"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Yan kungiya - %s - Mazubin biruka"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Saiti - %s - Mazubin biruka"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Ba'a sami allon ba."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Cika fuskar"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "taswirar wuri"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "maimaita"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "rukuni"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "sake suna"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Tace"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "fayil"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "fifiko"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "ruguza a'ajiyar bayani"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "kwana(%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "siffar kwai (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "allo (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "hoto (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "motsa (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "hanya (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "watsar"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "bayanai masu yawa"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 85de785ed1..674909e6a9 100644
--- a/frontend/translations/he.po
+++ b/frontend/translations/he.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: Hebrew \n"
@@ -10,185 +10,219 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "כבר יש לך חשבון?"
-#: src/app/main/ui/auth/register.cljs
-msgid "auth.check-your-email"
-msgstr ""
-"נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot."
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "נא לבדוק את תיבת הדוא״ל שלך"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/register.cljs:270
+msgid "auth.check-your-email"
+msgstr "נא לחפש בדוא״ל הנכנס שלך וללחוץ על הקישור כדי לאמת ולהתחיל להשתמש ב־Penpot."
+
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
-msgstr ""
-"זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם."
+msgstr "זה שירות ניסיוני, לא להשתמש בו לעבודה אמתית, המיזמים יימחקו מדי פעם בפעם."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "שכחת סיסמה?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "שם מלא"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
msgid "auth.login-account-title"
msgstr "כניסה לחשבון שלי"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
-msgstr "כניסה מכאן"
+msgstr "כניסה מכאן."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "כניסה"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
msgid "auth.login-tagline"
msgstr "Penpot הוא כלי בקוד פתוח לשיתוף עיצוב וקוד"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID Connect"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "נא להקליד סיסמה חדשה"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "אסימון השחזור שגוי."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "הסיסמה הוחלפה בהצלחה"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "הפרופיל לא עבר אימות, נא לאמת את הפרופיל לפני המשך התהליך."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "קישור לשחזור סיסמה נשלח לתיבת הדוא״ל הנכנס שלך."
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "סיסמה"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "8 תווים לפחות"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "מדיניות פרטיות"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "שחזור סיסמה"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "נשלח לך הודעה בדוא״ל עם ההנחיות"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "שכחת סיסמה?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "החלפת הסיסמה שלך"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
msgid "auth.register"
msgstr "אין לך חשבון עדיין?"
-#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "איך נפנה אליך בלוח הבקרה ובהודעות בדוא״ל."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "השם שלך"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "יצירת חשבון"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"עם חשבון חינמי ב־Penpot אפשר ליצור כמות בלתי מוגבלת של צוותים ולשתף פעולה "
+"עם מעצבים ומפתחים נוספים על כמה מיזמים שצריך. "
+
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "יצירת חשבון"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "הפתרון בקוד פתוח לעיצוב ויצירת אבטיפוס."
+#: src/app/main/ui/auth/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr "[תנאי השירות](%s) ו[מדיניות הפרטיות](%s) מקובלים עליי."
+
+#: src/app/main/ui/auth/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "שלחנו הודעת דוא״ל לאימות אל"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+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] "עמוד שותף"
@@ -196,267 +230,297 @@ 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:104
msgid "dashboard.access-tokens.copied-success"
msgstr "האסימון הועתק"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:191
msgid "dashboard.access-tokens.create"
msgstr "יצירת אסימון חדש"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
msgid "dashboard.access-tokens.create-success"
msgstr "אסימון הגישה נוצר בהצלחה."
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:289
msgid "dashboard.access-tokens.empty.add-one"
msgstr "נא ללחוץ על הכפתור „יצירת אסימון חדש” כדי ליצור אחד חדש."
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "לעולם לא"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
msgid "dashboard.access-tokens.expired-on"
msgstr "התוקף פג ב־%s"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:272
msgid "dashboard.access-tokens.expires-on"
msgstr "התוקף יפוג ב־%s"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:270
msgid "dashboard.access-tokens.no-expiration"
msgstr "אין תאריך תפוגה"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:186
msgid "dashboard.access-tokens.personal"
msgstr "אסימוני כניסה אישיים"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:187
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:143
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:144
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:72
msgid "dashboard.change-email"
msgstr "החלפת דוא״ל"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
+#, 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:202
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:110
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:181
msgid "dashboard.export-shapes.how-to"
-msgstr ""
-"אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)."
+msgstr "אפשר להוסיף הגדרות ייצוא לרכיבים ממאפייני העיצוב (מתחתית הסרגל שמשמאל)."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:185
msgid "dashboard.export-shapes.how-to-link"
msgstr "מידע על הגדרות ייצוא ב־Penpot."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:180
msgid "dashboard.export-shapes.no-elements"
msgstr "אין רכיבים עם הגדרות ייצוא."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* עשוי לכלול רכיבים, גרפיקה, צבעים ו/או טיפוגרפיות."
+#: src/app/main/ui/export.cljs:429
msgid "dashboard.export.explain"
msgstr ""
"אחד או יותר מהקבצים שברצונך לייצא משתמשים בספריות משותפות. מה לעשות עם "
"המשאבים שלהן*?"
+#: src/app/main/ui/export.cljs:438
msgid "dashboard.export.options.all.message"
msgstr "קבצים עם ספריות משותפות יצורפו לייצוא, תוך שימור הקישוריות שלהם."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "ייצוא ספריות משותפות"
+#: src/app/main/ui/export.cljs:440
msgid "dashboard.export.options.detach.message"
msgstr "ספריות משותפות לא יצורפו לייצוא ואף משאב לא יתווסף לספריה. "
+#: src/app/main/ui/export.cljs:441
msgid "dashboard.export.options.detach.title"
msgstr "להתייחס למשאבים בספריות משותפות כעצמים בסיסיים"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr "הקובץ שלך ייוצא כשכל המשאבים החיצוניים ממוזגים לספריית הקבצים."
+#: src/app/main/ui/export.cljs:443
msgid "dashboard.export.options.merge.title"
msgstr "לכלול משאבי ספריה משותפת בספריות הקבצים"
+#: src/app/main/ui/export.cljs:421
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] "נוסף גופן"
@@ -464,43 +528,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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "ייבוא קובצי Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "אירעה תקלה בייבוא הקובץ. הוא לא ייובא."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgid_plural "dashboard.import.import-message"
msgstr[0] "קובץ יובא בהצלחה."
@@ -508,166 +583,176 @@ msgstr[1] "%s קבצים יובאו בהצלחה."
msgstr[2] "%s קבצים יובאו בהצלחה."
msgstr[3] "%s קבצים יובאו בהצלחה."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "חלק מהקבצים הכילו פריטים שגויים שהוסרו."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "עיבוד צבעים"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "עיבוד רכיבים"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "עיבוד מדיה"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "עיבוד עמוד: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "עיבוד טיפוגרפיות"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "הנתונים נשלחים לשרת (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "נשלח קובץ: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "כתובת הדוא״ל שלך עודכנה בהצלחה"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "כתובת הדוא״ל שלך אומתה בהצלחה"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "הסיסמה נשמרה בהצלחה!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "בחירת שפת מנשק משתמש"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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] "הקובץ שלך נמחק בהצלחה"
@@ -675,11 +760,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] "הקובץ שלך שוכפל בהצלחה"
@@ -687,845 +772,963 @@ 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:563, 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:1073
msgid "dashboard.team-info"
msgstr "פרטי הצוות"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "חברי הצוות"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "מיזמי הצוות"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "עדכון הגדרות"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "פעילה"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "כאשר ההתליה הזאת מופעלת פרטי האירוע יישלחו"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "סוג תוכן"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "יצירת התליית רשת"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "התליית הרשת נוצרה בהצלחה."
+#: src/app/main/ui/dashboard/team.cljs:903
msgid "dashboard.webhooks.description"
msgstr ""
"התליות רשת הן דרך פשוטה לאפשר לאתרים אחרים לקבל הודעות כשאירועים מסוימים "
"מתרחשים ב־Penpot. אנו נשלח בקשת POST לכל אחת מהכתובות שתצויינה."
+#: src/app/main/ui/dashboard/team.cljs:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "לחיצה על הכפתור „הוספת התליית רשת” תוסיף אחת."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "דוא״ל"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
msgid "errors.auth-provider-not-allowed"
msgstr "ספק האימות לא מורשה לפרופיל הזה"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:61
msgid "errors.auth-provider-not-configured"
msgstr "לא מוגדר ספק אימות."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "כתובת הדוא״ל כבר בשימוש"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
msgid "errors.email-already-validated"
msgstr "כתובת הדוא״ל כבר אומתה."
+#, unused
msgid "errors.email-as-password"
msgstr "אין לך אפשרות להשתמש בכתובת הדוא״ל שלך כסיסמה"
-#: src/app/main/data/users.cljs
+#: src/app/main/data/users.cljs:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "נא למלא כתובת דוא״ל תקפה בבקשה"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "כתובת הדוא״ל לאימות חייבת להיות תואמת"
-
+#: src/app/main/ui/dashboard/team.cljs:187
msgid "errors.email-spam-or-permanent-bounces"
msgstr "כתובת הדוא״ל „%s” דווחה כספאם או שההודעות תוקפצנה לצמיתות."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:233
msgid "errors.feature-mismatch"
msgstr ""
-"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך בה "
-"או שהיא מושבתת."
+"נראה שניסית לפתוח קובץ בו פעילה היכולת ‚%s’ אבל מנשק ה־Penpot שלך לא תומך "
+"בה או שהיא מושבתת."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "אין תמיכה ביכולת ‚%s’."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "נא למלא כתובת דוא״ל תקפה בבקשה"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "כתובת הדוא״ל לאימות חייבת להיות תואמת"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "אסימון השחזור שגוי."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "ההזמנה שגויה"
+#: src/app/main/ui/static.cljs:62
msgid "errors.invite-invalid.info"
msgstr "ההזמנה כנראה בוטלה או שתוקפה פג."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:90
msgid "errors.ldap-disabled"
msgstr "אימות מול LDAP הושבת."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
msgid "errors.member-is-muted"
-msgstr ""
-"הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)."
+msgstr "הודעות הדוא״ל לפרופיל שהזמנת מושתקות (דיווחים על דואר זבל או הרבה החזרות)."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "סיסמת האימות חייבת להיות תואמת"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "הסיסמה חייבת להיות באורך 8 תווים לפחות"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "נתונים שגויים בלוח הגזירים"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
msgid "errors.profile-is-muted"
msgstr "הודעות הדוא״ל לפרופיל שלך מושתקות (דיווחי דואר זבל או הרבה החזרות)."
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "ההרשמה מושבתת כרגע."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
msgid "errors.team-feature-mismatch"
msgstr "התגלתה יכולת לא תואמת ‚%s’"
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
msgid "errors.team-leave.insufficient-members"
msgstr "אין מספיק חברים כדי לעזוב את הצוות, כנראה יהיה עליך למחוק אותו."
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
msgid "errors.team-leave.member-does-not-exists"
msgstr "החבר שניסית להקצות לא קיים."
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
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:59
msgid "errors.unexpected-token"
msgstr "אסימון בלתי ידוע"
+#, unused
msgid "errors.validation"
msgstr "שגיאת אימות"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:241
msgid "errors.version-not-supported"
msgstr "מספר גרסת הקובץ לא תואם"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "שגיאת תקשורת, הכתובת אינה נגישה"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "הכתובת לא מעבירה תיקוף."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "ההעברה האחרונה לא הצליחה."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "שגיאה בתיקוף SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "תום זמן המתנה"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "שגיאה לא צפויה בעת תיקוף"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "המצב %s לא צפוי"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "כתובת הדוא״ל או הסיסמה שגויים."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "הסיסמה הישנה שגויה"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "תיאור"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "מעבר לפורום של Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
msgid "feedback.discourse-subtitle1"
msgstr "אנחנו שמחים שהצטרפת אלינו. לקבלת עזרה, נא לחפש בטרם פרסום הודעה."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:85
msgid "feedback.discourse-title"
msgstr "קהילת Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "נושא"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
msgid "feedback.subtitle"
msgstr ""
"נא לתאר את הסיבה שלך לשליחת ההודעה תוך פירוט האם זאת תקלה, רעיון או בספק. "
"אחד מחברי הצוות שלנו יגיב לך במהירות האפשרית."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "דוא״ל"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "מעבר ל־X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
msgid "feedback.twitter-subtitle1"
msgstr "כאן כדי לסייע בסוגיות טכניות."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "חשבון תמיכה ב־X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
msgid "inspect.empty.help"
msgstr "למידע נוסף על חקירת עיצוב אפשר לבקר במרכז העזרה של Penpot"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:155
msgid "inspect.empty.more-info"
msgstr "מידע נוסף על חקירה"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
msgid "inspect.empty.select"
msgstr "ניתן לבחור צורה, לוח או קבוצה ולראות את המאפיינים והקוד שלהם"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100
msgid "inspect.tabs.code"
msgstr "קוד"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "עיגול"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "רכיב"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "עיקול"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "לוח"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "קבוצה"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "תמונה"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
msgid "inspect.tabs.code.selected.mask"
msgstr "מסכה"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s נבחרו"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "נתיב"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "מרובע"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "טקסט"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "ניהול"
+#: src/app/main/ui/onboarding/questions.cljs:169
+msgid "labels.adobe-xd"
+msgstr "Adobe XD"
+
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "הכול"
+#: src/app/main/ui/auth/register.cljs:287
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:282
msgid "labels.bad-gateway.desc-message"
msgstr ""
"נראה כאילו עליך להמתין מעט ולנסות שוב, אנו מבצעים עבודות תחזוקה פשוטות "
"בשרתים שלנו."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:281
msgid "labels.bad-gateway.main-message"
msgstr "שער גישה שגוי"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "ביטול"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "אישור סיסמה"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
msgid "labels.continue-with-penpot"
msgstr "אפשר להמשיך עם חשבון Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:662
msgid "labels.copy-invitation-link"
msgstr "העתקת קישור"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "מחיקת הערה"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "מחיקת שרשור"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+msgid "labels.developer"
+msgstr "פיתוח"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "עורך"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "אירוע"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "התוקף פג"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "ייצוא"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "המשוב הושבת"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "המשוב נשלח"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "מייסד/סגן נשיא"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "חזרה"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+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/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:990
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:367
msgid "labels.internal-error.desc-message"
msgstr ""
"משהו לא טוב קרה. נא לנסות לבצע את הפעולה שוב ואם הבעיה חוזרת, נא ליצור קשר "
"עם התמיכה."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "הזמנות"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "שיווק"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "חברים"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "אין הזמנות ממתינות."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "לחיצה על הכפתור **הזמנת אנשים** תאפשר להזמין אנשים לצוות."
#: src/app/main/ui/static.cljs
+#, unused
msgid "labels.not-found.desc-message"
msgstr "יכול להיות שהעמוד לא קיים או שאין לך הרשאות לגשת אליו."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:1116
msgid "labels.num-of-files"
msgid_plural "labels.num-of-files"
msgstr[0] "קובץ"
@@ -1533,6 +1736,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] "לוח"
@@ -1540,7 +1744,7 @@ msgstr[1] "%s לוחות"
msgstr[2] "%s לוחות"
msgstr[3] "%s לוחות"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1111
msgid "labels.num-of-projects"
msgid_plural "labels.num-of-projects"
msgstr[0] "מיזם"
@@ -1548,388 +1752,466 @@ msgstr[1] "%s מיזמים"
msgstr[2] "%s מיזמים"
msgstr[3] "%s מיזמים"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "אחר (נא לפרט)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "אחר"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "עיצוב מוצר או חוויית לקוח"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "ניהול מוצר"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
msgid "labels.resend-invitation"
msgstr "שליחת ההזמנה מחדש"
-#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "ניסיון חוזר"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "בחירת אפשרות"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "שליחה"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "מתבצעת שליחה…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "אנחנו בהפוגת תחזוקה מתוכננת של המערכות שלנו."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "הגדרות"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+msgid "labels.sketch"
+msgstr "Sketch"
+
+#: src/app/main/ui/onboarding/questions.cljs:56
+msgid "labels.start"
+msgstr "התחלה"
+
+#: src/app/main/ui/dashboard/team.cljs:730
msgid "labels.status"
msgstr "מצב"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "סטודנט/ית או מרצה"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "מוביל או מובילת צוות"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "מציג"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "התליות"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "בחירת תמונה"
+#, unused
msgid "media.gradient"
msgstr "מדרג"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
+msgid "media.keep-aspect-ratio"
+msgstr "שמירה על יחס גובה־רוחב"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "התמונה נטענת…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "מעגלי"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "אחיד"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
msgid "modals.change-email.confirm-email"
msgstr "אימות כתובת דוא״ל חדשה"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:99
msgid "modals.change-email.info"
msgstr "נשלח הודעה לכתובת הדוא״ל הנוכחית שלך „%s” כדי לאמת את הזהות שלך."
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:104
msgid "modals.change-email.new-email"
msgstr "כתובת דוא״ל חדשה"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:119
msgid "modals.change-email.submit"
msgstr "החלפת כתובת דוא״ל"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
msgid "modals.change-email.title"
msgstr "החלפת כתובת הדוא״ל שלך"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:154, src/app/main/ui/settings/access_tokens.cljs:160
msgid "modals.create-access-token.copy-token"
msgstr "העתקת אסימון"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:131
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:125
msgid "modals.create-access-token.name.label"
msgstr "שם"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:127
msgid "modals.create-access-token.name.placeholder"
msgstr "השם יכול לסייע לך להבין למה מיועד האסימון"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:180
msgid "modals.create-access-token.submit-label"
msgstr "יצירת אסימון"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:112
msgid "modals.create-access-token.title"
msgstr "יצירת אסימון גישה"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "יצירת התליה"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "יצירת התליה"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "כתובת מטען"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
msgid "modals.delete-acces-token.accept"
msgstr "מחיקת אסימון"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:259
msgid "modals.delete-acces-token.message"
msgstr "למחוק את האסימון הזה?"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "מחיקת דיון"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
msgid "modals.delete-comment-thread.message"
msgstr "למחוק את הדיון הזה? כל התגובות בשרשור תימחקנה."
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
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] "מחיקת קובץ"
@@ -1937,8 +2219,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] "לא מופעל באף קובץ."
@@ -1946,8 +2227,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] "הספרייה הזאת מופעלת כאן: "
@@ -1955,8 +2235,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] "למחוק את הקובץ?"
@@ -1964,8 +2243,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] "מחיקת קובץ"
@@ -1973,114 +2251,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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "מחיקת חבר"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
msgid "modals.delete-team-member-confirm.message"
msgstr "למחוק את החבר הזה מהצוות?"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
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:963
msgid "modals.delete-webhook.accept"
msgstr "מחיקת התליה"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "למחוק את ההתליה?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "מחיקת התליה"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "עריכת התליה"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "עריכת התליה"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "שליחת הזמנה"
+#: src/app/main/ui/dashboard/team.cljs:231, src/app/main/ui/onboarding/team_choice.cljs:156
msgid "modals.invite-member.emails"
msgstr "כתובות דוא״ל, מופרדות בפסיקים"
+#: src/app/main/ui/dashboard/team.cljs:215
msgid "modals.invite-member.repeated-invitation"
msgstr "חלק מכתובות הדוא״ל הן של חברי צוות נוכחיים. ההזמנות לא תישלחנה אליהם."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "ברצונך לעזוב את הצוות %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
msgid "modals.leave-and-reassign.forbidden"
msgstr ""
"אי אפשר לעזוב צוות אם אין חברים שאפשר לקדם לבעלות עליה. אולי עדיף למחוק את "
"הצוות."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:54
msgid "modals.leave-and-reassign.hint1"
-msgstr ""
-"הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך."
+msgstr "הבעלות על הצוות הזה בידיך. נא לבחור מישהו כדי לקידום לבעלות בטרם עזיבתך."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:77
msgid "modals.leave-and-reassign.promote-and-leave"
msgstr "קידום ועזיבה"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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] "להעביר את הספרייה הזאת?"
@@ -2088,6 +2377,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] "העברת ספרייה"
@@ -2095,60 +2385,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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "העברת בעלות"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
msgid "modals.promote-owner-confirm.hint"
msgstr ""
"העברת בעלות תשנה את תפקידך לחלק מההנהלה תוך אובדן חלק מההרשאות שלך על הצוות "
"הזה. "
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:357
msgid "modals.promote-owner-confirm.message"
msgstr "הצוות הזה הוא כרגע בבעלותך. להפוך את %s לבעלים החדשים של הצוות?"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:356
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] "ביטול פרסום"
@@ -2156,8 +2448,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] "לבטל את פרסום הספרייה הזאת?"
@@ -2165,8 +2456,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] "ביטול פרסום ספרייה"
@@ -2174,1058 +2464,1312 @@ 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:76
msgid "notifications.by-code.upgrade-version"
msgstr "יש גרסה חדשה, נא לרענן את העמוד"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "ההזמנה נשלחה בהצלחה"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "הפרופיל נשמר בהצלחה!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "ברוך בואך ל־Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "להמשיך ביצירת צוות"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
msgid "onboarding.choice.team-up.create-team-desc"
msgstr "לאחר מתן שם לצוות שלך, יתאפשר לך להזמין אנשים להצטרף."
+#: src/app/main/ui/onboarding/team_choice.cljs:222
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:220, src/app/main/ui/onboarding/team_choice.cljs:146
msgid "onboarding.choice.team-up.roles"
msgstr "הזמנה עם התפקיד:"
+#: src/app/main/ui/onboarding/team_choice.cljs:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "להתחיל בלי צוות"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "מתחילים!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "למחפשים חלופה ל־Figma, XD וכו׳"
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "סתם לראות במה מדובר"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "לבחון האם Penpot עונה על דרישות הצוות שלי"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "אפשר לבדוק לפני שפונים לאירוח עצמי"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "מייצר עיצובים עם קוד אמיתי"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "יצירת מערכות עיצוב"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "יצירת אבטיפוס"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "עיצוב ממשק/חוויית משתמש של יישום"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "ציור קווי מתאר"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "לאיזו מטרה ישמש אותך Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "מה הביא אותך ל־Penpot היום?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"נשמח לדעת לאילו מטרות משמש אותך Penpot כדי שנוכל להמשיך ולשפר אותו למענך. "
+"התשובות שלך יסייעו לנו לתעדף את היכולות החדשות ולהכווין אותך לדרך שהכי נכון "
+"לך להתחיל בה."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "נשמח להכיר אותך"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "איזה מהכלים האלה הכי משמש אותך?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "מה אופי העבודה שלך?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "מה התפקיד שלך?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "מה גודל הצוות שלך?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "נשמח לשמוע על העבודה שלך"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "איפה כדאי להתחיל?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "איך שמעת על Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "עצמאי או עצמאית"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "גדול מ־50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "זאת עבודה על מיזם פרטי"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "חינוכי"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "אישי"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "עבודה"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "יצירת צוות"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
msgid "onboarding.team-modal.create-team-desc"
msgstr ""
"צוות מאפשר לך לשתף פעולה עם משתמשים אחרים ב־Penpot שעובדים על אותם קבצים "
"ומיזמים."
+#: src/app/main/ui/onboarding/team_choice.cljs:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "אין הגבלה על קבצים או מיזמים"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "מהדורת ריבוי משתתפים"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "ניהול תפקידים"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "ללא הגבלת משתמשים"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% בחינם!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - חופש עיצובי לצוותים"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:281
msgid "title.settings.access-tokens"
msgstr "פרופיל - אסימוני גישה"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "הגשת משוב - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "הגדרות - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "סיסמה - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "פרופיל - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "הזמנות - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "חברים - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "הגדרות - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
msgid "viewer.breaking-change.description"
msgstr ""
-"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד חדש."
+"קישור זה לשיתוף אינו תקף עוד. נא ליצור אחד חדש או לבקש מהבעלים ליצור אחד "
+"חדש."
+#: src/app/main/ui.cljs:142
msgid "viewer.breaking-change.message"
msgstr "מתנצלים!"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:570
msgid "viewer.empty-state"
msgstr "לא נמצאו לוחות בעמוד."
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:575
msgid "viewer.frame-not-found"
msgstr "הלוח לא נמצא."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "מסך מלא"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "מפת אתר"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
msgid "workspace.assets.create-group"
msgstr "יצירת קבוצה"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "שכפול"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "קבוצה"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "שינוי שם"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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] "פריט נבחר"
@@ -3234,1905 +3778,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] "רכיב"
@@ -5140,17 +3790,2092 @@ 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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "עריכה"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "קובץ"
+
+#: src/app/main/ui/workspace/main_menu.cljs:789
+msgid "workspace.header.menu.option.help-info"
+msgstr "עזרה ומידע"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "העדפות"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "עריכת רשת"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+msgid "workspace.layout_grid.editor.options.exit"
+msgstr "יציאה מהמערכת"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
+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:1300
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:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RGBA"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:379
+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:509, src/app/main/ui/workspace/libraries.cljs:534
+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:516
+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:169
+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:241
+msgid "workspace.options.exporting-complete"
+msgstr "הייצוא הושלם"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "הייצוא נכשל"
+
+#: src/app/main/ui/export.cljs:243
+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:177
+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:173
+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:285
+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:189
+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/plugins.cljs:58
+msgid "workspace.plugins.button-open"
+msgstr "פתיחה"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "עדיין לא מותקן אף תוסף"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "התוסף לא קיים או שהכתובת שגויה."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "התקנה"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+msgid "workspace.plugins.installed-plugins"
+msgstr "תוספים מותקנים"
+
+#: src/app/main/ui/workspace/main_menu.cljs:624
+msgid "workspace.plugins.menu.plugins-manager"
+msgstr "מנהל תוספים"
+
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "תוספים"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "רשימת תוספים"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+msgid "workspace.plugins.search-placeholder"
+msgstr "נא למלא כתובת תוסף"
+
+#, unused
+msgid "workspace.plugins.success"
+msgstr "התוסף נטען כראוי."
+
+#: src/app/main/ui/workspace/plugins.cljs:160
+msgid "workspace.plugins.title"
+msgstr "תוספים"
+
+#: 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:582
+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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "צמצום סרגל צד"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "עיקול (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "אליפסה (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "לוח (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "תמונה (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "העברה (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "נתיב (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "הצגת/הסתרת סרגל כלים"
+
+#: 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:1097
+msgid "workspace.updates.dismiss"
+msgstr "התעלמות"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "מידע נוסף"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "יש עדכונים בספריות המשותפות"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+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 c551e954b4..5728dbbb6e 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,421 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Već imaš račun?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Zaboravljena lozinka?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Puno ime"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Prijavi se ovdje"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Prijava"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Unesi novu lozinku"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Token za oporavak je nevažeći."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Lozinka"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Najmanje 8 znamenki"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Pravila privatnosti"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Obnovi lozinku"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Zaboravljena lozinka?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Promjeni lozinku"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Stvori račun"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
msgid "dashboard.export-shapes.no-elements"
msgstr "Nema elemenata s postavkama izvoza."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* Može uključivati komponente, grafike, boje i/ili tipografije."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Izvezi zajedničke biblioteke"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Tretiraj stavke zajedničke biblioteke kao osnovne objekte"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Uključi stavke zajedničke biblioteke u biblioteke datoteka"
+#: src/app/main/ui/export.cljs:421
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 +434,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 +443,4123 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Uvezi Penpot datoteke"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Došlo je do problema pri uvozu datoteke. Datoteka nije uvezena."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "%s datoteka je uspješno uvezeno."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
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:145
msgid "dashboard.import.progress.process-colors"
msgstr "Obrada boja"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Obrada komponenti"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Obrada medija"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Obrada stranice: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Obrada tipografija"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Prijenos podataka na poslužitelj (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Prijenos datoteke: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informacije tima"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Članovi tima"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projekti tima"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "E-mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Pružatelj autentifikacije nije konfiguriran."
-#, fuzzy
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mail je već potvrđen."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email-confirmation"
-msgstr "E-mail za potvrdu mora odgovarati"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "E-mail za potvrdu mora odgovarati"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Token za oporavak je nevažeći."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Pogrešna pozivnica"
+#: src/app/main/ui/static.cljs:62
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:90
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Lozinka za potvrdu mora odgovarati"
#: src/app/main/ui/settings/password.cljs
+#, unused
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Nepoznati token"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Čini se da su korisničko ime ili lozinka pogrešni."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Opis"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Idi na Penpot forum"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot zajednica"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Tema"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Idi na X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
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:29
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:100
msgid "inspect.tabs.code"
msgstr "Kod"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Krug"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Komponenta"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Krivulja"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Ploča"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grupa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Slika"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Označeno"
-#, fuzzy
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Path"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Pravokutnik"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administrator"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Sve"
+#: src/app/main/ui/auth/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Loš Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Odbaci"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Potvrdi lozinku"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Izbriši komentar"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Izbriši thread"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Urednik"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Isteklo"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Izvezi"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Povratne informacije onemogućene"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:367
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Pozivnice"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Članovi"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Nema pozivnica."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "U tijeku"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Pokušaj ponovo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Pošalji"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Slanje…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Promatrač"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Obriši razgovor"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Brisanje člana"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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:237
msgid "modals.invite-member-confirm.accept"
msgstr "Pošalji pozivnicu"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Prenesi vlasništvo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:170, src/app/main/ui/dashboard/team.cljs:615
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Dobrodošli u Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:211
msgid "onboarding.team-modal.create-team"
msgstr "Kreiraj tim"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Neograničen broj datoteka i projekata"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Izdanje za više igrača"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Upravljanje ulogama"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Neograničen broj članova"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - Sloboda dizajna za timove"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Pošalji povratnu informaciju - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Postavke - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Lozinka - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Pozivnice - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Članovi - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Ploča nije pronađena."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
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:333
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Grupa"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Preimenuj"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Uredi"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Datoteka"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Preferencije"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:173
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:285
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:189
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:582
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Krivulja (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elipsa (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Ploča (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Slika (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Premijesti (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
-#, fuzzy
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Path (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Odbaci"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 2014d95aa9..6dc63547da 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,5143 +11,5658 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Sudah memiliki akun?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Lupa kata sandi?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nama Lengkap"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "Masuk ke akun saya"
+
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Masuk di sini"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Masuk"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr ""
+"Penpot adalah peralatan desain bebas & bersumber terbuka untuk kolaborasi "
+"Desain dan Kode"
+
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID Connect"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Ketik kata sandi baru"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Token pemulihan tidak sah."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Kata sandi"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Setidaknya 8 karakter"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Kebijakan privasi"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Lupa kata sandi?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Ubah kata sandi Anda"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Buat akun baru"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Buat token baru"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
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:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Dapat mencakup komponen, grafik, warna dan/atau tipografi."
+#: src/app/main/ui/export.cljs:429
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:438
msgid "dashboard.export.options.all.message"
msgstr "berkas dengan pustaka bersama akan dimasukkan dalam hasil ekspor."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "Ekspor pustaka bersama"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Perlakukan aset pustaka terbagi sebagai objek dasar"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Termasuk aset pustaka terbagi dalam pustaka berkas"
+#: src/app/main/ui/export.cljs:421
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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Impor berkas Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Terdapat masalah saat mengimpor berkas. Berkasnya tidak terimpor."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "%s berkas telah berhasil diimpor."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Beberapa berkas berisi objek yang tidak valid yang telah dihapus."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Memproses warna"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Memproses komponen"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Memproses media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Memproses halaman: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Memproses tipografi"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Mengunggah data ke server (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Mengunggah berkas: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Berhasil menyimpan kata sandi!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Pilih bahasa antarmuka"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Info tim"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Anggota tim"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Proyek tim"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Perbarui pengaturan"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Aktif"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Ketika kaitan ini dipicu detail peristiwa akan dikirim"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Jenis konten"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Buat kaitan web"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Kaitan web berhasil dibuat."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Klik tombol \"Tambahkan kaitan web\" untuk menambahkan."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "Surel"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
+msgid "errors.auth-provider-not-allowed"
+msgstr "Penyedia autentikasi tidak diperbolehkan untuk profil ini"
+
+#: src/app/main/ui/auth/login.cljs:61
msgid "errors.auth-provider-not-configured"
msgstr "Penyedia autentikasi tidak dikonfigurasi."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Surel sudah divalidasi."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "Domain tidak diperbolehkan"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Silakan menyediakan surel yang valid"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Surel konfirmasi harus cocok"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Fitur '%s' tidak didukung."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Silakan menyediakan surel yang valid"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Surel konfirmasi harus cocok"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Token pemulihan tidak sah."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Undangan tidak valid"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Autentikasi LDAP dinonaktifkan."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Kata sandi konfirmasi harus cocok"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Kata sandi setidaknya 8 karakter"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Data tidak valid dalam papan klip"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Pendaftaran saat ini dinonaktifkan."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "Berkas memiliki nomor versi tidak kompatibel"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Kesalahan koneksi, URL tidak dapat diraih"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL tidak melewati validasi."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Pengiriman terakhir tidak berhasil."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Terjadi kesalahan pada validasi SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Waktu habis"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Terjadi kesalahan tidak terduga saat memvalidasi"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Status %s tidak diduga"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Surel atau kata sandi tidak benar."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Deskripsi"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Pergi ke forum Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Komunitas Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Subjek"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Surel"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Pergi ke X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Akun dukungan X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Lebih banyak info tentang inspeksi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kode"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Lingkaran"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Komponen"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Kurva"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Papan"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grup"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Gambar"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Dipilih"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Jalur"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Persegi Panjang"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Admin"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Gerbang Jalur Buruk"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Batal"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Konfirmasi kata sandi"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Hapus komentar"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Hapus utasan"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Penyunting"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Kedaluwarsa"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Ekspor"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Masukan dinonaktifkan"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Masukan dikirim"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Undangan"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Anggota"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Tidak ada undangan yang menunggu."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "Tekan tombol **Undang orang** untuk mengundang orang-orang ke tim ini."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Lainnya (jelaskan)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Coba lagi"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Pilih opsi"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Kirim"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Mengirim…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Pengaturan"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Pelihat"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Kaitan web"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Pilih gambar"
+#, unused
msgid "media.gradient"
msgstr "Gradien"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
+msgid "media.keep-aspect-ratio"
+msgstr "Jaga rasio aspek"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Memuat gambar…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radial"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Padat"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
msgid "modals.change-email.submit"
msgstr "Ubah surel"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Buat token baru"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Buat kaitan web"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Buat kaitan web"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "URL Muatan"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Hapus percakapan"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Keluarkan anggota"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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:963
msgid "modals.delete-webhook.accept"
msgstr "Hapus kaitan web"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Apakah Anda yakin ingin menghapus kaitan web ini?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Menghapus kaitan web"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Sunting kaitan web"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Sunting kaitan web"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Kirim undangan"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Apakah Anda yakin ingin meninggalkan tim %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Transfer kemilikan"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Undangan berhasil dikirim"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Profil berhasil disimpan!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Selamat datang di Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Lanjutkan membuat tim"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Mulai tanpa tim"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Mari kita mulai!"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11–30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2–10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31–50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Lebih dari 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Saya mengerjakan proyek pribadi"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Buat sebuah tim"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Berkas dan proyek tidak terbatas"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Edisi multipemain"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Pengelolaan peran"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Anggota tidak terbatas"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% gratis!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profil - Token akses"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Berikan masukan - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Pengaturan - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Kata sandi - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Undangan - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Anggota - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Pengaturan - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Papan tidak ditemukan."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Layar Penuh"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Peta Situs"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Gandakan"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Kelompok"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Ubah nama"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "Sunting"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "Berkas"
+
+#: src/app/main/ui/workspace/main_menu.cljs:789
+msgid "workspace.header.menu.option.help-info"
+msgstr "Bantuan & info"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "Preferensi"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "Sunting kisi"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+msgid "workspace.layout_grid.editor.options.exit"
+msgstr "Keluar"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
+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:1300
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:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RGBA"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:379
+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:509, src/app/main/ui/workspace/libraries.cljs:534
+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:516
+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:169
+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:241
+msgid "workspace.options.exporting-complete"
+msgstr "Pengeksporan selesai"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "Pengeksporan gagal"
+
+#: src/app/main/ui/export.cljs:243
+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:177
+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:173
+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:285
+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:189
+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:582
+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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Tutup bilah samping"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Kurva (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Elips (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Papan (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Gambar (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Pindahkan (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Jalur (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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:1097
+msgid "workspace.updates.dismiss"
+msgstr "Abaikan"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "Info lebih lanjut"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "Ada pembaruan dalam pustaka terbagi"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+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 fd0da7b89b..185e5458e1 100644
--- a/frontend/translations/ig.po
+++ b/frontend/translations/ig.po
@@ -1,2002 +1,2213 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
-"Last-Translator: Anonymous \n"
-"Language-Team: Igbo "
-"\n"
+"PO-Revision-Date: 2024-08-11 20:09+0000\n"
+"Last-Translator: Alhassan Atama \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.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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"
+"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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Chefuru akara mpibanye ?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Aha n'uju"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Banye ebe a"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Banye"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "Obi Git"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
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:207
msgid "auth.login-with-google-submit"
msgstr "Gọgụlụ"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "Mepe ID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Pinye akara mpịbanye ọhụrụ"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Ọdịmara e nweghachitere adabaghị ."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:93
msgid "auth.password-length-hint"
msgstr "Ọ karịa mkpụrụ ederede asatọ"
+#: src/app/main/ui/auth/register.cljs:291
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:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Chefuru akara mpịbanye ?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Gbanye akara mpịbanye."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Mepee ebe Ntinye ihe"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:191
msgid "dashboard.access-tokens.create"
msgstr "Mepụta ọdịmara ọhụrụ"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:136
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:133
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:134
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:135
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:132
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:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Bupu ọba ederede nkekọrịta"
+#: src/app/main/ui/export.cljs:440
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:443
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:421
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:308, 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:312
msgid "dashboard.import.import-error"
msgstr "E nwere nsogbu na ibubata ederede . E bubataghị ederede ."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Ụfọdụ ederede nwere ihe ndị adabaghị na ya nke ewepugoro. ."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Nhazi agwụgwara gasị"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Nhazi ngwa gasị"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Nhazi mgbasa ozi"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Nhazi ihu akwụkwọ : %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Nhazi akara nkụpụta"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Ibugo njatụle n'ebe nkesa (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Ibugo ederede : %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Ozi otu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Ndị otu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Arụmarụ otu"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Hazie ntọala"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Dị gara gara"
+#: src/app/main/ui/dashboard/team.cljs:883
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:873
msgid "dashboard.webhooks.content-type"
msgstr "Ụdị ndịna"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Mepe nko - ududọ"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "E mepere nko-ududọ nke ọma ."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Pịa mpị \"Tinye nko-ududọ \" ịtinye otu ."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Aha ozi-n adabala."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Debanye aha ozi-n dabara adaba"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Ozi-n nnabata ga-adabrịrị"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Debanye aha ozi-n dabara adaba"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Ozi-n nnabata ga-adabrịrị"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Ọdịmara e nweghachitere adabaghị ."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "kpọọ òkù adabaghị"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "LDAP mbinye aka agaghị ."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Ọdịmara amaghị ama"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Mmejọ, e nwetaghị URL"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL enweghị nkwado ."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Mmejọ na nkwado SSL ."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Oge ezuola"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Ozi-na ma ọ bụ akara mpịbanye adịghị mma ."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Nkọwa"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Ogbe Ite mkpịsị"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Isiokwu"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Ozi- n"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Gaa na Twita"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:29
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:152
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:100
msgid "inspect.tabs.code"
msgstr "Akara"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Okirikiri"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Ndịna"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Nrọgọ"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Ogwe."
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Otu"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Onyinyo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s a họrọ"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Ụzọ"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rekụtagụlụ"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Ọchịkwa"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Ajọ ụzọ mbanye"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Kagbuo"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Kanva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Nabata akara mpịbanye"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
msgid "labels.continue-with-penpot"
msgstr "I Nwere Ike ịganihu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Hichaa okwu"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Hichapụ eri"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Odezi"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Mebiri"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Nzaghachi merụrụ emeru"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Zigara nzaghachi"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Onye malitere /VP"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "Mmakpo"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Akwụkwọ ịkpọ ọkụ gasị"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Ịzụ ahịa"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Ndị otu"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "E nweghị ọkụ na-echere"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, 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
+#, unused
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:269
msgid "labels.not-found.main-message"
msgstr "E wuu !"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Ọzọ (zipụta)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "Na-echere"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Onye njikwa ngwaahịa ma ọ bụ arụmarụ"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Nwagharịa"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Họrọ nhọ"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Ziga"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:167
+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:730
msgid "labels.status"
msgstr "Ọnọdụ"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Ndị nkiri"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Nko-ududọ"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
msgid "media.loading"
msgstr "Na-ebupụta onyinyo …"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:119
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:131
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:125
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Mepụta ọdịmara nweta"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Mebe nko - ududo"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Mebe nko-ududo"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Isi ozi URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Hichapụ mkparịtaụka"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Hichapụ onye otu"
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Hichapụ nko-ududọ"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Ọ kara gị obi na ị chọrọ ị hichapụ nko-ududọ ?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Na-ehichapụ nko-ududo"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Dezie nko-ududo"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Dezie nko-ududo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Ziga akwụkwọ ozi mkpọta"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:358
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:357
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:356
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:76
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Nabata ite mkpịsị !"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Ka anyị bido!"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Gịnị bụ ọrụ gị ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Kedụ ka otu gị ha?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "Iri na otu ruo na iri atọ"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "Abụọ ruo na iri"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "Iri atọ na otu ruo na iri ise"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Karịrị iri ise"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+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:211
msgid "onboarding.team-modal.create-team"
msgstr "Mepụta otu"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Ederede na arụmarụ na enweghị njedebe"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Mbipụta ọtụtụ egwuregwu"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Njikwa ọrụ"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Ndị otu enweghị njedebe"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:142
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:1093
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 5c1a9fb186..fcd21da9be 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,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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Hai già un account?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Hai dimenticato la password?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nome completo"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Accedere qui"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Accedi"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Inserisci una nuova password"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Il codice di recupero non è valido."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Password"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Almeno 8 caratteri"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Informativa sulla privacy"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Recupera password"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Hai dimenticato la password?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Cambia la tua password"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Crea un account"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr ""
"* Può includere componenti, elementi grafici, colori e/o elementi "
"tipografici."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Esporta le librerie condivise"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Considera le risorse delle librerie condivise come oggetti di base"
+#: src/app/main/ui/export.cljs:442
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:421
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 +428,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 +438,1547 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importare file Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "%s file sono stati importati con successo."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Alcuni file contenenti oggetti non validi sono stati rimossi."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Elaborazione dei colori"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Elaborazione dei componenti"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Elaborazione dei media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Elaborazione pagina: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Elaborazione degli elementi tipografici"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Caricamento dei dati sul server (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Caricamento file: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informazioni sul team"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Membri del team"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Progetti del team"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "E-mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Provider di autenticazione non configurato."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Indirizzo e-mail già convalidato."
+#, unused
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.invalid-email-confirmation"
-msgstr "L'indirizzo e-mail di conferma deve corrispondere"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "L'indirizzo e-mail di conferma deve corrispondere"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Il codice di recupero non è valido."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Invito non valido"
+#: src/app/main/ui/static.cljs:62
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:90
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "La password di conferma deve corrispondere"
#: src/app/main/ui/settings/password.cljs
+#, unused
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Token sconosciuto"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Il nome utente o la password sembrano essere sbagliati."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Descrizione"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Vai al forum Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Community di Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Soggetto"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Vai su X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Account di supporto X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:100
msgid "inspect.tabs.code"
msgstr "Codice"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Cerchio"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Componente"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curvo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Raggruppa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Immagine"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s selezionati"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Tracciato"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rettangolo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Amministratore"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Tutti"
+#: src/app/main/ui/auth/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Gateway non corretto"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Annulla"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Conferma la password"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Eliminare il commento"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Eliminare il thread"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Redattore"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Scaduto"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Esportare"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback disabilitato"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:367
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Inviti"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Membri"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Non ci sono inviti."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "In attesa"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Riprova"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Inviare"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Invio…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr ""
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Elimina conversazione"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Elimina membro"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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:237
msgid "modals.invite-member-confirm.accept"
msgstr "Invia invito"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Trasferisci proprietà"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:170, src/app/main/ui/dashboard/team.cljs:615
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Benvenuti su Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:747
msgid "title.team-invitations"
msgstr "Inviti - %s - Penpot"
diff --git a/frontend/translations/jpn_JP.po b/frontend/translations/jpn_JP.po
index 0dc3c920d9..b2ef93218d 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,971 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "アカウントをお持ちですか?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr "Penpotを使う前にメールのリンクをクリックして、メールアドレスを認証してください。"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr "このサービスはデモ版です。実際の業務には使用しないでください。"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "パスワードを忘れましたか?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "フルネーム"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "こちらからログイン"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "ログイン"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "Gitlab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAPでログイン"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID Connect"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "新しいパスワードを入力"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "リカバリコードが無効です。"
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "パスワードを変更しました"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "プロフィールが確認されていません。続ける前にプロフィールを確認してください。"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "パスワード変更リンクをメールで送信しました。"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "パスワード"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "登録"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "プライバシーポリシー"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "パスワードを回復"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "手順を記載したメールをお送りします"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "パスワードを忘れましたか?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "パスワードを変更"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "アカウントを作成"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "アカウントを作成"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "デザインとプロトタイピングのためのオープンソースです。"
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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:72
msgid "dashboard.change-email"
msgstr "メールアドレスを変更"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
#, 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:202
msgid "dashboard.export-frames.title"
msgstr "PDFにエクスポート"
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
msgid "dashboard.export-shapes.title"
msgstr "エクスポートの選択"
+#: src/app/main/ui/export.cljs:439
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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Penpotをインポート"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:145
msgid "dashboard.import.progress.process-colors"
msgstr "色を処理しています"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "コンポーネントを処理しています"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "メディアを処理しています"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "%s ページ処理中"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "アップロード中 (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "アップロード中: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "メールアドレスが更新されました"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "メールアドレスが認証されました"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "パスワードを保存しました!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "表示言語を選択"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "チーム情報"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "チームのメンバー"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "チームのプロジェクト"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
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:67
msgid "dashboard.your-email"
msgstr "Eメール"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "認証プロバイダが設定されていません。"
+#: src/app/main/errors.cljs:105
msgid "errors.auth.unable-to-login"
msgstr "認証されていないか、セッションが失効しているようです。"
-#: src/app/main/data/workspace.cljs
+#: src/app/main/data/workspace.cljs:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "メールアドレスは使用されています"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
msgid "errors.email-already-validated"
msgstr "メールアドレスはすでに有効です。"
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
msgid "errors.email-has-permanent-bounces"
msgstr "メールアドレス «%s» には多くの受信失敗レポートがあります。"
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "メールアドレスは同じものを入力する必要があります"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "メールアドレスは同じものを入力する必要があります"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "リカバリコードが無効です。"
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "招待が無効"
+#: src/app/main/ui/static.cljs:62
msgid "errors.invite-invalid.info"
msgstr "この招待はキャンセルされたか、失効しています。"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:90
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
+#, unused
msgid "errors.password-too-short"
msgstr "パスワードは8文字以上である必要があります"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "新規登録は無効化されています。"
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
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:59
msgid "errors.unexpected-token"
msgstr "不明なトークン"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "ユーザー名かパスワードが正しくありません。"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "以前のパスワードが正しくありません"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "記述"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Penpot forumに参加"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:85
msgid "feedback.discourse-title"
msgstr "Penpot コミュニティ"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "題名"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "メールアドレス"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "Xサポートアカウント"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:124
msgid "inspect.tabs.code.selected.circle"
msgstr "円"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "コンポーネント"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "曲線"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "グループ"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "画像"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
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:91
msgid "labels.confirm-password"
msgstr "パスワードを確認"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "コメントを削除"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "スレッドを削除"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "エディタ"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "失効済み"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "エクスポート"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "招待"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "メンバー"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
msgid "labels.new-password"
msgstr "新しいパスワード"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:714
msgid "labels.no-invitations"
msgstr "招待がありません。"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
msgid "labels.not-found.main-message"
msgstr "おっと!"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:77
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:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "リトライ"
diff --git a/frontend/translations/ko.po b/frontend/translations/ko.po
index cf99805feb..556b536907 100644
--- a/frontend/translations/ko.po
+++ b/frontend/translations/ko.po
@@ -1,826 +1,921 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
-"Last-Translator: Anonymous \n"
-"Language-Team: Korean \n"
+"PO-Revision-Date: 2024-08-05 19:09+0000\n"
+"Last-Translator: sangpil hwang \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 5.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "이미 계정이 있으신가요?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "이메일을 확인하세요"
+
+#: src/app/main/ui/auth/register.cljs:270
+msgid "auth.check-your-email"
+msgstr "이메일에 포함된 링크를 클릭하여 계정을 인증하고 펜팟의 사용을 시작하십시오."
+
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
+msgid "auth.demo-warning"
+msgstr "데모 서비스입니다. 실제 작업에 사용하지 마십시오. 생성된 프로젝트는 주기적으로 삭제될 것입니다."
+
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "비밀번호를 잊어버리셨나요?"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:224
+msgid "auth.fullname"
+msgstr "이름 (성명)"
+
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "내 계정에 로그인하기"
+
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "여기서 로그인하세요"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "로그인"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr "펜팟은 디자인과 코딩의 협업을 위한 무료 오픈소스 디자인 도구입니다"
+
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "깃허브 (GitHub)"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "깃랩 (GitLab)"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "구글 (Google)"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/login.cljs:192
+msgid "auth.login-with-ldap-submit"
+msgstr "LDAP"
+
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
+msgid "auth.login-with-oidc-submit"
+msgstr "오픈아이디 (OpenID)"
+
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "새 비밀번호를 입력하세요"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "비밀번호가 성공적으로 변경되었어요"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "프로필이 검증되지 않았어요. 계속 하려면 검증절차를 완료해주세요."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "비밀번호 복구를 위한 링크를 메일함으로 보냈어요"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "비밀번호"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "최소 8개의 문자"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "개인 정보 정책"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "비밀번호 복구하기"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "이용지침을 메일로 전달해드릴거에요"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "비밀번호를 잊으셨나요?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "비밀번호를 바꾸세요"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
msgid "auth.register"
msgstr "아직 계정이 없으신가요?"
-#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "대시보드와 이메일 에서 당신을 어떻게 호칭할지 저희에게 알려주세요."
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "계정을 생성하세요"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr "펜팟 무료 계정과 함께라면, 무제한으로 팀을 만들고 다른 디자이너 및 개발자와 원하는 만큼 프로젝트에서 협업할 수 있습니다. "
+
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "계정을 생성하세요"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "디자인과 프로토타이핑을 위한 오픈소스 솔루션."
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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 "errors.invalid-recovery-token"
-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/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/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+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
-#, markdown
-msgid "auth.terms-privacy-agreement-md"
-msgstr "새로운 계정을 생성하시면, 사용자는 펜팟의 [서비스 정책](%s)과 [개인 정보 "
-"정책](%s)에 동의하는 것으로 간주됩니다."
+#: 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/dashboard/projects.cljs
-msgid "dasboard.tutorial-hero.info"
-msgstr "본 실습용 튜토리얼을 통해 펜팟의 기본 기능에 대하여 재미있게 학습하십시오."
+#: src/app/main/ui/viewer/share_link.cljs:139
+msgid "common.share-link.link-copied-success"
+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/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:104
+msgid "dashboard.access-tokens.copied-success"
+msgstr "복사된 토큰"
+
+#: src/app/main/ui/settings/access_tokens.cljs:191
+msgid "dashboard.access-tokens.create"
+msgstr "새로운 토큰 생성하기"
+
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
+msgid "dashboard.access-tokens.create-success"
+msgstr "엑세스 토큰이 성공적으로 생성되었습니다."
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
+msgid "dashboard.access-tokens.empty.add-one"
+msgstr "\"새로운 토큰 생성하기\" 버튼을 눌러 토큰을 생성하십시오."
+
+#: src/app/main/ui/settings/access_tokens.cljs:288
+msgid "dashboard.access-tokens.empty.no-access-tokens"
+msgstr "현재 가지고 있는 토큰이 없습니다."
+
+#: src/app/main/ui/settings/access_tokens.cljs:136
+msgid "dashboard.access-tokens.expiration-180-days"
+msgstr "180일"
+
+#: src/app/main/ui/settings/access_tokens.cljs:133
+msgid "dashboard.access-tokens.expiration-30-days"
+msgstr "30일"
+
+#: src/app/main/ui/settings/access_tokens.cljs:134
+msgid "dashboard.access-tokens.expiration-60-days"
+msgstr "60일"
+
+#: src/app/main/ui/settings/access_tokens.cljs:135
+msgid "dashboard.access-tokens.expiration-90-days"
+msgstr "90일"
+
+#: src/app/main/ui/settings/access_tokens.cljs:132
+msgid "dashboard.access-tokens.expiration-never"
+msgstr "기한 없음"
+
+#: src/app/main/ui/settings/access_tokens.cljs:271
+msgid "dashboard.access-tokens.expired-on"
+msgstr "%s에 만료되었습니다"
+
+#: src/app/main/ui/settings/access_tokens.cljs:272
+msgid "dashboard.access-tokens.expires-on"
+msgstr "%s에 만료됩니다"
+
+#: src/app/main/ui/settings/access_tokens.cljs:270
+msgid "dashboard.access-tokens.no-expiration"
+msgstr "만료 기한 없음"
+
+#: src/app/main/ui/settings/access_tokens.cljs:186
+msgid "dashboard.access-tokens.personal"
+msgstr "개인용 엑세스 토큰"
+
+#: src/app/main/ui/settings/access_tokens.cljs:187
+msgid "dashboard.access-tokens.personal.description"
+msgstr ""
+"개인용 엑세스 토큰은 펜팟의 로그인/암호 인증 시스템의 대안으로 사용되며, 어플리케이션의 펜팟 내부 API 엑세스를 위해 사용될 수 "
+"있습니다"
+
+#: src/app/main/ui/settings/access_tokens.cljs:143
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:144
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:72
+msgid "dashboard.change-email"
+msgstr "이메일을 변경해요"
+
+#: src/app/main/data/dashboard.cljs:763, 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:33
+#, 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:202
+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/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+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:100
+msgid "inspect.tabs.code"
+msgstr "코드"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
+msgid "inspect.tabs.code.selected.circle"
+msgstr "원"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
+msgid "inspect.tabs.code.selected.component"
+msgstr "컴포넌트"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
+msgid "inspect.tabs.code.selected.curve"
+msgstr "커브"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
+msgid "inspect.tabs.code.selected.frame"
+msgstr "보드"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
+msgid "inspect.tabs.code.selected.group"
+msgstr "그룹"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
+msgid "inspect.tabs.code.selected.image"
+msgstr "이미지"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
+msgid "inspect.tabs.code.selected.mask"
+msgstr "마스크"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
+msgid "inspect.tabs.code.selected.path"
+msgstr "패스"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
+msgid "inspect.tabs.code.selected.rect"
+msgstr "사각형"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
+msgid "inspect.tabs.code.selected.svg-raw"
+msgstr "SVG"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
+msgid "inspect.tabs.code.selected.text"
+msgstr "텍스트"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
+msgid "inspect.tabs.info"
+msgstr "정보"
+
+#: src/app/main/ui/workspace/main_menu.cljs:158
+msgid "label.shortcuts"
+msgstr "단축키"
+
+#: src/app/main/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
+msgid "labels.accept"
+msgstr "허가"
+
+#: src/app/main/ui/dashboard/team.cljs:989
+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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
+msgid "labels.admin"
+msgstr "관리자"
+
+#: src/app/main/ui/workspace/comments.cljs
+#, unused
+msgid "labels.all"
+msgstr "전체"
+
+#: src/app/main/ui/auth/register.cljs:287
+msgid "labels.and"
+msgstr "그리고"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:162
+msgid "labels.back"
+msgstr "뒤로"
+
+#: src/app/main/ui/static.cljs:281
+msgid "labels.bad-gateway.main-message"
+msgstr "잘못된 경로"
+
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
+msgid "labels.cancel"
+msgstr "취소"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
+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:91
+msgid "labels.confirm-password"
+msgstr "비밀번호 확인하기"
+
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, src/app/main/ui/onboarding/newsletter.cljs:101
+msgid "labels.continue"
+msgstr "계속하기"
+
+#: src/app/main/ui/dashboard/team.cljs:662
+msgid "labels.copy-invitation-link"
+msgstr "링크 복사하기"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209
+msgid "labels.delete"
+msgstr "삭제하기"
+
+#: src/app/main/ui/comments.cljs:356
+msgid "labels.delete-comment"
+msgstr "코멘트 삭제하기"
+
+#: src/app/main/ui/comments.cljs:353
+msgid "labels.delete-comment-thread"
+msgstr "스레드 제거하기"
+
+#: src/app/main/ui/dashboard/team.cljs:668
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
+msgid "labels.editor"
+msgstr "작성자"
+
+#: src/app/main/ui/dashboard/team.cljs:681
+msgid "labels.expired-invitation"
+msgstr "기한이 만료된"
+
+#: src/app/main/ui/export.cljs:174
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
+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:990
+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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
+msgid "labels.viewer"
+msgstr "뷰어"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
+msgid "labels.webhooks"
+msgstr "웹훅"
+
+#: src/app/main/ui/comments.cljs:193
+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:451
+msgid "media.loading"
+msgstr "이미지 로딩중…"
+
+#: src/app/main/data/common.cljs:127
+msgid "modals.add-shared-confirm.accept"
+msgstr "공유된 라이브러리로 추가"
+
+#: src/app/main/data/common.cljs:124
+msgid "modals.add-shared-confirm.message"
+msgstr " "
+
+#: src/app/main/ui/settings/change_email.cljs:111
+msgid "modals.change-email.confirm-email"
+msgstr "새 이메일 인증하기"
+
+#: src/app/main/ui/settings/change_email.cljs:104
+msgid "modals.change-email.new-email"
+msgstr "새 이메일"
+
+#: src/app/main/ui/settings/change_email.cljs:119
+msgid "modals.change-email.submit"
+msgstr "이메일 변경하기"
+
+#: src/app/main/ui/settings/change_email.cljs:92
+msgid "modals.change-email.title"
+msgstr "이메일을 변경하세요"
+
+#: src/app/main/ui/dashboard/team.cljs:894
+msgid "modals.create-webhook.submit-label"
+msgstr "웹훅 만들기"
+
+#: src/app/main/ui/dashboard/team.cljs:859
+msgid "modals.create-webhook.title"
+msgstr "웹훅 생성하기"
+
+#: src/app/main/ui/comments.cljs:297
+msgid "modals.delete-comment-thread.accept"
+msgstr "대회 지우기"
+
+#: src/app/main/ui/comments.cljs:295
+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:26, src/app/main/ui/settings/profile.cljs:33
+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 08113cf5ca..36aefb3e0e 100644
--- a/frontend/translations/lt.po
+++ b/frontend/translations/lt.po
@@ -2,278 +2,298 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Jau turite paskyrą?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Pamiršote slaptažodį?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Vardas ir Pavardė"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Prisijungimas čia"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Prisijungti"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Įveskite naują slaptažodį"
-#: src/app/main/ui/auth/recovery.cljs
-#, fuzzy
-msgid "errors.invalid-recovery-token"
-msgstr "Atkūrimo prieigos raktas neteisingas."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Slaptažodis"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Ne mažiau kaip 8 simboliai"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Privatumo politika"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Pamiršote slaptažodį?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Slaptažodžio keitimas"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Sukurti paskyrą"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -281,96 +301,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:202
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:110
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:181
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:185
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:180
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:191
msgid "dashboard.export-shapes.title"
msgstr "Eksportuoti pažymėtą sritį"
+#: src/app/main/ui/export.cljs:430
msgid "dashboard.export.detail"
msgstr "* Gali apimti komponentus, grafiką, spalvas ir (arba) tipografiją."
+#: src/app/main/ui/export.cljs:429
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:438
msgid "dashboard.export.options.all.message"
msgstr ""
"failai su bendromis bibliotekomis bus įtraukti į eksportą, išlaikant jų "
"susiejimą."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "Eksportuoti bendrai naudojamas bibliotekas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr ""
"Bendrai naudojamus bibliotekos komponentus traktuokite kaip pagrindinius "
"objektus"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Įtraukti bendrai naudojamus bibliotekos komponentus į failų bibliotekas"
+#: src/app/main/ui/export.cljs:421
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 +414,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 +424,123 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importuokite Penpot failus"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Iškilo problema importuojant failą. Failas nebuvo importuotas."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Kai kuriuose failuose buvo netinkamų objektų, kurie buvo pašalinti."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Apdorojimo spalvos"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Komponentų apdorojimas"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Apdorojamos laikmenos"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Apdorojamas puslapis: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Tipografijų apdorojimas"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Įkeliami duomenys į serverį (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:58
msgid "dashboard.theme-change"
msgstr "Vartotojo sąsajos tema"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Atkūrimo prieigos raktas neteisingas."
diff --git a/frontend/translations/lv.po b/frontend/translations/lv.po
index d759cd7bd0..36def8377d 100644
--- a/frontend/translations/lv.po
+++ b/frontend/translations/lv.po
@@ -2,482 +2,525 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Jau ir konts?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Aizmirsta parole?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Pilns vārds"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
msgid "auth.login-account-title"
msgstr "Pieteikties manā kontā"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Pieteikties šeit"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Pieteikties"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
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:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "AtvērtoID (OpenID)"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Ierakstiet jaunu paroli"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Atkopšanas tekstvienība nav derīga."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Parole"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Vismaz 8 rakstzīmes"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Privātuma politika"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Atkopt paroli"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Aizmirsat paroli?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Nomainīt paroli"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Izveidot kontu"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Izveidot jaunu pilnvaru"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nekad"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
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:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Izgūt koplietojamās bibliotēkas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Attiekties pret koplietojamo bibliotēku līdzekļiem kā pret pamatobjektiem"
+#: src/app/main/ui/export.cljs:442
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:443
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:421
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, "
@@ -485,6 +528,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 "
@@ -492,10 +537,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 "
@@ -505,1527 +552,1702 @@ msgstr ""
"[Transfonter](https://transfonter.org/), lai izveidotu tīmekļa fontus un "
"novērstu kļūdas. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Ievietot Penpot datnes"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Datnes ievietošanas laikā radās sarežģījumi. Datne netika ievietota."
+#: src/app/main/ui/dashboard/import.cljs:497
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:485, src/app/main/ui/dashboard/import.cljs:492
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:145
msgid "dashboard.import.progress.process-colors"
msgstr "Krāsu apstrāde"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Apstrādā sastāvdaļas"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Multivides apstrāde"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "%s lapas apstrāde"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Apstrādā burtu stilus un veidus"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Augšupielādē datus serverī (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Atlasīt saskarnes valodu"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Par komandu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Komandas dalībnieki"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Komandas projekti"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Atjaunināt iestatījumus"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Ir aktīvs"
+#: src/app/main/ui/dashboard/team.cljs:883
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:873
msgid "dashboard.webhooks.content-type"
msgstr "Satura tips"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Izveidot tīmekļa aizķeri"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Tīmekļa aizķere ir veiksmīgi izveidota."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "E-pasta adrese"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Autentifikācijas nodrošinātājs nav konfigurēts."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-pasta adrese jau ir apliecināta."
+#, unused
msgid "errors.email-as-password"
msgstr "E-pastu nevar izmantot kā paroli"
-#: src/app/main/data/users.cljs
+#: src/app/main/data/users.cljs:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Lūgums ievadīt derīgu e-pasta adresi"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Apstiprinājuma e-pastam jāatbilst"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Līdzeklis '%s' netiek atbalstīts."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Lūgums ievadīt derīgu e-pasta adresi"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Apstiprinājuma e-pastam jāatbilst"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Atkopšanas tekstvienība nav derīga."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Nederīgs ielūgums"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "LDAP autentifikācija ir atspējota."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Apstiprinājuma parolei ir jāsakrīt"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Parolē ir jābūt vismaz 8 rakstzīmēm"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Starpliktuvē ir nederīgi dati"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Reģistrācija pašlaik ir atspējota."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "Datnei ir nesaderīgs versijas numurs"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Savienojuma kļūda, URL nav sasniedzams"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL neiztur pārbaudi."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Pēdējā piegāde nebija veiksmīga."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Kļūda SSL pārbaudē."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Noilgums"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Pārbaudes laikā atgadījās neparedzēta kļūda"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Neparedzēts statuss %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-pasta adrese vai parole nav pareiza."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Vecā parole nav pareiza"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Apraksts"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Doties uz Penpot forumu"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot kopiena"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Temats"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-pasts"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Atvērt X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "X atbalsta konts"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Vairāk informācijas par apskatīšanu"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kods"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Aplis"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Sastāvdaļa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Līkne"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Plātne"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Kopa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Attēls"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "Atlasīti: %s"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Ceļš"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Taisnstūris"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Pārvaldnieks"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Nepareiza vārteja"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Atcelt"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Apstiprināt paroli"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Dzēst komentāru"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Dzēst pavedienu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Redaktors"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Beidzies derīgums"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Izgūt"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Atsauksme atspējota"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Atsauksme nosūtīta"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Dibinātājs/viceprezidents"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Ielūgumi"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Tirgvedība"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Dalībnieki"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Nav gaidošu uzaicinājumu."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Cits (jānorāda)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:250
+msgid "labels.product-management"
+msgstr "Produktu vai projektu vadītājs"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Pamēģināt vēlreiz"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Atlasīt iespēju"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Nosūtīt"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Nosūtīšana…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Iestatījumi"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Statuss"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Pārlūks"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Tīmekļa aizķeres"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Izvēlēties attēlu"
+#, unused
msgid "media.gradient"
msgstr "Pāreja"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
msgid "media.keep-aspect-ratio"
msgstr "Paturēt samēru"
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Ielādē attēlu…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radiāls"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Viengabalains"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Izveidot jaunu piekļuves pilnvaru"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Izveidot tīmekļa aizķeri"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Izveidot tīmekļa aizķeri"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Vērtuma URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Dzēst sarunu"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
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] ""
@@ -2038,1262 +2260,1412 @@ msgstr[2] ""
"Līdzekļi, kas jau tiek izmantoti šajā datnē, paliks tajā (dizains netiks "
"salauzts)."
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Izdzēst tīmekļa aizķeri"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Vai tiešām izdzēst šo tīmekļa aizķeri?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Notiek tīmekļa aizķeres izdzēšana"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Labot tīmekļa aizķeri"
+#: src/app/main/ui/dashboard/team.cljs:858
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:237
msgid "modals.invite-member-confirm.accept"
msgstr "Nosūtīt uzaicinājumu"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Vai tiešām pamest komandu %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
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:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Laipni lūdzam Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Turpināt komandas izveidošanu"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Uzsākt bez komandas"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Ķeramies pie darba!"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Kāda ir ieņemamā loma?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Cik liela ir komanda?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Vairāk nekā 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Strādāju personīgā projektā"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Izveidot komandu"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Neierobežotas datnes un projekti"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Vairāku lietotāju izdevums"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Lomu pārvaldība"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Neierobežoti dalībnieki"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% bez maksas!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profils - piekļuves pilnvaras"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Sniegt atsauksmes - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Iestatījumi - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Parole - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profils - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Ielūgumi - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Dalībnieki - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Iestatījumi - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Plātne netika atrasta."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Pilnekrāns"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Vietnes karte"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Divkāršot"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Kopa"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:128
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"
@@ -3301,1905 +3673,2054 @@ 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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Labot"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Datne"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Izvēles"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Labot režģi"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
msgid "workspace.layout_grid.editor.options.exit"
msgstr "Iziet"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Sakļaut sānjoslu"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Līkne (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elipse (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Plātne (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Attēls (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Pārvietot (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Ceļš (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Izlaist"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Vairāk informācijas"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 2502c20107..dadfb29e10 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,203 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "നിലവിൽ അക്കൗണ്ടുണ്ടോ?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr ""
"പെൻപോട്ട് ഉപയോഗിക്കാനും സാധൂകരിക്കാനും നിങ്ങളുടെ ഇമെയിൽ പരിശോധിച്ച് അതിലെ "
"കണ്ണിയിൽ ക്ലിക്ക് ചെയ്യുക."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr ""
"ഇതൊരു ഡെമോ സേവനമാണ്, ഒരു യഥാർത്ഥ ജോലിക്ക് ഉപയോഗിക്കരുത്, പ്രൊജക്റ്റുകൾ "
"നിശ്ചിതസമയങ്ങളിൽ മായ്ക്കപ്പെടും."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "പാസ്വേഡ് മറന്നോ?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "മുഴുവൻ പേര്"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "ഇവിടെ ലോഗിൻ ചെയ്യുക"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "ലോഗിൻ"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "ഗിറ്റ്ഹബ്ബ്"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "ഗിറ്റ്ലാബ്"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "ഗൂഗിൾ"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "ഓപ്പൺഐഡി"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "പുതിയൊരു പാസ്വേഡ് ചേർക്കുക"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "റിക്കവറി ടോക്കൺ അസാധുവാണ്."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "പാസ്വേഡ് വിജയകരമായി മാറ്റി"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "പ്രൊഫൈൽ സാധൂകരിച്ചിട്ടില്ല, തുടരുന്നതിന് മുൻപ് ദയവായി സാധൂകരിക്കുക."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "പാസ്വേഡ് വീണ്ടെടുപ്പ് കണ്ണി നിങ്ങളുടെ ഇൻബോക്സിലേക്ക് അയച്ചിട്ടുണ്ട്."
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "പാസ്വേഡ്"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "കുറഞ്ഞത് 8 ക്യാരക്റ്ററുകൾ"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "സ്വകാര്യതാനയം"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "പാസ്വേഡ് വീണ്ടെടുക്കുക"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "നിർദ്ദേശങ്ങളടങ്ങിയ ഒരു ഇമെയിൽ ഞങ്ങൾ നിങ്ങൾക്ക് അയയ്ക്കും"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "പാസ്വേഡ് മറന്നോ?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "പാസ്വേഡ് മാറ്റുക"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "അക്കൗണ്ട് സൃഷ്ടിക്കുക"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "ഡിസൈനിങിനും പ്രോട്ടോടൈപ്പിങിനുമുള്ള ഓപ്പൺ സോഴ്സ് പ്രതിവിധി."
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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:72
msgid "dashboard.change-email"
msgstr "ഇമെയിൽ മാറ്റുക"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -210,19 +215,26 @@ 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:202
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:430
msgid "dashboard.export.detail"
msgstr "* ഘടകങ്ങൾ, ഗ്രാഫിക്സ്, നിറങ്ങൾ അല്ലെങ്കിൽ മുദ്രണകലകൾ എന്നിവ ഉൾപ്പെടാം."
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "റിക്കവറി ടോക്കൺ അസാധുവാണ്."
diff --git a/frontend/translations/ms.po b/frontend/translations/ms.po
index 08db4e6f9c..8b04796b2c 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,347 +11,375 @@ 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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Lupa kata laluan?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nama penuh"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Log masuk disini"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Log masuk"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "Github"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID Connect"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Taip kata laluan baharu"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Token pemulihan adalah tidak sah."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Kata laluan"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Sekurang-kurangnya 8 aksara"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Dasar privasi"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Lupa kata laluan?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Tukar kata laluan anda"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Cipta akaun"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Jana token baru"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
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:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -359,98 +387,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:202
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:110
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:181
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:185
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:180
msgid "dashboard.export-shapes.no-elements"
msgstr "Tiada unsur dengan tetapan eksport."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* Mungkin termasuk komponen, grafik, warna dan/atau tipografi."
+#: src/app/main/ui/export.cljs:429
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:438
msgid "dashboard.export.options.all.message"
msgstr ""
"fail dengan perpustakaan kongsi akan disertakan dalam eksport, mengekalkan "
"hubungannya."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "Eksport perpustakaan kongsi"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Anggap aset perpustakaan kongsi sebagai objek asas"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Sertakan aset perpustakaan kongsi dalam pustaka fail"
+#: src/app/main/ui/export.cljs:421
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 ""
@@ -460,6 +504,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 ""
@@ -469,10 +514,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 ""
@@ -483,2156 +529,2424 @@ msgstr ""
"menggunakan [Transfonter](https://transfonter.org/) untuk menjana fon web "
"dan membetulkan ralat. "
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Import fail Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Terdapat masalah mengimport fail. Fail tidak diimport."
+#: src/app/main/ui/dashboard/import.cljs:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Sesetengah fail mengandungi objek tidak sah telah dialih keluar."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "memproses warna"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Memproses komponen"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Memproses media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Memproses halaman: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Memproses tipografi"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Memuat naik data ke pelayan (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Kata laluan berjaya disimpan!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Pilih Bahasa UI"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Maklumat pasukan"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Anggota kumpulan"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projek pasukan"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Kemas kini tetapan"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Adalah aktif"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Apabila cangkuk ini dicetuskan, butiran peristiwa akan dihantar"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Jenis kandungan"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Cipta webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook berjaya dihasilkan."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Tekan butang \"Tambah webhook\" untuk menambahnya."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "E-mel"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Pembekal pengesahan tidak dikonfigurasikan."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mel sudah disahkan."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Sila masukkan e-mel yang sah"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "E-mel pengesahan mesti sepadan"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Ciri '%s' tidak disokong."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Sila masukkan e-mel yang sah"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "E-mel pengesahan mesti sepadan"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Token pemulihan adalah tidak sah."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Jemputan tidak sah"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Pengesahan LDAP dilumpuhkan."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Kata laluan pengesahan mesti sepadan"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Kata laluan hendaklah sekurang-kurangnya 8 aksara"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Data tidak sah dalam papan klip"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Pendaftaran dilumpuhkan pada masa ini."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "Fail mempunyai nombor versi yang tidak serasi"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Ralat sambungan, URL tidak dapat dicapai"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL tidak lulus pengesahan."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Penghantaran terakhir tidak berjaya."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Ralat pada pengesahan SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Masa tamat"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Ralat yang tidak dijangka semasa mengesahkan"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Status tidak dijangka %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-mel atau kata laluan tidak betul."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Penerangan"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Pergi ke forum Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Komuniti Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Subjek"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mel"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Pergi ke Twitter"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Akaun sokongan Twitter"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Maklumat lanjut tentang inspect"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kod"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Bulatan"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Komponen"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Lengkung"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Papan"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Kumpulan"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Gambar"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Dipilih"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Laluan"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Segi empat tepat"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Pentadbir"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Ralat pelayan (Bad Gateway)"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Batal"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Sahkan kata laluan"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Padam komen"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Padam bebenang"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Penyunting"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Tamat tempoh"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Eksport"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Maklum balas dilumpuhkan"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Maklum balas dihantar"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Pengasas/VP"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Jemputan"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Pemasaran"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Ahli"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Tiada jemputan tertunda."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, markdown
msgid "labels.no-invitations-hint"
msgstr "Klik butang **Jemput orang** untuk menjemput orang ke pasukan ini."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Lain-lain (nyatakan)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:250
+msgid "labels.product-management"
+msgstr "Pengurus Produk atau Projek"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Cuba semula"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Pilih pilihan"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Hantar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Menghantar…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Tetapan"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Penonton"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Cangkuk Web (Webhook)"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
msgid "media.loading"
msgstr "Memuatkan gambar…"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Jana token capaian"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Cipta cangkuk web (webhook)"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Cipta cangkuk web (webhook)"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "URL muatan"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Padam perbualan"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Padam ahli"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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:963
msgid "modals.delete-webhook.accept"
msgstr "Padam cangkuk web (webhook)"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Adakah anda pasti mahu memadamkan cangkuk web (webhook) ini?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Memadam cangkuk web (webhook)"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Sunting cangkuk web (webhook)"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Sunting cangkuk web (webhook)"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Hantar jemputan"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Adakah anda pasti mahu meninggalkan pasukan %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Pindah hak milik"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Jemputan berjaya dihantar"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Profil berjaya disimpan!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Selamat datang ke Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Teruskan mencipta pasukan"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Mulakan tanpa pasukan"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Mari mulakan!"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Apakah peranan anda?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Berapakah saiz pasukan anda?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Lebih daripada 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Saya sedang menjalankan projek peribadi"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Cipta pasukan"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Fail dan projek tanpa had"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Edisi berbilang pemain"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Pengurusan peranan"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Ahli tanpa had"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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 76d20969bc..c79914824e 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:67
msgid "auth.confirm-password"
msgstr "Bekreft passord"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Glemt passordet?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Fullt navn"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Skriv inn et nytt passord"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Passord"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Gjenopprett passord"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Endre passordet ditt"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Opprett konto"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:121
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:763, 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:114
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:331
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:53
msgid "dashboard.select-ui-language"
msgstr "Velg grensesnittsspråk"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:1073
msgid "dashboard.team-info"
msgstr "Teaminfo"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Teammedlemmer"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Lagprosjekter"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Gjenopprettelsessymbolet er ugyldig."
+
+#: src/app/main/ui/auth/verify_token.cljs:59
msgid "errors.unexpected-token"
msgstr "Ukjent symbol"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Beskrivelse"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
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:100
msgid "inspect.tabs.code"
msgstr "Kode"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Sirkel"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Gruppe"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Bilde"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Sti"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
msgid "inspect.tabs.info"
msgstr "Info"
+#: src/app/main/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
msgid "labels.accept"
msgstr "Godta"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Avbryt"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:91
msgid "labels.confirm-password"
msgstr "Bekreft passord"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Slett kommentar"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:48
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Medlemmer"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
msgid "labels.new-password"
msgstr "Nytt passord"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:125, 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:153
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Prøv igjen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Send"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:79
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:193
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:451
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:127
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:111
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Slett samtale"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Slett medlem"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
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:413, src/app/main/ui/dashboard/team.cljs:435
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:170, src/app/main/ui/dashboard/team.cljs:615
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Profil lagret"
-#: src/app/main/ui/settings/options.cljs
-#, fuzzy
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Innstillinger - Penpot"
-#: src/app/main/ui/settings/password.cljs
-#, fuzzy
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Passord - Penpot"
-#: src/app/main/ui/settings/profile.cljs
-#, fuzzy
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:1057
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Gruppe"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:379
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:169
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:173, src/app/main/ui/export.cljs:242, 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 139c96ddf4..57fe5246a8 100644
--- a/frontend/translations/nl.po
+++ b/frontend/translations/nl.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: Dutch \n"
@@ -9,476 +9,546 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Heb je al een account?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Controleer je e-mail"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Wachtwoord vergeten?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Volledige naam"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
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:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
-msgstr "Hier inloggen"
+msgstr "Hier inloggen."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Inloggen"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
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:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Typ een nieuw wachtwoord"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "De herstelbewijsstuk is ongeldig."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Wachtwoord"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Minimaal 8 tekens"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Privacybeleid"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Wachtwoord herstellen"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Wachtwoord vergeten?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Wachtwoord wijzigen"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "Laat ons weten hoe we je moeten aanspreken op het dashboard en in e-mails."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "Je naam"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Account aanmaken"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Met een gratis Penpot-account kun je onbeperkte teams maken en met andere "
+"ontwerpers en ontwikkelaars samenwerken aan zoveel projecten als je wilt. "
+
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr "Ik ga akkoord met de [servicevoorwaarden] (%s) en [privacybeleid] (%s)."
+
+#: src/app/main/ui/auth/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "We hebben een verificatie-e-mail verzonden naar"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+msgstr "Werk e-mail"
+
#: 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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Nieuw toegangsbewijs aanmaken"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nooit"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
msgid "dashboard.access-tokens.personal"
msgstr "Persoonlijke toegangsbewijzen"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Kan componenten, afbeeldingen, kleuren en/of typografie bevatten."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Gedeelde bibliotheken exporteren"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Gedeelde bibliotheek-assets als basisobjecten behandelen"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Inclusief gedeelde bibliotheek-assets in bestandsbibliotheken"
+#: src/app/main/ui/export.cljs:421
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 "
@@ -486,6 +556,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 "
@@ -494,10 +566,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 "
@@ -507,402 +581,412 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importeer Penpot-bestanden"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Sommige bestanden bevatten ongeldige objecten die verwijderd zijn."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Kleuren aan het verwerken"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Componenten aan het verwerken"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Media aan het verwerken"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Pagina aan het verwerkten: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Typografie verwerken"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Gegevens uploaden naar server (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Wachtwoord succesvol opgeslagen!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Taal selecteren"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Team info"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Teamleden"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Teamprojecten"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Instellingen bijwerken"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Is actief"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Wanneer deze hook wordt getriggerd, worden gebeurtenisdetails afgeleverd"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Contenttype"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Maak webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook is succesvol aangemaakt."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "E-mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Authenticatie-provider niet geconfigureerd."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mail is al gevalideerd."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Voer een geldig e-mailadres in"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Bevestigingsmail moet overeenkomen"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "Functie '%s' wordt niet ondersteund."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
msgid "errors.file-feature-mismatch"
msgstr ""
"Het lijkt erop dat er een discrepantie bestaat tussen de ingeschakelde "
@@ -910,1136 +994,1330 @@ 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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Voer een geldig e-mailadres in"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Bevestigingsmail moet overeenkomen"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "De herstelbewijsstuk is ongeldig."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Uitnodiging ongeldig"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "LDAP-authenticatie is uitgeschakeld."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Bevestigingswachtwoord moet overeenkomen"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Wachtwoord moet minimaal 8 tekens lang zijn"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Ongeldige gegevens op klembord"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "De registratie is momenteel uitgeschakeld."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Onbekend bewijsstuk"
+#, unused
msgid "errors.validation"
msgstr "Validatiefout"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:241
msgid "errors.version-not-supported"
msgstr "Bestand heeft een incompatibel versienummer"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Verbindingsfout, URL niet bereikbaar"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL komt niet door de validatie."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Laatste levering was niet succesvol."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Fout bij SSL-validatie."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Time-out"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Onverwachte fout bij het valideren"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Onverwachte status %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-mailadres of wachtwoord is incorrect."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Huidige wachtwoord is onjuist"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Omschrijving"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot-gemeenschap"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Onderwerp"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Ga naar X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "X-ondersteuningsaccount"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Meer info over inspecteren"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Code"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Cirkel"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Component"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Kromme"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Bord"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Groep"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Afbeelding"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Geselecteerd"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Pad"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rechthoek"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Admin"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Annuleren"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Wachtwoord bevestigen"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Commentaar verwijderen"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Thread verwijderen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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/onboarding/questions.cljs:246
+msgid "labels.developer"
+msgstr "Ontwikkeling"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+msgstr "Directeur"
+
+#: 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Evenement"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Verlopen"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exporteren"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback uitgeschakeld"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Feedback verstuurd"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "CEO of oprichter"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Ga terug"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+msgstr "Grafisch ontwerp"
+
+#: 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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Uitnodigingen"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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/onboarding/questions.cljs:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Leden"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Geen openstaande uitnodigingen."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Anders (namelijk…)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Anders"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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/onboarding/questions.cljs:245
+msgid "labels.product-design"
+msgstr "Product- of UX-ontwerp"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Product management"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Opnieuw proberen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Selecteer een optie"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Versturen"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Versturen…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Instellingen"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Status"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Student of docent"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Teamleider"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+msgstr "Teamlid"
+
+#: 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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Kijker"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Afbeelding kiezen"
+#, unused
msgid "media.gradient"
msgstr "Verloop"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
msgid "media.keep-aspect-ratio"
msgstr "Verhoudingen behouden"
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Afbeelding laden…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radiaal"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Solide"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Toegangsbewijs genereren"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Webhook aanmaken"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Webhook aanmaken"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Payload-URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Gesprek verwijderen"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Lid verwijderen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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] ""
@@ -2049,161 +2327,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:963
msgid "modals.delete-webhook.accept"
msgstr "Webhook verwijderen"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Weet je zeker dat je deze webhook wilt verwijderen?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Webhook verwijderen"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Webhook bewerken"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Webhook bewerken"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Uitnodiging versturen"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Eigendom overdragen"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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?"
@@ -2211,3011 +2501,3430 @@ 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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Uitnodiging succesvol verstuurd"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Profiel is opgeslagen!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Welkom bij Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Doorgaan met team aanmaken"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Zonder team beginnen"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Laten we beginnen!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Op zoek naar een alternatief voor Figma, XD, etc."
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Een beetje rondkijken"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Om te kijken of Penpot goed bij mijn team past"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Testen voor zelf hosten"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Echte codeontwerpen genereren"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Design Systems creëren"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototype"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Het ontwerp van de UI/UX van een app"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Draadmodellering"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "Waarvoor ga jij Penpot gebruiken?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "Wat brengt jou vandaag naar Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Laat ons iets over je weten om ons te helpen Penpot voor jou te laten "
+"werken. Je antwoorden helpen ons bij het prioriteren van nieuwe functies en "
+"wijzen je in de goede richting om te beginnen."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Help ons je te leren kennen"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Welke van deze hulpmiddelen gebruik je het meest?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Wat voor werk doe je?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Wat is jouw functie?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Hoe groot is je bedrijf?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Vertel ons over je baan"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Waar wil je aan de slag?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Hoe heb je over Penpot gehoord?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Ik ben freelancer"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Meer dan 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Ik werk aan een persoonlijk project"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Onderwijs"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Persoonlijk"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Werk"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Team aanmaken"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Oneindig veel bestanden en projecten"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Multiplayer-editie"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Rollenbeheer"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Oneindig veel leden"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% gratis!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - Ontwerpvrijheid voor teams"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:281
msgid "title.settings.access-tokens"
msgstr "Profiel - Toegangsbewijzen"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Feedback geven - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Instellingen - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Wachtwoord - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profiel - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Uitnodigingen - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Leden - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Instellingen - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Bord niet gevonden."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Volledig scherm"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Sitemap"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Dupliceren"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Groeperen"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Hernoemen"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Bewerken"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Bestand"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Voorkeuren"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Raster bewerken"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
msgid "workspace.layout_grid.editor.options.exit"
msgstr "Sluiten"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:58
+msgid "workspace.plugins.button-open"
+msgstr "Openen"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Nog geen plug-ins geïnstalleerd"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "De plug-in bestaat niet of de URL is niet correct."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Installeren"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+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:777
+msgid "workspace.plugins.menu.title"
+msgstr "Plug-ins"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Plug-in-lijst"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+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:160
+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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Zijbalk inklappen"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Kromme (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Ellips (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Bord (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Afbeelding (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Verplaatsen (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Pad (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Werkbalk wisselen"
+
+#: 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:1097
msgid "workspace.updates.dismiss"
msgstr "Afwijzen"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Meer info"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 30db462572..19144d41ec 100644
--- a/frontend/translations/pl.po
+++ b/frontend/translations/pl.po
@@ -2,291 +2,316 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Posiadasz już konto?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Zapomniałeś hasła?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Imię i nazwisko"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Zaloguj się tutaj"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Zaloguj się"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "Gitlab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Wpisz nowe hasło"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Token odzyskiwania jest nieprawidłowy."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Hasło"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Conajmniej 8 znaków"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Polityka prywatności"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
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:95
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:94
msgid "auth.recovery-request-title"
msgstr "Zapomniałeś hasła?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Zmień hasło"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Utwórz konto"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -294,100 +319,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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Może zawierać komponenty, grafikę, kolory i/lub typografię."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Eksportuj biblioteki udostępnione"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Traktuj zasoby biblioteki współdzielonej jako podstawowe obiekty"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Uwzględnij zasoby bibliotek współdzielonych w bibliotekach plików"
+#: src/app/main/ui/export.cljs:421
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 +438,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 +448,1607 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importuj pliki Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Podczas importowania pliku wystąpił problem. Plik nie został zaimportowany."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "%s plików zostało pomyślnie zaimportowanych."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
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:145
msgid "dashboard.import.progress.process-colors"
msgstr "Przetwarzanie kolorów"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Przetwarzanie komponentów"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Przetwarzanie mediów"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Przetwarzanie strony: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Przetwarzanie typografii"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Przesyłanie danych na serwer (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Wybierz język interfejsu"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informacje o zespole"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Członkowie zespołu"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projekty zespołu"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Aktualizuj ustawienia"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Jest aktywny"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Po wywołaniu tego haka zostaną dostarczone szczegóły zdarzenia"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Typ treści"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Utwórz webhooka"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Pomyślnie utworzono webhook."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Naciśnij przycisk „Dodaj webhook”, aby go dodać."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "Email"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Dostawca uwierzytelniania nie został skonfigurowany."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mail został już zweryfikowany."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Podaj prawidłowy adres e-mail"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "E-mail potwierdzający musi być zgodny"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Podaj prawidłowy adres e-mail"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "E-mail potwierdzający musi być zgodny"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Token odzyskiwania jest nieprawidłowy."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Nieprawidłowe zaproszenie"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Uwierzytelnianie LDAP jest wyłączone."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Hasło potwierdzające musi być zgodne"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Hasło powinno zawierać co najmniej 8 znaków"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Nieznany token"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Błąd połączenia, adres URL nieosiągalny"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "Adres URL nie przechodzi weryfikacji."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Ostatnia wysyłka nie powiodła się."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Błąd podczas sprawdzania poprawności SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Koniec czasu"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Nieoczekiwany błąd podczas sprawdzania poprawności"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Nieoczekiwany status %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Email lub hasło są niepoprawne."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Opis"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Przejdź do forum Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Społeczność Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Temat"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Email"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Przejdź do Xa"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Konto wsparcia na Xze"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Więcej informacji o inspekcji"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kod"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Okrąg"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Komponent"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Krzywa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Artboard"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grupa"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Obraz"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s wybrano"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Ścieżka"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Prostokąt"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
msgid "labels.accept"
msgstr "Akceptuj"
+#: src/app/main/ui/dashboard/team.cljs:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Admin"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Wszystko"
+#: src/app/main/ui/auth/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Anuluj"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Potwierdź hasło"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Usuń komentarz"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Usuń wątek"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Edytor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Wygasły"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Eksportuj"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Opinie wyłączone"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Zaproszenia"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Członkowie"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Brak oczekujących zaproszeń."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, markdown
msgid "labels.no-invitations-hint"
msgstr "Kliknij przycisk **Zaproś osoby**, aby zaprosić osoby do tego zespołu."
#: src/app/main/ui/static.cljs
+#, unused
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:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "Oczekiwanie"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Ponów"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Wyślij"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Wysyłanie…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Widz"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooki"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
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:111
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:99
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:104
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:119
msgid "modals.change-email.submit"
msgstr "Zmień email"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
msgid "modals.change-email.title"
msgstr "Zmień swój email"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Utwórz webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Utwórz webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Ładowność URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Usuń rozmowę"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Usuń członka zespołu"
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Usuń webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Czy na pewno chcesz usunąć ten webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Usuwanie webhooka"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Edytuj webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Edytuj webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Wyślij zaproszenie"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Czy na pewno chcesz opuścić zespół %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
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:358
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:357
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:356
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 +2056,2806 @@ 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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Witamy w Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:211
msgid "onboarding.team-modal.create-team"
msgstr "Utwórz zespół"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Nieograniczone pliki i projekty"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Edycja dla wielu graczy"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Zarządzanie rolami"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Nieograniczona liczba członków"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot — swoboda projektowania dla zespołów"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Przekaż opinię - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Ustawienia - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Hasło - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Zaproszenia - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Członkowie - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Ustawienia - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Obszar kompozycji nie znaleziony."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Pełny ekran"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Mapa strony"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Grupa"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Zmień nazwę"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Edytuj"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Plik"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Ustawienia"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Zwiń pasek boczny"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Krzywa (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elipsa (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Obszar kompozycji (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Obraz (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Przenieś (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Ścieżka (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Odrzuć"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 0e7625482d..ea4bfa2ee7 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,305 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Já tem uma conta?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Esqueceu sua senha?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nome completo"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Entrar aqui"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Entrar"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Digite uma nova senha"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "O código de recuperação é inválido."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Senha"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Pelo menos 8 caracteres"
+#: src/app/main/ui/auth/register.cljs:291
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:82
msgid "auth.recovery-request-submit"
msgstr "Recuperar senha"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Esqueceu sua senha?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Mudar a sua senha"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Criar uma conta"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:72
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:763, 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:33
#, markdown
msgid "dashboard.empty-placeholder-drafts"
msgstr ""
@@ -292,101 +317,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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Pode incluir componentes, gráficos, cores e/ou tipografias."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportar bibliotecas compartilhadas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Trate os ativos da biblioteca compartilhada como objetos básicos"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr ""
"Incluir ativos da biblioteca compartilhada na biblioteca de ativos do "
"arquivo"
+#: src/app/main/ui/export.cljs:421
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 +437,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 +447,1571 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importar arquivos"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
msgid "dashboard.import.import-message"
msgstr "%s arquivos foram importados com sucesso."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Alguns arquivos continham objetos inválidos que foram removidos."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Processando as cores"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Processando os componentes"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Processando as mídias"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Processando página: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Processando as fontes"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Carregando dados para o servidor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Enviando arquivo: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Senha salva com sucesso!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Selecionar idioma da Interface"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informação da equipe"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Membros da equipe"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projetos da equipe"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Atualizar configurações"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Está ativo"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Quando esse hook é invocado detalhes de eventos vão ser enviados"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Tipo de conteúdo"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Criar webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook criado com sucesso."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Clique em \"Adicionar Webhook\" para adicionar um Webhook."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "E-mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Provedor de autenticação não configurado."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mail já validado."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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.invalid-email"
-msgstr "Por favor, insira um email válido"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "E-mail de confirmação deve ser o mesmo"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Por favor, insira um email válido"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "E-mail de confirmação deve ser o mesmo"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "O código de recuperação é inválido."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Convite inválido"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Autenticação por LDAP está desativada."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "A senha de confirmação deve ser a mesma"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "A senha deve ter pelo menos 8 caracteres"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Token desconhecido"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Erro de conexão, URL não acessível"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "A URL não passa na validação."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "O último envio não foi bem-sucedido."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Erro na validação SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "O tempo se esgotou"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Erro inesperado durante a validação"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Status inesperado %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-mail ou senha está incorreto."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Descrição"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Comunidade do Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Assunto"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Ir ao X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Conta de suporte no X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Mais informações sobre inspecionar"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Código"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Círculo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Componente"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curva"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Board"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grupo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Imagem"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s selecionados"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Caminho"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Retângulo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
msgid "labels.accept"
msgstr "Aceitar"
+#: src/app/main/ui/dashboard/team.cljs:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administrador"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Todos"
+#: src/app/main/ui/auth/register.cljs:287
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:282
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:281
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Cancelar"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirmar senha"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Excluir comentário"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Excluir tópico"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Expirado"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exportar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback desativado"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Convites"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Membros"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Não há convites pendentes."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Tentar novamente"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Enviar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Enviando…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Visualizador"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
msgid "modals.change-email.title"
msgstr "Alterar seu e-mail"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Criar webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Criar webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "URL do payload"
+#: src/app/main/ui/dashboard/team.cljs:871
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Excluir conversa"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Excluir membro"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Excluir membro da equipe"
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Excluir webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Tem certeza que deseja excluir este webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Excluindo webhook"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Editar webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Editar webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Enviar convite"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Transferir equipe"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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 +2019,2826 @@ 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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Convite enviado com sucesso"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Bem-vindo ao Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:211
msgid "onboarding.team-modal.create-team"
msgstr "Crie uma equipe"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Arquivos e projetos ilimitados"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Edição multiusuário"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Gerenciamento de funções"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Membros ilimitados"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - Liberdade de design para equipes"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Dê sua opinião - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Configurações - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Senha - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Perfil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Convites - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Membros - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Configurações - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Tela não encontrada."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Tela cheia"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Mapa do site"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Agrupar"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Renomear"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Editar"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Arquivo"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Preferências"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Recolher a barra lateral"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Ferramenta Curvas (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Ferramenta Elipse (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
msgid "workspace.toolbar.frame"
msgstr "Ferramenta Tela (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Importar Imagem (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
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:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Ferramenta Caneta (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Dispensar"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 20968b6b3c..4068a5a0e0 100644
--- a/frontend/translations/pt_PT.po
+++ b/frontend/translations/pt_PT.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: Portuguese (Portugal) \n"
@@ -9,465 +9,545 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Já tens uma conta?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Verifica o teu email"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Esqueceste a tua palavra-passe?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Nome completo"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
-msgid "auth.login-here"
-msgstr "Iniciar sessão"
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "Entrar na minha conta"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
+msgid "auth.login-here"
+msgstr "Inicia a sessão aqui."
+
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Iniciar sessão"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+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:213
msgid "auth.login-with-github-submit"
msgstr "Github"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID Connect"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Escreve uma nova palavra-passe"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "O token de recuperação é inválido."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Palavra-passe"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Mínimo de 8 caracteres"
+#: src/app/main/ui/auth/register.cljs:291
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:82
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:95
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:94
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:71
msgid "auth.recovery-submit"
msgstr "Altera a palavra-passe"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "Diz-nos como te devemos tratar no painel principal e em emails."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "O teu nome"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Criar conta"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Com uma conta gratuita no Penpot, podes criar um número ilimitado de "
+"equipas e colaborar com outros designers e desenvolvedores em quantos "
+"projetos desejares. "
+
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr "Aceito os [termos de serviço](%s) e a [política de privacidade](%s)."
+
+#: src/app/main/ui/auth/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "Enviámos um email de verificação para"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+msgstr "Email profissional"
+
#: 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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Gerar novo token"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Nunca"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Pode incluir componentes, gráficos, cores e/ou tipografia."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportar bibliotecas partilhadas"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Trata os recursos da biblioteca partilhada como objetos básicos"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Incluir recursos da biblioteca partilhada em bibliotecas de ficheiros"
+#: src/app/main/ui/export.cljs:421
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 "
@@ -476,17 +556,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 "
@@ -495,1518 +579,1732 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Importar ficheiros Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
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:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Alguns ficheiros continham objetos inválidos que foram removidos."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Processando cores"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Processando componentes"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Processando media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Processando página: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Processando tipografias"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "A carregar dados para o servidor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Selecionar idioma da Interface"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informação da equipa"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Membros da equipa"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Projetos da equipa"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Atualizar definições"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Ativo"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Quando este webhook for ativado serão enviados detalhes do evento"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Tipo de conteúdo"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Criar webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook criado com sucesso."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "Clica no botão \"Criar webhook\" para adicionar um."
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "E-mail"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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/data/users.cljs:700
+msgid "errors.auth-provider-not-allowed"
+msgstr "O provedor de autenticação não é permitido neste perfil"
+
+#: src/app/main/ui/auth/login.cljs:61
msgid "errors.auth-provider-not-configured"
msgstr "Provedor de autenticação não configurado."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-mail já validado."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "Domínio não permitido"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Por favor introduz um email válido"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "O e-mail de confirmação deve combinar"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "A funcionalidade '%s' não é suportada."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Por favor introduz um email válido"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "O e-mail de confirmação deve combinar"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "O token de recuperação é inválido."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Convite inválido"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Autenticação LDAP está desativada."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "A palavra-passe de confirmação tem de corresponder"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "A palavra-passe deverá conter no mínimo 8 caracteres"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Dados inválidos na área de transferência"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "A criação de contas está atualmente desativada."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "O ficheiro tem um número de versão incompatível"
+#: src/app/main/ui/dashboard/team.cljs:817
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:811
msgid "errors.webhooks.invalid-uri"
msgstr "O URL não passou na validação."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Último envio sem sucesso."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Erro na validação SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Timeout"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Erro inesperado ao validar"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Estado inesperado %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Utilizador ou palavra-passe parecem estar errados."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Descrição"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Comunidade Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Assunto"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-mail"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Ir para o X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Conta de suporte no X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Mais informações sobre a inspeção"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Código"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Círculo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Componente"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curva"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Prancheta"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grupo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Imagem"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Selecionados"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Caminho"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectângulo"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administração"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Cancelar"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirmar palavra-passe"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Eliminar comentário"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Eliminar tópico"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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/onboarding/questions.cljs:246
+msgid "labels.developer"
+msgstr "Desenvolvimento"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+msgstr "Diretor"
+
+#: 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Evento"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Expirado"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exportar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback desativado"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Feedback enviado"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "CEO ou Fundador"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Voltar atrás"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+msgstr "Design 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 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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Convites"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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/onboarding/questions.cljs:249
+msgid "labels.marketing"
+msgstr "Marketing"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Membros"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Não há convites."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Outra (especificar)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Outra"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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/onboarding/questions.cljs:245
+msgid "labels.product-design"
+msgstr "Design de produtos ou UX"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Product Management"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Tentar novamente"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Escolhe uma opção"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Enviar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Enviando…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Definições"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Estado"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Estudante ou professor(a)"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Líder de equipa"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+msgstr "Membro de equipa"
+
+#: 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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Visualizador"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Escolher imagem"
+#, unused
msgid "media.gradient"
msgstr "Gradiente"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
+msgid "media.keep-aspect-ratio"
+msgstr "Manter proporções"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "A carregar imagem…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Radial"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Sólido"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Gerar token de acesso"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Criar webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Criar webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "URL do payload"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Eliminar conversa"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Eliminar membro"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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] ""
@@ -2016,3112 +2314,3610 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Apagar webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Tens a certeza que queres apagar este webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "A apagar webhook"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Editar webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Editar webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Enviar convite"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:48
+msgid "modals.move-shared-confirm.message"
+msgid_plural "modals.move-shared-confirm.message"
+msgstr[0] "Tens a certeza que queres mover esta biblioteca?"
+msgstr[1] "Tens a certeza que queres 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
msgid "modals.nudge-title"
msgstr "Montante de deslocamento"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Transferir propriedade"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "Convite enviado com sucesso"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Bem-vindo ao Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Continuar criação de equipa"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Começar sem equipa"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Vamos começar!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "À procura de uma alternativa ao Figma, XD, etc"
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Só estou a experimentar"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "A averiguar se o Penpot se adequa à minha equipa"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Testar antes de fazer self-hosting"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Gerar código a partir de designs"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Criar sistemas de design"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototipagem"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Desenhar o UI/UX de uma aplicação"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Wireframing"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "Para que fim vais usar o Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "O que te traz ao Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Conta-nos um pouco sobre ti para que possamos fazer com que o Penpot se "
+"adapte a ti. As tuas respostas ajudar-nos-ão a priorizar novas "
+"funcionalidades e indicar-te o melhor caminho para começar."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Ajuda-nos a conhecer-te"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Qual destas ferramentas usas mais?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Que tipo de trabalho fazes?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Qual é a tua posição?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "De que tamanho é a tua equipa?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Fala-nos do teu trabalho"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Por onde é que gostarias de começar?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Como descobriste o Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Sou freelancer"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Mais de 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Estou a trabalhar num projeto pessoal"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Educação"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Uso pessoal"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Trabalho"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Cria uma equipa"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Ficheiros e projetos ilimitados"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Edição Multiplayer"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Gestão de funções"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Membros ilimitados"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% grátis!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
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:180, 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:167
+msgid "shortcuts.scale"
+msgstr "Redimensionar"
+
+#: 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:191
+msgid "shortcuts.toggle-guides"
+msgstr "Mostrar / Ocultar guias"
+
+#: 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:195
+msgid "shortcuts.toggle-layout-grid"
+msgstr "Adicionar/remover layout em grelha"
+
+#: 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:198
+msgid "shortcuts.toggle-rulers"
+msgstr "Mostrar / Ocultar réguas"
+
+#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200
+msgid "shortcuts.toggle-snap-guides"
+msgstr "Ajustar às guias"
+
+#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201
+msgid "shortcuts.toggle-snap-ruler-guide"
+msgstr "Ajustar às guias de régua"
+
+#: 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Perfil - Tokens de acesso"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Dá feedback - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Definições - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Palavra-passe - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Perfil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Convites - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Membros - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Definições - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Quadro não encontrado."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Tela Cheia"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Mapa do site"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Duplicar"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Agrupar"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Renomear"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+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:207
+msgid "workspace.header.menu.disable-snap-ruler-guides"
+msgstr "Desativar ajuste às guias de régua"
+
+#: 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:208
+msgid "workspace.header.menu.enable-snap-ruler-guides"
+msgstr "Ajustar às guias de régua"
+
+#: 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:336
+msgid "workspace.header.menu.hide-guides"
+msgstr "Ocultar guias"
+
+#: 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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "Editar"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "Ficheiro"
+
+#: src/app/main/ui/workspace/main_menu.cljs:789
+msgid "workspace.header.menu.option.help-info"
+msgstr "Ajuda e Informações"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "Preferências"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:337
+msgid "workspace.header.menu.show-guides"
+msgstr "Mostrar guias"
+
+#: 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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "Editar grelha"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+msgid "workspace.layout_grid.editor.options.exit"
+msgstr "Sair"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
+msgid "workspace.layout_grid.editor.padding.expand"
+msgstr "Mostrar 4 opções de preenchimento de lados"
+
+#: 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/sidebar/options/menus/layout_container.cljs:1300
+msgid "workspace.layout_grid.editor.top-bar.locate.tooltip"
+msgstr "Localizar layout em grelha"
+
+#: 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:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RGBA"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:379
+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:509, src/app/main/ui/workspace/libraries.cljs:534
+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/libraries.cljs:282
+msgid "workspace.libraries.shared-library-btn"
+msgstr "Conectar biblioteca"
+
+#: 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:249
+msgid "workspace.libraries.unlink-library-btn"
+msgstr "Desconectar biblioteca"
+
+#: 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:516
+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:169
+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:241
+msgid "workspace.options.exporting-complete"
+msgstr "Exportação completa"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "A exportação falhou"
+
+#: src/app/main/ui/export.cljs:243
+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:177
+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:173
+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:285
+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:189
+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/plugins.cljs:58
+msgid "workspace.plugins.button-open"
+msgstr "Abrir"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Sem plugins instalados"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "O plugin não existe ou o URL está incorreto."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Instalar"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+msgid "workspace.plugins.installed-plugins"
+msgstr "Plugins instalados"
+
+#: src/app/main/ui/workspace/main_menu.cljs:624
+msgid "workspace.plugins.menu.plugins-manager"
+msgstr "Gestor de plugins"
+
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "Plugins"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Lista de plugins"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+msgid "workspace.plugins.search-placeholder"
+msgstr "Introduz um URL de plugin"
+
+#, unused
+msgid "workspace.plugins.success"
+msgstr "Plugin carregado com sucesso."
+
+#: src/app/main/ui/workspace/plugins.cljs:160
+msgid "workspace.plugins.title"
+msgstr "Plugins"
+
+#: 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/context_menu.cljs:435
+msgid "workspace.shape.menu.remove-grid"
+msgstr "Remover layout em grelha"
+
+#: 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:582
+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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Fechar barra lateral"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Curvas (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Elipse (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Prancheta (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Imagem (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Mover (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Caminho (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Alternar barra de ferramentas"
+
+#: 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:1097
+msgid "workspace.updates.dismiss"
+msgstr "Ignorar"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "Mais informações"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "Existem atualizações nas bibliotecas partilhadas"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+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"
@@ -5145,9 +5941,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 5fe6786aaa..4dc3c4de4e 100644
--- a/frontend/translations/ro.po
+++ b/frontend/translations/ro.po
@@ -1,473 +1,540 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
-"Last-Translator: Anonymous \n"
-"Language-Team: Romanian \n"
+"PO-Revision-Date: 2024-07-25 17:09+0000\n"
+"Last-Translator: AlexTECPlayz \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.6-dev\n"
+"X-Generator: Weblate 5.7-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Ai deja un cont?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Verificați-vă e-mailul"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Ai uitat parola?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Numele complet"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
-msgid "auth.login-here"
-msgstr "Conectează-te"
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "Logare în contul meu"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
+msgid "auth.login-here"
+msgstr "Logați-vă aici."
+
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Intră în cont"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr ""
+"Penpot este unealta gratuită cu cod sursă liber pentru colaborare în design "
+"și cod"
+
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Introduceți o parolă nouă"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Codul de recuperare nu este valid."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Parola"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Cel puțin 8 caractere"
+#: src/app/main/ui/auth/register.cljs:291
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:82
msgid "auth.recovery-request-submit"
msgstr "Recuperare Parolă"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Ai uitat parola?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Schimbă parola"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Creează un cont"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Cu un cont Penpot gratuit, puteți crea echipe nelimitate și colabora cu "
+"alți designeri și dezvoltatori în oricâte proiecte doriți. "
+
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "Am trimis un email de verificare la"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+msgstr "Email lucru"
+
#: 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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Generați jeton nou"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Niciodată"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Poate include componente, elemente grafice, culori și/sau tipografii."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Exportați biblioteci partajate"
+#: src/app/main/ui/export.cljs:440
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:441
msgid "dashboard.export.options.detach.title"
msgstr "Tratați activele bibliotecii partajate ca obiecte de bază"
+#: src/app/main/ui/export.cljs:442
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:443
msgid "dashboard.export.options.merge.title"
msgstr "Includeți elementele bibliotecii partajate în bibliotecile de fișiere"
+#: src/app/main/ui/export.cljs:421
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ă "
@@ -475,6 +542,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 "
@@ -483,10 +552,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 "
@@ -496,265 +567,281 @@ msgstr ""
"utilizați [Transfonter](https://transfonter.org/) pentru a genera fonturi "
"web și a remedia erorile. "
+#: src/app/main/ui/dashboard/import.cljs:476, 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:308, 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:312
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:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Unele fișiere conțineau obiecte nevalide care au fost eliminate."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Procesarea culorilor"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Procesarea componentelor"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Procesarea fișierelor media"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Procesarea paginii: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Procesarea tipografiilor"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Încărcarea datelor pe server (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
msgid "dashboard.notifications.password-saved"
msgstr "Parolă actualizată cu success!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
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:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Informațiile echipei"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Membrii echipei"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Proiectele echipei"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Actualizare setări"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Este activ"
+#: src/app/main/ui/dashboard/team.cljs:883
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:873
msgid "dashboard.webhooks.content-type"
msgstr "Tip de conținut"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Creați webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook creat cu succes."
+#: src/app/main/ui/dashboard/team.cljs:903
msgid "dashboard.webhooks.description"
msgstr ""
"Webhook-urile sunt o modalitate simplă de a permite altor site-uri web și "
@@ -762,1204 +849,1329 @@ msgstr ""
"Penpot. Vom trimite o solicitare POST la fiecare dintre adresele URL pe "
"care le furnizați."
+#: src/app/main/ui/dashboard/team.cljs:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "Email"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Furnizorul de autentificare nu este configurat."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "Adresa de email este deja validată."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-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.invalid-email-confirmation"
-msgstr "E-mailul de confirmare trebuie să se potrivească"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Vă rugăm să introduceți un e-mail valid"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "E-mailul de confirmare trebuie să se potrivească"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Codul de recuperare nu este valid."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Invitație invalidă"
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Autentificarea cu LDAP este dezactivată."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Parola de confirmare trebuie să se potrivească"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Parola trebuie să conțină cel puțin 8 caractere"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Cod necunoscut"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Eroare de conexiune, URL-ul nu poate fi accesat"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL-ul nu a trecut validarea."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Ultima livrare nu a avut succes."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Eroare la validarea SSL."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Timeout"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Eroare neașteptată la validare"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Stare neașteptată %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-mailul sau parola sunt incorecte."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Parola veche este incorectă"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Descriere"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Accesați forumul Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Comunitatea Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Subiect"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Adresă de Email"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Accesați X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "Cont de asistență X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Mai multe informații despre inspector"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Cod"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Cerc"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Componentă"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Curbat"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Planșă de lucru"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grup"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Imagine"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Selectate"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Traiectorie"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Dreptunghi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Administrator"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Eroare de Server"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Anulează"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Confirmă parola"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Șterge comentariu"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Șterge discuție"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Editor"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Expirat"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Exportă"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Feedback dezactivat"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Feedback trimis"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Invitații"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Membri"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
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:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Alta (specificați)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Încearcă din nou"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Selectați opțiune"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Trimitere"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Se trimite…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "Momentan suntem în mentenanță."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:167
+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:730
msgid "labels.status"
msgstr "Stare"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Vizitator"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhook-uri"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
msgid "media.loading"
msgstr "Încarcă imaginea…"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Generați jeton acces"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Creați webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Creați webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "URL a încărcăturii"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Șterge conversație"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Elimină membru"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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] ""
@@ -1972,1158 +2184,1303 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Ștergeți webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Sunteți sigur că doriți să ștergeți acest webhook?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Ștergerea webhook-ului"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Editați webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "Editați webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Trimite invitație"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Promovează"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Bun venit la Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Să începem!"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Mai mult de 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Lucrez la un proiect personal"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Creați o echipă"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Fișiere și proiecte nelimitate"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Ediția multi-utilizator"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Managementul rolurilor"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Membri nelimitați"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profil - Jetoane acces"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Oferă feedback - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Setări - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Parolă - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Invitații -%s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Membri - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Setări - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Fereastra nu există."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Ecran complet"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Harta site-ului"
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Duplică"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Grup"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Redenumeşte"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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"
@@ -3131,1779 +3488,1902 @@ 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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Editați"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Fișier"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Preferințe"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Restrângeți bara laterală"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Curbe (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elipsă (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
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:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Imagine (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Poziţionează (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Cale (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Renunţă"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Mai multe informații"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 fd26ca4940..33a2982345 100644
--- a/frontend/translations/ru.po
+++ b/frontend/translations/ru.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: Russian \n"
@@ -9,399 +9,545 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Уже есть аккаунт?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Проверьте свою электронную почту"
+
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr "Перейдите по ссылке в электронном письме, чтобы начать работу с Penpot."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr ""
"Это ДЕМОНСТРАЦИЯ, НЕ ИСПОЛЬЗУЙТЕ для работы, проекты будут периодически "
"удаляться."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Забыли пароль?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Полное имя"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
-msgid "auth.login-here"
-msgstr "Войти здесь"
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "Войдите в свой аккаунт"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
+msgid "auth.login-here"
+msgstr "Войти здесь."
+
+#: src/app/main/ui/auth/login.cljs:186
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:276
+msgid "auth.login-tagline"
+msgstr ""
+"Penpot - это бесплатный инструмент проектирования с открытым исходным кодом "
+"для совместной работы над дизайном и кодом"
+
+#: src/app/main/ui/auth/login.cljs:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Введите новый пароль"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Неверный код восстановления."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "Пароль успешно изменён"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
-msgstr "Профиль не подтверждён, пожалуйста, проверьте почту."
+msgstr "Профиль не подтверждён, проверьте почту."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "Ссылка для восстановления пароля отправлена на почту."
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Пароль"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "Минимум 8 символов"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Политика конфиденциальности"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Восстановить пароль"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "Мы отправим эл. письмо с инструкциями"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "Забыли пароль?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Изменить пароль"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
msgid "auth.register"
-msgstr "Еще нет аккаунта?"
+msgstr "Ещё нет аккаунта?"
-#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr ""
+"Сообщите нам, как следует к вам обращаться, на панели управления и в "
+"электронных письмах."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "Ваше имя"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Создать аккаунт"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"С бесплатным аккаунтом Penpot можно создавать неограниченное количество "
+"команд и сотрудничать с другими дизайнерами и разработчиками над любым "
+"количеством проектов. "
+
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "Создать аккаунт"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
-msgstr "Open Source решение для дизайна и прототипирования."
+msgstr "Решение с открытым исходным кодом для создания дизайна и прототипов."
+#: src/app/main/ui/auth/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr ""
+"Я согласен с [условиями обслуживания](%s) и [политикой "
+"конфиденциальности](%s)."
+
+#: src/app/main/ui/auth/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "Мы отправили эл. письмо с подтверждением на"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+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 "(текущее)"
+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 "Может комментировать"
+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 "Ссылка появится здесь"
+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:104
+msgid "dashboard.access-tokens.copied-success"
+msgstr "Токен скопирован"
+
+#: src/app/main/ui/settings/access_tokens.cljs:191
+msgid "dashboard.access-tokens.create"
+msgstr "Сгенерировать новый токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:65
+#, fuzzy
+msgid "dashboard.access-tokens.create.success"
+msgstr "Токен доступа успешно создан."
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
+msgid "dashboard.access-tokens.empty.add-one"
+msgstr "Нажмите кнопку «Сгенерировать новый токен», чтобы сгенерировать его."
+
+#: src/app/main/ui/settings/access_tokens.cljs:288
+msgid "dashboard.access-tokens.empty.no-access-tokens"
+msgstr "У вас пока нет токенов."
+
+#: src/app/main/ui/settings/access_tokens.cljs:136
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:133
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:134
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:135
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:132
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/settings/access_tokens.cljs:271
+msgid "dashboard.access-tokens.expired-on"
+msgstr "Срок истёк %s"
+
+#: src/app/main/ui/settings/access_tokens.cljs:272
+msgid "dashboard.access-tokens.expires-on"
+msgstr "Срок истекает %s"
+
+#: src/app/main/ui/settings/access_tokens.cljs:270
+msgid "dashboard.access-tokens.no-expiration"
+msgstr "Срока истечения нет"
+
+#: src/app/main/ui/settings/access_tokens.cljs:186
+msgid "dashboard.access-tokens.personal"
+msgstr "Личные токены доступа"
+
+#: src/app/main/ui/settings/access_tokens.cljs:187
+msgid "dashboard.access-tokens.personal.description"
+msgstr ""
+"Личные токены доступа функционируют как альтернатива нашей системе "
+"аутентификации по логину/паролю и могут использоваться для предоставления "
+"приложению доступа к внутреннему API Penpot"
+
+#: src/app/main/ui/settings/access_tokens.cljs:143
+msgid "dashboard.access-tokens.token-will-expire"
+msgstr "Срок действия токена истечёт %s"
+
+#: src/app/main/ui/settings/access_tokens.cljs:144
+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:72
msgid "dashboard.change-email"
msgstr "Изменить эл. почту"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
+#, 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:202
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:110
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:181
msgid "dashboard.export-shapes.how-to"
msgstr ""
"Вы можете добавить настройки экспорта элементам из свойств дизайна (в "
"нижней части правой боковой панели)."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:185
msgid "dashboard.export-shapes.how-to-link"
msgstr "Информация о настройке экспорта в Penpot."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:180
msgid "dashboard.export-shapes.no-elements"
msgstr "Нет элементов с настройками экспорта."
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* Могут содержать компоненты, цвета, графику, и/или типографику."
+#: src/app/main/ui/export.cljs:429
msgid "dashboard.export.explain"
msgstr ""
"Один или несколько файлов на экспорт используют общие библиотеки. Что нужно "
"сделать с их ресурсами*?"
+#: src/app/main/ui/export.cljs:438
msgid "dashboard.export.options.all.message"
msgstr "Файлы с общих библиотек будут включены в экспорт, сохраняя свою привязку."
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "Экспорт общих библиотек"
+#: src/app/main/ui/export.cljs:440
msgid "dashboard.export.options.detach.message"
msgstr ""
"Общие библиотеки не будут включены в экспорт, и вложенные ресурсы не "
"попадут в библиотеку экспорта. "
+#: src/app/main/ui/export.cljs:441
msgid "dashboard.export.options.detach.title"
msgstr "Воспринимать ресурсы общей библиотеки как обычные объекты"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr ""
"Ваш файл будет экспортирован с включением всех внешних ресурсов в "
"библиотеку экспорта."
+#: src/app/main/ui/export.cljs:443
msgid "dashboard.export.options.merge.title"
msgstr "Включить ресурсы общей библиотеки в файловые библиотеки"
+#: src/app/main/ui/export.cljs:421
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 +556,8 @@ msgstr ""
"загрузки допустимы следующие форматы: **TTF, OTF и WOFF** (используйте один "
"из них)."
+#: src/app/main/ui/dashboard/fonts.cljs:182
+#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
"Вам следует загружать только собственные шрифты, или у которых есть "
@@ -418,2724 +566,5329 @@ 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/fonts.cljs:187
+#, markdown
+msgid "dashboard.fonts.warning-text"
+msgstr ""
+"Мы обнаружили возможную проблему в ваших шрифтах, связанную с вертикальными "
+"метриками для разных операционных систем. Чтобы проверить это, вы можете "
+"воспользоваться сервисами вертикальных метрик шрифтов, такими как "
+"[этот](https://vertical-metrics.netlify.app/). Кроме того, мы рекомендуем "
+"использовать [Transfonter](https://transfonter.org/) для создания "
+"веб-шрифтов и исправления ошибок. "
+
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "Импорт файлов Penpot"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "Есть проблема с импортом файла. Файл не был импортирован."
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "Файлы успешно импортированы (%s)."
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Некоторые файлы содержали неверные объекты, которые были удалены."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Обработка цветов"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Обработка компонентов"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Обработка медиа"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Обработка страницы: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Обработка типографики"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Загрузка данных на сервер (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "Загрузка файла: %s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "Ваш адрес эл. почты был успешно обновлён"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "Ваш email адрес успешно подтвержден"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "Пароль успешно сохранен!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Выберите язык интерфейса"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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/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: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:563, 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:1073
msgid "dashboard.team-info"
msgstr "О команде"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Участники команды"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Командные проекты"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Обновить настройки"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Активен"
+#: src/app/main/ui/dashboard/team.cljs:883
+msgid "dashboard.webhooks.active.explain"
+msgstr "Когда этот хук сработает, будут доставлены подробные сведения о событии"
+
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "Тип контента"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Создать вебхук"
-#: src/app/main/ui/settings.cljs
+#: src/app/main/ui/dashboard/team.cljs:796
+msgid "dashboard.webhooks.create.success"
+msgstr "Вебхук успешно создан."
+
+#: src/app/main/ui/dashboard/team.cljs:903
+msgid "dashboard.webhooks.description"
+msgstr ""
+"Вебхуки - это простой способ уведомлять другие веб-сайты и приложения о тех "
+"или иных событиях в Penpot. Мы отправим POST-запрос на каждый из указанных "
+"вами URL-адресов."
+
+#: src/app/main/ui/dashboard/team.cljs:1026
+msgid "dashboard.webhooks.empty.add-one"
+msgstr "Нажмите кнопку «Добавить вебхук», чтобы добавить его."
+
+#: src/app/main/ui/dashboard/team.cljs:1025
+msgid "dashboard.webhooks.empty.no-webhooks"
+msgstr "Вебхуки пока не созданы."
+
+#, unused
+msgid "dashboard.webhooks.update.success"
+msgstr "Вебхук успешно обновлён."
+
+#: 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:67
msgid "dashboard.your-email"
msgstr "Эл. почта"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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/data/users.cljs:700
+msgid "errors.auth-provider-not-allowed"
+msgstr "Поставщик аутентификации не разрешён для этого профиля"
+
+#: src/app/main/ui/auth/login.cljs:61
msgid "errors.auth-provider-not-configured"
msgstr "Провайдер аутентификации не настроен."
+#: src/app/main/errors.cljs:105
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/media.cljs:198
+msgid "errors.cannot-upload"
+msgstr "Невозможно загрузить медиафайл."
+
+#: src/app/main/data/workspace.cljs:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "Такая эл. почта уже используется"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
msgid "errors.email-already-validated"
msgstr "Эл. почта уже подтверждена."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "Домен не разрешён"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
msgid "errors.email-has-permanent-bounces"
msgstr "Эл. почта «%s» постоянно недоступна."
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Эл. почта для подтверждения должна совпадать"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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/errors.cljs:233
+msgid "errors.feature-mismatch"
+msgstr ""
+"Похоже, вы открываете файл, в котором включена функция '%s', но текущая "
+"версия penpot её не поддерживает или она отключена."
+
+#: src/app/main/errors.cljs:237, src/app/main/errors.cljs:251
+msgid "errors.feature-not-supported"
+msgstr "Функция «%s» не поддерживается."
+
+#: src/app/main/errors.cljs:229
+msgid "errors.file-feature-mismatch"
+msgstr ""
+"Похоже, что существует несоответствие между включенными функциями и "
+"функциями файла, который вы пытаетесь открыть. Прежде чем файл можно будет "
+"открыть, необходимо применить миграцию для «%s»."
+
+#: src/app/main/data/users.cljs:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Эл. почта для подтверждения должна совпадать"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Неверный код восстановления."
+
+#: src/app/main/ui/static.cljs:61
+msgid "errors.invite-invalid"
+msgstr "Приглашение недействительно"
+
+#: src/app/main/ui/static.cljs:62
msgid "errors.invite-invalid.info"
msgstr "Возможно, это приглашение отменено или истёк срок его действия."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:90
msgid "errors.ldap-disabled"
msgstr "Вход c LDAP отключён."
-#: src/app/main/data/workspace/persistence.cljs
+#: src/app/main/errors.cljs:245
+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/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:594
msgid "errors.member-is-muted"
msgstr "Невозможно пригласить адресата с недоступным адресом электронной почты."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Пароль для подтверждения должен совпадать"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Пароль должен быть минимум 8 символов"
+#: src/app/main/errors.cljs:130
+msgid "errors.paste-data-validation"
+msgstr "Недопустимые данные в буфере обмена"
+
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
msgid "errors.profile-is-muted"
msgstr "Ваш адрес электронной почты не доступен."
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Регистрация сейчас отключена."
+#: src/app/main/errors.cljs:224
+msgid "errors.team-feature-mismatch"
+msgstr "Обнаружена несовместимая функция «%s»"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
msgid "errors.team-leave.insufficient-members"
msgstr ""
"Недостаточно участников, чтобы покинуть команду, вероятно, вы хотите её "
"удалить."
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
msgid "errors.team-leave.member-does-not-exists"
msgstr "Участник, которого вы пытаетесь назначить, не существует."
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
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:59
msgid "errors.unexpected-token"
msgstr "Неизвестный токен"
-#: src/app/main/ui/auth/login.cljs
+#, unused
+msgid "errors.validation"
+msgstr "Ошибка проверки"
+
+#: src/app/main/errors.cljs:241
+msgid "errors.version-not-supported"
+msgstr "Файл имеет несовместимый номер версии"
+
+#: src/app/main/ui/dashboard/team.cljs:817
+msgid "errors.webhooks.connection"
+msgstr "Ошибка подключения, URL недоступен"
+
+#: src/app/main/ui/dashboard/team.cljs:811
+msgid "errors.webhooks.invalid-uri"
+msgstr "URL-адрес не проходит проверку."
+
+#: src/app/main/ui/dashboard/team.cljs:970
+msgid "errors.webhooks.last-delivery"
+msgstr "Последняя доставка не удалась."
+
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
+msgid "errors.webhooks.ssl-validation"
+msgstr "Ошибка при проверке SSL."
+
+#: src/app/main/ui/dashboard/team.cljs:815
+msgid "errors.webhooks.timeout"
+msgstr "Время вышло"
+
+#: src/app/main/ui/dashboard/team.cljs:809
+msgid "errors.webhooks.unexpected"
+msgstr "Неожиданная ошибка при проверке"
+
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
+msgid "errors.webhooks.unexpected-status"
+msgstr "Неожиданный статус %s"
+
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Эл. почта или пароль неверны."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Старый пароль неверный"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Описание"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Перейти на форум Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
msgid "feedback.discourse-subtitle1"
msgstr ""
"Мы рады вас здесь видеть. Если вам нужна помощь, пожалуйста, поищите ответ, "
"возможно он уже есть."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:85
msgid "feedback.discourse-title"
msgstr "Сообщество Penpot"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Краткое описание"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
msgid "feedback.subtitle"
msgstr ""
"Пожалуйста, опишите причину обращения: проблема в работе, идея или "
"сомнение. Участник нашей команды даст ответ в ближайшее время."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "Эл. почта"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "Перейти в X"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
msgid "feedback.twitter-subtitle1"
msgstr "Здесь, чтобы помочь с вашими техническими запросами."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "Аккаунт поддержки в X"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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/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.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/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/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:152
+msgid "inspect.empty.help"
+msgstr ""
+"Если вы хотите узнать больше о осмотре дизайна, посетите справочный центр "
+"Penpot"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:155
+msgid "inspect.empty.more-info"
+msgstr "Подробнее об осмотре"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
+msgid "inspect.empty.select"
+msgstr "Выберите фигуру, доску или группу, чтобы просмотреть свойства и код"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100
msgid "inspect.tabs.code"
msgstr "Код"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Круг"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Компонент"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Кривая"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Кадр"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Группа"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Изображение"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
msgid "inspect.tabs.code.selected.mask"
msgstr "Маска"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "Выделено: %s"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Контур"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Прямоугольник"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "Текст"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
msgid "labels.accept"
msgstr "Принять"
+#: src/app/main/ui/settings/sidebar.cljs:100
+msgid "labels.access-tokens"
+msgstr "Токены доступа"
+
+#: src/app/main/ui/dashboard/team.cljs:989
+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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Администратор"
+#: src/app/main/ui/onboarding/questions.cljs:169
+msgid "labels.adobe-xd"
+msgstr "Adobe XD"
+
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Все"
+#: src/app/main/ui/auth/register.cljs:287
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:282
msgid "labels.bad-gateway.desc-message"
msgstr "Возможны технические работы. Пожалуйста, зайдите чуть позже."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:281
msgid "labels.bad-gateway.main-message"
msgstr "Bad Gateway"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Отмена"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Подтвердите пароль"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
msgid "labels.continue-with-penpot"
msgstr "Вы можете продолжить с аккаунтом Penpot"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/dashboard/team.cljs:662
+msgid "labels.copy-invitation-link"
+msgstr "Копировать ссылку"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Удалить комментарий"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Удалить обсуждение"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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/onboarding/questions.cljs:246
+msgid "labels.developer"
+msgstr "Разработка"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+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
msgid "labels.drafts"
msgstr "Черновики"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Редактор"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Событие"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Истекло"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Экспорт"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Обратная связь отключена"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Отзыв отправлен"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Генеральный директор или основатель"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Назад"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+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/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:990
+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:367
msgid "labels.internal-error.desc-message"
msgstr "Что-то пошло не так. Пожалуйста, повторите или обратитесь в поддержку."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Приглашения"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Маркетинг"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Участники"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Нет ожидающих приглашений."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "Нажмите кнопку **Пригласить людей**, чтобы пригласить в эту команду."
#: src/app/main/ui/static.cljs
+#, unused
msgid "labels.not-found.desc-message"
msgstr "Эта страница не существует, или у вас нет к ней доступа."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Другое (укажите)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Другое"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "Дизайн продуктов или UX"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Управление продуктом"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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.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
+#: src/app/main/ui/dashboard/team.cljs:335
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:153
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:665
msgid "labels.resend-invitation"
msgstr "Снова отправить приглашение"
-#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Заново"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Выбрать вариант"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Отправить"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Отправка…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "Мы проводим диагностику наших систем."
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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
+#: src/app/main/ui/viewer/header.cljs:205
+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 "Показать все"
+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 "Показать только ваши"
+msgstr "Только мои"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:167
+msgid "labels.sketch"
+msgstr "Sketch"
+
+#: src/app/main/ui/onboarding/questions.cljs:56
+msgid "labels.start"
+msgstr "Начать"
+
+#: src/app/main/ui/dashboard/team.cljs:730
msgid "labels.status"
msgstr "Состояние"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Студент или преподаватель"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Руководитель группы"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+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
+#: src/app/main/ui/dashboard/file_menu.cljs:256
+msgid "labels.unpublish-multi-files"
+msgstr "Отменить публикацию %s файлов"
+
+#: src/app/main/ui/settings/profile.cljs:108
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/workspace/sidebar/sitemap.cljs:223
+msgid "labels.view-only"
+msgstr "Только просмотр"
+
+#: src/app/main/ui/dashboard/team.cljs:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Наблюдатель"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
+msgid "labels.webhooks"
+msgstr "Вебхуки"
+
+#: src/app/main/ui/comments.cljs:193
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:256
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/ui/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
+msgid "media.choose-image"
+msgstr "Выбрать изображение"
+
+#, unused
+msgid "media.gradient"
+msgstr "Градиент"
+
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
+msgid "media.keep-aspect-ratio"
+msgstr "Сохранять соотношение сторон"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
+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:451
msgid "media.loading"
msgstr "Загрузка изображения…"
-#: src/app/main/ui/workspace/header.cljs,
-#: src/app/main/ui/dashboard/file_menu.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:210
+msgid "media.radial"
+msgstr "Радиальный"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:207
+msgid "media.solid"
+msgstr "Сплошной"
+
+#: src/app/main/data/common.cljs:125
+msgid "modals.add-shared-confirm-empty.hint"
+msgstr ""
+"Ваша библиотека пуста. После добавления в качестве общей библиотеки "
+"созданные вами ресурсы будут доступны для использования среди остальных "
+"ваших файлов. Вы уверены, что хотите опубликовать это?"
+
+#: src/app/main/data/common.cljs:127
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:125
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:124
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:111
msgid "modals.change-email.confirm-email"
msgstr "Подтвердить новую эл. почту"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:99
msgid "modals.change-email.info"
msgstr ""
"Мы отправим эл. письмо для подтверждения личности на текущую эл. почту "
"\"%s\"."
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:104
msgid "modals.change-email.new-email"
msgstr "Новая эл. почта"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:119
msgid "modals.change-email.submit"
msgstr "Изменить эл. почту"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
msgid "modals.change-email.title"
msgstr "Изменить эл. почту"
-#: src/app/main/ui/settings/delete_account.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:154, src/app/main/ui/settings/access_tokens.cljs:160
+msgid "modals.create-access-token.copy-token"
+msgstr "Копировать токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:131
+msgid "modals.create-access-token.expiration-date.label"
+msgstr "Дата истечения срока действия"
+
+#: src/app/main/ui/settings/access_tokens.cljs:125
+msgid "modals.create-access-token.name.label"
+msgstr "Название"
+
+#: src/app/main/ui/settings/access_tokens.cljs:127
+msgid "modals.create-access-token.name.placeholder"
+msgstr "Название может помочь понять, для чего предназначен токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:180
+msgid "modals.create-access-token.submit-label"
+msgstr "Создать токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:112
+msgid "modals.create-access-token.title"
+msgstr "Сгенерировать токен доступа"
+
+#: src/app/main/ui/dashboard/team.cljs:894
+msgid "modals.create-webhook.submit-label"
+msgstr "Создать вебхук"
+
+#: src/app/main/ui/dashboard/team.cljs:859
+msgid "modals.create-webhook.title"
+msgstr "Создать вебхук"
+
+#: src/app/main/ui/dashboard/team.cljs:870
+msgid "modals.create-webhook.url.label"
+msgstr "Ссылка полезной нагрузки"
+
+#: src/app/main/ui/dashboard/team.cljs:871
+msgid "modals.create-webhook.url.placeholder"
+msgstr "https://пример.com/postreceive"
+
+#: src/app/main/ui/settings/access_tokens.cljs:260
+msgid "modals.delete-acces-token.accept"
+msgstr "Удалить токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:259
+msgid "modals.delete-acces-token.message"
+msgstr "Вы уверены, что хотите удалить этот токен?"
+
+#: src/app/main/ui/settings/access_tokens.cljs:258
+msgid "modals.delete-acces-token.title"
+msgstr "Удалить токен"
+
+#: 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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Удалить переписку"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
msgid "modals.delete-comment-thread.message"
msgstr ""
"Вы уверены, что хотите удалить это обсуждение? Все комментарии, входящие в "
"него будут удалены."
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
msgid "modals.delete-comment-thread.title"
msgstr "Удалить обсуждение"
-#: src/app/main/ui/dashboard/file_menu.cljs
+#: 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
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/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/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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Удалить участника"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
msgid "modals.delete-team-member-confirm.message"
msgstr "Вы уверены, что хотите удалить этого участника из команды?"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Удалить участника команды"
-#: src/app/main/ui/dashboard/team.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] ""
+"Ресурсы, которые уже использовались в этих файлах, останутся там (дизайн не "
+"будет нарушен)."
+
+#: src/app/main/ui/dashboard/team.cljs:963
+msgid "modals.delete-webhook.accept"
+msgstr "Удалить вебхук"
+
+#: src/app/main/ui/dashboard/team.cljs:962
+msgid "modals.delete-webhook.message"
+msgstr "Вы уверены, что хотите удалить этот вебхук?"
+
+#: src/app/main/ui/dashboard/team.cljs:961
+msgid "modals.delete-webhook.title"
+msgstr "Удаление вебхука"
+
+#: src/app/main/ui/dashboard/team.cljs:893
+msgid "modals.edit-webhook.submit-label"
+msgstr "Изменить вебхук"
+
+#: src/app/main/ui/dashboard/team.cljs:858
+msgid "modals.edit-webhook.title"
+msgstr "Изменить вебхук"
+
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "Отправить приглашение"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
+msgid "modals.invite-member.repeated-invitation"
+msgstr ""
+"Некоторые электронные письма отправлены от текущих членов команды. Их "
+"приглашения не будут отправлены."
+
+#: src/app/main/ui/dashboard/team.cljs:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "Вы уверены, что хотите покинуть команду %s?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
msgid "modals.leave-and-reassign.forbidden"
msgstr ""
"Вы не можете покинуть команду, если нет другого участника, которого можно "
"было бы назначить владельцем. Возможно, вы захотите удалить команду."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:54
msgid "modals.leave-and-reassign.hint1"
msgstr ""
"Вы владелец этой команды. Прежде чем покинуть её, выберите другого "
"участника, чтобы сделать его владельцем."
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:77
msgid "modals.leave-and-reassign.promote-and-leave"
msgstr "Назначить и покинуть"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:33
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:48
+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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
msgid "modals.leave-confirm.title"
msgstr "Выход из команды"
-#: src/app/main/ui/dashboard/team.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:359
+msgid "modals.promote-owner-confirm.accept"
+msgstr "Передача прав собственности"
+
+#: src/app/main/ui/dashboard/team.cljs:358
+msgid "modals.promote-owner-confirm.hint"
+msgstr ""
+"Если вы передадите права собственности, вы измените свою роль на "
+"администратора, потеряв некоторые права доступа в этой команде. "
+
+#: src/app/main/ui/dashboard/team.cljs:357
msgid "modals.promote-owner-confirm.message"
msgstr ""
"Вы текущий владелец этой команды. Вы уверены, что хотите сделать %s новым "
"владельцем команды?"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:356
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/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
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 ""
+msgstr "Удалить “%s” из общей библиотеки"
-#: src/app/main/ui/workspace/header.cljs,
-#: src/app/main/ui/dashboard/file_menu.cljs
+#: src/app/main/ui/workspace/nudge.cljs:53
+msgid "modals.small-nudge"
+msgstr "Небольшое подталкивание"
+
+#: 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/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/data/common.cljs:76
+msgid "notifications.by-code.upgrade-version"
+msgstr "Доступна новая версия, обновите страницу"
+
+#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:615
+msgid "notifications.invitation-email-sent"
+msgstr "Приглашение успешно отправлено"
+
+#: src/app/main/ui/dashboard/team.cljs:636
+msgid "notifications.invitation-link-copied"
+msgstr "Ссылка на приглашение скопирована"
+
+#: 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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "Профиль успешно сохранён!"
+#: src/app/main/ui/settings/change_email.cljs:46
+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 ""
+"Мы будем отправлять вам только актуальные электронные письма. Вы можете "
+"отказаться от рассылки в любое время, воспользовавшись ссылкой \"Отказаться "
+"от рассылки\" в любом из наших информационных бюллетеней."
+
+#: 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:30
msgid "onboarding-v2.welcome.title"
msgstr "Добро пожаловать в Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
+msgid "onboarding.choice.team-up.continue-creating-team"
+msgstr "Продолжить создание команды"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:237
+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:213
msgid "onboarding.choice.team-up.create-team-desc"
msgstr ""
"После добавления названия команды, вы сможете пригласить людей "
"присоединиться."
+#: src/app/main/ui/onboarding/team_choice.cljs:222
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:220, src/app/main/ui/onboarding/team_choice.cljs:146
+msgid "onboarding.choice.team-up.roles"
+msgstr "Пригласить с ролью:"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:230
+msgid "onboarding.choice.team-up.start-without-a-team"
+msgstr "Начать без команды"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:232
+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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Давайте начнём!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Ищу альтернативу Figma, XD и т.д."
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Просто исследую"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Анализ того, подходит ли Penpot для моей команды"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Тестирование перед самохостингом"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Генерация реального кода дизайнов"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Создание систем дизайна"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Создание прототипов"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Проектирование UI/UX приложения"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Вайрфрейминг"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "В каких целях вы планируете использовать Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "Что привело вас сегодня в Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Расскажите нам немного о себе, чтобы мы могли заставить Penpot работать на "
+"вас. Ваши ответы помогут нам определить приоритетность новых функций и "
+"укажут вам правильное направление для начала работы."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Помогите нам лучше узнать вас"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Каким из этих инструментов вы пользуетесь чаще всего?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Какую работу вы выполняете?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Какова ваша роль?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Каков размер вашей компании?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Расскажите нам о своей работе"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "С чего бы вы хотели начать?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Как вы узнали о Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Я фрилансер"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Более 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Я работаю над личным проектом"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Образование"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "В личных целях"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Для работы"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Создать команду"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
msgid "onboarding.team-modal.create-team-desc"
msgstr ""
"Команда позволяет вам сотрудничать с другими пользователями Penpot, "
"работающими над одними файлами и проектами."
+#: src/app/main/ui/onboarding/team_choice.cljs:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Неограниченное количество файлов и проектов"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Многопользовательская версия"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Управление ролями"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Неограниченное количество участников"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "100% бесплатно!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
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/workspace/sidebar/options/rows/color_row.cljs:221
+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:180, 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 "Поиск"
-msgid "shortcuts.hide-ui"
-msgstr "Показать/скрыть UI"
+#: 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 "Выбрать все"
-msgid "shortcuts.show-pixel-grid"
-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
+#: 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
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/dashboard/files.cljs
+#: 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/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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot — свобода в дизайне для команд"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:281
+msgid "title.settings.access-tokens"
+msgstr "Профиль - токены доступа"
+
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Оставить отзыв - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Настройки - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Пароль - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Профиль - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Приглашения - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Участники - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Настройки - %s - Penpot"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/dashboard/team.cljs:1010
+msgid "title.team-webhooks"
+msgstr "Вебхуки - %s - Penpot"
+
+#: src/app/main/ui/viewer.cljs:420
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:143
msgid "viewer.breaking-change.description"
msgstr ""
"Эта общая ссылка больше не действительна. Создайте новую или попросите об "
"этом владельца."
+#: src/app/main/ui.cljs:142
msgid "viewer.breaking-change.message"
msgstr "Извините!"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:570
msgid "viewer.empty-state"
msgstr "На странице не найдено ни одного кадра."
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:575
msgid "viewer.frame-not-found"
msgstr "Кадр не найден."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Полный экран"
-#: src/app/main/ui/viewer/header.cljs
+#: src/app/main/ui/viewer/header.cljs:351
+msgid "viewer.header.inspect-section"
+msgstr "Осмотр (%s)"
+
+#: src/app/main/ui/viewer/interactions.cljs:282
msgid "viewer.header.interactions"
msgstr "Интерактив"
+#: src/app/main/ui/viewer/header.cljs:333
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:237
msgid "viewer.header.sitemap"
msgstr "План сайта"
-#: src/app/main/ui/workspace/sidebar/align.cljs
+#: src/app/main/ui/dashboard/team.cljs:969
+msgid "webhooks.last-delivery.success"
+msgstr "Последняя доставка прошла успешно."
+
+#: 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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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/sidebar/assets/groups.cljs:138
+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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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/components.cljs:567
+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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Группа"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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: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
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
+#, 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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "Переименовать"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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
+#, 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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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/dashboard/grid.cljs:205, 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.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:65
msgid "workspace.assets.ungroup"
msgstr "Разгруппировать"
-#: src/app/main/ui/workspace/header.cljs
+#: 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 "Добавить 1 столбец справа"
+
+#: src/app/main/ui/workspace/context_menu.cljs:593
+msgid "workspace.context-menu.grid-track.column.add-before"
+msgstr "Добавить 1 столбец слева"
+
+#: 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 "Добавить 1 строку ниже"
+
+#: src/app/main/ui/workspace/context_menu.cljs:600
+msgid "workspace.context-menu.grid-track.row.add-before"
+msgstr "Добавить 1 строку выше"
+
+#: 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/header.cljs
+#: 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/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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "Изменить"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Файл"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
msgid "workspace.header.menu.option.help-info"
msgstr "Помощь и информация"
-#: src/app/main/ui/workspace/header.cljs
-msgid "workspace.header.menu.select-all"
-msgstr ""
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "Предпочтения"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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/header.cljs
+#: 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/header.cljs
+#: 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/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: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)"
+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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "Изменить сетку"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+msgid "workspace.layout_grid.editor.options.exit"
+msgstr "Выход"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
+msgid "workspace.layout_grid.editor.padding.expand"
+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:1300
+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
+#: src/app/main/ui/workspace/libraries.cljs:80, src/app/main/ui/workspace/libraries.cljs:99
msgid "workspace.libraries.colors"
-msgstr ""
+msgstr "%s цветов"
-#: src/app/main/ui/workspace/colorpicker/libraries.cljs,
-#: 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/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/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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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 ""
+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 ""
+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:509, src/app/main/ui/workspace/libraries.cljs:534
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: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
+#: 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/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
+#: 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: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
+#: src/app/main/ui/workspace/libraries.cljs:477
+msgid "workspace.libraries.update.see-all-changes"
+msgstr "смотреть все изменения"
+
+#: src/app/main/ui/workspace/libraries.cljs:516
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/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.cljs
+#: 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:169
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/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/workspace/sidebar/options/menus/exports.cljs,
-#: src/app/main/ui/inspect/exports.cljs, src/app/main/ui/workspace/header.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/export.cljs:241
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:173, src/app/main/ui/export.cljs:242, 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:240
msgid "workspace.options.exporting-object-error"
msgstr "Экспорт не удался"
-#: src/app/main/ui/workspace/sidebar/options/menus/fill.cljs
+#: src/app/main/ui/export.cljs:243
+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
+#: 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
+#: 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/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:177
+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 "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 "Линейно"
+
#: 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
+#: 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/shapes/frame.cljs,
-#: src/app/main/ui/workspace/sidebar/options/menus/measures.cljs
+#: 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
+#: src/app/main/ui/workspace/sidebar/options.cljs:173
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: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:285
+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
+#: 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/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
+#: 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: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/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/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
-msgid "workspace.options.stroke.center"
-msgstr "Центр"
+#, unused
+msgid "workspace.options.stroke-cap.circle-marker"
+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.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.copy"
-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 "Создать компонент"
-
-#: 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 "Удалить начало потока"
-
-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 "Исключить"
-
-#: 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
-msgid "workspace.shape.menu.go-main"
-msgstr "Перейти к основному файлу компонента"
-
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.hide"
-msgstr "Скрыть"
-
-msgid "workspace.shape.menu.hide-ui"
-msgstr "Показать/скрыть UI"
-
-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
-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-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 "Разгруппировать"
-
-#: src/app/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 "Обновить основной компонент"
-
-#: 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.search"
-msgstr "Искать слои"
-
-#: src/app/main/ui/workspace/sidebar/sitemap.cljs
-msgid "workspace.sidebar.sitemap"
-msgstr "Страницы"
-
-#: src/app/main/ui/workspace/header.cljs
-msgid "workspace.sitemap"
-msgstr "Карта сайта"
-
-#: 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.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
+#: 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
-msgid "workspace.options.stroke-cap.triangle-arrow"
-msgstr "Треугольная стрела"
+#, 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/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
+#, 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 "Треугольник"
-msgid "workspace.undo.entry.multiple.shape"
-msgstr "формы"
+#: src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs:189
+msgid "workspace.options.stroke-color"
+msgstr "Цвет обводки"
-msgid "workspace.undo.entry.multiple.circle"
-msgstr "круги"
+#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:165
+msgid "workspace.options.stroke-width"
+msgstr "Толщина обводки"
-#: src/app/main/ui/workspace/context_menu.cljs
-msgid "workspace.shape.menu.unlock"
-msgstr "Paзблокировать"
+#: src/app/main/ui/workspace/sidebar/options/rows/stroke_row.cljs:87
+msgid "workspace.options.stroke.center"
+msgstr "Центр"
-msgid "workspace.sidebar.collapse"
-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/context_menu.cljs, src/app/main/ui/workspace/context_menu.cljs
+#: 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/plugins.cljs:58
+msgid "workspace.plugins.button-open"
+msgstr "Открыть"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Плагины ещё не установлены"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "Плагин не существует или его URL неверен."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Установить"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+msgid "workspace.plugins.installed-plugins"
+msgstr "Установленные плагины"
+
+#: src/app/main/ui/workspace/main_menu.cljs:624
+msgid "workspace.plugins.menu.plugins-manager"
+msgstr "Менеджер плагинов"
+
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "Плагины"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Список плагинов"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+msgid "workspace.plugins.search-placeholder"
+msgstr "Введите URL-адрес плагина"
+
+#, unused
+msgid "workspace.plugins.success"
+msgstr "Плагин загружен правильно."
+
+#: src/app/main/ui/workspace/plugins.cljs:160
+msgid "workspace.plugins.title"
+msgstr "Плагины"
+
+#: 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 "Flatten"
+
+#: 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 "Показать/скрыть 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: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 "Вставить"
-msgid "workspace.undo.entry.single.shape"
-msgstr "форма"
+#: src/app/main/ui/workspace/context_menu.cljs:331
+msgid "workspace.shape.menu.path"
+msgstr "Контур"
-msgid "workspace.undo.entry.single.text"
-msgstr "текст"
+#: src/app/main/ui/workspace/context_menu.cljs:432
+msgid "workspace.shape.menu.remove-flex"
+msgstr "Удалить макет гибкости"
-msgid "workspace.undo.entry.single.image"
-msgstr "изображение"
+#: src/app/main/ui/workspace/context_menu.cljs:435
+msgid "workspace.shape.menu.remove-grid"
+msgstr "Удалить макет сетки"
-msgid "workspace.undo.entry.multiple.text"
-msgstr "тексты"
+#: src/app/main/ui/workspace/sidebar/assets/common.cljs:436
+msgid "workspace.shape.menu.reset-overrides"
+msgstr "Сбросить переопределения"
-msgid "workspace.sidebar.layers.texts"
-msgstr "Тексты"
+#: src/app/main/ui/workspace/sidebar/assets/common.cljs:439
+msgid "workspace.shape.menu.restore-main"
+msgstr "Восстановить основной компонент"
-msgid "workspace.sidebar.layers.masks"
-msgstr "Маски"
+#: src/app/main/ui/workspace/context_menu.cljs:174
+msgid "workspace.shape.menu.select-layer"
+msgstr "Выбрать слой"
-msgid "workspace.sidebar.layers.images"
-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 "Показать"
-msgid "workspace.sidebar.layers.groups"
-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:582
+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 "Paзблокировать"
+
+#: 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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Свернуть боковую панель"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
msgid "workspace.sidebar.expand"
msgstr "Расширить боковую панель"
-msgid "workspace.shape.menu.union"
-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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Кривая (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Эллипс (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Кадр (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Изображение (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Перемещение (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Контур (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Переключить панель инструментов"
+
+#: 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:1097
+msgid "workspace.updates.dismiss"
+msgstr "Отклонить"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "Дополнительная информация"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "Обнаружены обновления общих библиотек"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+msgid "workspace.updates.update"
+msgstr "Обновить"
+
+#, unused
+msgid "workspace.viewport.click-to-close-path"
+msgstr "Нажмите для замыкания контура"
diff --git a/frontend/translations/sr.po b/frontend/translations/sr.po
new file mode 100644
index 0000000000..8eeefb8189
--- /dev/null
+++ b/frontend/translations/sr.po
@@ -0,0 +1,5915 @@
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
+"Last-Translator: Anonymous \n"
+"Language-Team: Serbian \n"
+"Language: sr\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.7.1-dev\n"
+
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
+msgid "auth.already-have-account"
+msgstr "Већ имате налог?"
+
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "Проверите своју е-пошту"
+
+#: src/app/main/ui/auth/register.cljs:270
+msgid "auth.check-your-email"
+msgstr ""
+"Проверите своју е-пошту и кликните на везу да верификујете и почнете да "
+"користите Penpot."
+
+#: src/app/main/ui/auth/recovery.cljs:67
+msgid "auth.confirm-password"
+msgstr "Потврдите лозинку"
+
+#: src/app/main/ui/auth/register.cljs:144
+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:41
+msgid "auth.demo-warning"
+msgstr ""
+"Ово је ДЕМО услуга, НЕ КОРИСТИТЕ за прави рад, пројекти ће се повремено "
+"брисати."
+
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
+msgid "auth.forgot-password"
+msgstr "Заборављена лозинка?"
+
+#: src/app/main/ui/auth/register.cljs:224
+msgid "auth.fullname"
+msgstr "Пуно име"
+
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "Пријавите се на свој налог"
+
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
+msgid "auth.login-here"
+msgstr "Пријавите се овде."
+
+#: src/app/main/ui/auth/login.cljs:186
+msgid "auth.login-submit"
+msgstr "Пријава"
+
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr "Penpot је бесплатан алат отвореног кода за сарадњу у дизајну и програмирању"
+
+#: src/app/main/ui/auth/login.cljs:213
+msgid "auth.login-with-github-submit"
+msgstr "GitHub"
+
+#: src/app/main/ui/auth/login.cljs:219
+msgid "auth.login-with-gitlab-submit"
+msgstr "GitLab"
+
+#: src/app/main/ui/auth/login.cljs:207
+msgid "auth.login-with-google-submit"
+msgstr "Google"
+
+#: src/app/main/ui/auth/login.cljs:192
+msgid "auth.login-with-ldap-submit"
+msgstr "LDAP"
+
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
+msgid "auth.login-with-oidc-submit"
+msgstr "OpenID"
+
+#: src/app/main/ui/auth/recovery.cljs:60
+msgid "auth.new-password"
+msgstr "Унесите нову лозинку"
+
+#: src/app/main/ui/auth/recovery.cljs:36
+msgid "auth.notifications.password-changed-successfully"
+msgstr "Лозинка је успешно промењена"
+
+#: src/app/main/ui/auth/recovery_request.cljs:50
+msgid "auth.notifications.profile-not-verified"
+msgstr "Профил није верификован, проверите профил пре него што наставите."
+
+#: src/app/main/ui/auth/recovery_request.cljs:33
+msgid "auth.notifications.recovery-token-sent"
+msgstr "Линк за опоравак лозинке је послат у Ваше пријемно сандуче."
+
+#: src/app/main/ui/auth/verify_token.cljs:46
+msgid "auth.notifications.team-invitation-accepted"
+msgstr "Успешно придружење тиму"
+
+#: src/app/main/ui/auth/login.cljs:170, src/app/main/ui/auth/register.cljs:94
+msgid "auth.password"
+msgstr "Лозинка"
+
+#: src/app/main/ui/auth/register.cljs:93
+msgid "auth.password-length-hint"
+msgstr "Најмање 8 знакова"
+
+#: src/app/main/ui/auth/register.cljs:291
+msgid "auth.privacy-policy"
+msgstr "Политика приватности"
+
+#: src/app/main/ui/auth/recovery_request.cljs:82
+msgid "auth.recovery-request-submit"
+msgstr "Опорави лозинку"
+
+#: src/app/main/ui/auth/recovery_request.cljs:95
+msgid "auth.recovery-request-subtitle"
+msgstr "Послаћемо вам е-пошту са упутствима"
+
+#: src/app/main/ui/auth/recovery_request.cljs:94
+msgid "auth.recovery-request-title"
+msgstr "Заборавили сте лозинку?"
+
+#: src/app/main/ui/auth/recovery.cljs:71
+msgid "auth.recovery-submit"
+msgstr "Промените своју лозинку"
+
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
+msgid "auth.register"
+msgstr "Још немате налог?"
+
+#: src/app/main/ui/auth/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "Како желите да Вас ословљавамо на управљачкој табли и у е-пошти."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "Ваше име"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
+msgid "auth.register-submit"
+msgstr "Креирајте налог"
+
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Са бесплатним Penpot налогом можете креирати неограничен број тимова и "
+"сарађивати са другим дизајнерима и програмерима на онолико пројеката колико "
+"желите. "
+
+#: src/app/main/ui/auth/register.cljs:121
+msgid "auth.register-title"
+msgstr "Креирајте налог"
+
+#: src/app/main/ui/auth.cljs
+#, unused
+msgid "auth.sidebar-tagline"
+msgstr "Решење отвореног кода за дизајн и израду прототипа."
+
+#: src/app/main/ui/auth/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr "Слажем се са [условима коришћења](%s) и [политиком приватности](%s)."
+
+#: src/app/main/ui/auth/register.cljs:283, src/app/main/ui/dashboard/sidebar.cljs:1022, src/app/main/ui/workspace/main_menu.cljs:150
+msgid "auth.terms-of-service"
+msgstr "Услови коришћења"
+
+#, unused
+msgid "auth.terms-privacy-agreement"
+msgstr ""
+"Када креирате нови налог, прихватате наше услове коришћења услуге и "
+"политику приватности."
+
+#: src/app/main/ui/auth/register.cljs:268
+msgid "auth.verification-email-sent"
+msgstr "Послали смо потврдно е-писмо на"
+
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+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] "страница подељена"
+msgstr[1] "%s странице подељено"
+msgstr[2] "%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
+msgid "dasboard.team-hero.management"
+msgstr "Управљање тимом"
+
+#: src/app/main/ui/dashboard/projects.cljs:84
+msgid "dasboard.team-hero.text"
+msgstr ""
+"Penpot је намењен тимовима. Позовите чланове да заједно раде на пројектима "
+"и датотекама"
+
+#: 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:104
+msgid "dashboard.access-tokens.copied-success"
+msgstr "Токен је копиран"
+
+#: src/app/main/ui/settings/access_tokens.cljs:191
+msgid "dashboard.access-tokens.create"
+msgstr "Генеришите нови токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:65
+#, fuzzy
+msgid "dashboard.access-tokens.create.success"
+msgstr "Приступни токен је успешно креиран."
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
+msgid "dashboard.access-tokens.empty.add-one"
+msgstr "Притисните дугме \"Генеришите нови токен\" да бисте генерисали један."
+
+#: src/app/main/ui/settings/access_tokens.cljs:288
+msgid "dashboard.access-tokens.empty.no-access-tokens"
+msgstr "До сада немате никакве токене."
+
+#: src/app/main/ui/settings/access_tokens.cljs:136
+msgid "dashboard.access-tokens.expiration-180-days"
+msgstr "180 дана"
+
+#: src/app/main/ui/settings/access_tokens.cljs:133
+msgid "dashboard.access-tokens.expiration-30-days"
+msgstr "30 дана"
+
+#: src/app/main/ui/settings/access_tokens.cljs:134
+msgid "dashboard.access-tokens.expiration-60-days"
+msgstr "60 дана"
+
+#: src/app/main/ui/settings/access_tokens.cljs:135
+msgid "dashboard.access-tokens.expiration-90-days"
+msgstr "90 дана"
+
+#: src/app/main/ui/settings/access_tokens.cljs:132
+msgid "dashboard.access-tokens.expiration-never"
+msgstr "Никад"
+
+#: src/app/main/ui/settings/access_tokens.cljs:271
+msgid "dashboard.access-tokens.expired-on"
+msgstr "Истекао на %s"
+
+#: src/app/main/ui/settings/access_tokens.cljs:272
+msgid "dashboard.access-tokens.expires-on"
+msgstr "Истиче на %s"
+
+#: src/app/main/ui/settings/access_tokens.cljs:270
+msgid "dashboard.access-tokens.no-expiration"
+msgstr "Без датума истека"
+
+#: src/app/main/ui/settings/access_tokens.cljs:186
+msgid "dashboard.access-tokens.personal"
+msgstr "Лични токени за приступ"
+
+#: src/app/main/ui/settings/access_tokens.cljs:187
+msgid "dashboard.access-tokens.personal.description"
+msgstr ""
+"Лични токени за приступ функционишу као алтернатива нашем систему "
+"аутентификације са корисничким именом и лозинком и могу се користити за "
+"омогућавање апликацији приступу унутрашњем Penpot API-ју"
+
+#: src/app/main/ui/settings/access_tokens.cljs:143
+msgid "dashboard.access-tokens.token-will-expire"
+msgstr "Токен ће истећи на %s"
+
+#: src/app/main/ui/settings/access_tokens.cljs:144
+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:72
+msgid "dashboard.change-email"
+msgstr "Промените е-пошту"
+
+#: src/app/main/data/dashboard.cljs:763, 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 "Ваш Penpot"
+
+#: 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/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 "Дуплирај %s датотека"
+
+#: src/app/main/ui/dashboard/placeholder.cljs:33
+#, 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)"
+
+#: src/app/main/ui/workspace/main_menu.cljs:605
+msgid "dashboard.export-frames"
+msgstr "Извезите табле као PDF"
+
+#: src/app/main/ui/export.cljs:202
+msgid "dashboard.export-frames.title"
+msgstr "Извези као PDF"
+
+#, unused
+msgid "dashboard.export-multi"
+msgstr "Извези Penpot %s датотека"
+
+#: src/app/main/ui/export.cljs:110
+msgid "dashboard.export-multiple.selected"
+msgstr "%s од %s елемената изабрано"
+
+#: src/app/main/ui/workspace/main_menu.cljs:578
+msgid "dashboard.export-shapes"
+msgstr "Извези"
+
+#: src/app/main/ui/export.cljs:181
+msgid "dashboard.export-shapes.how-to"
+msgstr ""
+"Можете додати подешавања извоза елементима из својстава дизајна (на дну "
+"десне бочне траке)."
+
+#: src/app/main/ui/export.cljs:185
+msgid "dashboard.export-shapes.how-to-link"
+msgstr "Информације како да подесите извоз у Penpot-у."
+
+#: src/app/main/ui/export.cljs:180
+msgid "dashboard.export-shapes.no-elements"
+msgstr "Нема елемената са подешавањима извоза."
+
+#: src/app/main/ui/export.cljs:191
+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:430
+msgid "dashboard.export.detail"
+msgstr "* Може укључивати компоненте, графику, боје и/или типографије."
+
+#: src/app/main/ui/export.cljs:429
+msgid "dashboard.export.explain"
+msgstr ""
+"Једна или више датотека које желите да извезете користе дељене библиотеке. "
+"Шта желите да урадите са њиховим средстрвима*?"
+
+#: src/app/main/ui/export.cljs:438
+msgid "dashboard.export.options.all.message"
+msgstr ""
+"датотеке са дељеним библиотекама ће бити укључене у извоз, одржавајући "
+"њихову повезаност."
+
+#: src/app/main/ui/export.cljs:439
+msgid "dashboard.export.options.all.title"
+msgstr "Извези дељене библиотеке"
+
+#: src/app/main/ui/export.cljs:440
+msgid "dashboard.export.options.detach.message"
+msgstr ""
+"Дељене библиотеке неће бити укључене у извоз, а средства неће бити додата у "
+"библиотеку. "
+
+#: src/app/main/ui/export.cljs:441
+msgid "dashboard.export.options.detach.title"
+msgstr "Третирајте средства заједничке библиотеке као основне објекте"
+
+#: src/app/main/ui/export.cljs:442
+msgid "dashboard.export.options.merge.message"
+msgstr ""
+"Ваша датотека ће бити извезена са свим спољним средствима спојеним у "
+"библиотеку датотека."
+
+#: src/app/main/ui/export.cljs:443
+msgid "dashboard.export.options.merge.title"
+msgstr "Укључите средства дељених библиотека у библиотеке датотека"
+
+#: src/app/main/ui/export.cljs:421
+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
+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
+msgid "dashboard.fonts.fonts-added"
+msgid_plural "dashboard.fonts.fonts-added"
+msgstr[0] "фонт додат"
+msgstr[1] "%s фонта додато"
+msgstr[2] "%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). Такође, "
+"можете прочитати о [лиценцирању фонтовa](https://www.typography.com/faq)."
+
+#: 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 ""
+"Открили смо могући проблем у вашим фонтовима у вези са усправним метрикама "
+"за различите оперативне системе. Да бисте проверили, можете користити "
+"услуге за усправне метрике фонтовa као што је "
+"[ова](https://vertical-metrics.netlify.app/). Поред тога, препоручујемо "
+"коришћење [Transfonter](https://transfonter.org/) за генерисање веб фонтовa "
+"и исправљање грешака. "
+
+#: src/app/main/ui/dashboard/import.cljs:476, src/app/main/ui/dashboard/project_menu.cljs:108
+msgid "dashboard.import"
+msgstr "Увези Penpot датотеке"
+
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
+msgid "dashboard.import.import-error"
+msgstr "Дошло је до проблема при увозу датотеке. Датотека није увезена."
+
+#: src/app/main/ui/dashboard/import.cljs:497
+msgid "dashboard.import.import-message"
+msgid_plural "dashboard.import.import-message"
+msgstr[0] "%s датотека је успешно увезена."
+msgstr[1] "%s датотеке су успешно увезене."
+msgstr[2] "%s датотека успешно увезено."
+
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
+msgid "dashboard.import.import-warning"
+msgstr "Неке датотеке су садржале неважеће објекте који су уклоњени."
+
+#: src/app/main/ui/dashboard/import.cljs:145
+msgid "dashboard.import.progress.process-colors"
+msgstr "Обрада боја"
+
+#: src/app/main/ui/dashboard/import.cljs:154
+msgid "dashboard.import.progress.process-components"
+msgstr "Обрада компоненти"
+
+#: src/app/main/ui/dashboard/import.cljs:151
+msgid "dashboard.import.progress.process-media"
+msgstr "Обрада медија"
+
+#: src/app/main/ui/dashboard/import.cljs:142
+msgid "dashboard.import.progress.process-page"
+msgstr "Обрада стране: %s"
+
+#: src/app/main/ui/dashboard/import.cljs:148
+msgid "dashboard.import.progress.process-typographies"
+msgstr "Обрада типографија"
+
+#: src/app/main/ui/dashboard/import.cljs:136
+msgid "dashboard.import.progress.upload-data"
+msgstr "Отпремање података на сервер (%s/%s)"
+
+#: src/app/main/ui/dashboard/import.cljs:139
+msgid "dashboard.import.progress.upload-media"
+msgstr "Отпремање датотеке: %s"
+
+#: src/app/main/ui/dashboard/team.cljs:114
+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:331
+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:369
+msgid "dashboard.libraries-and-templates.import-error"
+msgstr "Дошло је до проблема при увозу шаблона. Шаблон није увезен."
+
+#: src/app/main/ui/dashboard/libraries.cljs:53
+msgid "dashboard.libraries-title"
+msgstr "Библиотеке"
+
+#: src/app/main/ui/dashboard/placeholder.cljs:47
+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
+msgid "dashboard.move-to"
+msgstr "Премести у"
+
+#: src/app/main/ui/dashboard/file_menu.cljs:245
+msgid "dashboard.move-to-multi"
+msgstr "Премести %s датотека у"
+
+#: src/app/main/ui/dashboard/file_menu.cljs:226
+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
+msgid "dashboard.new-file"
+msgstr "+ Нова датотека"
+
+#: 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:55
+msgid "dashboard.new-project"
+msgstr "+ Нови пројекат"
+
+#: src/app/main/data/dashboard.cljs:727, src/app/main/data/dashboard.cljs:1184
+msgid "dashboard.new-project-prefix"
+msgstr "Нови пројекат"
+
+#: src/app/main/ui/dashboard/search.cljs:60
+msgid "dashboard.no-matches-for"
+msgstr "Нема подударања за \"%s\""
+
+#: src/app/main/ui/dashboard/sidebar.cljs:827
+msgid "dashboard.no-projects-placeholder"
+msgstr "Закачени пројекти ће се појавити овде"
+
+#: src/app/main/ui/auth/verify_token.cljs:32
+msgid "dashboard.notifications.email-changed-successfully"
+msgstr "Ваша адреса е-поште је успешно ажурирана"
+
+#: src/app/main/ui/auth/verify_token.cljs:26
+msgid "dashboard.notifications.email-verified-successfully"
+msgstr "Ваша адреса е-поште је успешно верификована"
+
+#: src/app/main/ui/settings/password.cljs:36
+msgid "dashboard.notifications.password-saved"
+msgstr "Лозинка је успешно сачувана!"
+
+#: src/app/main/ui/dashboard/team.cljs:1102
+msgid "dashboard.num-of-members"
+msgstr "%s чланова"
+
+#: 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:94, src/app/main/ui/settings/password.cljs:107
+msgid "dashboard.password-change"
+msgstr "Промените лозинку"
+
+#: 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:51
+msgid "dashboard.projects-title"
+msgstr "Пројекти"
+
+#: src/app/main/ui/settings/profile.cljs:83
+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:75
+msgid "dashboard.save-settings"
+msgstr "Сачувај подешавања"
+
+#: 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:55
+msgid "dashboard.searching-for"
+msgstr "Претражи за \"%s\"…"
+
+#: src/app/main/ui/settings/options.cljs:53
+msgid "dashboard.select-ui-language"
+msgstr "Изаберите језик корисничког интерфејса"
+
+#: src/app/main/ui/settings/options.cljs:60
+msgid "dashboard.select-ui-theme"
+msgstr "Изаберите тему"
+
+#: src/app/main/ui/dashboard/projects.cljs:282
+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] "Ваша датотека је успешно обрисана"
+msgstr[1] "Ваше датотеке су успешно обрисане"
+msgstr[2] "Ваше датотеке су успешно обрисане"
+
+#: 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] "Ваша датотека је успешно дуплирана"
+msgstr[1] "Ваше датотеке су успешно дуплиране"
+msgstr[2] "Ваше датотеке су успешно дуплиране"
+
+#: src/app/main/ui/dashboard/project_menu.cljs:33
+msgid "dashboard.success-duplicate-project"
+msgstr "Ваш пројекат је успешно дуплиран"
+
+#: src/app/main/ui/dashboard/file_menu.cljs:130, src/app/main/ui/dashboard/grid.cljs:563, src/app/main/ui/dashboard/sidebar.cljs:152
+msgid "dashboard.success-move-file"
+msgstr "Ваша датотека је успешно премештена"
+
+#: src/app/main/ui/dashboard/file_menu.cljs:129
+msgid "dashboard.success-move-files"
+msgstr "Ваше датотеке су успешно премештене"
+
+#: src/app/main/ui/dashboard/project_menu.cljs:54
+msgid "dashboard.success-move-project"
+msgstr "Ваш пројекат је успешно премештен"
+
+#: src/app/main/ui/dashboard/team.cljs:1073
+msgid "dashboard.team-info"
+msgstr "Информације о тиму"
+
+#: src/app/main/ui/dashboard/team.cljs:1091
+msgid "dashboard.team-members"
+msgstr "Чланови тима"
+
+#: src/app/main/ui/dashboard/team.cljs:1106
+msgid "dashboard.team-projects"
+msgstr "Тимски пројекти"
+
+#: src/app/main/ui/settings/options.cljs:58
+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 "Опозови објављивање библиотеке"
+
+#: src/app/main/ui/settings/options.cljs:68
+msgid "dashboard.update-settings"
+msgstr "Ажурирајте подешавања"
+
+#: src/app/main/ui/dashboard/team.cljs:882
+msgid "dashboard.webhooks.active"
+msgstr "Је активно"
+
+#: src/app/main/ui/dashboard/team.cljs:883
+msgid "dashboard.webhooks.active.explain"
+msgstr "Када се ова кука покрене биће испоручени детаљи догађаја"
+
+#: src/app/main/ui/dashboard/team.cljs:873
+msgid "dashboard.webhooks.content-type"
+msgstr "Тип садржаја"
+
+#: src/app/main/ui/dashboard/team.cljs:906
+msgid "dashboard.webhooks.create"
+msgstr "Креирајте веб-куку"
+
+#: src/app/main/ui/dashboard/team.cljs:796
+msgid "dashboard.webhooks.create.success"
+msgstr "Веб-кука је успешно креирана."
+
+#: src/app/main/ui/dashboard/team.cljs:903
+msgid "dashboard.webhooks.description"
+msgstr ""
+"Веб-куке су једноставан начин да омогућите другим веб-сајтовима и "
+"апликацијама да буду обавештени када се одређени догађаји догоде у "
+"Penpot-у. Послаћемо POST захтев на сваку од URL адреса које наведете."
+
+#: src/app/main/ui/dashboard/team.cljs:1026
+msgid "dashboard.webhooks.empty.add-one"
+msgstr "Притисните дугме „Додај веб-куку“ да бисте је додали."
+
+#: src/app/main/ui/dashboard/team.cljs:1025
+msgid "dashboard.webhooks.empty.no-webhooks"
+msgstr "До сада није направљена ниједана веб-кука."
+
+#, unused
+msgid "dashboard.webhooks.update.success"
+msgstr "Веб-кука је успешно ажурирана."
+
+#: src/app/main/ui/settings.cljs:31
+msgid "dashboard.your-account-title"
+msgstr "Ваш налог"
+
+#: src/app/main/ui/settings/profile.cljs:67
+msgid "dashboard.your-email"
+msgstr "Е-пошта"
+
+#: src/app/main/ui/settings/profile.cljs:59
+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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
+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/ui/confirm.cljs:36, src/app/main/ui/workspace/plugins.cljs:281
+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 "Уреду"
+
+#: 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:700
+msgid "errors.auth-provider-not-allowed"
+msgstr "Провајдер ауторизације није дозвољен за овај налог"
+
+#: src/app/main/ui/auth/login.cljs:61
+msgid "errors.auth-provider-not-configured"
+msgstr "Провајдер аутентификације није конфигурисан."
+
+#: src/app/main/errors.cljs:105
+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:1596
+msgid "errors.clipboard-not-implemented"
+msgstr "Ваш претраживач не може да одради ову операцију"
+
+#: src/app/main/ui/auth/verify_token.cljs:81, src/app/main/ui/settings/change_email.cljs:29
+msgid "errors.email-already-exists"
+msgstr "Е-пошта је већ коришћена"
+
+#: src/app/main/ui/auth/verify_token.cljs:86
+msgid "errors.email-already-validated"
+msgstr "Е-пошта је већ потврђена."
+
+#, unused
+msgid "errors.email-as-password"
+msgstr "Не можете да користите своју е-пошту као лозинку"
+
+#: src/app/main/data/users.cljs:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "Домен није дозвољен"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
+msgid "errors.email-has-permanent-bounces"
+msgstr "Е-пошта «%s» има много сталних извештаја о одбијању."
+
+#: src/app/main/ui/dashboard/team.cljs:187
+msgid "errors.email-spam-or-permanent-bounces"
+msgstr "Е-пошта «%s» је пријављеа као непожељана или трајно одбијена."
+
+#: src/app/main/errors.cljs:233
+msgid "errors.feature-mismatch"
+msgstr ""
+"Изгледа да отварате датотеку која има омогућену функцију '%s', али је "
+"тренутна верзија penpot-а не подржава или је онемогућена."
+
+#: src/app/main/errors.cljs:237, src/app/main/errors.cljs:251
+msgid "errors.feature-not-supported"
+msgstr "Функција '%s' није подржана."
+
+#: src/app/main/errors.cljs:229
+msgid "errors.file-feature-mismatch"
+msgstr ""
+"Чини се да постоји неусклађеност између омогућених функција и функција "
+"датотеке коју покушавате да отворите. Миграције за \"%s\" морају бити "
+"примењене пре него што се датотека може отворити."
+
+#: src/app/main/data/users.cljs:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
+msgid "errors.generic"
+msgstr "Нешто погрешно се десило."
+
+#: src/app/main/ui/components/color_input.cljs:57
+msgid "errors.invalid-color"
+msgstr "Неважећа боја"
+
+#: src/app/main/ui/static.cljs:61
+msgid "errors.invite-invalid"
+msgstr "Позив је неважећи"
+
+#: src/app/main/ui/static.cljs:62
+msgid "errors.invite-invalid.info"
+msgstr "Ова позивница је можда отказана или истекла."
+
+#: src/app/main/ui/auth/login.cljs:90
+msgid "errors.ldap-disabled"
+msgstr "LDAP аутентификација је онемогућена."
+
+#: src/app/main/errors.cljs:245
+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:594
+msgid "errors.member-is-muted"
+msgstr ""
+"Профил који сте позвали има искључене поруке е-поште (извештаји о нежељеној "
+"пошти или велики број посета)."
+
+#: src/app/main/ui/settings/password.cljs
+#, unused
+msgid "errors.password-invalid-confirmation"
+msgstr "Лозинка за потврду мора да се подудара"
+
+#: src/app/main/ui/settings/password.cljs
+#, unused
+msgid "errors.password-too-short"
+msgstr "Лозинка треба да има најмање 8 знакова"
+
+#: src/app/main/errors.cljs:130
+msgid "errors.paste-data-validation"
+msgstr "Неважећи подаци у међуспремнику"
+
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
+msgid "errors.profile-blocked"
+msgstr "Налог је блокиран"
+
+#: src/app/main/ui/auth/recovery_request.cljs:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
+msgid "errors.profile-is-muted"
+msgstr ""
+"Ваш профил има искључене поруке е-поште (извештаји о нежељеној пошти или "
+"велики број одбијања)."
+
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
+msgid "errors.registration-disabled"
+msgstr "Регистрација је тренутно онемогућена."
+
+#: src/app/main/errors.cljs:224
+msgid "errors.team-feature-mismatch"
+msgstr "Откривена је некомпатибилна функција \"%s\""
+
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
+msgid "errors.team-leave.insufficient-members"
+msgstr "Нема довољно чланова за напуштање тима, вероватно желите да га избришете."
+
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
+msgid "errors.team-leave.member-does-not-exists"
+msgstr "Члан којег покушавате да доделите не постоји."
+
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
+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:59
+msgid "errors.unexpected-token"
+msgstr "Непознати токен"
+
+#, unused
+msgid "errors.validation"
+msgstr "Грешка при валидацији"
+
+#: src/app/main/errors.cljs:241
+msgid "errors.version-not-supported"
+msgstr "Датотека има некомпатибилан број верзије"
+
+#: src/app/main/ui/dashboard/team.cljs:817
+msgid "errors.webhooks.connection"
+msgstr "Грешка у вези, URL није доступан"
+
+#: src/app/main/ui/dashboard/team.cljs:811
+msgid "errors.webhooks.invalid-uri"
+msgstr "URL не пролази валидацију."
+
+#: src/app/main/ui/dashboard/team.cljs:970
+msgid "errors.webhooks.last-delivery"
+msgstr "Последња испорука није успела."
+
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
+msgid "errors.webhooks.ssl-validation"
+msgstr "Грешка при SSL валидацији."
+
+#: src/app/main/ui/dashboard/team.cljs:815
+msgid "errors.webhooks.timeout"
+msgstr "Време је истекло"
+
+#: src/app/main/ui/dashboard/team.cljs:809
+msgid "errors.webhooks.unexpected"
+msgstr "Неочекивана грешка при валидацији"
+
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
+msgid "errors.webhooks.unexpected-status"
+msgstr "Неочекивани статус %s"
+
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
+msgid "errors.wrong-credentials"
+msgstr "Е-пошта или лозинка су нетачни."
+
+#: src/app/main/ui/settings/password.cljs
+#, unused
+msgid "errors.wrong-old-password"
+msgstr "Стара лозинка је нетачна"
+
+#: src/app/main/ui/settings/feedback.cljs:74
+msgid "feedback.description"
+msgstr "Опис"
+
+#: src/app/main/ui/settings/feedback.cljs:92
+msgid "feedback.discourse-go-to"
+msgstr "Иди на Penpot форум"
+
+#: src/app/main/ui/settings/feedback.cljs:86
+msgid "feedback.discourse-subtitle1"
+msgstr ""
+"Срећни смо што сте овде. Ако вам је потребна помоћ, претражите пре него што "
+"објавите."
+
+#: src/app/main/ui/settings/feedback.cljs:85
+msgid "feedback.discourse-title"
+msgstr "Penpot заједница"
+
+#: src/app/main/ui/settings/feedback.cljs:69
+msgid "feedback.subject"
+msgstr "Предмет"
+
+#: src/app/main/ui/settings/feedback.cljs:66
+msgid "feedback.subtitle"
+msgstr ""
+"Молимо опишите разлог ваше е-поште, наводећи да ли постоји проблем, идеја "
+"или сумња. Члан нашег тима ће одговорити у најкраћем могућем року."
+
+#: src/app/main/ui/settings/feedback.cljs:65
+msgid "feedback.title"
+msgstr "Е-пошта"
+
+#: src/app/main/ui/settings/feedback.cljs:102
+msgid "feedback.twitter-go-to"
+msgstr "Иди на X"
+
+#: src/app/main/ui/settings/feedback.cljs:96
+msgid "feedback.twitter-subtitle1"
+msgstr "Овде смо да помогнемо са вашим техничким питањима."
+
+#: src/app/main/ui/settings/feedback.cljs:95
+msgid "feedback.twitter-title"
+msgstr "X налог за подршку"
+
+#: src/app/main/ui/settings/password.cljs:29
+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.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.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:98
+msgid "inspect.attributes.typography.font-style"
+msgstr "Стил фонта"
+
+#: src/app/main/ui/viewer/inspect/attributes/text.cljs:116
+msgid "inspect.attributes.typography.font-weight"
+msgstr "Тежина фонта"
+
+#: src/app/main/ui/viewer/inspect/attributes/text.cljs:134
+msgid "inspect.attributes.typography.letter-spacing"
+msgstr "Размак између слова"
+
+#: 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: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/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:152
+msgid "inspect.empty.help"
+msgstr ""
+"Ако желите да сазнате више о прегледу дизајна, посетите Помоћни центар "
+"Penpot-а"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:155
+msgid "inspect.empty.more-info"
+msgstr "Више информација о прегледу"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
+msgid "inspect.empty.select"
+msgstr "Изаберите облик, таблу или групу да бисте прегледали њихова својства и код"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100
+msgid "inspect.tabs.code"
+msgstr "Код"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
+msgid "inspect.tabs.code.selected.circle"
+msgstr "Круг"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
+msgid "inspect.tabs.code.selected.component"
+msgstr "Компонента"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
+msgid "inspect.tabs.code.selected.curve"
+msgstr "Кривина"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
+msgid "inspect.tabs.code.selected.frame"
+msgstr "Табла"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
+msgid "inspect.tabs.code.selected.group"
+msgstr "Група"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
+msgid "inspect.tabs.code.selected.image"
+msgstr "Слика"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
+msgid "inspect.tabs.code.selected.mask"
+msgstr "Маска"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
+msgid "inspect.tabs.code.selected.multiple"
+msgstr "%s Изабрано"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
+msgid "inspect.tabs.code.selected.path"
+msgstr "Путања"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
+msgid "inspect.tabs.code.selected.rect"
+msgstr "Правоугаоник"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
+msgid "inspect.tabs.code.selected.svg-raw"
+msgstr "SVG"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
+msgid "inspect.tabs.code.selected.text"
+msgstr "Текст"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
+msgid "inspect.tabs.info"
+msgstr "Инфо"
+
+#: src/app/main/ui/workspace/main_menu.cljs:158
+msgid "label.shortcuts"
+msgstr "Пречице"
+
+#: src/app/main/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
+msgid "labels.accept"
+msgstr "Прихвати"
+
+#: src/app/main/ui/settings/sidebar.cljs:100
+msgid "labels.access-tokens"
+msgstr "Токени за приступ"
+
+#: src/app/main/ui/dashboard/team.cljs:989
+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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
+msgid "labels.admin"
+msgstr "Админ"
+
+#: src/app/main/ui/onboarding/questions.cljs:169
+msgid "labels.adobe-xd"
+msgstr "Adobe XD"
+
+#: src/app/main/ui/workspace/comments.cljs
+#, unused
+msgid "labels.all"
+msgstr "Све"
+
+#: src/app/main/ui/auth/register.cljs:287
+msgid "labels.and"
+msgstr "и"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:162
+msgid "labels.back"
+msgstr "Назад"
+
+#: src/app/main/ui/static.cljs:282
+msgid "labels.bad-gateway.desc-message"
+msgstr ""
+"Изгледа да морате да сачекате неколико тренутака и покушате поново; "
+"изводимо мање одржавање наших сервера."
+
+#: src/app/main/ui/static.cljs:281
+msgid "labels.bad-gateway.main-message"
+msgstr "Лош Gateway"
+
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
+msgid "labels.cancel"
+msgstr "Откажите"
+
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
+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:91
+msgid "labels.confirm-password"
+msgstr "Потврди лозинку"
+
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
+msgid "labels.continue-with-penpot"
+msgstr "Можете наставити са Penpot налогом"
+
+#: src/app/main/ui/dashboard/team.cljs:662
+msgid "labels.copy-invitation-link"
+msgstr "Копирај везу"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209
+msgid "labels.delete"
+msgstr "Избришите"
+
+#: src/app/main/ui/comments.cljs:356
+msgid "labels.delete-comment"
+msgstr "Избришите коментар"
+
+#: src/app/main/ui/comments.cljs:353
+msgid "labels.delete-comment-thread"
+msgstr "Избришите дискусију"
+
+#: src/app/main/ui/dashboard/team.cljs:668
+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/onboarding/questions.cljs:246
+msgid "labels.developer"
+msgstr "Развој"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+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
+msgid "labels.drafts"
+msgstr "Нацрти"
+
+#: src/app/main/ui/comments.cljs:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
+msgid "labels.editor"
+msgstr "Уредник"
+
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Догађај"
+
+#: src/app/main/ui/dashboard/team.cljs:681
+msgid "labels.expired-invitation"
+msgstr "Истекло"
+
+#: src/app/main/ui/export.cljs:174
+msgid "labels.export"
+msgstr "Извези"
+
+#: src/app/main/ui/settings/feedback.cljs:48
+msgid "labels.feedback-disabled"
+msgstr "Повратне информације су онемогућене"
+
+#: src/app/main/ui/settings/feedback.cljs:39
+msgid "labels.feedback-sent"
+msgstr "Повратне информације су послате"
+
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Извршни директор или оснивач"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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/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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
+msgid "labels.go-back"
+msgstr "Иди назад"
+
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+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/team.cljs:990
+msgid "labels.inactive"
+msgstr "Неактиван"
+
+#: src/app/main/ui/dashboard/fonts.cljs:410
+msgid "labels.installed-fonts"
+msgstr "Инсталирани фонтови"
+
+#: src/app/main/ui/static.cljs:367
+msgid "labels.internal-error.desc-message"
+msgstr ""
+"Десило се нешто лоше. Покушајте поново са операцијом и ако се проблем "
+"настави, контактирајте подршку."
+
+#: src/app/main/ui/static.cljs:366
+msgid "labels.internal-error.main-message"
+msgstr "Унутрашња гершка"
+
+#: src/app/main/ui/onboarding/questions.cljs:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
+msgid "labels.invitations"
+msgstr "Позивнице"
+
+#: src/app/main/ui/settings/options.cljs:48
+msgid "labels.language"
+msgstr "Језик"
+
+#: 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:209
+msgid "labels.log-or-sign"
+msgstr "Пријава или регистрација"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:1040
+msgid "labels.logout"
+msgstr "Одјава"
+
+#: src/app/main/ui/onboarding/questions.cljs:249
+msgid "labels.marketing"
+msgstr "Маркетинг"
+
+#: src/app/main/ui/dashboard/team.cljs:487
+msgid "labels.member"
+msgstr "Члан"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:92, src/app/main/ui/dashboard/team.cljs:100
+msgid "labels.members"
+msgstr "Чланови"
+
+#: src/app/main/ui/settings/password.cljs:84
+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
+msgid "labels.no-comments-available"
+msgstr "Све сте прегледали! Нова обавештења о коментарима ће се појавити овде."
+
+#: src/app/main/ui/dashboard/team.cljs:714
+msgid "labels.no-invitations"
+msgstr "Нема позивница на чекању."
+
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
+msgid "labels.no-invitations-hint"
+msgstr "Кликните на дугме **Позови људе** да бисте позвали људе у овај тим."
+
+#: src/app/main/ui/static.cljs
+#, unused
+msgid "labels.not-found.desc-message"
+msgstr "Ова страница можда не постоји или немате дозволе да јој приступите."
+
+#: src/app/main/ui/static.cljs:269
+msgid "labels.not-found.main-message"
+msgstr "Упс!"
+
+#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1116
+msgid "labels.num-of-files"
+msgid_plural "labels.num-of-files"
+msgstr[0] "датотека"
+msgstr[1] "%s датотеке"
+msgstr[2] "%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 табле"
+msgstr[2] "%s табли"
+
+#: src/app/main/ui/dashboard/team.cljs:1111
+msgid "labels.num-of-projects"
+msgid_plural "labels.num-of-projects"
+msgstr[0] "пројекат"
+msgstr[1] "%s пројеката"
+msgstr[2] "%s пројеката"
+
+#: src/app/main/ui/settings/password.cljs:77
+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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Друго (навести)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Друго"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
+msgid "labels.owner"
+msgstr "Власник"
+
+#: src/app/main/ui/settings/sidebar.cljs:87
+msgid "labels.password"
+msgstr "Лозинка"
+
+#: src/app/main/ui/dashboard/team.cljs:682
+msgid "labels.pending-invitation"
+msgstr "На чекању"
+
+#: src/app/main/ui/onboarding/questions.cljs:51
+msgid "labels.previous"
+msgstr "Предходно"
+
+#: src/app/main/ui/onboarding/questions.cljs:245
+msgid "labels.product-design"
+msgstr "Дизајн производа или дизајн корисничког искуства"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Управљање производима"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
+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:153
+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:665
+msgid "labels.resend-invitation"
+msgstr "Поново пошаљите позивницу"
+
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
+msgid "labels.retry"
+msgstr "Покушај поново"
+
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
+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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Изаберите опцију"
+
+#: src/app/main/ui/settings/feedback.cljs:79
+msgid "labels.send"
+msgstr "Пошаљи"
+
+#: src/app/main/ui/settings/feedback.cljs:79
+msgid "labels.sending"
+msgstr "Шаље се…"
+
+#: src/app/main/ui/static.cljs:291
+msgid "labels.service-unavailable.desc-message"
+msgstr "Тренутно вршимо програмско одржавање наших система."
+
+#: src/app/main/ui/static.cljs:290
+msgid "labels.service-unavailable.main-message"
+msgstr "Услуга недоступна"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
+msgid "labels.settings"
+msgstr "Подешавања"
+
+#: src/app/main/ui/viewer/header.cljs:205
+msgid "labels.share"
+msgstr "Дели"
+
+#, unused
+msgid "labels.share-prototype"
+msgstr "Дели прототип"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:800
+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
+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
+msgid "labels.show-your-comments"
+msgstr "Покажите само своје коментаре"
+
+#: src/app/main/ui/onboarding/questions.cljs:167
+msgid "labels.sketch"
+msgstr "Sketch"
+
+#: src/app/main/ui/onboarding/questions.cljs:56
+msgid "labels.start"
+msgstr "Почните"
+
+#: src/app/main/ui/dashboard/team.cljs:730
+msgid "labels.status"
+msgstr "Стање"
+
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Ученик или наставник"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Вођа тима"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+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:256
+msgid "labels.unpublish-multi-files"
+msgstr "Опозови објављивање %s датотека"
+
+#: src/app/main/ui/settings/profile.cljs:108
+msgid "labels.update"
+msgstr "Ажурирајте"
+
+#: 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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
+msgid "labels.viewer"
+msgstr "Прегледник"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
+msgid "labels.webhooks"
+msgstr "Веб-куке"
+
+#: src/app/main/ui/comments.cljs:193
+msgid "labels.write-new-comment"
+msgstr "Напиши нови коментар"
+
+#: src/app/main/ui/dashboard/team.cljs:256
+msgid "labels.you"
+msgstr "(ти)"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:968
+msgid "labels.your-account"
+msgstr "Ваш налог"
+
+#: src/app/main/ui/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
+msgid "media.choose-image"
+msgstr "Изаберите слику"
+
+#, unused
+msgid "media.gradient"
+msgstr "Градијент"
+
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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 "img"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:334
+msgid "media.keep-aspect-ratio"
+msgstr "Задржите однос ширине и висине"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
+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:451
+msgid "media.loading"
+msgstr "Учитавање слике…"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:210
+msgid "media.radial"
+msgstr "Радијалан"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:207
+msgid "media.solid"
+msgstr "Чврст"
+
+#: src/app/main/data/common.cljs:125
+msgid "modals.add-shared-confirm-empty.hint"
+msgstr ""
+"Ваша библиотека је празна. Када се додају као дељена библиотека, средства "
+"која креирате биће доступна за коришћење међу осталим вашим датотекама. Да "
+"ли сте сигурни да желите да га објавите?"
+
+#: src/app/main/data/common.cljs:127
+msgid "modals.add-shared-confirm.accept"
+msgstr "Додај као дељену библиотеку"
+
+#: src/app/main/data/common.cljs:125
+msgid "modals.add-shared-confirm.hint"
+msgstr ""
+"Када се дода као дељена библиотека, средства ове библиотеке датотека биће "
+"доступна за коришћење међу осталим вашим датотекама."
+
+#: src/app/main/data/common.cljs:124
+msgid "modals.add-shared-confirm.message"
+msgstr "Додај \"%s\" као дељену библиотеку"
+
+#: src/app/main/ui/workspace/nudge.cljs:60
+msgid "modals.big-nudge"
+msgstr "Велики помак"
+
+#: src/app/main/ui/settings/change_email.cljs:111
+msgid "modals.change-email.confirm-email"
+msgstr "Верификујте нову е-пошту"
+
+#: src/app/main/ui/settings/change_email.cljs:99
+msgid "modals.change-email.info"
+msgstr ""
+"Послаћемо вам е-пошту на вашу тренутну е-пошту \"%s\" да потврдимо ваш "
+"идентитет."
+
+#: src/app/main/ui/settings/change_email.cljs:104
+msgid "modals.change-email.new-email"
+msgstr "Нова е-пошта"
+
+#: src/app/main/ui/settings/change_email.cljs:119
+msgid "modals.change-email.submit"
+msgstr "Промените е-пошту"
+
+#: src/app/main/ui/settings/change_email.cljs:92
+msgid "modals.change-email.title"
+msgstr "Промените своју е-пошту"
+
+#: src/app/main/ui/settings/access_tokens.cljs:154, src/app/main/ui/settings/access_tokens.cljs:160
+msgid "modals.create-access-token.copy-token"
+msgstr "Копирај токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:131
+msgid "modals.create-access-token.expiration-date.label"
+msgstr "Датум истека"
+
+#: src/app/main/ui/settings/access_tokens.cljs:125
+msgid "modals.create-access-token.name.label"
+msgstr "Назив"
+
+#: src/app/main/ui/settings/access_tokens.cljs:127
+msgid "modals.create-access-token.name.placeholder"
+msgstr "Назив може помоћи да сазнате чему служи токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:180
+msgid "modals.create-access-token.submit-label"
+msgstr "Направи токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:112
+msgid "modals.create-access-token.title"
+msgstr "Генериши нови токен за приступ"
+
+#: src/app/main/ui/dashboard/team.cljs:894
+msgid "modals.create-webhook.submit-label"
+msgstr "Направи веб-куку"
+
+#: src/app/main/ui/dashboard/team.cljs:859
+msgid "modals.create-webhook.title"
+msgstr "Направи веб-куку"
+
+#: src/app/main/ui/dashboard/team.cljs:870
+msgid "modals.create-webhook.url.label"
+msgstr "URL оптерећења"
+
+#: src/app/main/ui/dashboard/team.cljs:871
+msgid "modals.create-webhook.url.placeholder"
+msgstr "https://example.com/postreceive"
+
+#: src/app/main/ui/settings/access_tokens.cljs:260
+msgid "modals.delete-acces-token.accept"
+msgstr "Избришите токен"
+
+#: src/app/main/ui/settings/access_tokens.cljs:259
+msgid "modals.delete-acces-token.message"
+msgstr "Да ли сте сигурни да желите да избришете овај токен?"
+
+#: src/app/main/ui/settings/access_tokens.cljs:258
+msgid "modals.delete-acces-token.title"
+msgstr "Избришите токен"
+
+#: src/app/main/ui/settings/delete_account.cljs:59
+msgid "modals.delete-account.cancel"
+msgstr "Откажи и задржи мој налог"
+
+#: 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/comments.cljs:297
+msgid "modals.delete-comment-thread.accept"
+msgstr "Избришите разговор"
+
+#: src/app/main/ui/comments.cljs:296
+msgid "modals.delete-comment-thread.message"
+msgstr ""
+"Да ли сте сигурни да желите да обришете овај разговор? Сви коментари у овој "
+"нити биће обрисани."
+
+#: src/app/main/ui/comments.cljs:295
+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
+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: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
+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/delete_shared.cljs:51
+msgid "modals.delete-shared-confirm.accept"
+msgid_plural "modals.delete-shared-confirm.accept"
+msgstr[0] "Избришите датотеку"
+msgstr[1] "Избришите датотеке"
+msgstr[2] "Избришите датотеке"
+
+#: 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] "Нису активиране ни у једној датотеци."
+msgstr[2] "Нису активиране ни у једној датотеци."
+
+#: 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] "Ове датотеке су активиране овде: "
+msgstr[2] "Ове библиотеке су активиране овде: "
+
+#: 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] "Да ли сте сигурни да жели да бришете ове документе?"
+msgstr[2] "Да ли сте сигурни да жели да бришете ове документе?"
+
+#: 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] "Брисање датотека"
+msgstr[2] "Брисање датотека"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:435
+msgid "modals.delete-team-confirm.accept"
+msgstr "Избришите тим"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:434
+msgid "modals.delete-team-confirm.message"
+msgstr ""
+"Да ли сте сигурни да желите да обришете овај тим? Сви пројекти и датотеке "
+"повезани са тимом биће трајно обрисани."
+
+#: src/app/main/ui/dashboard/sidebar.cljs:433
+msgid "modals.delete-team-confirm.title"
+msgstr "Брисање тима"
+
+#: src/app/main/ui/dashboard/team.cljs:446
+msgid "modals.delete-team-member-confirm.accept"
+msgstr "Избришите члана"
+
+#: src/app/main/ui/dashboard/team.cljs:445
+msgid "modals.delete-team-member-confirm.message"
+msgstr "Да ли сте сигурни да желите да избришете овог члана из тима?"
+
+#: src/app/main/ui/dashboard/team.cljs:444
+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] ""
+"Средства која су већ коришћена у овој датотеци ће остати тамо (ниједан "
+"дизајн неће бити покварен)."
+msgstr[2] ""
+"Средства која су већ коришћена у овој датотеци ће остати тамо (ниједан "
+"дизајн неће бити покварен)."
+
+#: src/app/main/ui/dashboard/team.cljs:963
+msgid "modals.delete-webhook.accept"
+msgstr "Избришите веб-куку"
+
+#: src/app/main/ui/dashboard/team.cljs:962
+msgid "modals.delete-webhook.message"
+msgstr "Да ли сте сигурни да желите да избришете ову веб-куку?"
+
+#: src/app/main/ui/dashboard/team.cljs:961
+msgid "modals.delete-webhook.title"
+msgstr "Брисање веб-куке"
+
+#: src/app/main/ui/dashboard/team.cljs:893
+msgid "modals.edit-webhook.submit-label"
+msgstr "Уреди веб-куку"
+
+#: src/app/main/ui/dashboard/team.cljs:858
+msgid "modals.edit-webhook.title"
+msgstr "Уреди веб-куку"
+
+#: src/app/main/ui/dashboard/team.cljs:237
+msgid "modals.invite-member-confirm.accept"
+msgstr "Пошаљи позивницу"
+
+#: src/app/main/ui/dashboard/team.cljs:231, src/app/main/ui/onboarding/team_choice.cljs:156
+msgid "modals.invite-member.emails"
+msgstr "Е-поште, раздвојене зарезима"
+
+#: src/app/main/ui/dashboard/team.cljs:215
+msgid "modals.invite-member.repeated-invitation"
+msgstr ""
+"Неки е-поште су од тренутних чланова тима. Њихове позивнице неће бити "
+"послате."
+
+#: src/app/main/ui/dashboard/team.cljs:208
+msgid "modals.invite-team-member.title"
+msgstr "Позовите чланове у тим"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:423, src/app/main/ui/dashboard/team.cljs:412
+msgid "modals.leave-and-close-confirm.hint"
+msgstr ""
+"Пошто сте једини члан овог тима, тим ће бити избрисан заједно са пројектима "
+"и датотекама."
+
+#: src/app/main/ui/dashboard/sidebar.cljs:422, src/app/main/ui/dashboard/team.cljs:411
+msgid "modals.leave-and-close-confirm.message"
+msgstr "Да ли сте сигурни да желите да напустите тим %s?"
+
+#: src/app/main/ui/dashboard/change_owner.cljs:58
+msgid "modals.leave-and-reassign.forbidden"
+msgstr ""
+"Не можете напустити тим ако нема другог члана за унапређење у власника. "
+"Можда бисте желели да избришете тим."
+
+#: src/app/main/ui/dashboard/change_owner.cljs:54
+msgid "modals.leave-and-reassign.hint1"
+msgstr ""
+"Ви сте власник овог тима. Изаберите другог члана за унапређење у власника "
+"пре него што напустите тим."
+
+#: src/app/main/ui/dashboard/change_owner.cljs:77
+msgid "modals.leave-and-reassign.promote-and-leave"
+msgstr "Унапреди и напусти"
+
+#: src/app/main/ui/dashboard/change_owner.cljs:33
+msgid "modals.leave-and-reassign.select-member-to-promote"
+msgstr "Изаберите члана за унапређње"
+
+#: src/app/main/ui/dashboard/change_owner.cljs:48
+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:413, src/app/main/ui/dashboard/team.cljs:435
+msgid "modals.leave-confirm.accept"
+msgstr "Напустите тим"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:434
+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:410, src/app/main/ui/dashboard/team.cljs:433
+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] "Преместите"
+
+#: 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] "Да ли сте сигурни да желите да преместите ове библиотеке?"
+msgstr[2] "Да ли сте сигурни да желите да преместите ове библиотеке?"
+
+#: 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] "Преместите библиотеке"
+msgstr[2] "Преместите библиотеке"
+
+#: 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:359
+msgid "modals.promote-owner-confirm.accept"
+msgstr "Пренесите власништво"
+
+#: src/app/main/ui/dashboard/team.cljs:358
+msgid "modals.promote-owner-confirm.hint"
+msgstr ""
+"Ако пренесете власништво, променићете своју улогу у администратора, чиме "
+"ћете изгубити неке дозволе над овим тимом. "
+
+#: src/app/main/ui/dashboard/team.cljs:357
+msgid "modals.promote-owner-confirm.message"
+msgstr ""
+"Ви сте тренутни власник овог тима. Да ли сте сигурни да желите да %s буде "
+"нови власник тима?"
+
+#: src/app/main/ui/dashboard/team.cljs:356
+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
+msgid "modals.remove-shared-confirm.accept"
+msgstr "Уклони као дељену библиотеку"
+
+#: 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
+#, unused
+msgid "modals.remove-shared-confirm.message"
+msgstr "Уклоните \"%s\" као дељену библиотеку"
+
+#: src/app/main/ui/workspace/nudge.cljs:53
+msgid "modals.small-nudge"
+msgstr "Мало гуркање"
+
+#: 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] "Опозови објављивање"
+msgstr[2] "Опозови објављивање"
+
+#: 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] "Да ли сте сигурни да желите да опозовете објављивање ових библиотека?"
+msgstr[2] "Да ли сте сигурни да желите да опозовете објављивање ових библиотека?"
+
+#: 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] "Опозови објављивање библиотека"
+msgstr[2] "Опозови објављивање библиотека"
+
+#: 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
+#, unused
+msgid "modals.update-remote-component-in-bulk.message"
+msgstr "Ажурирајте компоненте у дељеној библиотеци"
+
+#: 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/workspace/sidebar/assets/common.cljs:378
+msgid "modals.update-remote-component.hint"
+msgstr ""
+"Управо ћете ажурирати компоненту у дељеној библиотеци. Ово може утицати на "
+"друге датотеке које га користе."
+
+#: src/app/main/ui/workspace/sidebar/assets/common.cljs:377
+msgid "modals.update-remote-component.message"
+msgstr "Ажурирајте компоненту у дељеној библиотеци"
+
+#: src/app/main/data/common.cljs:76
+msgid "notifications.by-code.upgrade-version"
+msgstr "Доступна је нова верзија, молимо Вас да освежите страницу"
+
+#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:615
+msgid "notifications.invitation-email-sent"
+msgstr "Позивница је успешно послата"
+
+#: src/app/main/ui/dashboard/team.cljs:636
+msgid "notifications.invitation-link-copied"
+msgstr "Веза за позивницу је копирана"
+
+#: src/app/main/ui/settings/delete_account.cljs:24
+msgid "notifications.profile-deletion-not-allowed"
+msgstr ""
+"Не можете избрисати свој профил. Поново доделитте улоге својих тимова пре "
+"него што наставите."
+
+#: src/app/main/ui/settings/options.cljs:26, src/app/main/ui/settings/profile.cljs:33
+msgid "notifications.profile-saved"
+msgstr "Налог је успешно сачуван!"
+
+#: src/app/main/ui/settings/change_email.cljs:46
+msgid "notifications.validation-email-sent"
+msgstr "Е-пошта за верификацију је послата на %с. Проверите своју е-пошту!"
+
+#, 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 ""
+"Ми ћемо вам слати само релевантне е-поруке. Можете се одјавити у било ком "
+"тренутку путем везе за одјаву у било ком од наших билтена."
+
+#: 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:30
+msgid "onboarding-v2.welcome.title"
+msgstr "Добродoшли у Penpot!"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:227
+msgid "onboarding.choice.team-up.continue-creating-team"
+msgstr "Наставите са стварањем тима"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:237
+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:213
+msgid "onboarding.choice.team-up.create-team-desc"
+msgstr "Након што дате име свом тиму, моћи ћете да позовете људе да се придруже."
+
+#: src/app/main/ui/onboarding/team_choice.cljs:222
+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:220, src/app/main/ui/onboarding/team_choice.cljs:146
+msgid "onboarding.choice.team-up.roles"
+msgstr "Позовите са улогом:"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:230
+msgid "onboarding.choice.team-up.start-without-a-team"
+msgstr "Почните без тима"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:232
+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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Хајде да почнемо!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Тражим алтернативу за Figmа-у, XD, итд"
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Само истражујем"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Разматрам да ли је Penpot добар избор за мој тим"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Тестирам пре самосталног хостовања"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Генерисање правог дизајна кода"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Креирање система дизајна"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Израда прототипа"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Дизајнирање интерфејса корисника и корисничког искуства апликације"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Вајрфрејминг"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "За шта ћете користити Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "Шта вас данас доводи у Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Реците нам нешто о вама како бисте нам помогли да Penpot ради за вас. Ваши "
+"одговори ће нам помоћи да дамо приоритет новим функцијама и упутити вас у "
+"правом смеру да почнете."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Помозите нам да вас упознамо"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Који од ових алата највише користите?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Којим послом се бавите?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Која је твоја улога?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Која је величина ваше компаније?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Реци нам нешто о свом послу"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Где бисте желели да почнете?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Како сте чули за Penpot?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Ја сам фриленсер"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Више од 50"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Радим на личном пројекту"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Образовање"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Лично"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "Посао"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
+msgid "onboarding.team-modal.create-team"
+msgstr "Направите тим"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:34
+msgid "onboarding.team-modal.create-team-desc"
+msgstr ""
+"Тим вам омогућава да сарађујете са другим Penpot корисницима који раде на "
+"истим датотекама и пројектима."
+
+#: src/app/main/ui/onboarding/team_choice.cljs:39
+msgid "onboarding.team-modal.create-team-feature-1"
+msgstr "Неограничени број датотека и пројеката"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:43
+msgid "onboarding.team-modal.create-team-feature-2"
+msgstr "Верзија за више корисника"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:47
+msgid "onboarding.team-modal.create-team-feature-3"
+msgstr "Управљање улогама"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:51
+msgid "onboarding.team-modal.create-team-feature-4"
+msgstr "Неограничено чланова"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:55
+msgid "onboarding.team-modal.create-team-feature-5"
+msgstr "100% бесплатно!"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
+msgid "profile.recovery.go-to-login"
+msgstr "Идите на пријаву"
+
+#: src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:221
+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:180, 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 "Boolean разлика"
+
+#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:85
+msgid "shortcuts.bool-exclude"
+msgstr "Boolean изузми"
+
+#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:86
+msgid "shortcuts.bool-intersection"
+msgstr "Boolean пресек"
+
+#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:87
+msgid "shortcuts.bool-union"
+msgstr "Boolean унија"
+
+#: 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
+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/files.cljs:158
+msgid "title.dashboard.files"
+msgstr "%s - Penpot"
+
+#: src/app/main/ui/dashboard/fonts.cljs:37
+msgid "title.dashboard.font-providers"
+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/dashboard/libraries.cljs:44
+msgid "title.dashboard.shared-libraries"
+msgstr "Дељене библиотеке - %s - Penpot"
+
+#: src/app/main/ui/auth/verify_token.cljs:67, src/app/main/ui/auth.cljs:36
+msgid "title.default"
+msgstr "Penpot - Слобода дизајнирања за тимове"
+
+#: src/app/main/ui/settings/access_tokens.cljs:281
+msgid "title.settings.access-tokens"
+msgstr "Налог - Токени за приступ"
+
+#: src/app/main/ui/settings/feedback.cljs:107
+msgid "title.settings.feedback"
+msgstr "Оставите повратне информације - Penpot"
+
+#: src/app/main/ui/settings/options.cljs:77
+msgid "title.settings.options"
+msgstr "Подешавања - Penpot"
+
+#: src/app/main/ui/settings/password.cljs:103
+msgid "title.settings.password"
+msgstr "Лозинка - Penpot"
+
+#: src/app/main/ui/settings/profile.cljs:121
+msgid "title.settings.profile"
+msgstr "Налог - Penpot"
+
+#: src/app/main/ui/dashboard/team.cljs:747
+msgid "title.team-invitations"
+msgstr "Позивнице - %s - Penpot"
+
+#: src/app/main/ui/dashboard/team.cljs:512
+msgid "title.team-members"
+msgstr "Чланови - %s - Penpot"
+
+#: src/app/main/ui/dashboard/team.cljs:1057
+msgid "title.team-settings"
+msgstr "Подешавања - %s - Penpot"
+
+#: src/app/main/ui/dashboard/team.cljs:1010
+msgid "title.team-webhooks"
+msgstr "Веб-куке - %s - Penpot"
+
+#: src/app/main/ui/viewer.cljs:420
+msgid "title.viewer"
+msgstr "%s - Режим прегледа - Penpot"
+
+#: src/app/main/ui/workspace.cljs:190
+msgid "title.workspace"
+msgstr "%s - Penpot"
+
+#: src/app/main/ui.cljs:143
+msgid "viewer.breaking-change.description"
+msgstr ""
+"Ова веза за дељење више није важећа. Направите нову или од власника "
+"затражите нову."
+
+#: src/app/main/ui.cljs:142
+msgid "viewer.breaking-change.message"
+msgstr "Извините!"
+
+#: src/app/main/ui/viewer.cljs:570
+msgid "viewer.empty-state"
+msgstr "Ниједна табла није пронађена на овој страници."
+
+#: src/app/main/ui/viewer.cljs:575
+msgid "viewer.frame-not-found"
+msgstr "Табла није пронађена."
+
+#: src/app/main/ui/viewer/header.cljs:342
+msgid "viewer.header.comments-section"
+msgstr "Коментари (%s)"
+
+#: src/app/main/ui/viewer/interactions.cljs:292
+msgid "viewer.header.dont-show-interactions"
+msgstr "Не приказуј интеракције"
+
+#: src/app/main/ui/viewer/header.cljs:194
+msgid "viewer.header.fullscreen"
+msgstr "Цели екран"
+
+#: src/app/main/ui/viewer/header.cljs:351
+msgid "viewer.header.inspect-section"
+msgstr "Преглед (%s)"
+
+#: src/app/main/ui/viewer/interactions.cljs:282
+msgid "viewer.header.interactions"
+msgstr "Интеракције"
+
+#: src/app/main/ui/viewer/header.cljs:333
+msgid "viewer.header.interactions-section"
+msgstr "Интеракције (%s)"
+
+#: src/app/main/ui/viewer/share_link.cljs:187
+msgid "viewer.header.share.copy-link"
+msgstr "Копирај везу"
+
+#: src/app/main/ui/viewer/interactions.cljs:300
+msgid "viewer.header.show-interactions"
+msgstr "Прикажи интеракције"
+
+#: src/app/main/ui/viewer/interactions.cljs:311
+msgid "viewer.header.show-interactions-on-click"
+msgstr "Прикажи интеракције на клик"
+
+#: src/app/main/ui/viewer/header.cljs:237
+msgid "viewer.header.sitemap"
+msgstr "Мапа сајта"
+
+#: src/app/main/ui/dashboard/team.cljs:969
+msgid "webhooks.last-delivery.success"
+msgstr "Последња испорука је била успешна."
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:58
+msgid "workspace.align.hcenter"
+msgstr "Поравнај на водоравну средину (%s)"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:74
+msgid "workspace.align.hdistribute"
+msgstr "Распореди водоравни размак (%с)"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:50
+msgid "workspace.align.hleft"
+msgstr "Поравнај на лево (%s)"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:66
+msgid "workspace.align.hright"
+msgstr "Поравнај на десно (%s)"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:99
+msgid "workspace.align.vbottom"
+msgstr "Поравнај по дну (%s)"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:91
+msgid "workspace.align.vcenter"
+msgstr "Поравнај на усправну средину (%s)"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/align.cljs:104
+msgid "workspace.align.vdistribute"
+msgstr "Распореди усправни размак (%s)"
+
+#: 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:134
+msgid "workspace.assets.box-filter-all"
+msgstr "Сва средства"
+
+#: src/app/main/ui/dashboard/grid.cljs:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, src/app/main/ui/workspace/sidebar/assets.cljs:150
+msgid "workspace.assets.colors"
+msgstr "Боје"
+
+#: src/app/main/ui/dashboard/grid.cljs:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, src/app/main/ui/workspace/sidebar/assets.cljs:139
+msgid "workspace.assets.components"
+msgstr "Компоненте"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:127
+msgid "workspace.assets.create-group"
+msgstr "Направите групу"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:138
+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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
+msgid "workspace.assets.delete"
+msgstr "Избирши"
+
+#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:568
+msgid "workspace.assets.duplicate"
+msgstr "Дуплирај"
+
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
+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:441
+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
+msgid "workspace.assets.graphics"
+msgstr "Графика"
+
+#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:255, src/app/main/ui/workspace/sidebar/assets/components.cljs:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
+msgid "workspace.assets.group"
+msgstr "Група"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
+msgid "workspace.assets.group-name"
+msgstr "Име групе"
+
+#: 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/file_library.cljs:295
+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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
+msgid "workspace.assets.rename"
+msgstr "Преименуј"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
+msgid "workspace.assets.rename-group"
+msgstr "Преименуј гурпу"
+
+#: 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 изабраних ставки"
+msgstr[2] "%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] "%s компоненте"
+msgstr[2] "%s компоненти"
+
+#: src/app/main/ui/workspace/sidebar/assets.cljs:193
+msgid "workspace.assets.sort"
+msgstr "Сортирај"
+
+#: src/app/main/ui/dashboard/grid.cljs:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+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 "Додај 1 колону десно"
+
+#: src/app/main/ui/workspace/context_menu.cljs:593
+msgid "workspace.context-menu.grid-track.column.add-before"
+msgstr "Додај 1 колону лево"
+
+#: 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 "Додај 1 ред испод"
+
+#: src/app/main/ui/workspace/context_menu.cljs:600
+msgid "workspace.context-menu.grid-track.row.add-before"
+msgstr "Додај 1 ред изнад"
+
+#: 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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "Уреди"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "Датотека"
+
+#: src/app/main/ui/workspace/main_menu.cljs:789
+msgid "workspace.header.menu.option.help-info"
+msgstr "Помоћ и информације"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "Поставке"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "Уреди мрежу"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+msgid "workspace.layout_grid.editor.options.exit"
+msgstr "Изађи"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
+msgid "workspace.layout_grid.editor.padding.expand"
+msgstr "Прикажи опције за 4-страни padding"
+
+#: 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:1300
+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 "Додатна РГБ боја"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RGBA"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:379
+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:509, src/app/main/ui/workspace/libraries.cljs:534
+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/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:516
+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:169
+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 елемента"
+msgstr[2] "Извоз %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:241
+msgid "workspace.options.exporting-complete"
+msgstr "Извоз је завршен"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "Извоз није успео"
+
+#: src/app/main/ui/export.cljs:243
+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 "Гутер (Gutter)"
+
+#: 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:177
+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 "Отори URL"
+
+#: 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 "Padding"
+
+#: 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 "Једноставни padding"
+
+#: 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:173
+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:285
+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 "Троугласта стрелицa"
+
+#: 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:189
+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 "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 "Ауто висина"
+
+#: 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/plugins.cljs:58
+msgid "workspace.plugins.button-open"
+msgstr "Отвори"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Још увек нема инсталираних додатака"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "Додатак не постоји или URL није исправан."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Инсталирај"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+msgid "workspace.plugins.installed-plugins"
+msgstr "Инсталирани додаци"
+
+#: src/app/main/ui/workspace/main_menu.cljs:624
+msgid "workspace.plugins.menu.plugins-manager"
+msgstr "Управљач додатака"
+
+#: src/app/main/ui/workspace/main_menu.cljs:777
+msgid "workspace.plugins.menu.title"
+msgstr "Додаци"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Листа додатака"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+msgid "workspace.plugins.search-placeholder"
+msgstr "Напишите URL додатка"
+
+#, unused
+msgid "workspace.plugins.success"
+msgstr "Додатак је исправно учитан."
+
+#: src/app/main/ui/workspace/plugins.cljs:160
+msgid "workspace.plugins.title"
+msgstr "Додаци"
+
+#: 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:582
+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 "Претвори у путanju"
+
+#: 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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "Скупи бочну траку"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "Контура (%s0"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "Елипса (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "Табла (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "Слика (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "Премести (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "Путања (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Укључите траку са алаткама"
+
+#: 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:1097
+msgid "workspace.updates.dismiss"
+msgstr "Одбаци"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "Више информација"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "Постоје ажурирања у дељеним библиотекама"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+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 b340c7d5d8..853fddb98a 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "ஏற்கனவே ஒரு கணக்கு உள்ளதா?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr ""
"உங்கள் மின்னஞ்சலைச் சரிபார்த்து, இணைப்பைக் கிளிக் செய்து சரிபார்த்து, "
"Penpot ஐப் பயன்படுத்தத் தொடங்குங்கள்."
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr ""
"இது ஒரு டெமோ சேவை, உண்மையான வேலைக்கு பயன்படுத்த வேண்டாம், திட்டங்கள் "
"அவ்வப்போது அழிக்கப்படும்."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "முழு பெயர்"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "இங்கே உள்நுழைக"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "உள்நுழை"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "கிட்லேப்"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "கூகுள்"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "ஓப்பன் ஐடி"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "புதிய கடவுச்சொல்லை உள்ளிடவும்"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "மீட்பு டோக்கன் செல்லுபடியாகாது."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "கடவுச்சொல் வெற்றிகரமாக மாற்றப்பட்டது"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr ""
"சுயவிவரம் சரிபார்க்கப்படவில்லை, தொடர்வதற்கு முன் சுயவிவரத்தைச் "
"சரிபார்க்கவும்."
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "கடவுச்சொல் மீட்பு இணைப்பு உங்கள் இன்பாக்ஸிற்கு அனுப்பப்பட்டது."
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "கடவுச்சொல்"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "குறைந்தது 8 எழுத்துகள்"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "தனியுரிமைக் கொள்கை"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "கடவுச்சொல்லை மீட்டெடுக்கவும்"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "வழிமுறைகளுடன் கூடிய மின்னஞ்சலை உங்களுக்கு அனுப்புவோம்"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "கடவுச்சொல்லை மறந்துவிட்டீர்களா?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "உங்கள் கடவுச்சொல்லை மாற்றுக"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "ஒரு கணக்கை உருவாக்கவும்"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "ஒரு கணக்கை உருவாக்கவும்"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "வடிவமைப்பு மற்றும் முன்மாதிரிக்கான திறந்த மூல தீர்வு."
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "மீட்பு டோக்கன் செல்லுபடியாகாது."
diff --git a/frontend/translations/tr.po b/frontend/translations/tr.po
index 947bec4e6e..080f12d0ff 100644
--- a/frontend/translations/tr.po
+++ b/frontend/translations/tr.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-06-17 08:07+0000\n"
+"PO-Revision-Date: 2024-08-23 09:16+0000\n"
"Last-Translator: Anonymous \n"
"Language-Team: Turkish \n"
@@ -9,476 +9,547 @@ 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.6-dev\n"
+"X-Generator: Weblate 5.7.1-dev\n"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Zaten hesabın var mı?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:113, src/app/main/ui/auth/register.cljs:267
+msgid "auth.check-mail"
+msgstr "E-postanıza bakın"
+
+#: src/app/main/ui/auth/register.cljs:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Parolanı mı unuttun?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Tam Adın"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:273
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:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
-msgstr "Buradan oturum açın"
+msgstr "Buradan oturum açın."
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Oturum aç"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
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:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Yeni bir parola gir"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Kurtarma jetonu geçerli değil."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Parola"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "En az 8 karakter"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "Gizlilik politikası"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "Parolayı kurtar"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
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:94
msgid "auth.recovery-request-title"
msgstr "Parolanı mı unuttun?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "Parolanı değiştir"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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/register.cljs:247
+msgid "auth.register-account-tagline"
+msgstr "Denetim panelinde ve e-postalarda size ne dememiz gerektiğini belirtin."
+
+#: src/app/main/ui/auth/register.cljs:246
+msgid "auth.register-account-title"
+msgstr "Adınız"
+
+#: src/app/main/ui/auth/login.cljs:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "Bir hesap oluştur"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:123
+msgid "auth.register-tagline"
+msgstr ""
+"Ücretsiz bir Penpot hesabı ile sınırsız sayıda takım oluşturabilir ve diğer "
+"tasarımcı ve geliştiricilerle istediğiniz kadar projede işbirliği "
+"yapabilirsiniz. "
+
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:156
+#, markdown
+msgid "auth.terms-and-privacy-agreement"
+msgstr "[Hizmet koşullarını](%s) ve [gizlilik politikasını](%s) kabul ediyorum."
+
+#: src/app/main/ui/auth/register.cljs:283, 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:268
msgid "auth.verification-email-sent"
msgstr "Onay e-postanı şu adrese gönderdik"
+#: src/app/main/ui/auth/login.cljs:163, src/app/main/ui/auth/recovery_request.cljs:77, src/app/main/ui/auth/register.cljs:87
+msgid "auth.work-email"
+msgstr "İş e-postası"
+
#: 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:104
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:191
msgid "dashboard.access-tokens.create"
msgstr "Yeni belirteç oluştur"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "Asla"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
msgid "dashboard.export.detail"
msgstr "* Bileşenleri, grafikleri, renkleri ve/veya tipografileri içerebilir."
+#: src/app/main/ui/export.cljs:429
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "Paylaşılan kütüphaneleri dışarı aktar"
+#: src/app/main/ui/export.cljs:440
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:441
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:442
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:443
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:421
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 "
@@ -487,6 +558,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 "
@@ -496,10 +569,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 ""
@@ -510,1524 +584,1728 @@ msgstr ""
"hataları düzeltmek için [Transfonter](https://transfonter.org/) "
"kullanmanızı öneririz. "
+#: src/app/main/ui/dashboard/import.cljs:476, 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:308, 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:312
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:497
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:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "Bazı dosyalar kaldırılmış geçersiz nesneler içeriyordu."
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "Renkler işleniyor"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "Bileşenler işleniyor"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "Ortam işleniyor"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "Sayfa işleniyor: %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "Tipografiler işleniyor"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "Veriler sunucuya yükleniyor (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "Arayüz dilini seç"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "Takım bilgisi"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "Takım üyeleri"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "Takım projeleri"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "Ayarları güncelle"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "Etkin"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "Bu kanca tetiklendiğinde olay ayrıntıları iletilecektir"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "İçerik türü"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "Web kancası oluştur"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Web kancası başarıyla oluşturuldu."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "E-posta"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:700
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Kimlik doğrulama sağlayıcısı yapılandırılmadı."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "E-posta zaten doğrulandı."
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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
-msgid "errors.invalid-email"
-msgstr "Lütfen geçerli bir e-posta adresi girin"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-confirmation"
-msgstr "Doğrulama e-postası eşleşmiyor"
-
+#: src/app/main/ui/dashboard/team.cljs:187
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:233
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:237, src/app/main/errors.cljs:251
msgid "errors.feature-not-supported"
msgstr "'%s' özelliği desteklenmiyor."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:229
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:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
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/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "Lütfen geçerli bir e-posta adresi girin"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "Doğrulama e-postası eşleşmiyor"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Kurtarma jetonu geçerli değil."
+
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "Geçersiz davet"
+#: src/app/main/ui/static.cljs:62
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:90
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:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Parolalar eşleşmedi"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "Parola en az 8 karakterden oluşmalı"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "Panoda geçersiz veri"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "Kayıt olma şu anda devre dışı."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
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:378
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:381
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:384
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:59
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:241
msgid "errors.version-not-supported"
msgstr "Dosyanın uyumsuz bir sürüm numarası var"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Bağlantı hatası, URL'ye erişilemiyor"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL doğrulamayı geçemiyor."
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Son iletim başarılı olmadı."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "SSL doğrulamasında hata."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Zaman aşımı"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "Doğrulamada beklenmeyen hata"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "Beklenmeyen durum %s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "E-posta veya parola yanlış."
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "Eski parola yanlış"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Açıklama"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "Penpot forumuna git"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
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:85
msgid "feedback.discourse-title"
msgstr "Penpot topluluğu"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Konu"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "E-posta"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "X'a git"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
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:95
msgid "feedback.twitter-title"
msgstr "X destek hesabı"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "İnceleme hakkında daha fazla bilgi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kod"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Daire"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Bileşen"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Eğri"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Çalışma yüzeyi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Grup"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Görsel"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Seçildi"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Yol"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Dikdörtgen"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Yönetici"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
msgid "labels.bad-gateway.main-message"
msgstr "Hatalı Ağ Geçidi"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "İptal"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Parolayı onayla"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Yorumu sil"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "Mesaj dizisini sil"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+msgid "labels.developer"
+msgstr "Geliştirici"
+
+#: src/app/main/ui/onboarding/questions.cljs:260
+msgid "labels.director"
+msgstr "Yönetici"
+
+#: 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Düzenleyici"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/onboarding/questions.cljs:405
+msgid "labels.event"
+msgstr "Etkinlik"
+
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Süresi doldu"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Dışa aktar"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
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:39
msgid "labels.feedback-sent"
msgstr "Geri bildirim gönderildi"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Kurucu/Başkan Yardımcısı"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
msgid "labels.go-back"
msgstr "Geri dön"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:248
+msgid "labels.graphic-design"
+msgstr "Grafik tasarımı"
+
+#: 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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Davetler"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Pazarlama"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Üyeler"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "Bekleyen davetiye yok."
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, 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
+#, unused
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:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Diğer (lütfen belirtiniz)"
+
+#: src/app/main/ui/onboarding/questions.cljs:100, src/app/main/ui/onboarding/questions.cljs:175, src/app/main/ui/onboarding/questions.cljs:251, src/app/main/ui/onboarding/questions.cljs:261, src/app/main/ui/onboarding/questions.cljs:351, src/app/main/ui/onboarding/questions.cljs:409
+msgid "labels.other-short"
+msgstr "Diğer"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:245
+msgid "labels.product-design"
+msgstr "Ürün veya kullanıcı deneyimi tasarımı"
+
+#: src/app/main/ui/onboarding/questions.cljs:250
+msgid "labels.product-management"
+msgstr "Ürün veya Proje yöneticisi"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Yeniden dene"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Bir seçenek belirleyin"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Gönder"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Gönderiliyor…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "Ayarlar"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+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:730
msgid "labels.status"
msgstr "Durum"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+msgid "labels.student-teacher"
+msgstr "Öğrenci veya öğretmen"
+
+#: src/app/main/ui/onboarding/questions.cljs:256
+msgid "labels.team-leader"
+msgstr "Takım Lideri"
+
+#: src/app/main/ui/onboarding/questions.cljs:257
+msgid "labels.team-member"
+msgstr "Takım üyesi"
+
+#: 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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Görüntüleyici"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Web kancaları"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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/onboarding/questions.cljs:404
+msgid "labels.youtube"
+msgstr "YouTube"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "Görsel seç"
+#, unused
msgid "media.gradient"
msgstr "Değişim"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, 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:334
msgid "media.keep-aspect-ratio"
msgstr "En boy oranını koru"
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "Görsel yükleniyor…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "Işınsal"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "Katı"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Erişim belirteci oluştur"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Web kancası oluştur"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Web kancası oluştur"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Yük URL'si"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Konuşmayı sil"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "Üyeyi sil"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
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:444
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] ""
@@ -2037,3156 +2315,3598 @@ 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:963
msgid "modals.delete-webhook.accept"
msgstr "Web kancasını sil"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "Bu web kancasını silmek istediğinizden emin misiniz?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "Web kancası siliniyor"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Web kancasını düzenle"
+#: src/app/main/ui/dashboard/team.cljs:858
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:237
msgid "modals.invite-member-confirm.accept"
msgstr "Davet gönder"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "Sahipliği aktar"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Penpot'a hoş geldiniz!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "Takım oluşturmaya devam edin"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
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:222
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:220, 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:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "Takım olmadan başlayın"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Haydi başlayalım!"
+
+#: src/app/main/ui/onboarding/questions.cljs:94
+msgid "onboarding.questions.reasons.alternative"
+msgstr "Figma, XD, vb. için bir alternatif arıyorum"
+
+#: src/app/main/ui/onboarding/questions.cljs:88
+msgid "onboarding.questions.reasons.exploring"
+msgstr "Yalnızca keşfediyorum"
+
+#: src/app/main/ui/onboarding/questions.cljs:91
+msgid "onboarding.questions.reasons.fit"
+msgstr "Penpot'un takımım için uygun olup olmadığına bakıyorum"
+
+#: src/app/main/ui/onboarding/questions.cljs:97
+msgid "onboarding.questions.reasons.testing"
+msgstr "Kendim barındırmadan önce test ediyorum"
+
+#: src/app/main/ui/onboarding/questions.cljs:349
+#, fuzzy
+msgid "onboarding.questions.start-with.code"
+msgstr "Gerçek kod tasarımları oluşturma"
+
+#: src/app/main/ui/onboarding/questions.cljs:347
+#, fuzzy
+msgid "onboarding.questions.start-with.ds"
+msgstr "Tasarım Sistemleri Oluşturma"
+
+#: src/app/main/ui/onboarding/questions.cljs:345
+msgid "onboarding.questions.start-with.prototyping"
+msgstr "Prototip oluşturma"
+
+#: src/app/main/ui/onboarding/questions.cljs:341
+msgid "onboarding.questions.start-with.ui"
+msgstr "Bir uygulamanın kullanıcı arayüzünü/deneyimini tasarlama"
+
+#: src/app/main/ui/onboarding/questions.cljs:343
+msgid "onboarding.questions.start-with.wireframing"
+msgstr "Çerçeve oluşturma"
+
+#: src/app/main/ui/onboarding/questions.cljs:121
+msgid "onboarding.questions.step1.question1"
+msgstr "Penpot'u ne için kullanacaksınız?"
+
+#: src/app/main/ui/onboarding/questions.cljs:128
+msgid "onboarding.questions.step1.question2"
+msgstr "Bugün sizi Penpot'a getiren nedir?"
+
+#: src/app/main/ui/onboarding/questions.cljs:117
+msgid "onboarding.questions.step1.subtitle"
+msgstr ""
+"Penpot'un sizin için çalışmasını sağlamamıza yardımcı olmak için hakkınızda "
+"biraz bilgi verin. Yanıtlarınız, yeni özelliklere öncelik vermemize ve "
+"başlamak için sizi doğru yöne yönlendirmemize yardımcı olacaktır."
+
+#: src/app/main/ui/onboarding/questions.cljs:115
+msgid "onboarding.questions.step1.title"
+msgstr "Sizi tanımamıza yardımcı olun"
+
+#: src/app/main/ui/onboarding/questions.cljs:196
+msgid "onboarding.questions.step2.title"
+msgstr "Bu araçlardan en çok hangisini kullanıyorsunuz?"
+
+#: src/app/main/ui/onboarding/questions.cljs:289
+msgid "onboarding.questions.step3.question1"
+msgstr "Ne tür bir iş yapıyorsunuz?"
+
+#: src/app/main/ui/onboarding/questions.cljs:303
+msgid "onboarding.questions.step3.question2"
+msgstr "Göreviniz nedir?"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "Takımınızın büyüklüğü nedir?"
+
+#: src/app/main/ui/onboarding/questions.cljs:287
+msgid "onboarding.questions.step3.title"
+msgstr "Bize işiniz hakkında bilgi verin"
+
+#: src/app/main/ui/onboarding/questions.cljs:370
+msgid "onboarding.questions.step4.title"
+msgstr "Nereden başlamak istersiniz?"
+
+#: src/app/main/ui/onboarding/questions.cljs:429
+msgid "onboarding.questions.step5.title"
+msgstr "Penpot'tan nasıl haberiniz oldu?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:270
+msgid "onboarding.questions.team-size.freelancer"
+msgstr "Serbest çalışıyorum"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "50'den fazla"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Kendi projem üzerinde çalışıyorum"
+
+#: src/app/main/ui/onboarding/questions.cljs:80
+msgid "onboarding.questions.use.education"
+msgstr "Eğitim"
+
+#: src/app/main/ui/onboarding/questions.cljs:81
+msgid "onboarding.questions.use.personal"
+msgstr "Kişisel"
+
+#: src/app/main/ui/onboarding/questions.cljs:79
+msgid "onboarding.questions.use.work"
+msgstr "İş"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Bir takım oluştur"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
msgid "onboarding.team-modal.create-team-feature-1"
msgstr "Sınırsız dosya ve proje"
+#: src/app/main/ui/onboarding/team_choice.cljs:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Çok oyunculu sürüm"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "Rol yönetimi"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
msgid "onboarding.team-modal.create-team-feature-4"
msgstr "Sınırsız üye"
+#: src/app/main/ui/onboarding/team_choice.cljs:55
msgid "onboarding.team-modal.create-team-feature-5"
msgstr "%100 özgür!"
+#: src/app/main/ui/onboarding/team_choice.cljs:32
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
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:107
msgid "title.settings.feedback"
msgstr "Geri bildirimde bulun - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Ayarlar - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Parola - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profil - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Davetler - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Üyeler - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Ayarlar - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
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:142
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "Çalışma yüzeyi bulunamadı."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Tam Ekran"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "Site haritası"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "Çoğalt"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Grup"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Düzenle"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Dosya"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
msgid "workspace.header.menu.option.preferences"
msgstr "Tercihler"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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:606
msgid "workspace.layout_grid.editor.options.edit-grid"
msgstr "Izgarayı düzenle"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
msgid "workspace.layout_grid.editor.options.exit"
msgstr "Çıkış"
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:477
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:1300
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:243
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:177
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:173
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:285
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:189
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:58
+msgid "workspace.plugins.button-open"
+msgstr "Aç"
+
+#: src/app/main/ui/workspace/plugins.cljs:187
+msgid "workspace.plugins.empty-plugins"
+msgstr "Henüz eklenti kurulmadı"
+
+#: src/app/main/ui/workspace/plugins.cljs:175
+msgid "workspace.plugins.error.url"
+msgstr "Eklenti yok veya URL doğru değil."
+
+#: src/app/main/ui/workspace/plugins.cljs:171
+msgid "workspace.plugins.install"
+msgstr "Kur"
+
+#: src/app/main/ui/workspace/plugins.cljs:196
+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:777
+msgid "workspace.plugins.menu.title"
+msgstr "Eklentiler"
+
+#: src/app/main/ui/workspace/plugins.cljs:192
+msgid "workspace.plugins.plugin-list-link"
+msgstr "Eklenti Listesi"
+
+#: src/app/main/ui/workspace/plugins.cljs:166
+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:160
+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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Kenar çubuğunu daralt"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Eğri (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Elips (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
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:60, src/app/main/ui/workspace/top_toolbar.cljs:61
msgid "workspace.toolbar.image"
msgstr "Görsel (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Taşı (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
msgid "workspace.toolbar.path"
msgstr "Yol (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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/top_toolbar.cljs:219, src/app/main/ui/workspace/top_toolbar.cljs:220
+msgid "workspace.toolbar.toggle-toolbar"
+msgstr "Araç çubuğunu aç/kapat"
+
+#: 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:1097
msgid "workspace.updates.dismiss"
msgstr "Yoksay"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Daha fazla bilgi"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
msgid "workspace.updates.update"
msgstr "Güncelle"
+#, unused
msgid "workspace.viewport.click-to-close-path"
msgstr "Yolu kapatmak için tıklayın"
@@ -5247,36 +5967,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 5793f61d4c..c5bb66b088 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,869 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "Уже маєте аккаунт?"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "Забули пароль?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "Повне ім'я"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "Ввійдіть тут"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "Вхід"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "Введіть новий пароль"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "Невірний код відновлення."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "Пароль"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
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:763, 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:47
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:67
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "Провайдер для автентифікації не налаштований."
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "Невірний код відновлення."
+
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "Опис"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Тема"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
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:100
msgid "inspect.tabs.code"
msgstr "Код"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Коло"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Компонент"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Крива"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Кадр"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Група"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Зображення"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
msgid "inspect.tabs.code.selected.mask"
msgstr "Маска"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "Виділено: %s"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Контур"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Прямокутник"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "Текст"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
msgid "inspect.tabs.info"
msgstr "Інформація"
+#: src/app/main/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Адміністратор"
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "Всі"
+#: src/app/main/ui/auth/register.cljs:287
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Відміна"
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:524, src/app/main/ui/export.cljs:468, 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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Редактор"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Протерміновано"
+#: src/app/main/ui/export.cljs:174
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:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Запрошення"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Учасники"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
msgid "labels.pending-invitation"
msgstr "Очікування"
-#: src/app/main/ui/settings/sidebar.cljs
+#: src/app/main/ui/settings/profile.cljs:125, 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:153
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Повторити"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:79
msgid "labels.send"
msgstr "Надіслати"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:730
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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
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:256
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:180, 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:142
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Редагувати"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Файл"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:765
msgid "workspace.header.menu.option.preferences"
msgstr "Налаштування"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/libraries.cljs
+#: src/app/main/ui/workspace/libraries.cljs:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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 b0ef4b3b68..0a013e6700 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,430 +11,471 @@ 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:270
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:67
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:144
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:41
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:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "gbàgbé ọ̀rọ̀-ìgbaniwọlé ?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
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:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "wọlé síbí"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "wọlé"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:213
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:219
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:207
msgid "auth.login-with-google-submit"
msgstr "ṣàwárí"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "ṣílẹ̀kuǹ ìdánimọ̀"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "tẹ ọ̀rọ̀ ìgbaniwọlé tuntun"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "àmì àtúnwárí ti díbàjẹ́."
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
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:50
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:33
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:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "ọ̀rọ̀- ìgbaniwọlé"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "kò gbọdọ̀ ju ohun kíkọ mẹ́jọ lọ"
+#: src/app/main/ui/auth/register.cljs:291
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:82
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:95
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:94
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:71
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:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "ṣẹ̀dá àkáùntì"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
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/register.cljs:283, 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:268
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:191
msgid "dashboard.access-tokens.create"
msgstr "ṣe ìpilẹ̀sẹ̀ àmì tókìnnì"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
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:289
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:288
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:136
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:133
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:134
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:135
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:132
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:271
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:272
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:270
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:186
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:187
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:143
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:144
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:72
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:763, 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:33
+#, 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:202
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:110
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:181
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:185
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:180
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:191
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:430
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:438
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:439
msgid "dashboard.export.options.all.title"
msgstr "ṣe ìfiráńṣẹ́ yàrá ìkàwé pípín"
+#: src/app/main/ui/export.cljs:440
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:441
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:442
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:443
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:421
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 ""
@@ -444,6 +485,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 ""
@@ -452,10 +494,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 ""
@@ -466,4052 +509,4533 @@ 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:476, 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:308, 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:312
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:485, src/app/main/ui/dashboard/import.cljs:492
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:145
msgid "dashboard.import.progress.process-colors"
msgstr "síṣe ètò àwọ̀"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "síṣe ètò àwọn irin iṣẹ́"
+#: src/app/main/ui/dashboard/import.cljs:151
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:142
msgid "dashboard.import.progress.process-page"
msgstr "síṣe ètò ojú ìwe : %s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "síṣe ètò àkọsílẹ̀ ojú ìwé"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "ọpulóòdù dátà sínú sáfà (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
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:114
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:331
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:369
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:47
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:727, 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:32
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:26
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:36
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:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "yan èdè ui"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "àlàyé ẹgbẹ́"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "àwọn ọmọ ẹgbẹ́"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "iṣẹ́ àgbéṣe ọmọ ẹgbẹ́"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "mú àwọn ètò dójú ìwọ̀n"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "ti ń siṣẹ́"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "When this hook is triggered event details will be delivered"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "ẹ̀yà kọ́ńtẹ́ǹtì"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "ṣẹ̀dá ìkọ́-wẹ́bù"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "a ti ṣẹ̀dá ìkọ́-wẹ́bù dáadáa ."
+#: src/app/main/ui/dashboard/team.cljs:903
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:1026
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:1025
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:67
msgid "dashboard.your-email"
msgstr "ímeèlì"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "a kò tí ì fàṣẹ si àtúntò olùpèṣè."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
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:86
msgid "errors.email-already-validated"
msgstr "a ti fọwọ́ sí ímeèlì rẹ tẹ́lẹ̀."
+#, unused
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:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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/dashboard/team.cljs:187
+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:237, src/app/main/errors.cljs:251
+msgid "errors.feature-not-supported"
+msgstr "Àwọn ẹ̀yà ara ẹ̀rọ '%s' kò ní àtìlẹ́yìn."
+
+#: src/app/main/data/users.cljs:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
+msgid "errors.generic"
+msgstr "Àsìṣe kan ti ṣẹlẹ̀."
+
+#: src/app/main/ui/components/color_input.cljs:57
+msgid "errors.invalid-color"
+msgstr "àwọ̀ tó ti díbàjẹ́"
+
#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
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
+#, unused
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"
-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
-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
-msgid "errors.generic"
-msgstr "Àsìṣe kan ti ṣẹlẹ̀."
-
-#: src/app/main/ui/components/color_input.cljs
-msgid "errors.invalid-color"
-msgstr "àwọ̀ tó ti díbàjẹ́"
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "àmì àtúnwárí ti díbàjẹ́."
+#: src/app/main/ui/static.cljs:62
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:90
msgid "errors.ldap-disabled"
msgstr "Ìfàṣẹsí LDAP kò ṣe é ṣe ."
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
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
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "Ijẹ́rìísí ọ̀rọ̀ ìgbaniwọlé rẹ gbọ́dọ̀ báramu"
#: src/app/main/ui/settings/password.cljs
+#, unused
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:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
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:696, src/app/main/ui/auth/register.cljs:50
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:378
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:381
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:384
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:59
msgid "errors.unexpected-token"
msgstr "Tókìnnì àìmọ̀"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "Àsìṣe nínú ètò ìsopọ̀, kò lè dé ibi URL"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "URL kò páásì ìfọwọ́sí."
-#, fuzzy
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "Èyí tí a fijíṣẹ́ kẹ́yìn kò dára."
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "Àsìṣe nínú ìfẹwọ́sí SSL ."
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "Àkókò ti lọ"
+#: src/app/main/ui/dashboard/team.cljs:809
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:819, src/app/main/ui/dashboard/team.cljs:976
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:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "Ímeèlì tàbí ọ̀rọ̀ ìgbaniwọlé kò tọ̀nà."
#: src/app/main/ui/settings/password.cljs
+#, unused
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:74
msgid "feedback.description"
msgstr "Àpèjúwe"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
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:86
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:85
msgid "feedback.discourse-title"
msgstr "Agbègbè pẹ́ńpọtì"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "Kókó-ọ̀rọ̀"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
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:65
msgid "feedback.title"
msgstr "Ímeèlì"
-#: src/app/main/ui/settings/feedback.cljs
-#, fuzzy
+#: src/app/main/ui/settings/feedback.cljs:102
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:96
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:95
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:29
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:152
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:155
msgid "inspect.empty.more-info"
msgstr "Àfikún àlàyé fún ìbẹ̀wò"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
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:100
msgid "inspect.tabs.code"
msgstr "Kóòdù"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "Àyíká"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "Ẹ̀yà"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "Igun"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "Bọ́ọ̀dù"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "Ẹgbẹ́"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "Àwòrán"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
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:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "%s Ti yàn"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "Ipa-ọ̀nà"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "Rectangle"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
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:96
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "Alábòjútó"
+#: src/app/main/ui/onboarding/questions.cljs:169
+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/register.cljs:287
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:282
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:281
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:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "Párẹ́"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Káńfà"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "Jẹ́rìísí"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
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:662
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:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "Pa kọ́mẹ́ǹtì rẹ́"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
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:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "Olóòtú"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "Kọjá àkókò"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "Fi ránṣẹ́"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "Èsì kò siṣẹ́"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "Èsì ti lọ"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "Olùdásílẹ̀/VP"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
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:366
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:173
+msgid "labels.invision"
+msgstr "Ìkógun wọ̀lú"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "Ìfiwépè"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "Títajà"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "Àwọn ọmọ Ẹgbẹ́"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
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:716
#, 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
+#, unused
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:269
msgid "labels.not-found.main-message"
msgstr "Óóho!"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "Òmíìràn(ní pàtó)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:250
+msgid "labels.product-management"
+msgstr "Ohun títà tàbí iṣẹ́ àgbéṣe Olùṣàkóso"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
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:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "Tún gbìyànjú"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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:85, src/app/main/ui/onboarding/questions.cljs:244, src/app/main/ui/onboarding/questions.cljs:255, src/app/main/ui/onboarding/questions.cljs:265
+msgid "labels.select-option"
+msgstr "Ṣe àṣàyàn"
+
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.send"
msgstr "Fi ránńṣẹ́"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "Fífi-ránńṣẹ…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
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:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:167
+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:730
msgid "labels.status"
msgstr "Ipò"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "Olùwo"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "àwọn ìwé ìkọ́ wẹ́bù"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:451
msgid "media.loading"
msgstr "Ìkójọpọ̀ àwòrán…"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
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:99
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:104
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:119
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:92
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:154, src/app/main/ui/settings/access_tokens.cljs:160
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:131
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:125
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:127
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:180
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:112
msgid "modals.create-access-token.title"
msgstr "Pilẹ̀ṣẹ̀ wí wọlé tókìń"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "Ṣẹ̀dá ìkọ́- wẹ́bù"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "Ṣẹ̀dá ìkọ́-wẹ́bù"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "Péloòdù URL"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
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:259
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:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "Pa ìtàkurọ̀sọ rẹ́"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
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:295
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:446
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:445
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:444
msgid "modals.delete-team-member-confirm.title"
msgstr "Yọ ọmọ ẹgbẹ́ kúrò"
+#: src/app/main/ui/dashboard/team.cljs:963
msgid "modals.delete-webhook.accept"
msgstr "Pa ìkọ́-wẹ́bù rẹ́"
+#: src/app/main/ui/dashboard/team.cljs:962
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:961
msgid "modals.delete-webhook.title"
msgstr "Pa ìkọ́- wẹ́bù rẹ́"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "Ṣe àtúnṣe ìkọ́- wẹ́bù"
+#: src/app/main/ui/dashboard/team.cljs:858
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:237
msgid "modals.invite-member-confirm.accept"
msgstr "Fi ìfìwépè ránńṣẹ́"
+#: src/app/main/ui/dashboard/team.cljs:231, 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:215
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:208
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:412
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:411
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:58
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:54
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:77
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:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
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:358
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:357
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:356
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:76
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:170, src/app/main/ui/dashboard/team.cljs:615
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:636
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:26, src/app/main/ui/settings/profile.cljs:33
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:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "Káàbọ̀ sí pẹ́ńpọtì!"
+#: src/app/main/ui/onboarding/team_choice.cljs:213
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:222
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:220, 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:113
+msgid "onboarding.questions.lets-get-started"
+msgstr "Ẹjẹ́ 'ká bẹ̀rẹ̀ !"
+
+#: src/app/main/ui/onboarding/questions.cljs:317
+msgid "onboarding.questions.step3.question3"
+msgstr "kín ni ìwọ̀n ẹgbẹ́ rẹ ?"
+
+#: src/app/main/ui/onboarding/questions.cljs:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "Mọ́kànlá-Ọgbọ̀n"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "Méjì – mẹ́wàá"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "Mọ́kànlélọ́gbọ̀n-Àádọ́ta"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "Ju àádọ́ta lọ"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "Mò ń siṣẹ́ àgbéṣẹ ti ara mi ni"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
msgid "onboarding.team-modal.create-team"
msgstr "Ṣẹ̀dá ẹgbẹ́ kan"
+#: src/app/main/ui/onboarding/team_choice.cljs:34
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:39
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:43
msgid "onboarding.team-modal.create-team-feature-2"
msgstr "Multiplayer edition"
+#: src/app/main/ui/onboarding/team_choice.cljs:47
msgid "onboarding.team-modal.create-team-feature-3"
msgstr "àwọn ipa ìṣàkóṣo"
+#: src/app/main/ui/onboarding/team_choice.cljs:51
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:55
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:88
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:180, 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/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:67, src/app/main/ui/auth.cljs:36
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:281
msgid "title.settings.access-tokens"
msgstr "Profaili – Aami wiwọle"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "Fi esi- Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "Awon eto - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "Ọrọigbaníwólé - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "Profaili - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "Ifíwẹ́pe - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "Ọ́́mọ̀ ẹgbẹ - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "Awọn eto - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:570
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:575
msgid "viewer.frame-not-found"
msgstr "A kò ri ọ̀kọ̀."
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "Fé ká gḅọgbọ síkírínì"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
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:138
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:568
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "Ẹgbẹ"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
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:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
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:743
msgid "workspace.header.menu.option.edit"
msgstr "Satunkọ"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:732
msgid "workspace.header.menu.option.file"
msgstr "Faili"
-#: src/app/main/ui/workspace/header.cljs
+#: src/app/main/ui/workspace/main_menu.cljs:789
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:765
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:754
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
+#: src/app/main/ui/workspace/colorpicker.cljs:215
msgid "workspace.libraries.colors.rgba"
msgstr "RGBA"
-#: src/app/main/ui/workspace/colorpicker.cljs
+#: src/app/main/ui/workspace/colorpicker.cljs:379
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:509, src/app/main/ui/workspace/libraries.cljs:534
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:516
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:169
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:241
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:173, src/app/main/ui/export.cljs:242, 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:240
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:177
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:173
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:285
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:189
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:582
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, src/app/main/ui/workspace/sidebar.cljs:44
msgid "workspace.sidebar.collapse"
msgstr "Wó òpó ègbẹ́"
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
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:77, src/app/main/ui/workspace/sidebar.cljs:95
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:113
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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
msgid "workspace.toolbar.curve"
msgstr "Ìṣépo (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
msgid "workspace.toolbar.ellipse"
msgstr "Àlàfo (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
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:60, src/app/main/ui/workspace/top_toolbar.cljs:61
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:133, src/app/main/ui/workspace/top_toolbar.cljs:134
msgid "workspace.toolbar.move"
msgstr "Gbé (%s)"
-#: src/app/main/ui/workspace/left_toolbar.cljs
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
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:152, src/app/main/ui/workspace/top_toolbar.cljs:153
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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
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:1097
msgid "workspace.updates.dismiss"
msgstr "Ta nù"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1095
msgid "workspace.updates.more-info"
msgstr "Àlàyé síi"
-#: src/app/main/data/workspace/libraries.cljs
+#: src/app/main/data/workspace/libraries.cljs:1093
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:1100
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 5603a8ae76..7cd58b8360 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,5055 +11,5541 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "已经有账号了?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr "请检查电子邮箱,点击邮件中的超链接来验证,然后开始使用Penpot。"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr "这是一个演示服务,请【不要】用于真实工作,这些项目将被周期性地抹除。"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "忘记密码?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "全名"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "登录我的账号"
+
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "在这里登录"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
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:276
+msgid "auth.login-tagline"
+msgstr "Penpot是一款自由开源的设计工具,用于「设计」和「开发」协同"
+
+#: src/app/main/ui/auth/login.cljs:213
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:219
msgid "auth.login-with-gitlab-submit"
msgstr "Gitlab登录"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google登录"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP登录"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID登录"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "输入新的密码"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "恢复令牌无效。"
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "密码修改成功"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "个人资料未验证,请于验证后继续。"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "找回密码链接已发至你的收件箱。"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "密码"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "至少8位字符"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "隐私政策"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "找回密码"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "我们将给你发送一封带有说明的电子邮件"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "忘记密码?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "修改密码"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "创建账号"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "创建账号"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "设计与原型的开源解决方案。"
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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:104
msgid "dashboard.access-tokens.copied-success"
msgstr "已复制令牌"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:191
msgid "dashboard.access-tokens.create"
msgstr "生成新令牌"
#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
msgid "dashboard.access-tokens.create-success"
msgstr "成功创建访问令牌。"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:289
msgid "dashboard.access-tokens.empty.add-one"
msgstr "点击“生成新令牌”按钮来生成一个。"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:288
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:136
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:133
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:134
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:135
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:132
msgid "dashboard.access-tokens.expiration-never"
msgstr "从不"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:271
msgid "dashboard.access-tokens.expired-on"
msgstr "已经于%s到期"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:272
msgid "dashboard.access-tokens.expires-on"
msgstr "将于%s到期"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:270
msgid "dashboard.access-tokens.no-expiration"
msgstr "无到期时限"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:186
msgid "dashboard.access-tokens.personal"
msgstr "个人访问令牌"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:187
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:143
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:144
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:72
msgid "dashboard.change-email"
msgstr "修改电子邮件"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
+#, 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:202
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:110
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:181
msgid "dashboard.export-shapes.how-to"
msgstr "你可以在设计选项中为元素添加导出设置(位于右侧边栏底部)。"
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:185
msgid "dashboard.export-shapes.how-to-link"
msgstr "关于如何使用Penpot导出。"
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:180
msgid "dashboard.export-shapes.no-elements"
msgstr "在导出设置中没找到任何元素。"
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* 可能包含组件、图形、颜色和/或排版。"
+#: src/app/main/ui/export.cljs:429
msgid "dashboard.export.explain"
msgstr "你想导出的一个或多个文件用到了共享库。你想怎么处理它们的素材?"
+#: src/app/main/ui/export.cljs:438
msgid "dashboard.export.options.all.message"
msgstr "使用了共享库的文件将会在导出时保持引用关系。"
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "导出共享库"
+#: src/app/main/ui/export.cljs:440
msgid "dashboard.export.options.detach.message"
msgstr "导出文件中将不包含共享库,素材也不会被添加到库中。 "
+#: src/app/main/ui/export.cljs:441
msgid "dashboard.export.options.detach.title"
msgstr "将共享库素材作为基本对象"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr "导出您的文件时所有的外部素材将会被合并到库中。"
+#: src/app/main/ui/export.cljs:443
msgid "dashboard.export.options.merge.title"
msgstr "将共享库素材加入文件库"
+#: src/app/main/ui/export.cljs:421
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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "导入文件"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "文件导入过程中出现未知问题,导入失败。"
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "%s 个文件导入成功。"
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "一些包含无效对象的文档已被移除。"
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "处理颜色中"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "处理组件中"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "处理视频中"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "处理页面中:%s"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "处理字体中"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "数据上传中"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "文件上传中"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "已经成功更新你的电子邮件"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "已经成功验证你的电子邮件"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "已经成功保存密码!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "选择界面语言"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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:563, 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:1073
msgid "dashboard.team-info"
msgstr "团队信息"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1091
msgid "dashboard.team-members"
msgstr "团队成员"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
msgid "dashboard.team-projects"
msgstr "团队项目"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:58
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:68
msgid "dashboard.update-settings"
msgstr "保存设置"
+#: src/app/main/ui/dashboard/team.cljs:882
msgid "dashboard.webhooks.active"
msgstr "处于活跃状态"
+#: src/app/main/ui/dashboard/team.cljs:883
msgid "dashboard.webhooks.active.explain"
msgstr "当这个webhook被触发时,事件细节将被传递"
+#: src/app/main/ui/dashboard/team.cljs:873
msgid "dashboard.webhooks.content-type"
msgstr "内容类型"
+#: src/app/main/ui/dashboard/team.cljs:906
msgid "dashboard.webhooks.create"
msgstr "创建webhook"
+#: src/app/main/ui/dashboard/team.cljs:796
msgid "dashboard.webhooks.create.success"
msgstr "Webhook创建成功。"
+#: src/app/main/ui/dashboard/team.cljs:903
msgid "dashboard.webhooks.description"
-msgstr ""
-"Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到"
-"通知。我们将发送一个POST请求到你提供的每个URL。"
+msgstr "Webhooks是一种简单的方式,允许其他网站和应用程序在Penpot的某些事件发生时得到通知。我们将发送一个POST请求到你提供的每个URL。"
+#: src/app/main/ui/dashboard/team.cljs:1026
msgid "dashboard.webhooks.empty.add-one"
msgstr "按“添加webhook”按钮添加一个。"
+#: src/app/main/ui/dashboard/team.cljs:1025
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:67
msgid "dashboard.your-email"
msgstr "电子邮件"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:59
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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
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:281
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:61
msgid "errors.auth-provider-not-configured"
msgstr "没有配置身份认证服务源."
+#: src/app/main/errors.cljs:105
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:1596
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:81, src/app/main/ui/settings/change_email.cljs:29
msgid "errors.email-already-exists"
msgstr "电子邮件已被占用"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:86
msgid "errors.email-already-validated"
msgstr "电子邮件已经验证通过。"
+#, unused
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:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "不允许使用此域名"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
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/dashboard/team.cljs:187
+msgid "errors.email-spam-or-permanent-bounces"
+msgstr "此邮箱[%s]已被标记为垃圾邮件或已被永久拉黑。"
+
+#: src/app/main/errors.cljs:233
+msgid "errors.feature-mismatch"
+msgstr "看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已将其禁用。"
+
+#: src/app/main/errors.cljs:237, src/app/main/errors.cljs:251
+msgid "errors.feature-not-supported"
+msgstr "不支持功能“%s”。"
+
+#: src/app/main/errors.cljs:229
+msgid "errors.file-feature-mismatch"
+msgstr "看起来当前启用的功能,与正在打开的文件所依赖的功能不匹配。在打开文件前,需要应用对“%s”修改。"
+
+#: src/app/main/data/users.cljs:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
+msgid "errors.generic"
+msgstr "发生了某种错误。"
+
+#: src/app/main/ui/components/color_input.cljs:57
+msgid "errors.invalid-color"
+msgstr "无效的颜色"
+
+#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
msgid "errors.invalid-email"
msgstr "请输入有效的电子邮件"
#: src/app/main/ui/settings/change_email.cljs
+#, unused
msgid "errors.invalid-email-confirmation"
msgstr "确认电子邮件必须保持一致"
-msgid "errors.email-spam-or-permanent-bounces"
-msgstr "此邮箱[%s]已被标记为垃圾邮件或已被永久拉黑。"
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "恢复令牌无效。"
-#: src/app/main/errors.cljs
-msgid "errors.feature-mismatch"
-msgstr ""
-"看起来你正在打开一个启用了'%s'功能的文件,但当前penpot版本并不支持该功能或已"
-"将其禁用。"
-
-#: src/app/main/errors.cljs
-msgid "errors.feature-not-supported"
-msgstr "不支持功能“%s”。"
-
-#: src/app/main/errors.cljs
-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
-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
+#: src/app/main/ui/static.cljs:61
msgid "errors.invite-invalid"
msgstr "无效的邀请"
+#: src/app/main/ui/static.cljs:62
msgid "errors.invite-invalid.info"
msgstr "此邀请可能已取消或已过期。"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:90
msgid "errors.ldap-disabled"
msgstr "LDAP身份验证已禁用。"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:245
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:594
msgid "errors.member-is-muted"
msgstr "你邀请的人设置了邮件免打扰(报告垃圾邮件或者多次退信)。"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-invalid-confirmation"
msgstr "确认密码必须保持一致"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.password-too-short"
msgstr "密码最少需要8位字符"
+#: src/app/main/errors.cljs:130
msgid "errors.paste-data-validation"
msgstr "剪切板中为无效数据"
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
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:53, src/app/main/ui/dashboard/team.cljs:181, src/app/main/ui/dashboard/team.cljs:590, src/app/main/ui/settings/change_email.cljs:33
msgid "errors.profile-is-muted"
msgstr "你设置了邮件免打扰(报告垃圾邮件或者多次退信)。"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
msgid "errors.registration-disabled"
msgstr "当前禁止注册。"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:224
msgid "errors.team-feature-mismatch"
msgstr "检测到不兼容功能“%s”"
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
msgid "errors.team-leave.insufficient-members"
msgstr "离开团队后成员不足,您可能要将其删除。"
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
msgid "errors.team-leave.member-does-not-exists"
msgstr "您尝试分配的成员不存在。"
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
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:59
msgid "errors.unexpected-token"
msgstr "未知的令牌"
+#, unused
msgid "errors.validation"
msgstr "验证错误"
-#: src/app/main/errors.cljs
+#: src/app/main/errors.cljs:241
msgid "errors.version-not-supported"
msgstr "文件具有不兼容的版本号"
+#: src/app/main/ui/dashboard/team.cljs:817
msgid "errors.webhooks.connection"
msgstr "连接错误,无法访问 URL"
+#: src/app/main/ui/dashboard/team.cljs:811
msgid "errors.webhooks.invalid-uri"
msgstr "网址未通过验证。"
+#: src/app/main/ui/dashboard/team.cljs:970
msgid "errors.webhooks.last-delivery"
msgstr "上次交付不成功。"
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
msgid "errors.webhooks.ssl-validation"
msgstr "SSL 验证时出错。"
+#: src/app/main/ui/dashboard/team.cljs:815
msgid "errors.webhooks.timeout"
msgstr "超时"
+#: src/app/main/ui/dashboard/team.cljs:809
msgid "errors.webhooks.unexpected"
msgstr "验证时出现意外错误"
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
msgid "errors.webhooks.unexpected-status"
msgstr "意外状态%s"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
msgid "errors.wrong-credentials"
msgstr "邮箱或密码错误。"
#: src/app/main/ui/settings/password.cljs
+#, unused
msgid "errors.wrong-old-password"
msgstr "旧密码不正确"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:74
msgid "feedback.description"
msgstr "描述"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:92
msgid "feedback.discourse-go-to"
msgstr "前往Penpot论坛"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:86
msgid "feedback.discourse-subtitle1"
msgstr "我们很欢迎你的到来。请在发布帮助请求前搜索你所需要的帮助内容。"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:85
msgid "feedback.discourse-title"
msgstr "Penpot社区"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:69
msgid "feedback.subject"
msgstr "话题"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:66
msgid "feedback.subtitle"
-msgstr ""
-"请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会"
-"尽快回复。"
+msgstr "请说明你发邮件的原因,详细说明这是一个问题反馈、一个点子还是一个疑问。我们会尽快回复。"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:65
msgid "feedback.title"
msgstr "电子邮件"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:102
msgid "feedback.twitter-go-to"
msgstr "前往X(原Twitter)"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:96
msgid "feedback.twitter-subtitle1"
msgstr "这里可以帮助您解决技术问题。"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:95
msgid "feedback.twitter-title"
msgstr "X(原Twitter)支持帐号"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:29
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:152
msgid "inspect.empty.help"
msgstr "如果您想了解有关设计检查的更多信息,请访问Penpot的帮助中心"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:155
msgid "inspect.empty.more-info"
msgstr "有关检查的详细信息"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:147
msgid "inspect.empty.select"
msgstr "选择形状、板或组以检查其属性和代码"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:100
msgid "inspect.tabs.code"
msgstr "代码"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
msgid "inspect.tabs.code.selected.circle"
msgstr "圆"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:125
msgid "inspect.tabs.code.selected.component"
msgstr "组件"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
msgid "inspect.tabs.code.selected.curve"
msgstr "曲线"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
msgid "inspect.tabs.code.selected.frame"
msgstr "画板"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
msgid "inspect.tabs.code.selected.group"
msgstr "编组"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
msgid "inspect.tabs.code.selected.image"
msgstr "图片"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:130
msgid "inspect.tabs.code.selected.mask"
msgstr "蒙版"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:119
msgid "inspect.tabs.code.selected.multiple"
msgstr "已选中%s项"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
msgid "inspect.tabs.code.selected.path"
msgstr "路径"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
msgid "inspect.tabs.code.selected.rect"
msgstr "矩形"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
msgid "inspect.tabs.code.selected.svg-raw"
msgstr "SVG"
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
msgid "inspect.tabs.code.selected.text"
msgstr "文本"
-#: src/app/main/ui/inspect/right_sidebar.cljs
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
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/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
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:989
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:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
msgid "labels.admin"
msgstr "管理员"
+#: src/app/main/ui/onboarding/questions.cljs:169
+msgid "labels.adobe-xd"
+msgstr "Adobe XD"
+
#: src/app/main/ui/workspace/comments.cljs
+#, unused
msgid "labels.all"
msgstr "全部"
+#: src/app/main/ui/auth/register.cljs:287
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:282
msgid "labels.bad-gateway.desc-message"
msgstr "请过会儿再来试试,我们正在对服务器进行一些简单维护。"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:281
msgid "labels.bad-gateway.main-message"
msgstr "网关错误"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
msgid "labels.cancel"
msgstr "取消"
+#: src/app/main/ui/onboarding/questions.cljs:171
+msgid "labels.canva"
+msgstr "Canva"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
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:91
msgid "labels.confirm-password"
msgstr "确认密码"
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, 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:69
msgid "labels.continue-with-penpot"
msgstr "你可以使用Penpot帐号继续"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:662
msgid "labels.copy-invitation-link"
msgstr "复制链接"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, 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:356
msgid "labels.delete-comment"
msgstr "删除该评论"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:353
msgid "labels.delete-comment-thread"
msgstr "删除该讨论串"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:668
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:246
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
msgid "labels.editor"
msgstr "编辑者"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:681
msgid "labels.expired-invitation"
msgstr "已到期"
+#: src/app/main/ui/export.cljs:174
msgid "labels.export"
msgstr "导出"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:48
msgid "labels.feedback-disabled"
msgstr "反馈被禁止"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:39
msgid "labels.feedback-sent"
msgstr "反馈已发出"
+#: src/app/main/ui/onboarding/questions.cljs:165
+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:259
+msgid "labels.founder"
+msgstr "创始人/副总裁"
+
+#: src/app/main/ui/onboarding/questions.cljs:258
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
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:990
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:367
msgid "labels.internal-error.desc-message"
-msgstr ""
-"发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。"
+msgstr "发生了一些不妙的事。请尝试重新操作。如果问题仍然存在,请联系我们以取得支持。"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:366
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:173
+msgid "labels.invision"
+msgstr "InVision"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
msgid "labels.invitations"
msgstr "邀请"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:48
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:209
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:249
+msgid "labels.marketing"
+msgstr "市场营销"
+
+#: src/app/main/ui/dashboard/team.cljs:487
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:92, src/app/main/ui/dashboard/team.cljs:100
msgid "labels.members"
msgstr "成员"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:84
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:714
msgid "labels.no-invitations"
msgstr "没有待处理的邀请。"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:716
+#, markdown
msgid "labels.no-invitations-hint"
msgstr "单击“**邀请他人**”按钮以邀请人员加入此团队。"
#: src/app/main/ui/static.cljs
+#, unused
msgid "labels.not-found.desc-message"
msgstr "可能该页面不存在,也可能你没有访问权限。"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:269
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:1116
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:1111
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:77
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:140, src/app/main/ui/onboarding/questions.cljs:209, src/app/main/ui/onboarding/questions.cljs:298, src/app/main/ui/onboarding/questions.cljs:312, src/app/main/ui/onboarding/questions.cljs:384, src/app/main/ui/onboarding/questions.cljs:440
+msgid "labels.other"
+msgstr "其他(请注明)"
+
+#: src/app/main/ui/dashboard/team.cljs:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
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:682
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:250
+msgid "labels.product-management"
+msgstr "产品经理/项目经理"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
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:153
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:665
msgid "labels.resend-invitation"
msgstr "重新发送邀请"
-#: src/app/main/ui/static.cljs, src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
msgid "labels.retry"
msgstr "重试"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
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/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:79
msgid "labels.send"
msgstr "发送"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:79
msgid "labels.sending"
msgstr "正在发送…"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:291
msgid "labels.service-unavailable.desc-message"
msgstr "我们正在进行系统的程序维护。"
-#: src/app/main/ui/static.cljs
+#: src/app/main/ui/static.cljs:290
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:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, src/app/main/ui/settings/sidebar.cljs:93
msgid "labels.settings"
msgstr "设置"
+#: src/app/main/ui/viewer/header.cljs:205
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:167
+msgid "labels.sketch"
+msgstr "Sketch"
+
+#: src/app/main/ui/onboarding/questions.cljs:56
+msgid "labels.start"
+msgstr "开始"
+
+#: src/app/main/ui/dashboard/team.cljs:730
msgid "labels.status"
msgstr "状态"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/onboarding/questions.cljs:247
+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:108
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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
msgid "labels.viewer"
msgstr "查看者"
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
msgid "labels.webhooks"
msgstr "Webhooks"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:193
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:256
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:341, src/app/main/ui/workspace/colorpicker.cljs:342, src/app/main/ui/workspace/colorpicker.cljs:344
msgid "media.choose-image"
msgstr "选择图片"
+#, unused
msgid "media.gradient"
msgstr "渐变"
+#: src/app/main/data/workspace/media.cljs:273, 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:212, src/app/main/ui/workspace/sidebar/options/rows/color_row.cljs:237
msgid "media.image"
msgstr "图片"
+#: src/app/main/ui/workspace/colorpicker.cljs:334
+msgid "media.keep-aspect-ratio"
+msgstr "保持宽高比"
+
+#: src/app/main/ui/workspace/colorpicker.cljs:209
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:451
msgid "media.loading"
msgstr "正在加载图片…"
+#: src/app/main/ui/workspace/colorpicker.cljs:210
msgid "media.radial"
msgstr "径向"
+#: src/app/main/ui/workspace/colorpicker.cljs:207
msgid "media.solid"
msgstr "纯色"
+#: src/app/main/data/common.cljs:125
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:127
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:125
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:124
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:111
msgid "modals.change-email.confirm-email"
msgstr "验证新的邮件"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:99
msgid "modals.change-email.info"
msgstr "我们会发送一封信的邮件到当前的电子邮件“%s”,以验证你的身份。"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:104
msgid "modals.change-email.new-email"
msgstr "新电子邮件"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:119
msgid "modals.change-email.submit"
msgstr "修改电子邮件"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:92
msgid "modals.change-email.title"
msgstr "修改你的电子邮件"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:154, src/app/main/ui/settings/access_tokens.cljs:160
msgid "modals.create-access-token.copy-token"
msgstr "复制令牌"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:131
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:125
msgid "modals.create-access-token.name.label"
msgstr "名称"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:127
msgid "modals.create-access-token.name.placeholder"
msgstr "名称可以帮你记住令牌的用途"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:180
msgid "modals.create-access-token.submit-label"
msgstr "创建令牌"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:112
msgid "modals.create-access-token.title"
msgstr "生成访问令牌"
+#: src/app/main/ui/dashboard/team.cljs:894
msgid "modals.create-webhook.submit-label"
msgstr "创建webhook"
+#: src/app/main/ui/dashboard/team.cljs:859
msgid "modals.create-webhook.title"
msgstr "创建webhook"
+#: src/app/main/ui/dashboard/team.cljs:870
msgid "modals.create-webhook.url.label"
msgstr "有效负载网址"
+#: src/app/main/ui/dashboard/team.cljs:871
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:260
msgid "modals.delete-acces-token.accept"
msgstr "删除令牌"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:259
msgid "modals.delete-acces-token.message"
msgstr "你确定想要删除这个令牌吗?"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:258
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:297
msgid "modals.delete-comment-thread.accept"
msgstr "删除对话"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:296
msgid "modals.delete-comment-thread.message"
msgstr "你确定想要删除这个对话?该讨论串里的所有评论都会被一同删除。"
-#: src/app/main/ui/comments.cljs
+#: src/app/main/ui/comments.cljs:295
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:446
msgid "modals.delete-team-member-confirm.accept"
msgstr "删除成员"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:445
msgid "modals.delete-team-member-confirm.message"
msgstr "你确定想要从团队中删除这个成员?"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:444
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:963
msgid "modals.delete-webhook.accept"
msgstr "删除webhook"
+#: src/app/main/ui/dashboard/team.cljs:962
msgid "modals.delete-webhook.message"
msgstr "你确定要删除这个webhook吗?"
+#: src/app/main/ui/dashboard/team.cljs:961
msgid "modals.delete-webhook.title"
msgstr "删除webhook"
+#: src/app/main/ui/dashboard/team.cljs:893
msgid "modals.edit-webhook.submit-label"
msgstr "编辑webhook"
+#: src/app/main/ui/dashboard/team.cljs:858
msgid "modals.edit-webhook.title"
msgstr "编辑webhook"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:237
msgid "modals.invite-member-confirm.accept"
msgstr "发送邀请"
+#: src/app/main/ui/dashboard/team.cljs:231, src/app/main/ui/onboarding/team_choice.cljs:156
msgid "modals.invite-member.emails"
msgstr "电子邮件,以逗号分隔"
+#: src/app/main/ui/dashboard/team.cljs:215
msgid "modals.invite-member.repeated-invitation"
msgstr "有些电子邮件是来自当前的团队成员。他们的邀请将不会被发送。"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:208
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:412
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:411
msgid "modals.leave-and-close-confirm.message"
msgstr "您确定要离开 %s 团队吗?"
+#: src/app/main/ui/dashboard/change_owner.cljs:58
msgid "modals.leave-and-reassign.forbidden"
-msgstr ""
-"如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团"
-"队。"
+msgstr "如果不能推选另一个成员作为团队所有者,你就无法离开团队。你或许想要删除该团队。"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:54
msgid "modals.leave-and-reassign.hint1"
msgstr "你是此团队的所有者。在你离开团队之前,请选择其他成员晋升为所有者。"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:77
msgid "modals.leave-and-reassign.promote-and-leave"
msgstr "晋升并退出"
-#: src/app/main/ui/dashboard/sidebar.cljs
+#: src/app/main/ui/dashboard/change_owner.cljs:33
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:48
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:413, src/app/main/ui/dashboard/team.cljs:435
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:434
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:410, src/app/main/ui/dashboard/team.cljs:433
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:359
msgid "modals.promote-owner-confirm.accept"
msgstr "转让所有权"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:358
msgid "modals.promote-owner-confirm.hint"
msgstr "如果你转移所有权,你的角色将变为管理员,失去对这个团队的一些权限。 "
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:357
msgid "modals.promote-owner-confirm.message"
msgstr "您是此团队的所有者,你确定想要将所有者转让给该成员?"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:356
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:76
msgid "notifications.by-code.upgrade-version"
msgstr "有新版本可用,请刷新页面"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:170, src/app/main/ui/dashboard/team.cljs:615
msgid "notifications.invitation-email-sent"
msgstr "成功发送邀请"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:636
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:26, src/app/main/ui/settings/profile.cljs:33
msgid "notifications.profile-saved"
msgstr "个人资料保存成功!"
-#: src/app/main/ui/settings/change_email.cljs
+#: src/app/main/ui/settings/change_email.cljs:46
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:30
msgid "onboarding-v2.welcome.title"
msgstr "欢迎来到Penpot!"
+#: src/app/main/ui/onboarding/team_choice.cljs:227
msgid "onboarding.choice.team-up.continue-creating-team"
msgstr "继续创建团队"
+#: src/app/main/ui/onboarding/team_choice.cljs:237
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:213
msgid "onboarding.choice.team-up.create-team-desc"
msgstr "命名团队后,您将能够邀请他人加入。"
+#: src/app/main/ui/onboarding/team_choice.cljs:222
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:220, src/app/main/ui/onboarding/team_choice.cljs:146
msgid "onboarding.choice.team-up.roles"
msgstr "邀请角色:"
+#: src/app/main/ui/onboarding/team_choice.cljs:230
msgid "onboarding.choice.team-up.start-without-a-team"
msgstr "以个人身份开始"
+#: src/app/main/ui/onboarding/team_choice.cljs:232
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:113
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:303
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:317
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:268
+msgid "onboarding.questions.team-size.11-30"
+msgstr "11-30"
+
+#: src/app/main/ui/onboarding/questions.cljs:269
+msgid "onboarding.questions.team-size.2-10"
+msgstr "2-10"
+
+#: src/app/main/ui/onboarding/questions.cljs:267
+msgid "onboarding.questions.team-size.31-50"
+msgstr "31-50"
+
+#: src/app/main/ui/onboarding/questions.cljs:266
+msgid "onboarding.questions.team-size.more-than-50"
+msgstr "50以上"
+
+#: src/app/main/ui/onboarding/questions.cljs:271
+msgid "onboarding.questions.team-size.personal-project"
+msgstr "我在做个人项目"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:211
+msgid "onboarding.team-modal.create-team"
+msgstr "创建一个团队"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:34
+msgid "onboarding.team-modal.create-team-desc"
+msgstr "团队能够让你与其它Penpot用户协作处理相同的文件和项目。"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:39
+msgid "onboarding.team-modal.create-team-feature-1"
+msgstr "无限制的文件和项目"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:43
+msgid "onboarding.team-modal.create-team-feature-2"
+msgstr "多用户编辑"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:47
+msgid "onboarding.team-modal.create-team-feature-3"
+msgstr "角色管理"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:51
+msgid "onboarding.team-modal.create-team-feature-4"
+msgstr "无限制成员"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:55
+msgid "onboarding.team-modal.create-team-feature-5"
+msgstr "完全免费!"
+
+#: src/app/main/ui/onboarding/team_choice.cljs:32
+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:88
+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:180, 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/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:67, src/app/main/ui/auth.cljs:36
msgid "title.default"
msgstr "Penpot - 面向团队,设计自由"
-#: src/app/main/ui/settings/access-tokens.cljs
+#: src/app/main/ui/settings/access_tokens.cljs:281
msgid "title.settings.access-tokens"
msgstr "个人资料 — 访问令牌"
-#: src/app/main/ui/settings/feedback.cljs
+#: src/app/main/ui/settings/feedback.cljs:107
msgid "title.settings.feedback"
msgstr "提交反馈 - Penpot"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:77
msgid "title.settings.options"
msgstr "设置 - Penpot"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:103
msgid "title.settings.password"
msgstr "密码 - Penpot"
-#: src/app/main/ui/settings/profile.cljs
+#: src/app/main/ui/settings/profile.cljs:121
msgid "title.settings.profile"
msgstr "个人资料 - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:747
msgid "title.team-invitations"
msgstr "邀请函 - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:512
msgid "title.team-members"
msgstr "成员 - %s - Penpot"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1057
msgid "title.team-settings"
msgstr "设置 - %s - Penpot"
+#: src/app/main/ui/dashboard/team.cljs:1010
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:420
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:143
msgid "viewer.breaking-change.description"
msgstr "此共享的链接已失效。创建一个新的链接或向所有者索取一个新的链接。"
+#: src/app/main/ui.cljs:142
msgid "viewer.breaking-change.message"
msgstr "对不起!"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:570
msgid "viewer.empty-state"
msgstr "该页面上未找到任何画框。"
-#: src/app/main/ui/inspect.cljs, src/app/main/ui/viewer.cljs
+#: src/app/main/ui/viewer.cljs:575
msgid "viewer.frame-not-found"
msgstr "画框未找到。"
+#: src/app/main/ui/viewer/header.cljs:342
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:194
msgid "viewer.header.fullscreen"
msgstr "全屏"
+#: src/app/main/ui/viewer/header.cljs:351
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:333
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:237
msgid "viewer.header.sitemap"
msgstr "站点地图"
+#: src/app/main/ui/dashboard/team.cljs:969
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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, 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:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:127
msgid "workspace.assets.create-group"
msgstr "创建组"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:138
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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
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:568
msgid "workspace.assets.duplicate"
msgstr "创建副本"
+#: src/app/main/ui/workspace/sidebar/assets/components.cljs:567
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:441
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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
msgid "workspace.assets.group"
msgstr "组"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:137
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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
msgid "workspace.assets.rename"
msgstr "重命名"
-#: src/app/main/ui/workspace/sidebar/assets.cljs
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:128
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:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+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:743
+msgid "workspace.header.menu.option.edit"
+msgstr "编辑"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "文件"
+
+#: src/app/main/ui/workspace/main_menu.cljs:789
+msgid "workspace.header.menu.option.help-info"
+msgstr "帮助和信息"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "首选项"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:606
+msgid "workspace.layout_grid.editor.options.edit-grid"
+msgstr "编辑网格"
+
+#: src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs:1274
+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:1300
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:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RGBA"
-msgid "shortcuts.toggle-layout-grid"
-msgstr "添加/移除网格布局"
+#: src/app/main/ui/workspace/colorpicker.cljs:379
+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:509, src/app/main/ui/workspace/libraries.cljs:534
+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:516
+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:169
+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:241
+msgid "workspace.options.exporting-complete"
+msgstr "导出完成"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "导出失败"
+
+#: src/app/main/ui/export.cljs:243
+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:177
+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:173
+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:285
+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:189
+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:582
+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, src/app/main/ui/workspace/sidebar.cljs:44
+msgid "workspace.sidebar.collapse"
+msgstr "收起侧边栏"
+
+#: src/app/main/ui/workspace/sidebar/collapsable_button.cljs:25, src/app/main/ui/workspace/sidebar/collapsable_button.cljs:29
+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:77, src/app/main/ui/workspace/sidebar.cljs:95
+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:113
+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:181, src/app/main/ui/workspace/top_toolbar.cljs:182
+msgid "workspace.toolbar.curve"
+msgstr "曲线(%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:161, src/app/main/ui/workspace/top_toolbar.cljs:162
+msgid "workspace.toolbar.ellipse"
+msgstr "椭圆(%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:143, src/app/main/ui/workspace/top_toolbar.cljs:144
+msgid "workspace.toolbar.frame"
+msgstr "画板(%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:60, src/app/main/ui/workspace/top_toolbar.cljs:61
+msgid "workspace.toolbar.image"
+msgstr "图片(%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:133, src/app/main/ui/workspace/top_toolbar.cljs:134
+msgid "workspace.toolbar.move"
+msgstr "移动 (%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:190, src/app/main/ui/workspace/top_toolbar.cljs:191
+msgid "workspace.toolbar.path"
+msgstr "路径(%s)"
+
+#: src/app/main/ui/workspace/top_toolbar.cljs:152, src/app/main/ui/workspace/top_toolbar.cljs:153
+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:170, src/app/main/ui/workspace/top_toolbar.cljs:171
+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:1097
+msgid "workspace.updates.dismiss"
+msgstr "忽略"
+
+#: src/app/main/data/workspace/libraries.cljs:1095
+msgid "workspace.updates.more-info"
+msgstr "更多信息"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "共享库有更新"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+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 0172859f38..f96cec70ac 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,482 @@ 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:132, src/app/main/ui/static.cljs:139, src/app/main/ui/viewer/login.cljs:98
msgid "auth.already-have-account"
msgstr "已經有帳號了嗎?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:270
msgid "auth.check-your-email"
msgstr "檢查你的信箱,點擊信中連結來驗證並開始使用 Penpot。"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:67
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:144
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:41
msgid "auth.demo-warning"
msgstr "此服務僅用於展示,請勿用於實際工作。專案內容將被定期清除。"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:180, src/app/main/ui/viewer/login.cljs:84
msgid "auth.forgot-password"
msgstr "忘記密碼?"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:224
msgid "auth.fullname"
msgstr "全名"
-#: src/app/main/ui/auth/register.cljs
-#, fuzzy
+#: src/app/main/ui/auth/login.cljs:273
+msgid "auth.login-account-title"
+msgstr "登入我的帳號"
+
+#: src/app/main/ui/auth/register.cljs:136, src/app/main/ui/static.cljs:142, src/app/main/ui/viewer/login.cljs:101
msgid "auth.login-here"
msgstr "在此登入"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:186
msgid "auth.login-submit"
msgstr "登入"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:276
+msgid "auth.login-tagline"
+msgstr "Penpot 是用於設計與開發協作,免費且開源的設計工具"
+
+#: src/app/main/ui/auth/login.cljs:213
msgid "auth.login-with-github-submit"
msgstr "GitHub"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:219
msgid "auth.login-with-gitlab-submit"
msgstr "GitLab"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:207
msgid "auth.login-with-google-submit"
msgstr "Google"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:192
msgid "auth.login-with-ldap-submit"
msgstr "LDAP"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:225, src/app/main/ui/auth/login.cljs:246
msgid "auth.login-with-oidc-submit"
msgstr "OpenID"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:60
msgid "auth.new-password"
msgstr "輸入新密碼"
-#: src/app/main/ui/auth/recovery.cljs
-msgid "errors.invalid-recovery-token"
-msgstr "此 Recovery token 是無效的。"
-
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:36
msgid "auth.notifications.password-changed-successfully"
msgstr "已成功更改密碼"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:50
msgid "auth.notifications.profile-not-verified"
msgstr "個人檔案尚未驗證,再繼續之前,請先驗證個人檔案。"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:33
msgid "auth.notifications.recovery-token-sent"
msgstr "密碼重設連結已寄送至您的信箱。"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:46
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:170, src/app/main/ui/auth/register.cljs:94
msgid "auth.password"
msgstr "密碼"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:93
msgid "auth.password-length-hint"
msgstr "至少需要八個字元"
+#: src/app/main/ui/auth/register.cljs:291
msgid "auth.privacy-policy"
msgstr "隱私權政策"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:82
msgid "auth.recovery-request-submit"
msgstr "復原密碼"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:95
msgid "auth.recovery-request-subtitle"
msgstr "我們會寄送一封包含指南的電子郵件給您"
-#: src/app/main/ui/auth/recovery_request.cljs
+#: src/app/main/ui/auth/recovery_request.cljs:94
msgid "auth.recovery-request-title"
msgstr "忘記密碼?"
-#: src/app/main/ui/auth/recovery.cljs
+#: src/app/main/ui/auth/recovery.cljs:71
msgid "auth.recovery-submit"
msgstr "修改密碼"
-#: src/app/main/ui/auth/login.cljs
+#: src/app/main/ui/auth/login.cljs:289, src/app/main/ui/static.cljs:126, src/app/main/ui/viewer/login.cljs:87
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:293, src/app/main/ui/auth/register.cljs:100, src/app/main/ui/auth/register.cljs:233, src/app/main/ui/static.cljs:129, src/app/main/ui/viewer/login.cljs:91
msgid "auth.register-submit"
msgstr "建立帳號"
-#: src/app/main/ui/auth/register.cljs
+#: src/app/main/ui/auth/register.cljs:121
msgid "auth.register-title"
msgstr "建立帳號"
#: src/app/main/ui/auth.cljs
+#, unused
msgid "auth.sidebar-tagline"
msgstr "設計與原型製作的開源解決方案。"
+#: src/app/main/ui/auth/register.cljs:283, 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:268
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:104
+msgid "dashboard.access-tokens.copied-success"
+msgstr "已複製 Token"
+
+#: src/app/main/ui/settings/access_tokens.cljs:191
+msgid "dashboard.access-tokens.create"
+msgstr "產生新的 Token"
+
+#: src/app/main/ui/settings/access-tokens.cljs
+#, unused
+msgid "dashboard.access-tokens.create-success"
+msgstr "已成功建立 Access Token。"
+
+#: src/app/main/ui/settings/access_tokens.cljs:289
+msgid "dashboard.access-tokens.empty.add-one"
+msgstr "按下\"產生新 Token\" 按鈕來產生一個。"
+
+#: src/app/main/ui/settings/access_tokens.cljs:288
+msgid "dashboard.access-tokens.empty.no-access-tokens"
+msgstr "你目前還沒有 Tokens。"
+
+#: src/app/main/ui/settings/access_tokens.cljs:136
+msgid "dashboard.access-tokens.expiration-180-days"
+msgstr "180 天"
+
+#: src/app/main/ui/settings/access_tokens.cljs:133
+msgid "dashboard.access-tokens.expiration-30-days"
+msgstr "30 天"
+
+#: src/app/main/ui/settings/access_tokens.cljs:134
+msgid "dashboard.access-tokens.expiration-60-days"
+msgstr "60 天"
+
+#: src/app/main/ui/settings/access_tokens.cljs:135
+msgid "dashboard.access-tokens.expiration-90-days"
+msgstr "90 天"
+
+#: src/app/main/ui/settings/access_tokens.cljs:132
+msgid "dashboard.access-tokens.expiration-never"
+msgstr "從不"
+
+#: src/app/main/ui/settings/access_tokens.cljs:271
+msgid "dashboard.access-tokens.expired-on"
+msgstr "已於 %s 過期"
+
+#: src/app/main/ui/settings/access_tokens.cljs:272
+msgid "dashboard.access-tokens.expires-on"
+msgstr "將於 %s 過期"
+
+#: src/app/main/ui/settings/access_tokens.cljs:270
+msgid "dashboard.access-tokens.no-expiration"
+msgstr "沒有到期時間"
+
+#: src/app/main/ui/settings/access_tokens.cljs:186
+msgid "dashboard.access-tokens.personal"
+msgstr "個人存取權杖"
+
+#: src/app/main/ui/settings/access_tokens.cljs:187
+msgid "dashboard.access-tokens.personal.description"
+msgstr "個人存取權杖就像是帳號密碼驗證系統的替代方案,且可用於讓第三方應用程式存取 Penpot 內部 API"
+
+#: src/app/main/ui/settings/access_tokens.cljs:143
+msgid "dashboard.access-tokens.token-will-expire"
+msgstr "權杖將於 %s 到期"
+
+#: src/app/main/ui/settings/access_tokens.cljs:144
+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:72
msgid "dashboard.change-email"
msgstr "更改電子郵件"
-#: src/app/main/data/dashboard.cljs, src/app/main/data/dashboard.cljs
+#: src/app/main/data/dashboard.cljs:763, 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:33
#, 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:202
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:110
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:181
msgid "dashboard.export-shapes.how-to"
msgstr "你可以從設計屬性(位於右側邊欄底部)為元素添加匯出設置。"
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:185
msgid "dashboard.export-shapes.how-to-link"
msgstr "Penpot匯出功能的簡介。"
-#: src/app/main/ui/export.cljs
-#, fuzzy
+#: src/app/main/ui/export.cljs:180
msgid "dashboard.export-shapes.no-elements"
msgstr "匯出設定未有任何element。"
-#: src/app/main/ui/export.cljs
+#: src/app/main/ui/export.cljs:191
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:430
msgid "dashboard.export.detail"
msgstr "* 可能會包含元件、圖像、顏色及/或文字編排。"
+#: src/app/main/ui/export.cljs:429
msgid "dashboard.export.explain"
msgstr "你想匯出的單個或多個檔案中使用了共用資料庫,你想要如何處理它們的素材*?"
+#: src/app/main/ui/export.cljs:438
+msgid "dashboard.export.options.all.message"
+msgstr "使用了共用資料庫的檔案將被包含在匯出內,並保持他們的連結關係。"
+
+#: src/app/main/ui/export.cljs:439
msgid "dashboard.export.options.all.title"
msgstr "匯出共享媒體庫"
-#, fuzzy
+#: src/app/main/ui/export.cljs:440
+msgid "dashboard.export.options.detach.message"
+msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 "
+
+#: src/app/main/ui/export.cljs:441
msgid "dashboard.export.options.detach.title"
msgstr "將檔案庫資源視為基本物件"
+#: src/app/main/ui/export.cljs:442
msgid "dashboard.export.options.merge.message"
msgstr "您的檔案將連同所有外部資源將一併匯出到檔案庫中。"
+#: src/app/main/ui/export.cljs:443
+msgid "dashboard.export.options.merge.title"
+msgstr "將共享資料庫的內容加入檔案資料庫"
+
+#: src/app/main/ui/export.cljs:421
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 +494,7 @@ msgstr ""
"字體將會列入本團隊共用檔案的可用字型家族清單。相同字型家族名稱的字體將被分組為**單一字型家族**。可上傳以下格式的字體:**TTF、OTF 和 "
"WOFF**(任何一種)。"
+#: src/app/main/ui/dashboard/fonts.cljs:182
#, markdown
msgid "dashboard.fonts.hero-text2"
msgstr ""
@@ -372,2067 +502,2187 @@ 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:476, src/app/main/ui/dashboard/project_menu.cljs:108
msgid "dashboard.import"
msgstr "匯入檔案"
+#: src/app/main/ui/dashboard/import.cljs:308, 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:312
msgid "dashboard.import.import-error"
msgstr "匯入檔案時發生錯誤。檔案未匯入。"
+#: src/app/main/ui/dashboard/import.cljs:497
msgid "dashboard.import.import-message"
msgstr "已成功匯入 %s 個檔案。"
+#: src/app/main/ui/dashboard/import.cljs:485, src/app/main/ui/dashboard/import.cljs:492
msgid "dashboard.import.import-warning"
msgstr "部份檔案因包含無效物件而被移除。"
+#: src/app/main/ui/dashboard/import.cljs:145
msgid "dashboard.import.progress.process-colors"
msgstr "正在處理顏色"
+#: src/app/main/ui/dashboard/import.cljs:154
msgid "dashboard.import.progress.process-components"
msgstr "正在處理元件"
+#: src/app/main/ui/dashboard/import.cljs:151
msgid "dashboard.import.progress.process-media"
msgstr "正在處理媒體"
+#: src/app/main/ui/dashboard/import.cljs:142
msgid "dashboard.import.progress.process-page"
msgstr "正在處理第 %s 頁"
+#: src/app/main/ui/dashboard/import.cljs:148
msgid "dashboard.import.progress.process-typographies"
msgstr "正在處理字體排版中"
+#: src/app/main/ui/dashboard/import.cljs:136
msgid "dashboard.import.progress.upload-data"
msgstr "上傳資料至伺服器 (%s/%s)"
+#: src/app/main/ui/dashboard/import.cljs:139
msgid "dashboard.import.progress.upload-media"
msgstr "正在上傳檔案:%s"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:114
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:331
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:369
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:47
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:727, 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:32
msgid "dashboard.notifications.email-changed-successfully"
msgstr "已成功更改您的電子郵件地址"
-#: src/app/main/ui/auth/verify_token.cljs
+#: src/app/main/ui/auth/verify_token.cljs:26
msgid "dashboard.notifications.email-verified-successfully"
msgstr "已成功驗證您的電子郵件地址"
-#: src/app/main/ui/settings/password.cljs
+#: src/app/main/ui/settings/password.cljs:36
msgid "dashboard.notifications.password-saved"
msgstr "密碼已儲存成功!"
-#: src/app/main/ui/dashboard/team.cljs
+#: src/app/main/ui/dashboard/team.cljs:1102
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:94, src/app/main/ui/settings/password.cljs:107
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:83
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:75
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:53
msgid "dashboard.select-ui-language"
msgstr "選擇介面語言"
-#: src/app/main/ui/settings/options.cljs
+#: src/app/main/ui/settings/options.cljs:60
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.invalid-email"
-msgstr "請輸入一個有效的電郵地址"
-
-#: src/app/main/ui/settings/change_email.cljs
-msgid "errors.invalid-email-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.token-will-expire"
-msgstr "權杖將於 %s 到期"
-
-msgid "dashboard.export.options.merge.title"
-msgstr "將共享資料庫的內容加入檔案資料庫"
-
-#: 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:563, 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/settings/access-tokens.cljs
-msgid "dashboard.access-tokens.personal"
-msgstr "個人存取權杖"
+#: src/app/main/ui/dashboard/project_menu.cljs:54
+msgid "dashboard.success-move-project"
+msgstr "已成功移動您的專案"
-msgid "dashboard.export.options.detach.message"
-msgstr "共用資料庫將不包含在匯出檔案內,且資產不會被加入資料庫。 "
+#: src/app/main/ui/dashboard/team.cljs:1073
+msgid "dashboard.team-info"
+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:1091
+msgid "dashboard.team-members"
+msgstr "團隊成員"
-#: src/app/main/ui/workspace/header.cljs, src/app/main/ui/dashboard/file_menu.cljs
+#: src/app/main/ui/dashboard/team.cljs:1106
+msgid "dashboard.team-projects"
+msgstr "團隊專案"
+
+#: src/app/main/ui/settings/options.cljs:58
+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:68
+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:882
+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:883
+msgid "dashboard.webhooks.active.explain"
+msgstr "當觸發此Webhook時,將會傳遞事件詳細信息"
-msgid "errors.paste-data-validation"
-msgstr "剪貼簿中的資料無效"
+#: src/app/main/ui/dashboard/team.cljs:873
+msgid "dashboard.webhooks.content-type"
+msgstr "內容類型"
-msgid "dashboard.import.analyze-error.components-v2"
-msgstr "檔案中啟用了 Components v2 但這個團隊尚未支援。"
+#: src/app/main/ui/dashboard/team.cljs:906
+msgid "dashboard.webhooks.create"
+msgstr "設置Webhook"
-#: src/app/main/ui/confirm.cljs
+#: src/app/main/ui/dashboard/team.cljs:796
+msgid "dashboard.webhooks.create.success"
+msgstr "成功添加Webhook。"
+
+#: src/app/main/ui/dashboard/team.cljs:903
+msgid "dashboard.webhooks.description"
+msgstr "當Penpot 發生特定事件時,Webhook 是一種使其他網站和應用程式收到通知的簡單方法。我們會向你指定的每個網址發送 POST 請求。"
+
+#: src/app/main/ui/dashboard/team.cljs:1026
+msgid "dashboard.webhooks.empty.add-one"
+msgstr "按「設置Webhook」添加。"
+
+#: src/app/main/ui/dashboard/team.cljs:1025
+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:67
+msgid "dashboard.your-email"
+msgstr "電子郵件"
+
+#: src/app/main/ui/settings/profile.cljs:59
+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:514, src/app/main/ui/dashboard/team.cljs:749, src/app/main/ui/dashboard/team.cljs:1012, src/app/main/ui/dashboard/team.cljs:1059
+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:281
+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:700
msgid "errors.auth-provider-not-allowed"
msgstr "此設定檔不允許此驗證提供者"
+
+#: src/app/main/ui/auth/login.cljs:61
+msgid "errors.auth-provider-not-configured"
+msgstr "尚未配置身份驗證供應商。"
+
+#: src/app/main/errors.cljs:105
+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:1596
+msgid "errors.clipboard-not-implemented"
+msgstr "你的瀏覽器無法執行此作業"
+
+#: src/app/main/ui/auth/verify_token.cljs:81, src/app/main/ui/settings/change_email.cljs:29
+msgid "errors.email-already-exists"
+msgstr "電子信箱已被使用"
+
+#: src/app/main/ui/auth/verify_token.cljs:86
+msgid "errors.email-already-validated"
+msgstr "電子信箱已完成驗證。"
+
+#, unused
+msgid "errors.email-as-password"
+msgstr "你的電郵地址不能用作密碼"
+
+#: src/app/main/data/users.cljs:702, src/app/main/ui/auth/register.cljs:53
+msgid "errors.email-domain-not-allowed"
+msgstr "不允許此域名"
+
+#: src/app/main/ui/auth/recovery_request.cljs:57, src/app/main/ui/auth/register.cljs:56, src/app/main/ui/auth/register.cljs:59, src/app/main/ui/dashboard/team.cljs:599, src/app/main/ui/settings/change_email.cljs:37
+msgid "errors.email-has-permanent-bounces"
+msgstr "電子郵件«%s»有許多永久退件報告。"
+
+#: src/app/main/ui/dashboard/team.cljs:187
+msgid "errors.email-spam-or-permanent-bounces"
+msgstr "電子郵件 «%s» 已被報告為垃圾郵件或永久退件。"
+
+#: src/app/main/errors.cljs:233
+msgid "errors.feature-mismatch"
+msgstr "你正開啟的檔案包含Penpot尚未支援或停用'%s' 功能。"
+
+#: src/app/main/errors.cljs:237, src/app/main/errors.cljs:251
+msgid "errors.feature-not-supported"
+msgstr "不支援 「%s」功能。"
+
+#: src/app/main/data/users.cljs:708, src/app/main/ui/auth/login.cljs:64, src/app/main/ui/auth/login.cljs:105, src/app/main/ui/auth/register.cljs:65, src/app/main/ui/auth/register.cljs:205, src/app/main/ui/auth/verify_token.cljs:91, src/app/main/ui/dashboard/team.cljs:190, src/app/main/ui/onboarding/team_choice.cljs:93, src/app/main/ui/settings/access_tokens.cljs:80, src/app/main/ui/settings/feedback.cljs:49
+msgid "errors.generic"
+msgstr "發生了一些錯誤。"
+
+#: src/app/main/ui/components/color_input.cljs:57
+msgid "errors.invalid-color"
+msgstr "顏色無效"
+
+#: src/app/main/ui/auth/register.cljs, src/app/main/ui/auth/login.cljs, src/app/main/ui/auth/recovery_request.cljs
+#, unused
+msgid "errors.invalid-email"
+msgstr "請輸入一個有效的電郵地址"
+
+#: src/app/main/ui/settings/change_email.cljs
+#, unused
+msgid "errors.invalid-email-confirmation"
+msgstr "電郵地址必須相同"
+
+#: src/app/main/ui/auth/recovery.cljs:32
+msgid "errors.invalid-recovery-token"
+msgstr "此 Recovery token 是無效的。"
+
+#: src/app/main/ui/static.cljs:61
+msgid "errors.invite-invalid"
+msgstr "邀請無效"
+
+#: src/app/main/ui/static.cljs:62
+msgid "errors.invite-invalid.info"
+msgstr "本邀請或已被取消或過期。"
+
+#: src/app/main/ui/auth/login.cljs:90
+msgid "errors.ldap-disabled"
+msgstr "LDAP 驗證已停用。"
+
+#: src/app/main/errors.cljs:245
+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:594
+msgid "errors.member-is-muted"
+msgstr "您邀請的人員設置了電子郵件靜音(垃圾郵件報告或高退件率)。"
+
+#: src/app/main/ui/settings/password.cljs
+#, unused
+msgid "errors.password-invalid-confirmation"
+msgstr "確認密碼必須相符"
+
+#: src/app/main/ui/settings/password.cljs
+#, unused
+msgid "errors.password-too-short"
+msgstr "密碼至少需有 8 個字元"
+
+#: src/app/main/errors.cljs:130
+msgid "errors.paste-data-validation"
+msgstr "剪貼簿中的資料無效"
+
+#: src/app/main/data/users.cljs:698, src/app/main/ui/auth/login.cljs:86, src/app/main/ui/auth/login.cljs:94
+msgid "errors.profile-blocked"
+msgstr "已封鎖用戶"
+
+#: src/app/main/data/users.cljs:696, src/app/main/ui/auth/register.cljs:50
+msgid "errors.registration-disabled"
+msgstr "目前並不開放註冊。"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:365, src/app/main/ui/dashboard/team.cljs:378
+msgid "errors.team-leave.insufficient-members"
+msgstr "成員不足,無法離開團隊,您可能希望將其刪除。"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:368, src/app/main/ui/dashboard/team.cljs:381
+msgid "errors.team-leave.member-does-not-exists"
+msgstr "查無此人。"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:371, src/app/main/ui/dashboard/team.cljs:384
+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:59
+msgid "errors.unexpected-token"
+msgstr "未知的 token"
+
+#: src/app/main/ui/dashboard/team.cljs:817
+msgid "errors.webhooks.connection"
+msgstr "連線錯誤,無法接上網址"
+
+#: src/app/main/ui/dashboard/team.cljs:811
+msgid "errors.webhooks.invalid-uri"
+msgstr "網址未能通過驗証。"
+
+#: src/app/main/ui/dashboard/team.cljs:970
+msgid "errors.webhooks.last-delivery"
+msgstr "上一次傳送未能成功。"
+
+#: src/app/main/ui/dashboard/team.cljs:813, src/app/main/ui/dashboard/team.cljs:973
+msgid "errors.webhooks.ssl-validation"
+msgstr "SSL證書驗證錯誤。"
+
+#: src/app/main/ui/dashboard/team.cljs:815
+msgid "errors.webhooks.timeout"
+msgstr "連線逾時"
+
+#: src/app/main/ui/dashboard/team.cljs:809
+msgid "errors.webhooks.unexpected"
+msgstr "驗證時出現未有預料的錯誤"
+
+#: src/app/main/ui/dashboard/team.cljs:819, src/app/main/ui/dashboard/team.cljs:976
+msgid "errors.webhooks.unexpected-status"
+msgstr "未預料狀態 %s"
+
+#: src/app/main/ui/auth/login.cljs:98, src/app/main/ui/auth/login.cljs:102
+msgid "errors.wrong-credentials"
+msgstr "電子郵件或密碼似乎有誤。"
+
+#: src/app/main/ui/settings/password.cljs
+#, unused
+msgid "errors.wrong-old-password"
+msgstr "舊密碼不正確"
+
+#: src/app/main/ui/settings/feedback.cljs:74
+msgid "feedback.description"
+msgstr "狀況描述"
+
+#: src/app/main/ui/settings/feedback.cljs:92
+msgid "feedback.discourse-go-to"
+msgstr "前往 Penpot 討論區"
+
+#: src/app/main/ui/settings/feedback.cljs:86
+msgid "feedback.discourse-subtitle1"
+msgstr "歡迎光臨。如需協助,在發文求助前請先查閱相類內容。"
+
+#: src/app/main/ui/settings/feedback.cljs:85
+msgid "feedback.discourse-title"
+msgstr "Penpot 社群"
+
+#: src/app/main/ui/settings/feedback.cljs:69
+msgid "feedback.subject"
+msgstr "主旨"
+
+#: src/app/main/ui/settings/feedback.cljs:66
+msgid "feedback.subtitle"
+msgstr "請描述您來函的因由,分類說明是問題、想法還是疑問。我們將儘快回覆。"
+
+#: src/app/main/ui/settings/feedback.cljs:65
+msgid "feedback.title"
+msgstr "電子郵件"
+
+#: src/app/main/ui/settings/feedback.cljs:102
+msgid "feedback.twitter-go-to"
+msgstr "前往X"
+
+#: src/app/main/ui/settings/feedback.cljs:96
+msgid "feedback.twitter-subtitle1"
+msgstr "協助解你的決技術問題。"
+
+#: src/app/main/ui/settings/feedback.cljs:95
+msgid "feedback.twitter-title"
+msgstr "X支援帳戶"
+
+#: src/app/main/ui/settings/password.cljs:29
+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:152
+msgid "inspect.empty.help"
+msgstr "如果您想瞭解更多關於設計檢查的資訊,請訪問Penpot的幫助中心"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:155
+msgid "inspect.empty.more-info"
+msgstr "有關檢查的詳細資訊"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:124
+msgid "inspect.tabs.code.selected.circle"
+msgstr "圖形"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:126
+msgid "inspect.tabs.code.selected.curve"
+msgstr "曲線"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:127
+msgid "inspect.tabs.code.selected.frame"
+msgstr "畫板"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:128
+msgid "inspect.tabs.code.selected.group"
+msgstr "群組"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:129
+msgid "inspect.tabs.code.selected.image"
+msgstr "圖像"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:131
+msgid "inspect.tabs.code.selected.path"
+msgstr "路徑"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:132
+msgid "inspect.tabs.code.selected.rect"
+msgstr "矩形"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:133
+msgid "inspect.tabs.code.selected.svg-raw"
+msgstr "SVG"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:134
+msgid "inspect.tabs.code.selected.text"
+msgstr "文字"
+
+#: src/app/main/ui/viewer/inspect/right_sidebar.cljs:96
+msgid "inspect.tabs.info"
+msgstr "資訊"
+
+#: src/app/main/data/common.cljs:88, src/app/main/ui/dashboard/import.cljs:531
+msgid "labels.accept"
+msgstr "接受"
+
+#: src/app/main/ui/dashboard/team.cljs:125, src/app/main/ui/dashboard/team.cljs:295, src/app/main/ui/dashboard/team.cljs:538, src/app/main/ui/dashboard/team.cljs:568, src/app/main/ui/onboarding/team_choice.cljs:65
+msgid "labels.admin"
+msgstr "管理員"
+
+#: src/app/main/ui/workspace/comments.cljs
+#, unused
+msgid "labels.all"
+msgstr "全部"
+
+#: src/app/main/ui/auth/register.cljs:287
+msgid "labels.and"
+msgstr "及"
+
+#: src/app/main/ui/static.cljs:282
+msgid "labels.bad-gateway.desc-message"
+msgstr "伺服器正在進行小型維修,請稍後重試。"
+
+#: src/app/main/ui/static.cljs:281
+msgid "labels.bad-gateway.main-message"
+msgstr "無效的閘道"
+
+#: src/app/main/data/common.cljs:126, src/app/main/ui/dashboard/change_owner.cljs:68, src/app/main/ui/dashboard/import.cljs:518, src/app/main/ui/dashboard/team.cljs:889, src/app/main/ui/delete_shared.cljs:35, src/app/main/ui/export.cljs:165, src/app/main/ui/export.cljs:463, src/app/main/ui/settings/access_tokens.cljs:177, src/app/main/ui/viewer/share_link.cljs:203, src/app/main/ui/workspace/sidebar/assets/groups.cljs:145
+msgid "labels.cancel"
+msgstr "取消"
+
+#: src/app/main/ui/dashboard/projects.cljs:93, src/app/main/ui/export.cljs:481, src/app/main/ui/settings/access_tokens.cljs:172, src/app/main/ui/viewer/login.cljs:71, src/app/main/ui/viewer/share_link.cljs:174, src/app/main/ui/workspace/libraries.cljs:530
+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:91
+msgid "labels.confirm-password"
+msgstr "確認密碼"
+
+#: src/app/main/ui/dashboard/import.cljs:524, src/app/main/ui/export.cljs:468, src/app/main/ui/onboarding/newsletter.cljs:101
+msgid "labels.continue"
+msgstr "繼續"
+
+#: src/app/main/ui/viewer/login.cljs:69
+msgid "labels.continue-with-penpot"
+msgstr "以Penpot帳戶繼續"
+
+#: src/app/main/ui/workspace/sidebar/assets/groups.cljs:153, 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:925, src/app/main/ui/settings/access_tokens.cljs:198, src/app/main/ui/workspace/sidebar/options/menus/component.cljs:209
+msgid "labels.delete"
+msgstr "刪除"
+
+#: src/app/main/ui/dashboard/team.cljs:668
+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:349, src/app/main/ui/dashboard/fonts.cljs:252, src/app/main/ui/dashboard/team.cljs:923, 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:123, src/app/main/ui/dashboard/team.cljs:298, src/app/main/ui/dashboard/team.cljs:539, src/app/main/ui/dashboard/team.cljs:572, src/app/main/ui/onboarding/team_choice.cljs:64
+msgid "labels.editor"
+msgstr "編輯者"
+
+#: src/app/main/ui/dashboard/team.cljs:681
+msgid "labels.expired-invitation"
+msgstr "過期"
+
+#: src/app/main/ui/export.cljs:174
+msgid "labels.export"
+msgstr "匯出"
+
+#: src/app/main/ui/settings/feedback.cljs:48
+msgid "labels.feedback-disabled"
+msgstr "已停用迴響"
+
+#: src/app/main/ui/settings/feedback.cljs:39
+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:104, src/app/main/ui/auth/register.cljs:255, src/app/main/ui/static.cljs:155, src/app/main/ui/viewer/login.cljs:111
+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:366
+msgid "labels.internal-error.main-message"
+msgstr "內部錯誤"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:516, src/app/main/ui/dashboard/team.cljs:94, src/app/main/ui/dashboard/team.cljs:102, src/app/main/ui/dashboard/team.cljs:728
+msgid "labels.invitations"
+msgstr "邀請"
+
+#: src/app/main/ui/settings/options.cljs:48
+msgid "labels.language"
+msgstr "語言"
+
+#: src/app/main/ui/viewer/header.cljs:209
+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:487
+msgid "labels.member"
+msgstr "成員"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:510, src/app/main/ui/dashboard/team.cljs:92, src/app/main/ui/dashboard/team.cljs:100
+msgid "labels.members"
+msgstr "成員"
+
+#: src/app/main/ui/settings/password.cljs:84
+msgid "labels.new-password"
+msgstr "新密碼"
+
+#: src/app/main/ui/dashboard/team.cljs:714
+msgid "labels.no-invitations"
+msgstr "沒有待處理的邀請。"
+
+#: src/app/main/ui/static.cljs
+#, unused
+msgid "labels.not-found.desc-message"
+msgstr "此頁面可能不存在,或者您無權訪問。"
+
+#: src/app/main/ui/static.cljs:269
+msgid "labels.not-found.main-message"
+msgstr "喔不!"
+
+#: src/app/main/ui/dashboard/projects.cljs:239, src/app/main/ui/dashboard/team.cljs:1116
+msgid "labels.num-of-files"
+msgid_plural "labels.num-of-files"
+msgstr[0] "%s 個檔案"
+
+#: src/app/main/ui/dashboard/team.cljs:1111
+msgid "labels.num-of-projects"
+msgid_plural "labels.num-of-projects"
+msgstr[0] "%s 個專案"
+
+#: src/app/main/ui/settings/password.cljs:77
+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:305, src/app/main/ui/dashboard/team.cljs:537, src/app/main/ui/dashboard/team.cljs:1097
+msgid "labels.owner"
+msgstr "擁有者"
+
+#: src/app/main/ui/settings/sidebar.cljs:87
+msgid "labels.password"
+msgstr "密碼"
+
+#: src/app/main/ui/dashboard/team.cljs:682
+msgid "labels.pending-invitation"
+msgstr "待辦"
+
+#: src/app/main/ui/settings/profile.cljs:125, 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:335
+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:153
+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:665
+msgid "labels.resend-invitation"
+msgstr "重新發送邀請"
+
+#: src/app/main/ui/static.cljs:284, src/app/main/ui/static.cljs:293, src/app/main/ui/static.cljs:371
+msgid "labels.retry"
+msgstr "重試"
+
+#: src/app/main/ui/dashboard/team.cljs:488, src/app/main/ui/dashboard/team.cljs:729
+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:79
+msgid "labels.send"
+msgstr "傳送"
+
+#: src/app/main/ui/settings/feedback.cljs:79
+msgid "labels.sending"
+msgstr "正在傳送…"
+
+#: src/app/main/ui/static.cljs:291
+msgid "labels.service-unavailable.desc-message"
+msgstr "系統正在進行定期保養。"
+
+#: src/app/main/ui/static.cljs:290
+msgid "labels.service-unavailable.main-message"
+msgstr "暫停服務"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:530, src/app/main/ui/dashboard/team.cljs:93, src/app/main/ui/dashboard/team.cljs:107, src/app/main/ui/settings/options.cljs:81, 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:108
+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:128, src/app/main/ui/dashboard/team.cljs:301, src/app/main/ui/dashboard/team.cljs:540
+msgid "labels.viewer"
+msgstr "檢視者"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:523, src/app/main/ui/dashboard/team.cljs:95, src/app/main/ui/dashboard/team.cljs:105, src/app/main/ui/dashboard/team.cljs:901
+msgid "labels.webhooks"
+msgstr "Webhook"
+
+#: src/app/main/ui/dashboard/team.cljs:256
+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:451
+msgid "media.loading"
+msgstr "正在載入圖片…"
+
+#: src/app/main/ui/settings/change_email.cljs:111
+msgid "modals.change-email.confirm-email"
+msgstr "驗證新電子郵件"
+
+#: src/app/main/ui/settings/change_email.cljs:99
+msgid "modals.change-email.info"
+msgstr "我們將寄送郵件至您目前的電子郵件信箱 “%s” 以確認身分。"
+
+#: src/app/main/ui/settings/change_email.cljs:104
+msgid "modals.change-email.new-email"
+msgstr "新電郵"
+
+#: src/app/main/ui/settings/change_email.cljs:119
+msgid "modals.change-email.submit"
+msgstr "更改電子郵件"
+
+#: src/app/main/ui/settings/change_email.cljs:92
+msgid "modals.change-email.title"
+msgstr "更改你的電郵"
+
+#: src/app/main/ui/dashboard/team.cljs:894
+msgid "modals.create-webhook.submit-label"
+msgstr "設置Webhook"
+
+#: src/app/main/ui/dashboard/team.cljs:859
+msgid "modals.create-webhook.title"
+msgstr "設置Webhook"
+
+#: src/app/main/ui/dashboard/team.cljs:870
+msgid "modals.create-webhook.url.label"
+msgstr "訊息負載網址"
+
+#: src/app/main/ui/dashboard/team.cljs:871
+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:446
+msgid "modals.delete-team-member-confirm.accept"
+msgstr "刪除成員"
+
+#: src/app/main/ui/dashboard/team.cljs:444
+msgid "modals.delete-team-member-confirm.title"
+msgstr "刪除團隊成員"
+
+#: src/app/main/ui/dashboard/team.cljs:961
+msgid "modals.delete-webhook.title"
+msgstr "刪除 Webhook"
+
+#: src/app/main/ui/dashboard/team.cljs:893
+msgid "modals.edit-webhook.submit-label"
+msgstr "修改 Webhook"
+
+#: src/app/main/ui/dashboard/team.cljs:858
+msgid "modals.edit-webhook.title"
+msgstr "修改 Webhook"
+
+#: src/app/main/ui/dashboard/change_owner.cljs:58
+msgid "modals.leave-and-reassign.forbidden"
+msgstr "如果沒有其他成員晉升為團隊的擁有者,您則不能離開團隊。或者您可以選擇刪除該團隊。"
+
+#: src/app/main/ui/dashboard/change_owner.cljs:48
+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:413, src/app/main/ui/dashboard/team.cljs:435
+msgid "modals.leave-confirm.accept"
+msgstr "離開團隊"
+
+#: src/app/main/ui/dashboard/sidebar.cljs:401, src/app/main/ui/dashboard/team.cljs:434
+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:410, src/app/main/ui/dashboard/team.cljs:433
+msgid "modals.leave-confirm.title"
+msgstr "正在離開團隊"
+
+#: src/app/main/ui/dashboard/team.cljs:357
+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:46
+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:88
+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:180, 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:67, src/app/main/ui/auth.cljs:36
+msgid "title.default"
+msgstr "Penpot - 給團隊設計的自由"
+
+#: src/app/main/ui/settings/feedback.cljs:107
+msgid "title.settings.feedback"
+msgstr "提供回饋 - Penpot"
+
+#: src/app/main/ui/settings/options.cljs:77
+msgid "title.settings.options"
+msgstr "設定 - Penpot"
+
+#: src/app/main/ui/settings/password.cljs:103
+msgid "title.settings.password"
+msgstr "密碼 - Penpot"
+
+#: src/app/main/ui/settings/profile.cljs:121
+msgid "title.settings.profile"
+msgstr "個人資料 - Penpot"
+
+#: src/app/main/ui/dashboard/team.cljs:512
+msgid "title.team-members"
+msgstr "成員 - %s - Penpot"
+
+#: src/app/main/ui/dashboard/team.cljs:1057
+msgid "title.team-settings"
+msgstr "設定 - %s - Penpot"
+
+#: src/app/main/ui/viewer.cljs:420
+msgid "title.viewer"
+msgstr "%s - 檢視模式 - Penpot"
+
+#: src/app/main/ui/workspace.cljs:190
+msgid "title.workspace"
+msgstr "%s - Penpot"
+
+#: src/app/main/ui.cljs:143
+msgid "viewer.breaking-change.description"
+msgstr "這個共用連結已失效,建立一個新連結,或向擁有者要求一個。"
+
+#: src/app/main/ui.cljs:142
+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:237
+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:136, src/app/main/ui/dashboard/grid.cljs:168, src/app/main/ui/workspace/sidebar/assets/colors.cljs:487, src/app/main/ui/workspace/sidebar/assets.cljs:150
+msgid "workspace.assets.colors"
+msgstr "顏色"
+
+#: src/app/main/ui/dashboard/grid.cljs:132, src/app/main/ui/dashboard/grid.cljs:147, src/app/main/ui/workspace/sidebar/assets/components.cljs:509, 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:573, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:424, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:445
+msgid "workspace.assets.delete"
+msgstr "刪除"
+
+#: src/app/main/ui/workspace/context_menu.cljs:534, src/app/main/ui/workspace/sidebar/assets/components.cljs:568
+msgid "workspace.assets.duplicate"
+msgstr "複本"
+
+#: src/app/main/ui/workspace/sidebar/assets/colors.cljs:247, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:441
+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:577, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:428, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:450
+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:562, src/app/main/ui/workspace/sidebar/assets/graphics.cljs:421, src/app/main/ui/workspace/sidebar/assets/groups.cljs:62, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:436
+msgid "workspace.assets.rename"
+msgstr "重新命名"
+
+#: src/app/main/ui/dashboard/grid.cljs:140, src/app/main/ui/dashboard/grid.cljs:195, src/app/main/ui/workspace/sidebar/assets/typographies.cljs:399, 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:205, 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:65
+msgid "workspace.assets.ungroup"
+msgstr "取消群組"
+
+#: src/app/main/ui/workspace/main_menu.cljs:732
+msgid "workspace.header.menu.option.file"
+msgstr "檔案"
+
+#: src/app/main/ui/workspace/main_menu.cljs:765
+msgid "workspace.header.menu.option.preferences"
+msgstr "偏好設定"
+
+#: src/app/main/ui/workspace/main_menu.cljs:754
+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:215
+msgid "workspace.libraries.colors.rgba"
+msgstr "RGBA"
+
+#: src/app/main/ui/workspace/libraries.cljs:509, src/app/main/ui/workspace/libraries.cljs:534
+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:516
+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:169
+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:241
+msgid "workspace.options.exporting-complete"
+msgstr "完成匯出"
+
+#: src/app/main/ui/export.cljs:173, src/app/main/ui/export.cljs:242, 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:240
+msgid "workspace.options.exporting-object-error"
+msgstr "匯出失敗"
+
+#: src/app/main/ui/export.cljs:243
+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:173
+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:285
+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:1097
+msgid "workspace.updates.dismiss"
+msgstr "解散"
+
+#: src/app/main/data/workspace/libraries.cljs:1093
+msgid "workspace.updates.there-are-updates"
+msgstr "共用檔案庫有更新"
+
+#: src/app/main/data/workspace/libraries.cljs:1100
+msgid "workspace.updates.update"
+msgstr "更新"
+
+#, unused
+msgid "workspace.viewport.click-to-close-path"
+msgstr "點擊以關閉路徑"
diff --git a/frontend/vendor/text_editor_v2.js b/frontend/vendor/text_editor_v2.js
new file mode 100644
index 0000000000..96683089f3
--- /dev/null
+++ b/frontend/vendor/text_editor_v2.js
@@ -0,0 +1,2788 @@
+var __typeError = (msg) => {
+ throw TypeError(msg);
+};
+var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
+var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
+var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
+var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
+var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
+var _timeout, _time, _hasPendingChanges, _onTimeout, _rootNode, _currentNode, _added, _removed, _updated, _textEditor, _selection, _ranges, _range, _focusNode, _focusOffset, _anchorNode, _anchorOffset, _savedSelection, _textNodeIterator, _currentStyle, _inertElement, _debug, _mutations, _styleDefaults, _SelectionController_instances, applyDefaultStylesToCurrentStyle_fn, applyStylesToCurrentStyle_fn, updateCurrentStyle_fn, _onSelectionChange, notifyStyleChange_fn, setup_fn, getSavedRange_fn, applyStylesTo_fn, _element, _events, _root, _changeController, _selectionController, _selectionImposterElement, _styleDefaults2, _TextEditor_instances, setupElementProperties_fn, setupRoot_fn, _onChange, _onStyleChange, setup_fn2, createSelectionImposter_fn, _onBlur, _onFocus, _onPaste, _onCut, _onCopy, _onBeforeInput, _onInput, notifyLayout_fn;
+function copy(event, editor) {
+}
+function cut(event, editor) {
+}
+let canvas = null;
+let context = null;
+function getContext() {
+ if (!canvas) {
+ canvas = createCanvas(1, 1);
+ }
+ if (!context) {
+ context = canvas.getContext("2d");
+ }
+ return context;
+}
+function createCanvas(width, height) {
+ if ("OffscreenCanvas" in globalThis) {
+ return new OffscreenCanvas(width, height);
+ }
+ return document.createElement("canvas");
+}
+function getByteAsHex(byte) {
+ return byte.toString(16).padStart(2, "0");
+}
+function getColor(fillStyle) {
+ const context2 = getContext();
+ context2.fillStyle = fillStyle;
+ context2.fillRect(0, 0, 1, 1);
+ const imageData = context2.getImageData(0, 0, 1, 1);
+ const [r, g, b, a] = imageData.data;
+ return [`#${getByteAsHex(r)}${getByteAsHex(g)}${getByteAsHex(b)}`, a / 255];
+}
+function getFills(fillStyle) {
+ const [color, opacity] = getColor(fillStyle);
+ return `[["^ ","~:fill-color","${color}","~:fill-opacity",${opacity}]]`;
+}
+function mergeStyleDeclarations(target, source) {
+ for (let index = 0; index < source.length; index++) {
+ const styleName = source.item(index);
+ target.setProperty(styleName, source.getPropertyValue(styleName));
+ }
+ return target;
+}
+function getComputedStyle(element) {
+ const inertElement = document.createElement("div");
+ let currentElement = element;
+ while (currentElement) {
+ for (let index = 0; index < currentElement.style.length; index++) {
+ const styleName = currentElement.style.item(index);
+ const currentValue = inertElement.style.getPropertyValue(styleName);
+ if (currentValue) {
+ const priority = currentElement.style.getPropertyPriority(styleName);
+ if (priority === "important") {
+ const newValue = currentElement.style.getPropertyValue(styleName);
+ inertElement.style.setProperty(styleName, newValue);
+ }
+ } else {
+ inertElement.style.setProperty(
+ styleName,
+ currentElement.style.getPropertyValue(styleName)
+ );
+ }
+ }
+ currentElement = currentElement.parentElement;
+ }
+ return inertElement.style;
+}
+function normalizeStyles(styleDeclaration) {
+ const color = styleDeclaration.getPropertyValue("color");
+ if (color) {
+ styleDeclaration.removeProperty("color");
+ styleDeclaration.setProperty("--fills", getFills(color));
+ }
+ const fontFamily = styleDeclaration.getPropertyValue("font-family");
+ const fontId = styleDeclaration.getPropertyPriority("--font-id");
+ if (fontFamily && !fontId) {
+ styleDeclaration.removeProperty("font-family");
+ }
+ return styleDeclaration;
+}
+function setStyle(element, styleName, styleValue, styleUnit) {
+ if (styleName.startsWith("--") && typeof styleValue !== "string" && typeof styleValue !== "number") {
+ if (styleName === "--fills" && styleValue === null) debugger;
+ element.style.setProperty(styleName, JSON.stringify(styleValue));
+ } else {
+ element.style.setProperty(styleName, styleValue + (styleUnit ?? ""));
+ }
+ return element;
+}
+function getStyleFromDeclaration(style, styleName, styleUnit) {
+ if (styleName.startsWith("--")) {
+ return style.getPropertyValue(styleName);
+ }
+ const styleValue = style.getPropertyValue(styleName);
+ if (styleValue.endsWith(styleUnit)) {
+ return styleValue.slice(0, -styleUnit.length);
+ }
+ return styleValue;
+}
+function setStylesFromObject(element, allowedStyles, styleObject) {
+ for (const [styleName, styleUnit] of allowedStyles) {
+ if (!(styleName in styleObject)) {
+ continue;
+ }
+ const styleValue = styleObject[styleName];
+ if (styleValue) {
+ setStyle(element, styleName, styleValue, styleUnit);
+ }
+ }
+ return element;
+}
+function setStylesFromDeclaration(element, allowedStyles, styleDeclaration) {
+ for (const [styleName, styleUnit] of allowedStyles) {
+ const styleValue = getStyleFromDeclaration(styleDeclaration, styleName, styleUnit);
+ if (styleValue) {
+ setStyle(element, styleName, styleValue, styleUnit);
+ }
+ }
+ return element;
+}
+function setStyles(element, allowedStyles, styleObjectOrDeclaration) {
+ if (styleObjectOrDeclaration instanceof CSSStyleDeclaration) {
+ return setStylesFromDeclaration(
+ element,
+ allowedStyles,
+ styleObjectOrDeclaration
+ );
+ }
+ return setStylesFromObject(element, allowedStyles, styleObjectOrDeclaration);
+}
+function mergeStyles(allowedStyles, styleDeclaration, newStyles) {
+ const mergedStyles = {};
+ for (const [styleName, styleUnit] of allowedStyles) {
+ if (styleName in newStyles) {
+ mergedStyles[styleName] = newStyles[styleName];
+ } else {
+ mergedStyles[styleName] = getStyleFromDeclaration(styleDeclaration, styleName, styleUnit);
+ }
+ }
+ return mergedStyles;
+}
+function isDisplayBlock(style) {
+ return style.display === "block";
+}
+function createRandomId() {
+ return Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);
+}
+function createElement(tag, options) {
+ const element = document.createElement(tag);
+ if (options == null ? void 0 : options.attributes) {
+ Object.entries(options.attributes).forEach(
+ ([name, value]) => element.setAttribute(name, value)
+ );
+ }
+ if (options == null ? void 0 : options.data) {
+ Object.entries(options.data).forEach(
+ ([name, value]) => element.dataset[name] = value
+ );
+ }
+ if ((options == null ? void 0 : options.styles) && (options == null ? void 0 : options.allowedStyles)) {
+ setStyles(element, options.allowedStyles, options.styles);
+ }
+ if (options == null ? void 0 : options.children) {
+ if (Array.isArray(options.children)) {
+ element.append(...options.children);
+ } else {
+ element.appendChild(options.children);
+ }
+ }
+ return element;
+}
+function isElement(element, nodeName) {
+ return element.nodeType === Node.ELEMENT_NODE && element.nodeName === nodeName.toUpperCase();
+}
+function isOffsetAtStart(node, offset) {
+ return offset === 0;
+}
+function isOffsetAtEnd(node, offset) {
+ if (node.nodeType === Node.TEXT_NODE) {
+ return node.nodeValue.length === offset;
+ }
+ return true;
+}
+const TAG$3 = "BR";
+function createLineBreak() {
+ return document.createElement(TAG$3);
+}
+function isLineBreak(node) {
+ return node.nodeType === Node.ELEMENT_NODE && node.nodeName === TAG$3;
+}
+const TAG$2 = "SPAN";
+const TYPE$2 = "inline";
+const QUERY$1 = `[data-itype="${TYPE$2}"]`;
+const STYLES$2 = [
+ ["--typography-ref-id"],
+ ["--typography-ref-file"],
+ ["--font-id"],
+ ["--font-variant-id"],
+ ["--fills"],
+ ["font-variant"],
+ ["font-family"],
+ ["font-size", "px"],
+ ["font-weight"],
+ ["font-style"],
+ ["line-height"],
+ ["letter-spacing", "px"],
+ ["text-decoration"],
+ ["text-transform"]
+];
+function isInline(node) {
+ if (!node) return false;
+ if (!isElement(node, TAG$2)) return false;
+ if (node.dataset.itype !== TYPE$2) return false;
+ return true;
+}
+function isLikeInline(element) {
+ return element ? [
+ "A",
+ "ABBR",
+ "ACRONYM",
+ "B",
+ "BDO",
+ "BIG",
+ "BR",
+ "BUTTON",
+ "CITE",
+ "CODE",
+ "DFN",
+ "EM",
+ "I",
+ "IMG",
+ "INPUT",
+ "KBD",
+ "LABEL",
+ "MAP",
+ "OBJECT",
+ "OUTPUT",
+ "Q",
+ "SAMP",
+ "SCRIPT",
+ "SELECT",
+ "SMALL",
+ "SPAN",
+ "STRONG",
+ "SUB",
+ "SUP",
+ "TEXTAREA",
+ "TIME",
+ "TT",
+ "VAR"
+ ].includes(element.nodeName) : false;
+}
+function createInline(textOrLineBreak, styles, attrs) {
+ if (!(textOrLineBreak instanceof HTMLBRElement) && !(textOrLineBreak instanceof Text)) {
+ throw new TypeError("Invalid inline child");
+ }
+ if (textOrLineBreak instanceof Text && textOrLineBreak.nodeValue.length === 0) {
+ console.trace("nodeValue", textOrLineBreak.nodeValue);
+ throw new TypeError("Invalid inline child, cannot be an empty text");
+ }
+ return createElement(TAG$2, {
+ attributes: { id: createRandomId(), ...attrs },
+ data: { itype: TYPE$2 },
+ styles,
+ allowedStyles: STYLES$2,
+ children: textOrLineBreak
+ });
+}
+function createInlineFrom(inline, textOrLineBreak, styles, attrs) {
+ return createInline(
+ textOrLineBreak,
+ mergeStyles(STYLES$2, inline.style, styles),
+ attrs
+ );
+}
+function createEmptyInline(styles) {
+ return createInline(createLineBreak(), styles);
+}
+function setInlineStyles(element, styles) {
+ return setStyles(element, STYLES$2, styles);
+}
+function getInline(node) {
+ if (!node) return null;
+ if (isInline(node)) return node;
+ if (node.nodeType === Node.TEXT_NODE) {
+ const inline = node == null ? void 0 : node.parentElement;
+ if (!inline) return null;
+ if (!isInline(inline)) return null;
+ return inline;
+ }
+ return node.closest(QUERY$1);
+}
+function isInlineStart(node, offset) {
+ const inline = getInline(node);
+ if (!inline) return false;
+ return isOffsetAtStart(inline, offset);
+}
+function isInlineEnd(node, offset) {
+ const inline = getInline(node);
+ if (!inline) return false;
+ return isOffsetAtEnd(inline.firstChild, offset);
+}
+function splitInline(inline, offset) {
+ const textNode = inline.firstChild;
+ const style = inline.style;
+ const newTextNode = textNode.splitText(offset);
+ return createInline(newTextNode, style);
+}
+function getInlinesFrom(startInline) {
+ const inlines = [];
+ let currentInline = startInline;
+ let index = 0;
+ while (currentInline) {
+ if (index > 0) inlines.push(currentInline);
+ currentInline = currentInline.nextElementSibling;
+ index++;
+ }
+ return inlines;
+}
+function getInlineLength(inline) {
+ if (!isInline(inline)) throw new Error("Invalid inline");
+ if (isLineBreak(inline.firstChild)) return 0;
+ return inline.firstChild.nodeValue.length;
+}
+const TAG$1 = "DIV";
+const TYPE$1 = "root";
+const STYLES$1 = [["--vertical-align"]];
+function isRoot(node) {
+ if (!node) return false;
+ if (!isElement(node, TAG$1)) return false;
+ if (node.dataset.itype !== TYPE$1) return false;
+ return true;
+}
+function createRoot(paragraphs, styles, attrs) {
+ if (!Array.isArray(paragraphs) || !paragraphs.every(isParagraph))
+ throw new TypeError("Invalid root children");
+ return createElement(TAG$1, {
+ attributes: { id: createRandomId(), ...attrs },
+ data: { itype: TYPE$1 },
+ styles,
+ allowedStyles: STYLES$1,
+ children: paragraphs
+ });
+}
+function createEmptyRoot(styles) {
+ return createRoot([createEmptyParagraph(styles)], styles);
+}
+function setRootStyles(element, styles) {
+ return setStyles(element, STYLES$1, styles);
+}
+function isTextNode(node) {
+ if (!node) throw new TypeError("Invalid text node");
+ return node.nodeType === Node.TEXT_NODE || isLineBreak(node);
+}
+function getTextNodeLength(node) {
+ if (!node) throw new TypeError("Invalid text node");
+ if (isLineBreak(node)) return 0;
+ return node.nodeValue.length;
+}
+function getClosestTextNode(node) {
+ if (isTextNode(node)) return node;
+ if (isInline(node)) return node.firstChild;
+ if (isParagraph(node)) return node.firstChild.firstChild;
+ if (isRoot(node)) return node.firstChild.firstChild.firstChild;
+ throw new Error("Cannot find a text node");
+}
+const TAG = "DIV";
+const TYPE = "paragraph";
+const QUERY = `[data-itype="${TYPE}"]`;
+const STYLES = [
+ ["--typography-ref-id"],
+ ["--typography-ref-file"],
+ ["--font-id"],
+ ["--font-variant-id"],
+ ["--fills"],
+ ["font-variant"],
+ ["font-family"],
+ ["font-size", "px"],
+ ["font-weight"],
+ ["font-style"],
+ ["line-height"],
+ ["letter-spacing", "px"],
+ ["text-decoration"],
+ ["text-transform"],
+ ["text-align"],
+ ["direction"]
+];
+function isLikeParagraph(element) {
+ return !isLikeInline(element);
+}
+function isEmptyParagraph(element) {
+ if (!isParagraph(element)) throw new TypeError("Invalid paragraph");
+ const inline = element.firstChild;
+ if (!isInline(inline)) throw new TypeError("Invalid inline");
+ return isLineBreak(inline.firstChild);
+}
+function isParagraph(node) {
+ if (!node) return false;
+ if (!isElement(node, TAG)) return false;
+ if (node.dataset.itype !== TYPE) return false;
+ return true;
+}
+function createParagraph(inlines, styles, attrs) {
+ if (inlines && (!Array.isArray(inlines) || !inlines.every(isInline)))
+ throw new TypeError("Invalid paragraph children");
+ return createElement(TAG, {
+ attributes: { id: createRandomId(), ...attrs },
+ data: { itype: TYPE },
+ styles,
+ allowedStyles: STYLES,
+ children: inlines
+ });
+}
+function createEmptyParagraph(styles) {
+ return createParagraph([
+ createEmptyInline(styles)
+ ], styles);
+}
+function setParagraphStyles(element, styles) {
+ return setStyles(element, STYLES, styles);
+}
+function getParagraph(node) {
+ var _a;
+ if (!node) return null;
+ if (isParagraph(node)) return node;
+ if (node.nodeType === Node.TEXT_NODE || isLineBreak(node)) {
+ const paragraph = (_a = node == null ? void 0 : node.parentElement) == null ? void 0 : _a.parentElement;
+ if (!paragraph) {
+ return null;
+ }
+ if (!isParagraph(paragraph)) {
+ return null;
+ }
+ return paragraph;
+ }
+ return node.closest(QUERY);
+}
+function isParagraphStart(node, offset) {
+ const paragraph = getParagraph(node);
+ if (!paragraph) throw new Error("Can't find the paragraph");
+ const inline = getInline(node);
+ if (!inline) throw new Error("Can't find the inline");
+ return paragraph.firstElementChild === inline && isOffsetAtStart(inline.firstChild, offset);
+}
+function isParagraphEnd(node, offset) {
+ const paragraph = getParagraph(node);
+ if (!paragraph) throw new Error("Cannot find the paragraph");
+ const inline = getInline(node);
+ if (!inline) throw new Error("Cannot find the inline");
+ return paragraph.lastElementChild === inline && isOffsetAtEnd(inline.firstChild, offset);
+}
+function splitParagraph(paragraph, inline, offset) {
+ const style = paragraph.style;
+ if (isInlineEnd(inline, offset)) {
+ const newParagraph2 = createParagraph(getInlinesFrom(inline), style);
+ return newParagraph2;
+ }
+ const newInline = splitInline(inline, offset);
+ const newParagraph = createParagraph([newInline], style);
+ return newParagraph;
+}
+function mergeParagraphs(a, b) {
+ a.append(...b.children);
+ b.remove();
+ return a;
+}
+function mapContentFragmentFromDocument(document2, root, styleDefaults) {
+ const nodeIterator = document2.createNodeIterator(root, NodeFilter.SHOW_TEXT);
+ const fragment = document2.createDocumentFragment();
+ let currentParagraph = null;
+ let currentNode = nodeIterator.nextNode();
+ while (currentNode) {
+ const parentStyle = normalizeStyles(mergeStyleDeclarations(styleDefaults, getComputedStyle(currentNode.parentElement)));
+ if (isDisplayBlock(currentNode.parentElement.style) || isDisplayBlock(parentStyle) || isLikeParagraph(currentNode.parentElement)) {
+ if (currentParagraph) {
+ fragment.appendChild(currentParagraph);
+ }
+ currentParagraph = createParagraph(void 0, parentStyle);
+ } else {
+ if (currentParagraph === null) {
+ currentParagraph = createParagraph();
+ }
+ }
+ currentParagraph.appendChild(
+ createInline(new Text(currentNode.nodeValue), parentStyle)
+ );
+ currentNode = nodeIterator.nextNode();
+ }
+ fragment.appendChild(currentParagraph);
+ return fragment;
+}
+function mapContentFragmentFromHTML(html, styleDefaults) {
+ const parser = new DOMParser();
+ const htmlDocument = parser.parseFromString(html, "text/html");
+ return mapContentFragmentFromDocument(
+ htmlDocument,
+ htmlDocument.documentElement,
+ styleDefaults
+ );
+}
+function mapContentFragmentFromString(string, styleDefaults) {
+ const lines = string.replace(/\r/g, "").split("\n");
+ const fragment = document.createDocumentFragment();
+ for (const line of lines) {
+ if (line === "") {
+ fragment.appendChild(createEmptyParagraph(styleDefaults));
+ } else {
+ fragment.appendChild(createParagraph([createInline(new Text(line), styleDefaults)], styleDefaults));
+ }
+ }
+ return fragment;
+}
+function paste(event, editor, selectionController) {
+ event.preventDefault();
+ let fragment = null;
+ if (event.clipboardData.types.includes("text/html")) {
+ const html = event.clipboardData.getData("text/html");
+ fragment = mapContentFragmentFromHTML(html, selectionController.currentStyle);
+ } else if (event.clipboardData.types.includes("text/plain")) {
+ const plain = event.clipboardData.getData("text/plain");
+ fragment = mapContentFragmentFromString(plain, selectionController.currentStyle);
+ }
+ if (!fragment) {
+ return;
+ }
+ if (selectionController.isCollapsed) {
+ selectionController.insertPaste(fragment);
+ } else {
+ selectionController.replaceWithPaste(fragment);
+ }
+}
+const clipboard = {
+ copy,
+ cut,
+ paste
+};
+function insertText(event, editor, selectionController) {
+ event.preventDefault();
+ if (selectionController.isCollapsed) {
+ if (selectionController.isTextFocus) {
+ return selectionController.insertText(event.data);
+ } else if (selectionController.isLineBreakFocus) {
+ return selectionController.replaceLineBreak(event.data);
+ }
+ } else {
+ if (selectionController.isMultiParagraph) {
+ return selectionController.replaceParagraphs(event.data);
+ } else if (selectionController.isMultiInline) {
+ return selectionController.replaceInlines(event.data);
+ } else if (selectionController.isTextSame) {
+ return selectionController.replaceText(event.data);
+ }
+ }
+}
+function insertParagraph(event, editor, selectionController) {
+ event.preventDefault();
+ if (selectionController.isCollapsed) {
+ return selectionController.insertParagraph();
+ }
+ return selectionController.replaceWithParagraph();
+}
+function deleteByCut(event, editor, selectionController) {
+ event.preventDefault();
+ if (selectionController.isCollapsed) {
+ throw new Error("This should be impossible");
+ }
+ return selectionController.removeSelected();
+}
+function deleteContentBackward(event, editor, selectionController) {
+ event.preventDefault();
+ if (editor.isEmpty) return;
+ if (!selectionController.isCollapsed) {
+ return selectionController.removeSelected({ direction: "backward" });
+ }
+ if (selectionController.isTextFocus && selectionController.focusOffset > 0) {
+ return selectionController.removeBackwardText();
+ } else if (selectionController.isTextFocus && selectionController.focusAtStart) {
+ return selectionController.mergeBackwardParagraph();
+ } else if (selectionController.isInlineFocus || selectionController.isLineBreakFocus) {
+ return selectionController.removeBackwardParagraph();
+ }
+}
+function deleteContentForward(event, editor, selectionController) {
+ event.preventDefault();
+ if (editor.isEmpty) return;
+ if (!selectionController.isCollapsed) {
+ return selectionController.removeSelected({ direction: "forward" });
+ }
+ if (selectionController.isTextFocus && selectionController.focusOffset >= 0) {
+ return selectionController.removeForwardText();
+ } else if (selectionController.isTextFocus && selectionController.focusAtEnd) {
+ return selectionController.mergeForwardParagraph();
+ } else if ((selectionController.isInlineFocus || selectionController.isLineBreakFocus) && editor.numParagraphs > 1) {
+ return selectionController.removeForwardParagraph();
+ }
+}
+const commands = {
+ insertText,
+ insertParagraph,
+ deleteByCut,
+ deleteContentBackward,
+ deleteContentForward
+};
+class ChangeController extends EventTarget {
+ /**
+ * Constructor
+ *
+ * @param {number} [time=500]
+ */
+ constructor(time = 500) {
+ super();
+ /**
+ * Keeps the timeout id.
+ *
+ * @type {number}
+ */
+ __privateAdd(this, _timeout, null);
+ /**
+ * Keeps the time at which we're going to
+ * call the debounced change calls.
+ *
+ * @type {number}
+ */
+ __privateAdd(this, _time, 1e3);
+ /**
+ * Keeps if we have some pending changes or not.
+ *
+ * @type {boolean}
+ */
+ __privateAdd(this, _hasPendingChanges, false);
+ __privateAdd(this, _onTimeout, () => {
+ this.dispatchEvent(new Event("change"));
+ });
+ if (typeof time === "number" && (!Number.isInteger(time) || time <= 0)) {
+ throw new TypeError("Invalid time");
+ }
+ __privateSet(this, _time, time ?? 500);
+ }
+ /**
+ * Indicates that there are some pending changes.
+ *
+ * @type {boolean}
+ */
+ get hasPendingChanges() {
+ return __privateGet(this, _hasPendingChanges);
+ }
+ /**
+ * Tells the ChangeController that a change has been made
+ * but that you need to delay the notification (and debounce)
+ * for sometime.
+ */
+ notifyDebounced() {
+ __privateSet(this, _hasPendingChanges, true);
+ clearTimeout(__privateGet(this, _timeout));
+ __privateSet(this, _timeout, setTimeout(__privateGet(this, _onTimeout), __privateGet(this, _time)));
+ }
+ /**
+ * Tells the ChangeController that a change should be notified
+ * immediately.
+ */
+ notifyImmediately() {
+ clearTimeout(__privateGet(this, _timeout));
+ __privateGet(this, _onTimeout).call(this);
+ }
+ /**
+ * Disposes the referenced resources.
+ */
+ dispose() {
+ if (this.hasPendingChanges) {
+ this.notifyImmediately();
+ }
+ clearTimeout(__privateGet(this, _timeout));
+ }
+}
+_timeout = new WeakMap();
+_time = new WeakMap();
+_hasPendingChanges = new WeakMap();
+_onTimeout = new WeakMap();
+function tryOffset(offset) {
+ if (!Number.isInteger(offset) || offset < 0)
+ throw new TypeError("Invalid offset");
+}
+function tryString(str) {
+ if (typeof str !== "string") throw new TypeError("Invalid string");
+}
+function insertInto(str, offset, text) {
+ tryString(str);
+ tryOffset(offset);
+ tryString(text);
+ return str.slice(0, offset) + text + str.slice(offset);
+}
+function replaceWith(str, startOffset, endOffset, text) {
+ tryString(str);
+ tryOffset(startOffset);
+ tryOffset(endOffset);
+ tryString(text);
+ return str.slice(0, startOffset) + text + str.slice(endOffset);
+}
+function removeBackward(str, offset) {
+ tryString(str);
+ tryOffset(offset);
+ if (offset === 0) {
+ return str;
+ }
+ return str.slice(0, offset - 1) + str.slice(offset);
+}
+function removeForward(str, offset) {
+ tryString(str);
+ tryOffset(offset);
+ return str.slice(0, offset) + str.slice(offset + 1);
+}
+function removeSlice(str, start2, end) {
+ tryString(str);
+ tryOffset(start2);
+ tryOffset(end);
+ return str.slice(0, start2) + str.slice(end);
+}
+const TextNodeIteratorDirection = {
+ FORWARD: 1,
+ BACKWARD: 0
+};
+const _TextNodeIterator = class _TextNodeIterator {
+ /**
+ * Constructor
+ *
+ * @param {HTMLElement} rootNode
+ */
+ constructor(rootNode) {
+ /**
+ * This is the root text node.
+ *
+ * @type {HTMLElement}
+ */
+ __privateAdd(this, _rootNode, null);
+ /**
+ * This is the current text node.
+ *
+ * @type {Text|null}
+ */
+ __privateAdd(this, _currentNode, null);
+ if (!(rootNode instanceof HTMLElement)) {
+ throw new TypeError("Invalid root node");
+ }
+ __privateSet(this, _rootNode, rootNode);
+ __privateSet(this, _currentNode, _TextNodeIterator.findDown(rootNode, rootNode));
+ }
+ /**
+ * Returns if a specific node is a text node.
+ *
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ static isTextNode(node) {
+ return node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE && node.nodeName === "BR";
+ }
+ /**
+ * Returns if a specific node is a container node.
+ *
+ * @param {Node} node
+ * @returns {boolean}
+ */
+ static isContainerNode(node) {
+ return node.nodeType === Node.ELEMENT_NODE && node.nodeName !== "BR";
+ }
+ /**
+ * Finds a node from an initial node and down the tree.
+ *
+ * @param {Node} startNode
+ * @param {Node} rootNode
+ * @param {Set} skipNodes
+ * @param {number} direction
+ * @returns {Node}
+ */
+ static findDown(startNode, rootNode, skipNodes = /* @__PURE__ */ new Set(), direction = TextNodeIteratorDirection.FORWARD) {
+ if (startNode === rootNode) {
+ return _TextNodeIterator.findDown(
+ direction === TextNodeIteratorDirection.FORWARD ? startNode.firstChild : startNode.lastChild,
+ rootNode,
+ skipNodes,
+ direction
+ );
+ }
+ let safeGuard = Date.now();
+ let currentNode = startNode;
+ while (currentNode) {
+ if (Date.now() - safeGuard >= 1e3) {
+ throw new Error("Iteration timeout");
+ }
+ if (skipNodes.has(currentNode)) {
+ currentNode = direction === TextNodeIteratorDirection.FORWARD ? currentNode.nextSibling : currentNode.previousSibling;
+ continue;
+ }
+ if (_TextNodeIterator.isTextNode(currentNode)) {
+ return currentNode;
+ } else if (_TextNodeIterator.isContainerNode(currentNode)) {
+ return _TextNodeIterator.findDown(
+ direction === TextNodeIteratorDirection.FORWARD ? currentNode.firstChild : currentNode.lastChild,
+ rootNode,
+ skipNodes,
+ direction
+ );
+ }
+ currentNode = direction === TextNodeIteratorDirection.FORWARD ? currentNode.nextSibling : currentNode.previousSibling;
+ }
+ return null;
+ }
+ /**
+ * Finds a node from an initial node and up the tree.
+ *
+ * @param {Node} startNode
+ * @param {Node} rootNode
+ * @param {Set} backTrack
+ * @param {number} direction
+ * @returns {Node}
+ */
+ static findUp(startNode, rootNode, backTrack = /* @__PURE__ */ new Set(), direction = TextNodeIteratorDirection.FORWARD) {
+ backTrack.add(startNode);
+ if (_TextNodeIterator.isTextNode(startNode)) {
+ return _TextNodeIterator.findUp(
+ startNode.parentNode,
+ rootNode,
+ backTrack,
+ direction
+ );
+ } else if (_TextNodeIterator.isContainerNode(startNode)) {
+ const found = _TextNodeIterator.findDown(
+ startNode,
+ rootNode,
+ backTrack,
+ direction
+ );
+ if (found) {
+ return found;
+ }
+ if (startNode !== rootNode) {
+ return _TextNodeIterator.findUp(
+ startNode.parentNode,
+ rootNode,
+ backTrack,
+ direction
+ );
+ }
+ }
+ return null;
+ }
+ /**
+ * Current node we're into.
+ *
+ * @type {TextNode|HTMLBRElement}
+ */
+ get currentNode() {
+ return __privateGet(this, _currentNode);
+ }
+ set currentNode(newCurrentNode) {
+ const isContained = (newCurrentNode.compareDocumentPosition(__privateGet(this, _rootNode)) & Node.DOCUMENT_POSITION_CONTAINS) === Node.DOCUMENT_POSITION_CONTAINS;
+ if (!(newCurrentNode instanceof Node) || !_TextNodeIterator.isTextNode(newCurrentNode) || !isContained) {
+ throw new TypeError("Invalid new current node");
+ }
+ __privateSet(this, _currentNode, newCurrentNode);
+ }
+ /**
+ * Returns the next Text node or element or null if there are.
+ *
+ * @returns {Text|HTMLBRElement}
+ */
+ nextNode() {
+ if (!__privateGet(this, _currentNode)) return null;
+ const nextNode = _TextNodeIterator.findUp(
+ __privateGet(this, _currentNode),
+ __privateGet(this, _rootNode),
+ /* @__PURE__ */ new Set(),
+ TextNodeIteratorDirection.FORWARD
+ );
+ if (!nextNode) {
+ return null;
+ }
+ __privateSet(this, _currentNode, nextNode);
+ return __privateGet(this, _currentNode);
+ }
+ /**
+ * Returns the previous Text node or element or null.
+ *
+ * @returns {Text|HTMLBRElement}
+ */
+ previousNode() {
+ if (!__privateGet(this, _currentNode)) return null;
+ const previousNode = _TextNodeIterator.findUp(
+ __privateGet(this, _currentNode),
+ __privateGet(this, _rootNode),
+ /* @__PURE__ */ new Set(),
+ TextNodeIteratorDirection.BACKWARD
+ );
+ if (!previousNode) {
+ return null;
+ }
+ __privateSet(this, _currentNode, previousNode);
+ return __privateGet(this, _currentNode);
+ }
+};
+_rootNode = new WeakMap();
+_currentNode = new WeakMap();
+let TextNodeIterator = _TextNodeIterator;
+class CommandMutations {
+ constructor(added, updated, removed) {
+ __privateAdd(this, _added, /* @__PURE__ */ new Set());
+ __privateAdd(this, _removed, /* @__PURE__ */ new Set());
+ __privateAdd(this, _updated, /* @__PURE__ */ new Set());
+ if (added && Array.isArray(added)) __privateSet(this, _added, new Set(added));
+ if (updated && Array.isArray(updated)) __privateSet(this, _updated, new Set(updated));
+ if (removed && Array.isArray(removed)) __privateSet(this, _removed, new Set(removed));
+ }
+ get added() {
+ return __privateGet(this, _added);
+ }
+ get removed() {
+ return __privateGet(this, _removed);
+ }
+ get updated() {
+ return __privateGet(this, _updated);
+ }
+ clear() {
+ __privateGet(this, _added).clear();
+ __privateGet(this, _removed).clear();
+ __privateGet(this, _updated).clear();
+ }
+ dispose() {
+ __privateGet(this, _added).clear();
+ __privateSet(this, _added, null);
+ __privateGet(this, _removed).clear();
+ __privateSet(this, _removed, null);
+ __privateGet(this, _updated).clear();
+ __privateSet(this, _updated, null);
+ }
+ add(node) {
+ __privateGet(this, _added).add(node);
+ return this;
+ }
+ remove(node) {
+ __privateGet(this, _removed).add(node);
+ return this;
+ }
+ update(node) {
+ __privateGet(this, _updated).add(node);
+ return this;
+ }
+}
+_added = new WeakMap();
+_removed = new WeakMap();
+_updated = new WeakMap();
+const SelectionDirection = {
+ /** The anchorNode is behind the focusNode */
+ FORWARD: 1,
+ /** The focusNode and the anchorNode are collapsed */
+ NONE: 0,
+ /** The focusNode is behind the anchorNode */
+ BACKWARD: -1
+};
+const SAFE_GUARD_TIME = 1e3;
+let startTime = Date.now();
+function start() {
+ startTime = Date.now();
+}
+function update() {
+ if (Date.now - startTime >= SAFE_GUARD_TIME) {
+ throw new Error("Safe guard timeout");
+ }
+}
+const SafeGuard = {
+ start,
+ update
+};
+class SelectionController extends EventTarget {
+ /**
+ * Constructor
+ *
+ * @param {TextEditor} textEditor
+ * @param {Selection} selection
+ * @param {SelectionControllerOptions} [options]
+ */
+ constructor(textEditor, selection, options) {
+ super();
+ __privateAdd(this, _SelectionController_instances);
+ /**
+ * Reference to the text editor.
+ *
+ * @type {TextEditor}
+ */
+ __privateAdd(this, _textEditor, null);
+ /**
+ * Selection.
+ *
+ * @type {Selection}
+ */
+ __privateAdd(this, _selection, null);
+ /**
+ * Set of ranges (this should always have one)
+ *
+ * @type {Set}
+ */
+ __privateAdd(this, _ranges, /* @__PURE__ */ new Set());
+ /**
+ * Current range (.rangeAt 0)
+ *
+ * @type {Range}
+ */
+ __privateAdd(this, _range, null);
+ /**
+ * @type {Node}
+ */
+ __privateAdd(this, _focusNode, null);
+ /**
+ * @type {number}
+ */
+ __privateAdd(this, _focusOffset, 0);
+ /**
+ * @type {Node}
+ */
+ __privateAdd(this, _anchorNode, null);
+ /**
+ * @type {number}
+ */
+ __privateAdd(this, _anchorOffset, 0);
+ /**
+ * Saved selection.
+ *
+ * @type {object}
+ */
+ __privateAdd(this, _savedSelection, null);
+ /**
+ * TextNodeIterator that allows us to move
+ * around the root element but only through
+ * and #text nodes.
+ *
+ * @type {TextNodeIterator}
+ */
+ __privateAdd(this, _textNodeIterator, null);
+ /**
+ * CSSStyleDeclaration that we can mutate
+ * to handle style changes.
+ *
+ * @type {CSSStyleDeclaration}
+ */
+ __privateAdd(this, _currentStyle, null);
+ /**
+ * Element used to have a custom CSSStyleDeclaration
+ * that we can modify to handle style changes when the
+ * selection is changed.
+ *
+ * @type {HTMLDivElement}
+ */
+ __privateAdd(this, _inertElement, null);
+ /**
+ * @type {SelectionControllerDebug}
+ */
+ __privateAdd(this, _debug, null);
+ /**
+ * Command Mutations.
+ *
+ * @type {CommandMutations}
+ */
+ __privateAdd(this, _mutations, new CommandMutations());
+ /**
+ * Style defaults.
+ *
+ * @type {Object.}
+ */
+ __privateAdd(this, _styleDefaults, null);
+ /**
+ * This is called on every `selectionchange` because it is dispatched
+ * only by the `document` object.
+ *
+ * @param {Event} e
+ */
+ __privateAdd(this, _onSelectionChange, (e) => {
+ if (!this.hasFocus) return;
+ let focusNodeChanges = false;
+ if (__privateGet(this, _focusNode) !== __privateGet(this, _selection).focusNode) {
+ __privateSet(this, _focusNode, __privateGet(this, _selection).focusNode);
+ focusNodeChanges = true;
+ }
+ __privateSet(this, _focusOffset, __privateGet(this, _selection).focusOffset);
+ if (__privateGet(this, _anchorNode) !== __privateGet(this, _selection).anchorNode) {
+ __privateSet(this, _anchorNode, __privateGet(this, _selection).anchorNode);
+ }
+ __privateSet(this, _anchorOffset, __privateGet(this, _selection).anchorOffset);
+ if (__privateGet(this, _selection).rangeCount > 1) {
+ for (let index = 0; index < __privateGet(this, _selection).rangeCount; index++) {
+ const range = __privateGet(this, _selection).getRangeAt(index);
+ if (__privateGet(this, _ranges).has(range)) {
+ __privateGet(this, _ranges).delete(range);
+ __privateGet(this, _selection).removeRange(range);
+ } else {
+ __privateGet(this, _ranges).add(range);
+ __privateSet(this, _range, range);
+ }
+ }
+ } else if (__privateGet(this, _selection).rangeCount > 0) {
+ const range = __privateGet(this, _selection).getRangeAt(0);
+ __privateSet(this, _range, range);
+ __privateGet(this, _ranges).clear();
+ __privateGet(this, _ranges).add(range);
+ } else {
+ __privateSet(this, _range, null);
+ __privateGet(this, _ranges).clear();
+ }
+ if (focusNodeChanges) {
+ __privateMethod(this, _SelectionController_instances, notifyStyleChange_fn).call(this);
+ }
+ if (__privateGet(this, _debug)) {
+ __privateGet(this, _debug).update(this);
+ }
+ });
+ __privateSet(this, _debug, options == null ? void 0 : options.debug);
+ __privateSet(this, _styleDefaults, options == null ? void 0 : options.styleDefaults);
+ __privateSet(this, _selection, selection);
+ __privateSet(this, _textEditor, textEditor);
+ __privateSet(this, _textNodeIterator, new TextNodeIterator(__privateGet(this, _textEditor).element));
+ __privateMethod(this, _SelectionController_instances, setup_fn).call(this);
+ }
+ /**
+ * Styles of the current inline.
+ *
+ * @type {CSSStyleDeclaration}
+ */
+ get currentStyle() {
+ return __privateGet(this, _currentStyle);
+ }
+ /**
+ * Saves the current selection and returns the client rects.
+ *
+ * @returns {boolean}
+ */
+ saveSelection() {
+ __privateSet(this, _savedSelection, {
+ isCollapsed: __privateGet(this, _selection).isCollapsed,
+ focusNode: __privateGet(this, _selection).focusNode,
+ focusOffset: __privateGet(this, _selection).focusOffset,
+ anchorNode: __privateGet(this, _selection).anchorNode,
+ anchorOffset: __privateGet(this, _selection).anchorOffset,
+ range: __privateMethod(this, _SelectionController_instances, getSavedRange_fn).call(this)
+ });
+ return true;
+ }
+ /**
+ * Restores a saved selection if there's any.
+ *
+ * @returns {boolean}
+ */
+ restoreSelection() {
+ if (!__privateGet(this, _savedSelection)) return false;
+ if (__privateGet(this, _savedSelection).anchorNode && __privateGet(this, _savedSelection).focusNode) {
+ if (__privateGet(this, _savedSelection).anchorNode === __privateGet(this, _savedSelection).focusNode) {
+ __privateGet(this, _selection).setPosition(__privateGet(this, _savedSelection).focusNode, __privateGet(this, _savedSelection).focusOffset);
+ } else {
+ __privateGet(this, _selection).setBaseAndExtent(
+ __privateGet(this, _savedSelection).anchorNode,
+ __privateGet(this, _savedSelection).anchorOffset,
+ __privateGet(this, _savedSelection).focusNode,
+ __privateGet(this, _savedSelection).focusOffset
+ );
+ }
+ }
+ __privateSet(this, _savedSelection, null);
+ return true;
+ }
+ /**
+ * Marks the start of a mutation.
+ *
+ * Clears all the mutations kept in CommandMutations.
+ */
+ startMutation() {
+ __privateGet(this, _mutations).clear();
+ if (!__privateGet(this, _focusNode)) return false;
+ return true;
+ }
+ /**
+ * Marks the end of a mutation.
+ *
+ * @returns
+ */
+ endMutation() {
+ return __privateGet(this, _mutations);
+ }
+ /**
+ * Selects all content.
+ */
+ selectAll() {
+ __privateGet(this, _selection).selectAllChildren(__privateGet(this, _textEditor).root);
+ return this;
+ }
+ /**
+ * Moves cursor to end.
+ */
+ cursorToEnd() {
+ const range = document.createRange();
+ range.selectNodeContents(__privateGet(this, _textEditor).element);
+ range.collapse(false);
+ __privateGet(this, _selection).removeAllRanges();
+ __privateGet(this, _selection).addRange(range);
+ return this;
+ }
+ /**
+ * Collapses a selection.
+ *
+ * @param {Node} node
+ * @param {number} offset
+ */
+ collapse(node, offset) {
+ const nodeOffset = node.nodeType === Node.TEXT_NODE && offset >= node.nodeValue.length ? node.nodeValue.length : offset;
+ return this.setSelection(
+ node,
+ nodeOffset,
+ node,
+ nodeOffset
+ );
+ }
+ /**
+ * Sets base and extent.
+ *
+ * @param {Node} anchorNode
+ * @param {number} anchorOffset
+ * @param {Node} [focusNode=anchorNode]
+ * @param {number} [focusOffset=anchorOffset]
+ */
+ setSelection(anchorNode, anchorOffset, focusNode = anchorNode, focusOffset = anchorOffset) {
+ if (!anchorNode.isConnected) {
+ throw new Error("Invalid anchorNode");
+ }
+ if (!focusNode.isConnected) {
+ throw new Error("Invalid focusNode");
+ }
+ if (__privateGet(this, _savedSelection)) {
+ __privateGet(this, _savedSelection).isCollapsed = focusNode === anchorNode && anchorOffset === focusOffset;
+ __privateGet(this, _savedSelection).focusNode = focusNode;
+ __privateGet(this, _savedSelection).focusOffset = focusOffset;
+ __privateGet(this, _savedSelection).anchorNode = anchorNode;
+ __privateGet(this, _savedSelection).anchorOffset = anchorOffset;
+ __privateGet(this, _savedSelection).range.collapsed = __privateGet(this, _savedSelection).isCollapsed;
+ const position = focusNode.compareDocumentPosition(anchorNode);
+ if (position & Node.DOCUMENT_POSITION_FOLLOWING) {
+ __privateGet(this, _savedSelection).range.startContainer = focusNode;
+ __privateGet(this, _savedSelection).range.startOffset = focusOffset;
+ __privateGet(this, _savedSelection).range.endContainer = anchorNode;
+ __privateGet(this, _savedSelection).range.endOffset = anchorOffset;
+ } else {
+ __privateGet(this, _savedSelection).range.startContainer = anchorNode;
+ __privateGet(this, _savedSelection).range.startOffset = anchorOffset;
+ __privateGet(this, _savedSelection).range.endContainer = focusNode;
+ __privateGet(this, _savedSelection).range.endOffset = focusOffset;
+ }
+ } else {
+ __privateSet(this, _anchorNode, anchorNode);
+ __privateSet(this, _anchorOffset, anchorOffset);
+ if (anchorNode === focusNode) {
+ __privateSet(this, _focusNode, __privateGet(this, _anchorNode));
+ __privateSet(this, _focusOffset, __privateGet(this, _anchorOffset));
+ __privateGet(this, _selection).setPosition(anchorNode, anchorOffset);
+ } else {
+ __privateSet(this, _focusNode, focusNode);
+ __privateSet(this, _focusOffset, focusOffset);
+ __privateGet(this, _selection).setBaseAndExtent(
+ anchorNode,
+ anchorOffset,
+ focusNode,
+ focusOffset
+ );
+ }
+ }
+ }
+ /**
+ * Disposes the current resources.
+ */
+ dispose() {
+ document.removeEventListener("selectionchange", __privateGet(this, _onSelectionChange));
+ __privateSet(this, _textEditor, null);
+ __privateGet(this, _ranges).clear();
+ __privateSet(this, _ranges, null);
+ __privateSet(this, _range, null);
+ __privateSet(this, _selection, null);
+ __privateSet(this, _focusNode, null);
+ __privateSet(this, _anchorNode, null);
+ __privateGet(this, _mutations).dispose();
+ __privateSet(this, _mutations, null);
+ }
+ /**
+ * Returns the current selection.
+ *
+ * @type {Selection}
+ */
+ get selection() {
+ return __privateGet(this, _selection);
+ }
+ /**
+ * Returns the current range.
+ *
+ * @type {Range}
+ */
+ get range() {
+ return __privateGet(this, _range);
+ }
+ /**
+ * Indicates the direction of the selection
+ *
+ * @type {SelectionDirection}
+ */
+ get direction() {
+ if (this.isCollapsed) {
+ return SelectionDirection.NONE;
+ }
+ if (this.focusNode !== this.anchorNode) {
+ return this.startContainer === this.focusNode ? SelectionDirection.BACKWARD : SelectionDirection.FORWARD;
+ }
+ return this.focusOffset < this.anchorOffset ? SelectionDirection.BACKWARD : SelectionDirection.FORWARD;
+ }
+ /**
+ * Indicates that the editor element has the
+ * focus.
+ *
+ * @type {boolean}
+ */
+ get hasFocus() {
+ return document.activeElement === __privateGet(this, _textEditor).element;
+ }
+ /**
+ * Returns true if the selection is collapsed (caret)
+ * or false otherwise.
+ *
+ * @type {boolean}
+ */
+ get isCollapsed() {
+ if (__privateGet(this, _savedSelection)) {
+ return __privateGet(this, _savedSelection).isCollapsed;
+ }
+ return __privateGet(this, _selection).isCollapsed;
+ }
+ /**
+ * Current or saved anchor node.
+ *
+ * @type {Node}
+ */
+ get anchorNode() {
+ if (__privateGet(this, _savedSelection)) {
+ return __privateGet(this, _savedSelection).anchorNode;
+ }
+ return __privateGet(this, _anchorNode);
+ }
+ /**
+ * Current or saved anchor offset.
+ *
+ * @type {number}
+ */
+ get anchorOffset() {
+ if (__privateGet(this, _savedSelection)) {
+ return __privateGet(this, _savedSelection).anchorOffset;
+ }
+ return __privateGet(this, _selection).anchorOffset;
+ }
+ /**
+ * Indicates that the caret is at the start of the node.
+ *
+ * @type {boolean}
+ */
+ get anchorAtStart() {
+ return this.anchorOffset === 0;
+ }
+ /**
+ * Indicates that the caret is at the end of the node.
+ *
+ * @type {boolean}
+ */
+ get anchorAtEnd() {
+ return this.anchorOffset === this.anchorNode.nodeValue.length;
+ }
+ /**
+ * Current or saved focus node.
+ *
+ * @type {Node}
+ */
+ get focusNode() {
+ if (__privateGet(this, _savedSelection)) {
+ return __privateGet(this, _savedSelection).focusNode;
+ }
+ if (!__privateGet(this, _focusNode))
+ console.trace("focusNode", __privateGet(this, _focusNode));
+ return __privateGet(this, _focusNode);
+ }
+ /**
+ * Current or saved focus offset.
+ *
+ * @type {number}
+ */
+ get focusOffset() {
+ if (__privateGet(this, _savedSelection)) {
+ return __privateGet(this, _savedSelection).focusOffset;
+ }
+ return __privateGet(this, _focusOffset);
+ }
+ /**
+ * Indicates that the caret is at the start of the node.
+ *
+ * @type {boolean}
+ */
+ get focusAtStart() {
+ return this.focusOffset === 0;
+ }
+ /**
+ * Indicates that the caret is at the end of the node.
+ *
+ * @type {boolean}
+ */
+ get focusAtEnd() {
+ return this.focusOffset === this.focusNode.nodeValue.length;
+ }
+ /**
+ * Returns the paragraph in the focus node
+ * of the current selection.
+ *
+ * @type {HTMLElement|null}
+ */
+ get focusParagraph() {
+ return getParagraph(this.focusNode);
+ }
+ /**
+ * Returns the inline in the focus node
+ * of the current selection.
+ *
+ * @type {HTMLElement|null}
+ */
+ get focusInline() {
+ return getInline(this.focusNode);
+ }
+ /**
+ * Returns the current paragraph in the anchor
+ * node of the current selection.
+ *
+ * @type {HTMLElement|null}
+ */
+ get anchorParagraph() {
+ return getParagraph(this.anchorNode);
+ }
+ /**
+ * Returns the current inline in the anchor
+ * node of the current selection.
+ *
+ * @type {HTMLElement|null}
+ */
+ get anchorInline() {
+ return getInline(this.anchorNode);
+ }
+ /**
+ * Start container of the current range.
+ */
+ get startContainer() {
+ var _a, _b, _c;
+ if (__privateGet(this, _savedSelection)) {
+ return (_b = (_a = __privateGet(this, _savedSelection)) == null ? void 0 : _a.range) == null ? void 0 : _b.startContainer;
+ }
+ return (_c = __privateGet(this, _range)) == null ? void 0 : _c.startContainer;
+ }
+ /**
+ * `startOffset` of the current range.
+ *
+ * @type {number|null}
+ */
+ get startOffset() {
+ var _a, _b, _c;
+ if (__privateGet(this, _savedSelection)) {
+ return (_b = (_a = __privateGet(this, _savedSelection)) == null ? void 0 : _a.range) == null ? void 0 : _b.startOffset;
+ }
+ return (_c = __privateGet(this, _range)) == null ? void 0 : _c.startOffset;
+ }
+ /**
+ * Start paragraph of the current range.
+ *
+ * @type {HTMLElement|null}
+ */
+ get startParagraph() {
+ const startContainer = this.startContainer;
+ if (!startContainer) return null;
+ return getParagraph(startContainer);
+ }
+ /**
+ * Start inline of the current page.
+ *
+ * @type {HTMLElement|null}
+ */
+ get startInline() {
+ const startContainer = this.startContainer;
+ if (!startContainer) return null;
+ return getInline(startContainer);
+ }
+ /**
+ * End container of the current range.
+ *
+ * @type {Node}
+ */
+ get endContainer() {
+ var _a, _b, _c;
+ if (__privateGet(this, _savedSelection)) {
+ return (_b = (_a = __privateGet(this, _savedSelection)) == null ? void 0 : _a.range) == null ? void 0 : _b.endContainer;
+ }
+ return (_c = __privateGet(this, _range)) == null ? void 0 : _c.endContainer;
+ }
+ /**
+ * `endOffset` of the current range
+ *
+ * @type {HTMLElement|null}
+ */
+ get endOffset() {
+ var _a, _b, _c;
+ if (__privateGet(this, _savedSelection)) {
+ return (_b = (_a = __privateGet(this, _savedSelection)) == null ? void 0 : _a.range) == null ? void 0 : _b.endOffset;
+ }
+ return (_c = __privateGet(this, _range)) == null ? void 0 : _c.endOffset;
+ }
+ /**
+ * Paragraph element of the `endContainer` of
+ * the current range.
+ *
+ * @type {HTMLElement|null}
+ */
+ get endParagraph() {
+ const endContainer = this.endContainer;
+ if (!endContainer) return null;
+ return getParagraph(endContainer);
+ }
+ /**
+ * Inline element of the `endContainer` of
+ * the current range.
+ *
+ * @type {HTMLElement|null}
+ */
+ get endInline() {
+ const endContainer = this.endContainer;
+ if (!endContainer) return null;
+ return getInline(endContainer);
+ }
+ /**
+ * Returns true if the anchor node and the focus
+ * node are the same text nodes.
+ *
+ * @type {boolean}
+ */
+ get isTextSame() {
+ return this.isTextFocus === this.isTextAnchor && this.focusNode === this.anchorNode;
+ }
+ /**
+ * Indicates that focus node is a text node.
+ *
+ * @type {boolean}
+ */
+ get isTextFocus() {
+ return this.focusNode.nodeType === Node.TEXT_NODE;
+ }
+ /**
+ * Indicates that anchor node is a text node.
+ *
+ * @type {boolean}
+ */
+ get isTextAnchor() {
+ return this.anchorNode.nodeType === Node.TEXT_NODE;
+ }
+ /**
+ * Is true if the current focus node is a inline.
+ *
+ * @type {boolean}
+ */
+ get isInlineFocus() {
+ return isInline(this.focusNode);
+ }
+ /**
+ * Is true if the current anchor node is a inline.
+ *
+ * @type {boolean}
+ */
+ get isInlineAnchor() {
+ return isInline(this.anchorNode);
+ }
+ /**
+ * Is true if the current focus node is a paragraph.
+ *
+ * @type {boolean}
+ */
+ get isParagraphFocus() {
+ return isParagraph(this.focusNode);
+ }
+ /**
+ * Is true if the current anchor node is a paragraph.
+ *
+ * @type {boolean}
+ */
+ get isParagraphAnchor() {
+ return isParagraph(this.anchorNode);
+ }
+ /**
+ * Is true if the current focus node is a line break.
+ *
+ * @type {boolean}
+ */
+ get isLineBreakFocus() {
+ return isLineBreak(this.focusNode) || isInline(this.focusNode) && isLineBreak(this.focusNode.firstChild);
+ }
+ /**
+ * Indicates that we have multiple nodes selected.
+ *
+ * @type {boolean}
+ */
+ get isMulti() {
+ return this.focusNode !== this.anchorNode;
+ }
+ /**
+ * Indicates that we have selected multiple
+ * paragraph elements.
+ *
+ * @type {boolean}
+ */
+ get isMultiParagraph() {
+ return this.isMulti && this.focusParagraph !== this.anchorParagraph;
+ }
+ /**
+ * Indicates that we have selected multiple
+ * inline elements.
+ *
+ * @type {boolean}
+ */
+ get isMultiInline() {
+ return this.isMulti && this.focusInline !== this.anchorInline;
+ }
+ /**
+ * Indicates that the caret (only the caret)
+ * is at the start of an inline.
+ *
+ * @type {boolean}
+ */
+ get isInlineStart() {
+ if (!this.isCollapsed) return false;
+ return isInlineStart(this.focusNode, this.focusOffset);
+ }
+ /**
+ * Indicates that the caret (only the caret)
+ * is at the end of an inline. This value doesn't
+ * matter when dealing with selections.
+ *
+ * @type {boolean}
+ */
+ get isInlineEnd() {
+ if (!this.isCollapsed) return false;
+ return isInlineEnd(this.focusNode, this.focusOffset);
+ }
+ /**
+ * Indicates that we're in the starting position of a paragraph.
+ *
+ * @type {boolean}
+ */
+ get isParagraphStart() {
+ if (!this.isCollapsed) return false;
+ return isParagraphStart(this.focusNode, this.focusOffset);
+ }
+ /**
+ * Indicates that we're in the ending position of a paragraph.
+ *
+ * @type {boolean}
+ */
+ get isParagraphEnd() {
+ if (!this.isCollapsed) return false;
+ return isParagraphEnd(this.focusNode, this.focusOffset);
+ }
+ /**
+ * Insert pasted fragment.
+ *
+ * @param {DocumentFragment} fragment
+ */
+ insertPaste(fragment) {
+ fragment.children.length;
+ if (this.isParagraphStart) {
+ this.focusParagraph.before(fragment);
+ } else if (this.isParagraphEnd) {
+ this.focusParagraph.after(fragment);
+ } else {
+ const newParagraph = splitParagraph(
+ this.focusParagraph,
+ this.focusInline,
+ this.focusOffset
+ );
+ this.focusParagraph.after(fragment, newParagraph);
+ }
+ }
+ /**
+ * Replaces data with pasted fragment
+ *
+ * @param {DocumentFragment} fragment
+ */
+ replaceWithPaste(fragment) {
+ fragment.children.length;
+ this.removeSelected();
+ this.insertPaste(fragment);
+ }
+ /**
+ * Replaces the current line break with text
+ *
+ * @param {string} text
+ */
+ replaceLineBreak(text) {
+ const newText = new Text(text);
+ this.focusInline.replaceChildren(newText);
+ this.collapse(newText, text.length);
+ }
+ /**
+ * Removes text forward from the current position.
+ */
+ removeForwardText() {
+ __privateGet(this, _textNodeIterator).currentNode = this.focusNode;
+ const removedData = removeForward(
+ this.focusNode.nodeValue,
+ this.focusOffset
+ );
+ if (this.focusNode.nodeValue !== removedData) {
+ this.focusNode.nodeValue = removedData;
+ }
+ const paragraph = this.focusParagraph;
+ if (!paragraph) throw new Error("Cannot find paragraph");
+ const inline = this.focusInline;
+ if (!inline) throw new Error("Cannot find inline");
+ const nextTextNode = __privateGet(this, _textNodeIterator).nextNode();
+ if (this.focusNode.nodeValue === "") {
+ this.focusNode.remove();
+ }
+ if (paragraph.childNodes.length === 1 && inline.childNodes.length === 0) {
+ const lineBreak = createLineBreak();
+ inline.appendChild(lineBreak);
+ return this.collapse(lineBreak, 0);
+ } else if (paragraph.childNodes.length > 1 && inline.childNodes.length === 0) {
+ inline.remove();
+ return this.collapse(nextTextNode, 0);
+ }
+ return this.collapse(this.focusNode, this.focusOffset);
+ }
+ /**
+ * Removes text backward from the current caret position.
+ */
+ removeBackwardText() {
+ __privateGet(this, _textNodeIterator).currentNode = this.focusNode;
+ const removedData = removeBackward(
+ this.focusNode.nodeValue,
+ this.focusOffset
+ );
+ if (this.focusNode.nodeValue !== removedData) {
+ this.focusNode.nodeValue = removedData;
+ }
+ if (this.focusOffset - 1 > 0) {
+ return this.collapse(this.focusNode, this.focusOffset - 1);
+ }
+ const paragraph = this.focusParagraph;
+ if (!paragraph) throw new Error("Cannot find paragraph");
+ const inline = this.focusInline;
+ if (!inline) throw new Error("Cannot find inline");
+ const previousTextNode = __privateGet(this, _textNodeIterator).previousNode();
+ if (this.focusNode.nodeValue === "") {
+ this.focusNode.remove();
+ }
+ if (paragraph.children.length === 1 && inline.childNodes.length === 0) {
+ const lineBreak = createLineBreak();
+ inline.appendChild(lineBreak);
+ return this.collapse(lineBreak, 0);
+ } else if (paragraph.children.length > 1 && inline.childNodes.length === 0) {
+ inline.remove();
+ return this.collapse(previousTextNode, getTextNodeLength(previousTextNode));
+ }
+ return this.collapse(this.focusNode, this.focusOffset - 1);
+ }
+ /**
+ * Inserts some text in the caret position.
+ *
+ * @param {string} newText
+ */
+ insertText(newText) {
+ this.focusNode.nodeValue = insertInto(
+ this.focusNode.nodeValue,
+ this.focusOffset,
+ newText
+ );
+ __privateGet(this, _mutations).update(this.focusInline);
+ return this.collapse(this.focusNode, this.focusOffset + newText.length);
+ }
+ /**
+ * Replaces currently selected text.
+ *
+ * @param {string} newText
+ */
+ replaceText(newText) {
+ const startOffset = Math.min(this.anchorOffset, this.focusOffset);
+ const endOffset = Math.max(this.anchorOffset, this.focusOffset);
+ this.focusNode.nodeValue = replaceWith(
+ this.focusNode.nodeValue,
+ startOffset,
+ endOffset,
+ newText
+ );
+ __privateGet(this, _mutations).update(this.focusInline);
+ return this.collapse(this.focusNode, startOffset + newText.length);
+ }
+ /**
+ * Replaces the selected inlines with new text.
+ *
+ * @param {string} newText
+ */
+ replaceInlines(newText) {
+ const currentParagraph = this.focusParagraph;
+ if (this.startInline === currentParagraph.firstChild && this.startOffset === 0 && this.endInline === currentParagraph.lastChild && this.endOffset === currentParagraph.lastChild.textContent.length) {
+ const newTextNode = new Text(newText);
+ currentParagraph.replaceChildren(
+ createInline(newTextNode, this.anchorInline.style)
+ );
+ return this.collapse(newTextNode, newTextNode.nodeValue.length);
+ }
+ this.removeSelected();
+ this.focusNode.nodeValue = insertInto(
+ this.focusNode.nodeValue,
+ this.focusOffset,
+ newText
+ );
+ return this.collapse(this.focusNode, this.focusOffset + newText.length);
+ }
+ /**
+ * Replaces paragraphs with text.
+ *
+ * @param {string} newText
+ */
+ replaceParagraphs(newText) {
+ const currentParagraph = this.focusParagraph;
+ this.removeSelected();
+ this.focusNode.nodeValue = insertInto(
+ this.focusNode.nodeValue,
+ this.focusOffset,
+ newText
+ );
+ for (const child of currentParagraph.children) {
+ if (child.textContent === "") {
+ child.remove();
+ }
+ }
+ }
+ /**
+ * Inserts a new paragraph after the current paragraph.
+ */
+ insertParagraphAfter() {
+ const currentParagraph = this.focusParagraph;
+ const newParagraph = createEmptyParagraph(__privateGet(this, _currentStyle));
+ currentParagraph.after(newParagraph);
+ __privateGet(this, _mutations).update(currentParagraph);
+ __privateGet(this, _mutations).add(newParagraph);
+ return this.collapse(newParagraph.firstChild.firstChild, 0);
+ }
+ /**
+ * Inserts a new paragraph before the current paragraph.
+ */
+ insertParagraphBefore() {
+ const currentParagraph = this.focusParagraph;
+ const newParagraph = createEmptyParagraph(__privateGet(this, _currentStyle));
+ currentParagraph.before(newParagraph);
+ __privateGet(this, _mutations).update(currentParagraph);
+ __privateGet(this, _mutations).add(newParagraph);
+ return this.collapse(currentParagraph.firstChild.firstChild, 0);
+ }
+ /**
+ * Splits the current paragraph.
+ */
+ splitParagraph() {
+ const currentParagraph = this.focusParagraph;
+ const newParagraph = splitParagraph(
+ this.focusParagraph,
+ this.focusInline,
+ __privateGet(this, _focusOffset)
+ );
+ this.focusParagraph.after(newParagraph);
+ __privateGet(this, _mutations).update(currentParagraph);
+ __privateGet(this, _mutations).add(newParagraph);
+ return this.collapse(newParagraph.firstChild.firstChild, 0);
+ }
+ /**
+ * Inserts a new paragraph.
+ */
+ insertParagraph() {
+ if (this.isParagraphEnd) {
+ return this.insertParagraphAfter();
+ } else if (this.isParagraphStart) {
+ return this.insertParagraphBefore();
+ }
+ return this.splitParagraph();
+ }
+ /**
+ * Replaces the currently selected content with
+ * a paragraph.
+ */
+ replaceWithParagraph() {
+ const currentParagraph = this.focusParagraph;
+ const currentInline = this.focusInline;
+ this.removeSelected();
+ const newParagraph = splitParagraph(
+ currentParagraph,
+ currentInline,
+ this.focusOffset
+ );
+ currentParagraph.after(newParagraph);
+ __privateGet(this, _mutations).update(currentParagraph);
+ __privateGet(this, _mutations).add(newParagraph);
+ }
+ /**
+ * Removes a paragraph in backward direction.
+ */
+ removeBackwardParagraph() {
+ const previousParagraph = this.focusParagraph.previousElementSibling;
+ if (!previousParagraph) {
+ return;
+ }
+ const paragraphToBeRemoved = this.focusParagraph;
+ paragraphToBeRemoved.remove();
+ const previousInline = previousParagraph.children.length > 1 ? previousParagraph.lastElementChild : previousParagraph.firstChild;
+ const previousOffset = isLineBreak(previousInline.firstChild) ? 0 : previousInline.firstChild.nodeValue.length;
+ __privateGet(this, _mutations).remove(paragraphToBeRemoved);
+ return this.collapse(previousInline.firstChild, previousOffset);
+ }
+ /**
+ * Merges the previous paragraph with the current paragraph.
+ */
+ mergeBackwardParagraph() {
+ const currentParagraph = this.focusParagraph;
+ const previousParagraph = this.focusParagraph.previousElementSibling;
+ if (!previousParagraph) {
+ return;
+ }
+ let previousInline = previousParagraph.lastChild;
+ const previousOffset = getInlineLength(previousInline);
+ if (isEmptyParagraph(previousParagraph)) {
+ previousParagraph.replaceChildren(...currentParagraph.children);
+ previousInline = previousParagraph.firstChild;
+ currentParagraph.remove();
+ } else {
+ mergeParagraphs(previousParagraph, currentParagraph);
+ }
+ __privateGet(this, _mutations).remove(currentParagraph);
+ __privateGet(this, _mutations).update(previousParagraph);
+ return this.collapse(previousInline.firstChild, previousOffset);
+ }
+ /**
+ * Merges the next paragraph with the current paragraph.
+ */
+ mergeForwardParagraph() {
+ const currentParagraph = this.focusParagraph;
+ const nextParagraph = this.focusParagraph.nextElementSibling;
+ if (!nextParagraph) {
+ return;
+ }
+ mergeParagraphs(this.focusParagraph, nextParagraph);
+ __privateGet(this, _mutations).update(currentParagraph);
+ __privateGet(this, _mutations).remove(nextParagraph);
+ }
+ /**
+ * Removes the forward paragraph.
+ */
+ removeForwardParagraph() {
+ const nextParagraph = this.focusParagraph.nextSibling;
+ if (!nextParagraph) {
+ return;
+ }
+ const paragraphToBeRemoved = this.focusParagraph;
+ paragraphToBeRemoved.remove();
+ const nextInline = nextParagraph.firstChild;
+ const nextOffset = this.focusOffset;
+ __privateGet(this, _mutations).remove(paragraphToBeRemoved);
+ return this.collapse(nextInline.firstChild, nextOffset);
+ }
+ /**
+ * Cleans up all the affected paragraphs.
+ *
+ * @param {Set} affectedParagraphs
+ * @param {Set} affectedInlines
+ */
+ cleanUp(affectedParagraphs, affectedInlines) {
+ for (const inline of affectedInlines) {
+ if (inline.textContent === "") {
+ inline.remove();
+ __privateGet(this, _mutations).remove(inline);
+ }
+ }
+ for (const paragraph of affectedParagraphs) {
+ if (paragraph.children.length === 0) {
+ paragraph.remove();
+ __privateGet(this, _mutations).remove(paragraph);
+ }
+ }
+ }
+ /**
+ * Removes the selected content.
+ *
+ * @param {RemoveSelectedOptions} [options]
+ */
+ removeSelected(options) {
+ if (this.isCollapsed) return;
+ const affectedInlines = /* @__PURE__ */ new Set();
+ const affectedParagraphs = /* @__PURE__ */ new Set();
+ const startNode = getClosestTextNode(__privateGet(this, _range).startContainer);
+ const endNode = getClosestTextNode(__privateGet(this, _range).endContainer);
+ const startOffset = __privateGet(this, _range).startOffset;
+ const endOffset = __privateGet(this, _range).endOffset;
+ if (startNode === endNode) {
+ __privateGet(this, _textNodeIterator).currentNode = startNode;
+ __privateGet(this, _textNodeIterator).previousNode();
+ __privateGet(this, _textNodeIterator).currentNode = startNode;
+ __privateGet(this, _textNodeIterator).nextNode();
+ const inline = getInline(startNode);
+ const paragraph = getParagraph(startNode);
+ affectedInlines.add(inline);
+ affectedParagraphs.add(paragraph);
+ const newNodeValue = removeSlice(
+ startNode.nodeValue,
+ startOffset,
+ endOffset
+ );
+ if (newNodeValue === "") {
+ const lineBreak = createLineBreak();
+ inline.replaceChildren(lineBreak);
+ return this.collapse(lineBreak, 0);
+ }
+ startNode.nodeValue = newNodeValue;
+ return this.collapse(startNode, startOffset);
+ }
+ __privateGet(this, _textNodeIterator).currentNode = startNode;
+ const startInline = getInline(startNode);
+ const startParagraph = getParagraph(startNode);
+ const endInline = getInline(endNode);
+ const endParagraph = getParagraph(endNode);
+ SafeGuard.start();
+ do {
+ SafeGuard.update();
+ const currentNode = __privateGet(this, _textNodeIterator).currentNode;
+ const inline = getInline(__privateGet(this, _textNodeIterator).currentNode);
+ const paragraph = getParagraph(__privateGet(this, _textNodeIterator).currentNode);
+ let shouldRemoveNodeCompletely = false;
+ if (__privateGet(this, _textNodeIterator).currentNode === startNode) {
+ if (startOffset === 0) {
+ shouldRemoveNodeCompletely = true;
+ } else {
+ currentNode.nodeValue = currentNode.nodeValue.slice(0, startOffset);
+ }
+ } else if (__privateGet(this, _textNodeIterator).currentNode === endNode) {
+ if (isLineBreak(endNode) || isTextNode(endNode) && endOffset === endNode.nodeValue.length) {
+ shouldRemoveNodeCompletely = true;
+ } else {
+ currentNode.nodeValue = currentNode.nodeValue.slice(endOffset);
+ }
+ } else {
+ shouldRemoveNodeCompletely = true;
+ }
+ __privateGet(this, _textNodeIterator).nextNode();
+ if (shouldRemoveNodeCompletely) {
+ currentNode.remove();
+ if (currentNode === startNode) {
+ continue;
+ }
+ if (currentNode === endNode) {
+ break;
+ }
+ if (inline.childNodes.length === 0) {
+ inline.remove();
+ }
+ if (paragraph !== startParagraph && paragraph.children.length === 0) {
+ paragraph.remove();
+ }
+ }
+ if (currentNode === endNode) {
+ break;
+ }
+ } while (__privateGet(this, _textNodeIterator).currentNode);
+ if (startParagraph !== endParagraph) {
+ const mergedParagraph = mergeParagraphs(startParagraph, endParagraph);
+ if (mergedParagraph.children.length === 0) {
+ const newEmptyInline = createEmptyInline(__privateGet(this, _currentStyle));
+ mergedParagraph.appendChild(newEmptyInline);
+ return this.collapse(newEmptyInline.firstChild, 0);
+ }
+ }
+ if (startInline.childNodes.length === 0 && endInline.childNodes.length > 0) {
+ startInline.remove();
+ return this.collapse(endNode, 0);
+ } else if (startInline.childNodes.length > 0 && endInline.childNodes.length === 0) {
+ endInline.remove();
+ return this.collapse(startNode, startOffset);
+ } else if (startInline.childNodes.length === 0 && endInline.childNodes.length === 0) {
+ const previousInline = startInline.previousElementSibling;
+ const nextInline = endInline.nextElementSibling;
+ startInline.remove();
+ endInline.remove();
+ if (previousInline) {
+ return this.collapse(previousInline.firstChild, previousInline.firstChild.nodeValue.length);
+ }
+ if (nextInline) {
+ return this.collapse(nextInline.firstChild, 0);
+ }
+ const newEmptyInline = createEmptyInline(__privateGet(this, _currentStyle));
+ startParagraph.appendChild(newEmptyInline);
+ return this.collapse(newEmptyInline.firstChild, 0);
+ }
+ return this.collapse(startNode, startOffset);
+ }
+ /**
+ * Applies styles to selection
+ *
+ * @param {Object.} newStyles
+ * @returns {void}
+ */
+ applyStyles(newStyles) {
+ return __privateMethod(this, _SelectionController_instances, applyStylesTo_fn).call(this, this.startContainer, this.startOffset, this.endContainer, this.endOffset, newStyles);
+ }
+}
+_textEditor = new WeakMap();
+_selection = new WeakMap();
+_ranges = new WeakMap();
+_range = new WeakMap();
+_focusNode = new WeakMap();
+_focusOffset = new WeakMap();
+_anchorNode = new WeakMap();
+_anchorOffset = new WeakMap();
+_savedSelection = new WeakMap();
+_textNodeIterator = new WeakMap();
+_currentStyle = new WeakMap();
+_inertElement = new WeakMap();
+_debug = new WeakMap();
+_mutations = new WeakMap();
+_styleDefaults = new WeakMap();
+_SelectionController_instances = new WeakSet();
+/**
+ * Applies the default styles to the currentStyle
+ * CSSStyleDeclaration.
+ */
+applyDefaultStylesToCurrentStyle_fn = function() {
+ if (__privateGet(this, _styleDefaults)) {
+ for (const [name, value] of Object.entries(__privateGet(this, _styleDefaults))) {
+ __privateGet(this, _currentStyle).setProperty(
+ name,
+ value + (name === "font-size" ? "px" : "")
+ );
+ }
+ }
+};
+/**
+ * Applies some styles to the currentStyle
+ * CSSStyleDeclaration
+ *
+ * @param {HTMLElement} element
+ */
+applyStylesToCurrentStyle_fn = function(element) {
+ for (let index = 0; index < element.style.length; index++) {
+ const styleName = element.style.item(index);
+ const styleValue = element.style.getPropertyValue(styleName);
+ __privateGet(this, _currentStyle).setProperty(styleName, styleValue);
+ }
+};
+/**
+ * Updates current styles based on the currently selected inline.
+ *
+ * @param {HTMLSpanElement} inline
+ * @returns {SelectionController}
+ */
+updateCurrentStyle_fn = function(inline) {
+ __privateMethod(this, _SelectionController_instances, applyDefaultStylesToCurrentStyle_fn).call(this);
+ const root = inline.parentElement.parentElement;
+ __privateMethod(this, _SelectionController_instances, applyStylesToCurrentStyle_fn).call(this, root);
+ const paragraph = inline.parentElement;
+ __privateMethod(this, _SelectionController_instances, applyStylesToCurrentStyle_fn).call(this, paragraph);
+ __privateMethod(this, _SelectionController_instances, applyStylesToCurrentStyle_fn).call(this, inline);
+ return this;
+};
+_onSelectionChange = new WeakMap();
+/**
+ * Notifies that the styles have changed.
+ */
+notifyStyleChange_fn = function() {
+ const inline = this.focusInline;
+ if (inline) {
+ __privateMethod(this, _SelectionController_instances, updateCurrentStyle_fn).call(this, inline);
+ this.dispatchEvent(
+ new CustomEvent("stylechange", {
+ detail: __privateGet(this, _currentStyle)
+ })
+ );
+ }
+};
+/**
+ * Setups
+ */
+setup_fn = function() {
+ __privateSet(this, _inertElement, document.createElement("div"));
+ __privateSet(this, _currentStyle, __privateGet(this, _inertElement).style);
+ __privateMethod(this, _SelectionController_instances, applyDefaultStylesToCurrentStyle_fn).call(this);
+ if (__privateGet(this, _selection).rangeCount > 0) {
+ const range = __privateGet(this, _selection).getRangeAt(0);
+ __privateSet(this, _range, range);
+ __privateGet(this, _ranges).add(range);
+ }
+ if (__privateGet(this, _selection).rangeCount > 1) {
+ for (let index = 1; index < __privateGet(this, _selection).rangeCount; index++) {
+ __privateGet(this, _selection).removeRange(index);
+ }
+ }
+ document.addEventListener("selectionchange", __privateGet(this, _onSelectionChange));
+};
+/**
+ * Returns a Range-like object.
+ *
+ * @returns {RangeLike}
+ */
+getSavedRange_fn = function() {
+ if (!__privateGet(this, _range)) {
+ return {
+ collapsed: true,
+ commonAncestorContainer: null,
+ startContainer: null,
+ startOffset: 0,
+ endContainer: null,
+ endOffset: 0
+ };
+ }
+ return {
+ collapsed: __privateGet(this, _range).collapsed,
+ commonAncestorContainer: __privateGet(this, _range).commonAncestorContainer,
+ startContainer: __privateGet(this, _range).startContainer,
+ startOffset: __privateGet(this, _range).startOffset,
+ endContainer: __privateGet(this, _range).endContainer,
+ endOffset: __privateGet(this, _range).endOffset
+ };
+};
+/**
+ * Applies styles from the startNode to the endNode.
+ *
+ * @param {Node} startNode
+ * @param {number} startOffset
+ * @param {Node} endNode
+ * @param {number} endOffset
+ * @param {Object.|CSSStyleDeclaration} newStyles
+ * @returns {void}
+ */
+applyStylesTo_fn = function(startNode, startOffset, endNode, endOffset, newStyles) {
+ const root = __privateGet(this, _textEditor).root;
+ setRootStyles(root, newStyles);
+ if (startNode === endNode && startNode.nodeType === Node.TEXT_NODE) {
+ if (startOffset === 0 && endOffset === endNode.nodeValue.length) {
+ const paragraph = this.startParagraph;
+ const inline = this.startInline;
+ setParagraphStyles(paragraph, newStyles);
+ setInlineStyles(inline, newStyles);
+ } else if (startOffset !== endOffset) {
+ const paragraph = this.startParagraph;
+ setParagraphStyles(paragraph, newStyles);
+ const inline = this.startInline;
+ const midText = startNode.splitText(startOffset);
+ const endText = midText.splitText(endOffset - startOffset);
+ const midInline = createInlineFrom(inline, midText, newStyles);
+ inline.after(midInline);
+ if (endText.length > 0) {
+ const endInline = createInline(endText, inline.style);
+ midInline.after(endInline);
+ }
+ this.setSelection(midText, 0, midText, midText.nodeValue.length);
+ } else {
+ const paragraph = this.startParagraph;
+ setParagraphStyles(paragraph, newStyles);
+ }
+ return __privateMethod(this, _SelectionController_instances, notifyStyleChange_fn).call(this);
+ } else if (startNode !== endNode) {
+ SafeGuard.start();
+ const expectedEndNode = getClosestTextNode(endNode);
+ __privateGet(this, _textNodeIterator).currentNode = getClosestTextNode(startNode);
+ do {
+ SafeGuard.update();
+ const paragraph = getParagraph(__privateGet(this, _textNodeIterator).currentNode);
+ setParagraphStyles(paragraph, newStyles);
+ const inline = getInline(__privateGet(this, _textNodeIterator).currentNode);
+ if (__privateGet(this, _textNodeIterator).currentNode === startNode && startOffset > 0) {
+ const newInline = splitInline(inline, startOffset);
+ setInlineStyles(newInline, newStyles);
+ inline.after(newInline);
+ } else if (__privateGet(this, _textNodeIterator).currentNode === startNode && startOffset === 0 || __privateGet(this, _textNodeIterator).currentNode !== startNode && __privateGet(this, _textNodeIterator).currentNode !== endNode || __privateGet(this, _textNodeIterator).currentNode === endNode && endOffset === endNode.nodeValue.length) {
+ setInlineStyles(inline, newStyles);
+ } else if (__privateGet(this, _textNodeIterator).currentNode === endNode && endOffset < endNode.nodeValue.length) {
+ const newInline = splitInline(inline, endOffset);
+ setInlineStyles(inline, newStyles);
+ inline.after(newInline);
+ }
+ if (__privateGet(this, _textNodeIterator).currentNode === expectedEndNode) return;
+ __privateGet(this, _textNodeIterator).nextNode();
+ } while (__privateGet(this, _textNodeIterator).currentNode);
+ }
+ return __privateMethod(this, _SelectionController_instances, notifyStyleChange_fn).call(this);
+};
+function createSelectionImposterFromClientRects(referenceRect, clientRects) {
+ const fragment = document.createDocumentFragment();
+ for (const rect of clientRects) {
+ const rectElement = document.createElement("div");
+ rectElement.className = "selection-imposter-rect";
+ rectElement.style.left = `${rect.x - referenceRect.x}px`;
+ rectElement.style.top = `${rect.y - referenceRect.y}px`;
+ rectElement.style.width = `${rect.width}px`;
+ rectElement.style.height = `${rect.height}px`;
+ fragment.appendChild(rectElement);
+ }
+ return fragment;
+}
+function addEventListeners(target, object, options) {
+ Object.entries(object).forEach(
+ ([type, listener]) => target.addEventListener(type, listener, options)
+ );
+}
+function removeEventListeners(target, object) {
+ Object.entries(object).forEach(
+ ([type, listener]) => target.removeEventListener(type, listener)
+ );
+}
+const LayoutType = {
+ FULL: "full",
+ PARTIAL: "partial"
+};
+class TextEditor extends EventTarget {
+ /**
+ * Constructor.
+ *
+ * @param {HTMLElement} element
+ */
+ constructor(element, options) {
+ super();
+ __privateAdd(this, _TextEditor_instances);
+ /**
+ * Element content editable to be used by the TextEditor
+ *
+ * @type {HTMLElement}
+ */
+ __privateAdd(this, _element, null);
+ /**
+ * Map/Dictionary of events.
+ *
+ * @type {Object.}
+ */
+ __privateAdd(this, _events, null);
+ /**
+ * Root element that will contain the content.
+ *
+ * @type {HTMLElement}
+ */
+ __privateAdd(this, _root, null);
+ /**
+ * Change controller controls when we should notify changes.
+ *
+ * @type {ChangeController}
+ */
+ __privateAdd(this, _changeController, null);
+ /**
+ * Selection controller controls the current/saved selection.
+ *
+ * @type {SelectionController}
+ */
+ __privateAdd(this, _selectionController, null);
+ /**
+ * Selection imposter keeps selection elements.
+ *
+ * @type {HTMLElement}
+ */
+ __privateAdd(this, _selectionImposterElement, null);
+ /**
+ * Style defaults.
+ *
+ * @type {Object.}
+ */
+ __privateAdd(this, _styleDefaults2, null);
+ /**
+ * Dispatchs a `change` event.
+ *
+ * @param {CustomEvent} e
+ * @returns {void}
+ */
+ __privateAdd(this, _onChange, (e) => this.dispatchEvent(new e.constructor(e.type, e)));
+ /**
+ * Dispatchs a `stylechange` event.
+ *
+ * @param {CustomEvent} e
+ * @returns {void}
+ */
+ __privateAdd(this, _onStyleChange, (e) => {
+ if (__privateGet(this, _selectionImposterElement).children.length > 0) {
+ __privateMethod(this, _TextEditor_instances, createSelectionImposter_fn).call(this);
+ }
+ this.dispatchEvent(new e.constructor(e.type, e));
+ });
+ /**
+ * On blur we create a new FakeSelection if there's any.
+ *
+ * @param {FocusEvent} e
+ */
+ __privateAdd(this, _onBlur, (e) => {
+ __privateGet(this, _changeController).notifyImmediately();
+ __privateGet(this, _selectionController).saveSelection();
+ __privateMethod(this, _TextEditor_instances, createSelectionImposter_fn).call(this);
+ this.dispatchEvent(new FocusEvent(e.type, e));
+ });
+ /**
+ * On focus we should restore the FakeSelection from the current
+ * selection.
+ *
+ * @param {FocusEvent} e
+ */
+ __privateAdd(this, _onFocus, (e) => {
+ __privateGet(this, _selectionController).restoreSelection();
+ if (__privateGet(this, _selectionImposterElement)) {
+ __privateGet(this, _selectionImposterElement).replaceChildren();
+ }
+ this.dispatchEvent(new FocusEvent(e.type, e));
+ });
+ /**
+ * Event called when the user pastes some text into the
+ * editor.
+ *
+ * @param {ClipboardEvent} e
+ */
+ __privateAdd(this, _onPaste, (e) => clipboard.paste(e, this, __privateGet(this, _selectionController)));
+ /**
+ * Event called when the user cuts some text from the
+ * editor.
+ *
+ * @param {ClipboardEvent} e
+ */
+ __privateAdd(this, _onCut, (e) => clipboard.cut(e, this, __privateGet(this, _selectionController)));
+ /**
+ * Event called when the user copies some text from the
+ * editor.
+ *
+ * @param {ClipboardEvent} e
+ */
+ __privateAdd(this, _onCopy, (e) => clipboard.copy(e, this, __privateGet(this, _selectionController)));
+ /**
+ * Event called before the DOM is modified.
+ *
+ * @param {InputEvent} e
+ */
+ __privateAdd(this, _onBeforeInput, (e) => {
+ if (e.inputType === "historyUndo" || e.inputType === "historyRedo") {
+ return;
+ }
+ if (!(e.inputType in commands)) {
+ if (e.inputType !== "insertCompositionText") {
+ e.preventDefault();
+ }
+ return;
+ }
+ if (e.inputType in commands) {
+ const command = commands[e.inputType];
+ if (!__privateGet(this, _selectionController).startMutation())
+ return;
+ command(e, this, __privateGet(this, _selectionController));
+ const mutations = __privateGet(this, _selectionController).endMutation();
+ __privateMethod(this, _TextEditor_instances, notifyLayout_fn).call(this, LayoutType.FULL, mutations);
+ }
+ });
+ /**
+ * Event called after the DOM is modified.
+ *
+ * @param {InputEvent} e
+ */
+ __privateAdd(this, _onInput, (e) => {
+ if (e.inputType === "historyUndo" || e.inputType === "historyRedo") {
+ return;
+ }
+ if (e.inputType === "insertCompositionText") {
+ __privateMethod(this, _TextEditor_instances, notifyLayout_fn).call(this, LayoutType.FULL, null);
+ }
+ });
+ if (!(element instanceof HTMLElement))
+ throw new TypeError("Invalid text editor element");
+ __privateSet(this, _element, element);
+ __privateSet(this, _selectionImposterElement, options == null ? void 0 : options.selectionImposterElement);
+ __privateSet(this, _events, {
+ blur: __privateGet(this, _onBlur),
+ focus: __privateGet(this, _onFocus),
+ paste: __privateGet(this, _onPaste),
+ cut: __privateGet(this, _onCut),
+ copy: __privateGet(this, _onCopy),
+ beforeinput: __privateGet(this, _onBeforeInput),
+ input: __privateGet(this, _onInput)
+ });
+ __privateSet(this, _styleDefaults2, options == null ? void 0 : options.styleDefaults);
+ __privateMethod(this, _TextEditor_instances, setup_fn2).call(this, options);
+ }
+ /**
+ * Root element that contains all the paragraphs.
+ *
+ * @type {HTMLDivElement}
+ */
+ get root() {
+ return __privateGet(this, _root);
+ }
+ set root(newRoot) {
+ const previousRoot = __privateGet(this, _root);
+ __privateSet(this, _root, newRoot);
+ previousRoot.replaceWith(newRoot);
+ }
+ /**
+ * Element that contains the root and that has the
+ * contenteditable attribute.
+ *
+ * @type {HTMLElement}
+ */
+ get element() {
+ return __privateGet(this, _element);
+ }
+ /**
+ * Returns true if the content is in an empty state.
+ *
+ * @type {boolean}
+ */
+ get isEmpty() {
+ return __privateGet(this, _root).children.length === 1 && __privateGet(this, _root).firstElementChild.children.length === 1 && isLineBreak(__privateGet(this, _root).firstElementChild.firstElementChild.firstChild);
+ }
+ /**
+ * Indicates the amount of paragraphs in the current content.
+ *
+ * @type {number}
+ */
+ get numParagraphs() {
+ return __privateGet(this, _root).children.length;
+ }
+ /**
+ * CSS Style declaration for the current inline. From here we
+ * can infer root, paragraph and inline declarations.
+ *
+ * @type {CSSStyleDeclaration}
+ */
+ get currentStyle() {
+ return __privateGet(this, _selectionController).currentStyle;
+ }
+ /**
+ * Focus the element
+ */
+ focus() {
+ return __privateGet(this, _element).focus();
+ }
+ /**
+ * Blurs the element
+ */
+ blur() {
+ return __privateGet(this, _element).blur();
+ }
+ /**
+ * Creates a new root.
+ *
+ * @param {...any} args
+ * @returns {HTMLDivElement}
+ */
+ createRoot(...args) {
+ return createRoot(...args);
+ }
+ /**
+ * Creates a new paragraph.
+ *
+ * @param {...any} args
+ * @returns {HTMLDivElement}
+ */
+ createParagraph(...args) {
+ return createParagraph(...args);
+ }
+ /**
+ * Creates a new inline from a string.
+ *
+ * @param {string} text
+ * @param {Object.|CSSStyleDeclaration} styles
+ * @returns {HTMLSpanElement}
+ */
+ createInlineFromString(text, styles) {
+ if (text === "") {
+ return createEmptyInline(styles);
+ }
+ return createInline(new Text(text), styles);
+ }
+ /**
+ * Creates a new inline.
+ *
+ * @param {...any} args
+ * @returns {HTMLSpanElement}
+ */
+ createInline(...args) {
+ return createInline(...args);
+ }
+ /**
+ * Applies the current styles to the selection or
+ * the current DOM node at the caret.
+ *
+ * @param {*} styles
+ */
+ applyStylesToSelection(styles) {
+ __privateGet(this, _selectionController).startMutation();
+ __privateGet(this, _selectionController).applyStyles(styles);
+ const mutations = __privateGet(this, _selectionController).endMutation();
+ __privateMethod(this, _TextEditor_instances, notifyLayout_fn).call(this, LayoutType.FULL, mutations);
+ __privateGet(this, _changeController).notifyImmediately();
+ return this;
+ }
+ /**
+ * Selects all content.
+ */
+ selectAll() {
+ __privateGet(this, _selectionController).selectAll();
+ return this;
+ }
+ /**
+ * Moves cursor to end.
+ *
+ * @returns
+ */
+ cursorToEnd() {
+ __privateGet(this, _selectionController).cursorToEnd();
+ return this;
+ }
+ /**
+ * Disposes everything.
+ */
+ dispose() {
+ __privateGet(this, _changeController).removeEventListener("change", __privateGet(this, _onChange));
+ __privateGet(this, _changeController).dispose();
+ __privateSet(this, _changeController, null);
+ __privateGet(this, _selectionController).removeEventListener(
+ "stylechange",
+ __privateGet(this, _onStyleChange)
+ );
+ __privateGet(this, _selectionController).dispose();
+ __privateSet(this, _selectionController, null);
+ removeEventListeners(__privateGet(this, _element), __privateGet(this, _events));
+ __privateSet(this, _element, null);
+ __privateSet(this, _root, null);
+ }
+}
+_element = new WeakMap();
+_events = new WeakMap();
+_root = new WeakMap();
+_changeController = new WeakMap();
+_selectionController = new WeakMap();
+_selectionImposterElement = new WeakMap();
+_styleDefaults2 = new WeakMap();
+_TextEditor_instances = new WeakSet();
+/**
+ * Setups editor properties.
+ */
+setupElementProperties_fn = function() {
+ if (!__privateGet(this, _element).isContentEditable) {
+ __privateGet(this, _element).contentEditable = "true";
+ if (!__privateGet(this, _element).isContentEditable) {
+ __privateGet(this, _element).setAttribute("contenteditable", "true");
+ }
+ }
+ if (__privateGet(this, _element).spellcheck) __privateGet(this, _element).spellcheck = false;
+ if (__privateGet(this, _element).autocapitalize) __privateGet(this, _element).autocapitalize = false;
+ if (!__privateGet(this, _element).autofocus) __privateGet(this, _element).autofocus = true;
+ if (!__privateGet(this, _element).role || __privateGet(this, _element).role !== "textbox")
+ __privateGet(this, _element).role = "textbox";
+ if (__privateGet(this, _element).ariaAutoComplete) __privateGet(this, _element).ariaAutoComplete = false;
+ if (!__privateGet(this, _element).ariaMultiLine) __privateGet(this, _element).ariaMultiLine = true;
+ __privateGet(this, _element).dataset.itype = "editor";
+};
+/**
+ * Setups the root element.
+ */
+setupRoot_fn = function() {
+ __privateSet(this, _root, createEmptyRoot(__privateGet(this, _styleDefaults2)));
+ __privateGet(this, _element).appendChild(__privateGet(this, _root));
+};
+_onChange = new WeakMap();
+_onStyleChange = new WeakMap();
+/**
+ * Setups the elements, the properties and the
+ * initial content.
+ */
+setup_fn2 = function(options) {
+ __privateMethod(this, _TextEditor_instances, setupElementProperties_fn).call(this);
+ __privateMethod(this, _TextEditor_instances, setupRoot_fn).call(this);
+ __privateSet(this, _changeController, new ChangeController(this));
+ __privateGet(this, _changeController).addEventListener("change", __privateGet(this, _onChange));
+ __privateSet(this, _selectionController, new SelectionController(
+ this,
+ document.getSelection(),
+ options
+ ));
+ __privateGet(this, _selectionController).addEventListener(
+ "stylechange",
+ __privateGet(this, _onStyleChange)
+ );
+ addEventListeners(__privateGet(this, _element), __privateGet(this, _events), {
+ capture: true
+ });
+};
+/**
+ * Creates the selection imposter.
+ */
+createSelectionImposter_fn = function() {
+ var _a;
+ if (__privateGet(this, _selectionImposterElement) && !__privateGet(this, _selectionController).isCollapsed) {
+ const rects = (_a = __privateGet(this, _selectionController).range) == null ? void 0 : _a.getClientRects();
+ if (rects) {
+ const rect = __privateGet(this, _selectionImposterElement).getBoundingClientRect();
+ __privateGet(this, _selectionImposterElement).replaceChildren(
+ createSelectionImposterFromClientRects(rect, rects)
+ );
+ }
+ }
+};
+_onBlur = new WeakMap();
+_onFocus = new WeakMap();
+_onPaste = new WeakMap();
+_onCut = new WeakMap();
+_onCopy = new WeakMap();
+_onBeforeInput = new WeakMap();
+_onInput = new WeakMap();
+/**
+ * Notifies that the edited texts needs layout.
+ *
+ * @param {'full'|'partial'} type
+ * @param {CommandMutations} mutations
+ */
+notifyLayout_fn = function(type = LayoutType.FULL, mutations) {
+ this.dispatchEvent(
+ new CustomEvent("needslayout", {
+ detail: {
+ type,
+ mutations
+ }
+ })
+ );
+};
+function isEditor(instance) {
+ return instance instanceof TextEditor;
+}
+function getRoot(instance) {
+ if (isEditor(instance)) {
+ return instance.root;
+ } else {
+ return null;
+ }
+}
+function setRoot(instance, root) {
+ if (isEditor(instance)) {
+ instance.root = root;
+ }
+ return instance;
+}
+function create(element, options) {
+ return new TextEditor(element, { ...options });
+}
+function getCurrentStyle(instance) {
+ if (isEditor(instance)) {
+ return instance.currentStyle;
+ }
+}
+function applyStylesToSelection(instance, styles) {
+ if (isEditor(instance)) {
+ return instance.applyStylesToSelection(styles);
+ }
+}
+function dispose(instance) {
+ if (isEditor(instance)) {
+ instance.dispose();
+ }
+}
+export {
+ TextEditor,
+ applyStylesToSelection,
+ create,
+ TextEditor as default,
+ dispose,
+ getCurrentStyle,
+ getRoot,
+ isEditor,
+ setRoot
+};
+//# sourceMappingURL=TextEditor.js.map
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index b13ad3a1a8..601bb7c6c5 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1738,6 +1738,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/runtime@npm:^7.12.5":
+ version: 7.25.0
+ resolution: "@babel/runtime@npm:7.25.0"
+ dependencies:
+ regenerator-runtime: "npm:^0.14.0"
+ checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d
+ languageName: node
+ linkType: hard
+
"@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"
@@ -1841,46 +1850,6 @@ __metadata:
languageName: node
linkType: hard
-"@bundled-es-modules/deepmerge@npm:^4.3.1":
- version: 4.3.1
- resolution: "@bundled-es-modules/deepmerge@npm:4.3.1"
- dependencies:
- deepmerge: "npm:^4.3.1"
- checksum: 10c0/50493fb741d588aa358edc5e844cbf31493cb64aca0a5ca0d33d73f61eb9eb853f7038074429343afbe199e614a6be8400abfd31909f9e5f14a53a4cff39b894
- languageName: node
- linkType: hard
-
-"@bundled-es-modules/glob@npm:^10.3.13":
- version: 10.4.2
- resolution: "@bundled-es-modules/glob@npm:10.4.2"
- dependencies:
- buffer: "npm:^6.0.3"
- events: "npm:^3.3.0"
- glob: "npm:^10.4.2"
- patch-package: "npm:^8.0.0"
- path: "npm:^0.12.7"
- stream: "npm:^0.0.3"
- string_decoder: "npm:^1.3.0"
- url: "npm:^0.11.3"
- checksum: 10c0/0c61907efb170750c69c7a6953d613bcbffdefca5ced668c0579baf46e28232793fb6e2ac3b736dd937f750572ef5a17483c417060df43e4be30dc4c8567aaba
- languageName: node
- linkType: hard
-
-"@bundled-es-modules/memfs@npm:^4.8.1":
- version: 4.9.4
- resolution: "@bundled-es-modules/memfs@npm:4.9.4"
- dependencies:
- assert: "npm:^2.0.0"
- buffer: "npm:^6.0.3"
- events: "npm:^3.3.0"
- memfs: "npm:^4.9.3"
- path: "npm:^0.12.7"
- stream: "npm:^0.0.3"
- util: "npm:^0.12.5"
- checksum: 10c0/e3548c14379183fb74aa9a94407c1cdb8587320216fb557c0af7277d2dccf23f10a2edf8726e99f878758730c0c8d71524f77e19b26660a067b01d9afa07c891
- 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"
@@ -2327,38 +2296,6 @@ __metadata:
languageName: node
linkType: hard
-"@jsonjoy.com/base64@npm:^1.1.1":
- version: 1.1.2
- resolution: "@jsonjoy.com/base64@npm:1.1.2"
- peerDependencies:
- tslib: 2
- checksum: 10c0/88717945f66dc89bf58ce75624c99fe6a5c9a0c8614e26d03e406447b28abff80c69fb37dabe5aafef1862cf315071ae66e5c85f6018b437d95f8d13d235e6eb
- languageName: node
- linkType: hard
-
-"@jsonjoy.com/json-pack@npm:^1.0.3":
- version: 1.0.4
- resolution: "@jsonjoy.com/json-pack@npm:1.0.4"
- dependencies:
- "@jsonjoy.com/base64": "npm:^1.1.1"
- "@jsonjoy.com/util": "npm:^1.1.2"
- hyperdyperid: "npm:^1.2.0"
- thingies: "npm:^1.20.0"
- peerDependencies:
- tslib: 2
- checksum: 10c0/c06e57c33d3c18ab31af163e04f77cb759f68386c41375d1e1bd6c28beb1a3cc82217cc3b26f4c94b7385ed28a61e59b01498cf4cec562fd9e464b17eab0cf16
- languageName: node
- linkType: hard
-
-"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0":
- version: 1.3.0
- resolution: "@jsonjoy.com/util@npm:1.3.0"
- peerDependencies:
- tslib: 2
- checksum: 10c0/892bbe2073bb20bf392dd4dfed77881c6f7ae6a0cc5802e537fe3cbeeadde7738de5369f2d4529156efc5e98d9d43b15c85906ddb79140e322f1b26eaaf854df
- languageName: node
- linkType: hard
-
"@mdx-js/react@npm:^3.0.0":
version: 3.0.1
resolution: "@mdx-js/react@npm:3.0.1"
@@ -2427,62 +2364,6 @@ __metadata:
languageName: node
linkType: hard
-"@oven/bun-darwin-aarch64@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-darwin-aarch64@npm:1.1.25"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"@oven/bun-darwin-x64-baseline@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-darwin-x64-baseline@npm:1.1.25"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@oven/bun-darwin-x64@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-darwin-x64@npm:1.1.25"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"@oven/bun-linux-aarch64@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-linux-aarch64@npm:1.1.25"
- conditions: os=linux & cpu=arm64
- languageName: node
- linkType: hard
-
-"@oven/bun-linux-x64-baseline@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-linux-x64-baseline@npm:1.1.25"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
-"@oven/bun-linux-x64@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-linux-x64@npm:1.1.25"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
-"@oven/bun-windows-x64-baseline@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-windows-x64-baseline@npm:1.1.25"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"@oven/bun-windows-x64@npm:1.1.25":
- version: 1.1.25
- resolution: "@oven/bun-windows-x64@npm:1.1.25"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
"@pkgjs/parseargs@npm:^0.11.0":
version: 0.11.0
resolution: "@pkgjs/parseargs@npm:0.11.0"
@@ -3126,30 +3007,6 @@ __metadata:
languageName: node
linkType: hard
-"@tokens-studio/sd-transforms@npm:^0.16.1":
- version: 0.16.1
- resolution: "@tokens-studio/sd-transforms@npm:0.16.1"
- dependencies:
- "@tokens-studio/types": "npm:^0.4.0"
- color2k: "npm:^2.0.1"
- colorjs.io: "npm:^0.4.3"
- deepmerge: "npm:^4.3.1"
- expr-eval-fork: "npm:^2.0.2"
- is-mergeable-object: "npm:^1.1.1"
- postcss-calc-ast-parser: "npm:^0.1.4"
- peerDependencies:
- style-dictionary: ^4.0.0-prerelease.27
- checksum: 10c0/496a22026ffa25e3f6d8438a1fb39d67383fa55c89de9ac6759e2dce10a16268f5009e4809d03ceab38597fc02025a90eb1d32083b98a9353feded83831549c9
- languageName: node
- linkType: hard
-
-"@tokens-studio/types@npm:^0.4.0":
- version: 0.4.0
- resolution: "@tokens-studio/types@npm:0.4.0"
- checksum: 10c0/0641385653c94704f63dc5e10699c49bdbb1e1d8cba54af31bf50c3be85056123109bb2fe5091b1ccebaa9eba4c4afce3148a3b850919ed67bc81e3294ae839c
- languageName: node
- linkType: hard
-
"@trysound/sax@npm:0.2.0":
version: 0.2.0
resolution: "@trysound/sax@npm:0.2.0"
@@ -3539,20 +3396,6 @@ __metadata:
languageName: node
linkType: hard
-"@yarnpkg/lockfile@npm:^1.1.0":
- version: 1.1.0
- resolution: "@yarnpkg/lockfile@npm:1.1.0"
- checksum: 10c0/0bfa50a3d756623d1f3409bc23f225a1d069424dbc77c6fd2f14fb377390cd57ec703dc70286e081c564be9051ead9ba85d81d66a3e68eeb6eb506d4e0c0fbda
- languageName: node
- linkType: hard
-
-"@zip.js/zip.js@npm:^2.7.44":
- version: 2.7.48
- resolution: "@zip.js/zip.js@npm:2.7.48"
- checksum: 10c0/1caad2114792b45e53f13845f45c120491b73df3e90547aa63bf40be1178b467e86b8813e8f1960e03d4c55a2f5f00013f380dfcb9a8f2407e9ba46070853f14
- languageName: node
- linkType: hard
-
"abbrev@npm:^2.0.0":
version: 2.0.0
resolution: "abbrev@npm:2.0.0"
@@ -3927,19 +3770,6 @@ __metadata:
languageName: node
linkType: hard
-"assert@npm:^2.0.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"
@@ -4005,13 +3835,6 @@ __metadata:
languageName: node
linkType: hard
-"at-least-node@npm:^1.0.0":
- version: 1.0.0
- resolution: "at-least-node@npm:1.0.0"
- checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef
- languageName: node
- linkType: hard
-
"atob@npm:^2.1.2":
version: 2.1.2
resolution: "atob@npm:2.1.2"
@@ -4048,6 +3871,15 @@ __metadata:
languageName: node
linkType: hard
+"axios@npm:^0.26.1":
+ version: 0.26.1
+ resolution: "axios@npm:0.26.1"
+ dependencies:
+ follow-redirects: "npm:^1.14.8"
+ checksum: 10c0/77ad7f1e6ca04fcd3fa8af1795b09d8b7c005b71a31f28d99ba40cda0bdcc12a4627801d7fac5efa62b9f667a8402bd54c669039694373bc8d44f6be611f785c
+ languageName: node
+ linkType: hard
+
"babel-core@npm:^7.0.0-bridge.0":
version: 7.0.0-bridge.0
resolution: "babel-core@npm:7.0.0-bridge.0"
@@ -4153,6 +3985,17 @@ __metadata:
languageName: node
linkType: hard
+"binary-install@npm:^1.0.1":
+ version: 1.1.0
+ resolution: "binary-install@npm:1.1.0"
+ dependencies:
+ axios: "npm:^0.26.1"
+ rimraf: "npm:^3.0.2"
+ tar: "npm:^6.1.11"
+ checksum: 10c0/c0c94a81262c037a1a84f12ff9acfe667b7938b126e764b0f066d5be128d21e0bb8ac5700f4d89f8f7b860b660882deddeaca300dea0ff218d94676999a133a1
+ languageName: node
+ linkType: hard
+
"bindings@npm:^1.5.0":
version: 1.5.0
resolution: "bindings@npm:1.5.0"
@@ -4435,43 +4278,6 @@ __metadata:
languageName: node
linkType: hard
-"bun@npm:^1.1.25":
- version: 1.1.25
- resolution: "bun@npm:1.1.25"
- dependencies:
- "@oven/bun-darwin-aarch64": "npm:1.1.25"
- "@oven/bun-darwin-x64": "npm:1.1.25"
- "@oven/bun-darwin-x64-baseline": "npm:1.1.25"
- "@oven/bun-linux-aarch64": "npm:1.1.25"
- "@oven/bun-linux-x64": "npm:1.1.25"
- "@oven/bun-linux-x64-baseline": "npm:1.1.25"
- "@oven/bun-windows-x64": "npm:1.1.25"
- "@oven/bun-windows-x64-baseline": "npm:1.1.25"
- dependenciesMeta:
- "@oven/bun-darwin-aarch64":
- optional: true
- "@oven/bun-darwin-x64":
- optional: true
- "@oven/bun-darwin-x64-baseline":
- optional: true
- "@oven/bun-linux-aarch64":
- optional: true
- "@oven/bun-linux-x64":
- optional: true
- "@oven/bun-linux-x64-baseline":
- optional: true
- "@oven/bun-windows-x64":
- optional: true
- "@oven/bun-windows-x64-baseline":
- optional: true
- bin:
- bun: bin/bun.exe
- bunx: bin/bun.exe
- checksum: 10c0/ac0cec14aaaaae8b5b3818c6868dd417a60fb5d9c4230f5265c19c0367fd588ae9175ce0feac04db5b5684d624187c639fae1854ee2b52cdd2e2ae0a75a7dd9c
- conditions: (os=darwin | os=linux | os=win32) & (cpu=arm64 | cpu=x64)
- languageName: node
- linkType: hard
-
"bytes@npm:3.0.0":
version: 3.0.0
resolution: "bytes@npm:3.0.0"
@@ -4530,7 +4336,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:
@@ -4593,20 +4399,6 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^5.3.0":
- version: 5.3.0
- resolution: "chalk@npm:5.3.0"
- checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09
- languageName: node
- linkType: hard
-
-"change-case@npm:^5.3.0":
- version: 5.4.4
- resolution: "change-case@npm:5.4.4"
- checksum: 10c0/2a9c2b9c9ad6ab2491105aaf506db1a9acaf543a18967798dcce20926c6a173aa63266cb6189f3086e3c14bf7ae1f8ea4f96ecc466fcd582310efa00372f3734
- languageName: node
- linkType: hard
-
"check-error@npm:^1.0.3":
version: 1.0.3
resolution: "check-error@npm:1.0.3"
@@ -4665,13 +4457,6 @@ __metadata:
languageName: node
linkType: hard
-"ci-info@npm:^3.7.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"
@@ -4893,13 +4678,6 @@ __metadata:
languageName: node
linkType: hard
-"color2k@npm:^2.0.1":
- version: 2.0.3
- resolution: "color2k@npm:2.0.3"
- checksum: 10c0/e7c13d212c9d1abb1690e378bbc0a6fb1751e4b02e9a73ba3b2ade9d54da673834597d342791d577d1ce400ec486c7f92c5098f9fa85cd113bcfde57420a2bb9
- languageName: node
- linkType: hard
-
"color@npm:^3.1.3":
version: 3.2.1
resolution: "color@npm:3.2.1"
@@ -4910,13 +4688,6 @@ __metadata:
languageName: node
linkType: hard
-"colorjs.io@npm:^0.4.3":
- version: 0.4.5
- resolution: "colorjs.io@npm:0.4.5"
- checksum: 10c0/4cc58d18223426bcb8caa558e7554002b62bf87bd20db06596abf5efe5ea65416266402db86b504ac5fa2c38360913dbb8e6ef7c4fa19a992fd1818d5710ef6f
- languageName: node
- linkType: hard
-
"colorspace@npm:1.1.x":
version: 1.1.4
resolution: "colorspace@npm:1.1.4"
@@ -4957,13 +4728,6 @@ __metadata:
languageName: node
linkType: hard
-"commander@npm:^8.3.0":
- version: 8.3.0
- resolution: "commander@npm:8.3.0"
- checksum: 10c0/8b043bb8322ea1c39664a1598a95e0495bfe4ca2fad0d84a92d7d1d8d213e2a155b441d2470c8e08de7c4a28cf2bc6e169211c49e1b21d9f7edc6ae4d9356060
- languageName: node
- linkType: hard
-
"commondir@npm:^1.0.1":
version: 1.0.1
resolution: "commondir@npm:1.0.1"
@@ -4978,13 +4742,6 @@ __metadata:
languageName: node
linkType: hard
-"component-emitter@npm:^2.0.0":
- version: 2.0.0
- resolution: "component-emitter@npm:2.0.0"
- checksum: 10c0/65dfaf787ea49eb48f0ffec766bda7ec67e8dbeb3b406f08724dcae842e0aa274731fcccb9280b77d2b41693061731a9080b60d276020246a146544cd9900b83
- languageName: node
- linkType: hard
-
"compressible@npm:~2.0.16":
version: 2.0.18
resolution: "compressible@npm:2.0.18"
@@ -5506,13 +5263,6 @@ __metadata:
languageName: node
linkType: hard
-"deepmerge@npm:^4.3.1":
- version: 4.3.1
- resolution: "deepmerge@npm:4.3.1"
- checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044
- languageName: node
- linkType: hard
-
"default-compare@npm:^1.0.0":
version: 1.0.0
resolution: "default-compare@npm:1.0.0"
@@ -5549,7 +5299,7 @@ __metadata:
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:
@@ -6457,13 +6207,6 @@ __metadata:
languageName: node
linkType: hard
-"expr-eval-fork@npm:^2.0.2":
- version: 2.0.2
- resolution: "expr-eval-fork@npm:2.0.2"
- checksum: 10c0/ab5143fe65017d8811c155be55abd700321b8a32117635c35ce1309488f3263a251788f27f2e4a77425f58f7a64f99fd46d652c35a8c1668b22b4a8861702b75
- languageName: node
- linkType: hard
-
"express@npm:^4.19.2":
version: 4.19.2
resolution: "express@npm:4.19.2"
@@ -6746,15 +6489,6 @@ __metadata:
languageName: node
linkType: hard
-"find-yarn-workspace-root@npm:^2.0.0":
- version: 2.0.0
- resolution: "find-yarn-workspace-root@npm:2.0.0"
- dependencies:
- micromatch: "npm:^4.0.2"
- checksum: 10c0/b0d3843013fbdaf4e57140e0165889d09fa61745c9e85da2af86e54974f4cc9f1967e40f0d8fc36a79d53091f0829c651d06607d552582e53976f3cd8f4e5689
- languageName: node
- linkType: hard
-
"findup-sync@npm:^2.0.0":
version: 2.0.0
resolution: "findup-sync@npm:2.0.0"
@@ -6823,6 +6557,16 @@ __metadata:
languageName: node
linkType: hard
+"follow-redirects@npm:^1.14.8":
+ version: 1.15.9
+ resolution: "follow-redirects@npm:1.15.9"
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f
+ languageName: node
+ linkType: hard
+
"for-each@npm:^0.3.3":
version: 0.3.3
resolution: "for-each@npm:0.3.3"
@@ -6909,10 +6653,8 @@ __metadata:
"@storybook/blocks": "npm:^8.2.2"
"@storybook/react": "npm:^8.2.2"
"@storybook/react-vite": "npm:^8.2.2"
- "@tokens-studio/sd-transforms": "npm:^0.16.1"
"@types/node": "npm:^20.11.20"
autoprefixer: "npm:^10.4.19"
- bun: "npm:^1.1.25"
compression: "npm:^1.7.4"
concurrently: "npm:^8.2.2"
date-fns: "npm:^3.6.0"
@@ -6935,6 +6677,7 @@ __metadata:
js-beautify: "npm:^1.15.1"
jsdom: "npm:^24.1.0"
jszip: "npm:^3.10.1"
+ lodash: "npm:^4.17.21"
luxon: "npm:^3.4.4"
map-stream: "npm:0.0.7"
marked: "npm:^12.0.2"
@@ -6954,6 +6697,7 @@ __metadata:
randomcolor: "npm:^0.6.2"
react: "npm:18.3.1"
react-dom: "npm:18.3.1"
+ react-error-boundary: "npm:^4.0.13"
react-virtualized: "npm:^9.22.5"
rimraf: "npm:^5.0.7"
rxjs: "npm:8.0.0-alpha.14"
@@ -6963,14 +6707,13 @@ __metadata:
shadow-cljs: "npm:2.28.11"
source-map-support: "npm:^0.5.21"
storybook: "npm:^8.2.2"
- style-dictionary: "patch:style-dictionary@npm%3A4.0.0-prerelease.36#~/.yarn/patches/style-dictionary-npm-4.0.0-prerelease.36-55c0fc33bd.patch"
svg-sprite: "npm:^2.0.4"
tdigest: "npm:^0.1.2"
- tinycolor2: "npm:^1.6.0"
typescript: "npm:^5.4.5"
ua-parser-js: "npm:^1.0.38"
vite: "npm:^5.1.4"
vitest: "npm:^1.3.1"
+ wasm-pack: "npm:^0.13.0"
watcher: "npm:^2.3.1"
workerpool: "npm:^9.1.1"
xregexp: "npm:^5.1.1"
@@ -6988,18 +6731,6 @@ __metadata:
languageName: node
linkType: hard
-"fs-extra@npm:^9.0.0":
- version: 9.1.0
- resolution: "fs-extra@npm:9.1.0"
- dependencies:
- at-least-node: "npm:^1.0.0"
- graceful-fs: "npm:^4.2.0"
- jsonfile: "npm:^6.0.1"
- universalify: "npm:^2.0.0"
- checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92
- languageName: node
- linkType: hard
-
"fs-minipass@npm:^2.0.0":
version: 2.1.0
resolution: "fs-minipass@npm:2.1.0"
@@ -7324,22 +7055,6 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:^10.4.2":
- version: 10.4.5
- resolution: "glob@npm:10.4.5"
- dependencies:
- foreground-child: "npm:^3.1.0"
- jackspeak: "npm:^3.1.2"
- minimatch: "npm:^9.0.4"
- minipass: "npm:^7.1.2"
- package-json-from-dist: "npm:^1.0.0"
- path-scurry: "npm:^1.11.1"
- bin:
- glob: dist/esm/bin.mjs
- checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e
- languageName: node
- linkType: hard
-
"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"
@@ -7857,13 +7572,6 @@ __metadata:
languageName: node
linkType: hard
-"hyperdyperid@npm:^1.2.0":
- version: 1.2.0
- resolution: "hyperdyperid@npm:1.2.0"
- checksum: 10c0/885ba3177c7181d315a856ee9c0005ff8eb5dcb1ce9e9d61be70987895d934d84686c37c981cceeb53216d4c9c15c1cc25f1804e84cc6a74a16993c5d7fd0893
- languageName: node
- linkType: hard
-
"iconv-lite@npm:0.4.24":
version: 0.4.24
resolution: "iconv-lite@npm:0.4.24"
@@ -8187,15 +7895,6 @@ __metadata:
languageName: node
linkType: hard
-"is-docker@npm:^2.0.0":
- 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"
@@ -8276,23 +7975,6 @@ __metadata:
languageName: node
linkType: hard
-"is-mergeable-object@npm:^1.1.1":
- version: 1.1.1
- resolution: "is-mergeable-object@npm:1.1.1"
- checksum: 10c0/ed895a17686eb88d28040e0281c507639e5a07e63ac51f033c34091c2d8679ca86775ecfe80d5f0636bc2b7c530acd731527e5a2e9c32a88f8847286451720f1
- 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"
@@ -8339,13 +8021,6 @@ __metadata:
languageName: node
linkType: hard
-"is-plain-obj@npm:^4.1.0":
- version: 4.1.0
- resolution: "is-plain-obj@npm:4.1.0"
- checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e
- 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"
@@ -8491,15 +8166,6 @@ __metadata:
languageName: node
linkType: hard
-"is-wsl@npm:^2.1.1":
- 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"
@@ -8714,18 +8380,6 @@ __metadata:
languageName: node
linkType: hard
-"json-stable-stringify@npm:^1.0.2":
- version: 1.1.1
- resolution: "json-stable-stringify@npm:1.1.1"
- dependencies:
- call-bind: "npm:^1.0.5"
- isarray: "npm:^2.0.5"
- jsonify: "npm:^0.0.1"
- object-keys: "npm:^1.1.1"
- checksum: 10c0/3801e3eeccbd030afb970f54bea690a079cfea7d9ed206a1b17ca9367f4b7772c764bf77a48f03e56b50e5f7ee7d11c52339fe20d8d7ccead003e4ca69e4cfde
- languageName: node
- linkType: hard
-
"json5@npm:^2.2.2, json5@npm:^2.2.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
@@ -8748,13 +8402,6 @@ __metadata:
languageName: node
linkType: hard
-"jsonify@npm:^0.0.1":
- version: 0.0.1
- resolution: "jsonify@npm:0.0.1"
- checksum: 10c0/7f5499cdd59a0967ed35bda48b7cec43d850bbc8fb955cdd3a1717bb0efadbe300724d5646de765bb7a99fc1c3ab06eb80d93503c6faaf99b4ff50a3326692f6
- languageName: node
- linkType: hard
-
"jszip@npm:^3.10.1":
version: 3.10.1
resolution: "jszip@npm:3.10.1"
@@ -8806,15 +8453,6 @@ __metadata:
languageName: node
linkType: hard
-"klaw-sync@npm:^6.0.0":
- version: 6.0.0
- resolution: "klaw-sync@npm:6.0.0"
- dependencies:
- graceful-fs: "npm:^4.1.11"
- checksum: 10c0/00d8e4c48d0d699b743b3b028e807295ea0b225caf6179f51029e19783a93ad8bb9bccde617d169659fbe99559d73fb35f796214de031d0023c26b906cecd70a
- languageName: node
- linkType: hard
-
"kleur@npm:^3.0.3":
version: 3.0.3
resolution: "kleur@npm:3.0.3"
@@ -9244,18 +8882,6 @@ __metadata:
languageName: node
linkType: hard
-"memfs@npm:^4.9.3":
- version: 4.11.1
- resolution: "memfs@npm:4.11.1"
- dependencies:
- "@jsonjoy.com/json-pack": "npm:^1.0.3"
- "@jsonjoy.com/util": "npm:^1.3.0"
- tree-dump: "npm:^1.0.1"
- tslib: "npm:^2.0.0"
- checksum: 10c0/738f3ba7204d7f0a5bc09ae9f62d4151e0bbb14b5f5c2bb39c59e93d1b6da1bfc0c94240f23f450538578a331d1458da995b4976aee889da0fac2219322e8377
- languageName: node
- linkType: hard
-
"memoizee@npm:0.4.X":
version: 0.4.15
resolution: "memoizee@npm:0.4.15"
@@ -9337,7 +8963,7 @@ __metadata:
languageName: node
linkType: hard
-"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
+"micromatch@npm:^4.0.4":
version: 4.0.7
resolution: "micromatch@npm:4.0.7"
dependencies:
@@ -9446,15 +9072,6 @@ __metadata:
languageName: node
linkType: hard
-"minimatch@npm:^9.0.4":
- version: 9.0.5
- resolution: "minimatch@npm:9.0.5"
- dependencies:
- brace-expansion: "npm:^2.0.1"
- checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed
- languageName: node
- linkType: hard
-
"minimist@npm:^1.2.6":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
@@ -9536,13 +9153,6 @@ __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"
@@ -9967,16 +9577,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"
@@ -10105,16 +9705,6 @@ __metadata:
languageName: node
linkType: hard
-"open@npm:^7.4.2":
- version: 7.4.2
- resolution: "open@npm:7.4.2"
- dependencies:
- is-docker: "npm:^2.0.0"
- is-wsl: "npm:^2.1.1"
- checksum: 10c0/77573a6a68f7364f3a19a4c80492712720746b63680ee304555112605ead196afe91052bd3c3d165efdf4e9d04d255e87de0d0a77acec11ef47fd5261251813f
- languageName: node
- linkType: hard
-
"opentype.js@npm:^1.3.4":
version: 1.3.4
resolution: "opentype.js@npm:1.3.4"
@@ -10169,13 +9759,6 @@ __metadata:
languageName: node
linkType: hard
-"os-tmpdir@npm:~1.0.2":
- version: 1.0.2
- resolution: "os-tmpdir@npm:1.0.2"
- checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990
- languageName: node
- linkType: hard
-
"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0":
version: 2.3.0
resolution: "p-limit@npm:2.3.0"
@@ -10246,13 +9829,6 @@ __metadata:
languageName: node
linkType: hard
-"package-json-from-dist@npm:^1.0.0":
- version: 1.0.0
- resolution: "package-json-from-dist@npm:1.0.0"
- checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033
- languageName: node
- linkType: hard
-
"pako@npm:~1.0.2, pako@npm:~1.0.5":
version: 1.0.11
resolution: "pako@npm:1.0.11"
@@ -10341,31 +9917,6 @@ __metadata:
languageName: node
linkType: hard
-"patch-package@npm:^8.0.0":
- version: 8.0.0
- resolution: "patch-package@npm:8.0.0"
- dependencies:
- "@yarnpkg/lockfile": "npm:^1.1.0"
- chalk: "npm:^4.1.2"
- ci-info: "npm:^3.7.0"
- cross-spawn: "npm:^7.0.3"
- find-yarn-workspace-root: "npm:^2.0.0"
- fs-extra: "npm:^9.0.0"
- json-stable-stringify: "npm:^1.0.2"
- klaw-sync: "npm:^6.0.0"
- minimist: "npm:^1.2.6"
- open: "npm:^7.4.2"
- rimraf: "npm:^2.6.3"
- semver: "npm:^7.5.3"
- slash: "npm:^2.0.0"
- tmp: "npm:^0.0.33"
- yaml: "npm:^2.2.2"
- bin:
- patch-package: index.js
- checksum: 10c0/690eab0537e953a3fd7d32bb23f0e82f97cd448f8244c3227ed55933611a126f9476397325c06ad2c11d881a19b427a02bd1881bee78d89f1731373fc4fe0fee
- languageName: node
- linkType: hard
-
"path-browserify@npm:0.0.1":
version: 0.0.1
resolution: "path-browserify@npm:0.0.1"
@@ -10454,7 +10005,7 @@ __metadata:
languageName: node
linkType: hard
-"path-scurry@npm:^1.11.0, path-scurry@npm:^1.11.1":
+"path-scurry@npm:^1.11.0":
version: 1.11.1
resolution: "path-scurry@npm:1.11.1"
dependencies:
@@ -10498,23 +10049,6 @@ __metadata:
languageName: node
linkType: hard
-"path-unified@npm:^0.1.0":
- version: 0.1.0
- resolution: "path-unified@npm:0.1.0"
- checksum: 10c0/26c314221bcc0ca3ce59b67f50dffb6f37214d294fd9dfeb0219e9f12b93d8852c8525d32be9387011d902d361669a43e22ec419d522055794790222665b2de9
- languageName: node
- linkType: hard
-
-"path@npm:^0.12.7":
- version: 0.12.7
- resolution: "path@npm:0.12.7"
- dependencies:
- process: "npm:^0.11.1"
- util: "npm:^0.10.3"
- checksum: 10c0/f795ce5438a988a590c7b6dfd450ec9baa1c391a8be4c2dea48baa6e0f5b199e56cd83b8c9ebf3991b81bea58236d2c32bdafe2c17a2e70c3a2e4c69891ade59
- languageName: node
- linkType: hard
-
"pathe@npm:^1.1.1, pathe@npm:^1.1.2":
version: 1.1.2
resolution: "pathe@npm:1.1.2"
@@ -10713,15 +10247,6 @@ __metadata:
languageName: node
linkType: hard
-"postcss-calc-ast-parser@npm:^0.1.4":
- version: 0.1.4
- resolution: "postcss-calc-ast-parser@npm:0.1.4"
- dependencies:
- postcss-value-parser: "npm:^3.3.1"
- checksum: 10c0/6ab488da4024aefe749baff2ee2cd41d1a7b84611291a6fd5d220262255c86f37687b3541696cab3e4edb1b7601634719877184ee426048ad82ed15185a5f64f
- languageName: node
- linkType: hard
-
"postcss-clean@npm:^1.2.2":
version: 1.2.2
resolution: "postcss-clean@npm:1.2.2"
@@ -10825,13 +10350,6 @@ __metadata:
languageName: node
linkType: hard
-"postcss-value-parser@npm:^3.3.1":
- version: 3.3.1
- resolution: "postcss-value-parser@npm:3.3.1"
- checksum: 10c0/23eed98d8eeadb1f9ef1db4a2757da0f1d8e7c1dac2a38d6b35d971aab9eb3c6d8a967d0e9f435558834ffcd966afbbe875a56bcc5bcdd09e663008c106b3e47
- languageName: node
- linkType: hard
-
"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0":
version: 4.2.0
resolution: "postcss-value-parser@npm:4.2.0"
@@ -10933,7 +10451,7 @@ __metadata:
languageName: node
linkType: hard
-"process@npm:^0.11.1, process@npm:^0.11.10":
+"process@npm:^0.11.10":
version: 0.11.10
resolution: "process@npm:0.11.10"
checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
@@ -11085,15 +10603,6 @@ __metadata:
languageName: node
linkType: hard
-"qs@npm:^6.12.3":
- version: 6.13.0
- resolution: "qs@npm:6.13.0"
- dependencies:
- side-channel: "npm:^1.0.6"
- checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860
- languageName: node
- linkType: hard
-
"querystring-es3@npm:^0.2.0":
version: 0.2.1
resolution: "querystring-es3@npm:0.2.1"
@@ -11223,6 +10732,17 @@ __metadata:
languageName: node
linkType: hard
+"react-error-boundary@npm:^4.0.13":
+ version: 4.0.13
+ resolution: "react-error-boundary@npm:4.0.13"
+ dependencies:
+ "@babel/runtime": "npm:^7.12.5"
+ peerDependencies:
+ react: ">=16.13.1"
+ checksum: 10c0/6f3e0e4d7669f680ccf49c08c9571519c6e31f04dcfc30a765a7136c7e6fbbbe93423dd5a9fce12107f8166e54133e9dd5c2079a00c7a38201ac811f7a28b8e7
+ languageName: node
+ linkType: hard
+
"react-is@npm:18.1.0":
version: 18.1.0
resolution: "react-is@npm:18.1.0"
@@ -11687,14 +11207,14 @@ __metadata:
languageName: node
linkType: hard
-"rimraf@npm:^2.6.3":
- version: 2.7.1
- resolution: "rimraf@npm:2.7.1"
+"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/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40
+ rimraf: bin.js
+ checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8
languageName: node
linkType: hard
@@ -12410,13 +11930,6 @@ __metadata:
languageName: node
linkType: hard
-"slash@npm:^2.0.0":
- version: 2.0.0
- resolution: "slash@npm:2.0.0"
- checksum: 10c0/f83dbd3cb62c41bb8fcbbc6bf5473f3234b97fa1d008f571710a9d3757a28c7169e1811cad1554ccb1cc531460b3d221c9a7b37f549398d9a30707f0a5af9193
- languageName: node
- linkType: hard
-
"slash@npm:^5.1.0":
version: 5.1.0
resolution: "slash@npm:5.1.0"
@@ -12769,15 +12282,6 @@ __metadata:
languageName: node
linkType: hard
-"stream@npm:^0.0.3":
- version: 0.0.3
- resolution: "stream@npm:0.0.3"
- dependencies:
- component-emitter: "npm:^2.0.0"
- checksum: 10c0/5d262408583f3d5fed8077b33ad670320d85c6b7c0fb3ab73a9a632fbad0ee36f3c66e6feb5264cb39dbee3a619174fa886b5f69f98217666d0844f6a2f6510b
- languageName: node
- linkType: hard
-
"string-hash@npm:^1.1.1":
version: 1.1.3
resolution: "string-hash@npm:1.1.3"
@@ -12985,50 +12489,6 @@ __metadata:
languageName: node
linkType: hard
-"style-dictionary@npm:4.0.0-prerelease.36":
- version: 4.0.0-prerelease.36
- resolution: "style-dictionary@npm:4.0.0-prerelease.36"
- dependencies:
- "@bundled-es-modules/deepmerge": "npm:^4.3.1"
- "@bundled-es-modules/glob": "npm:^10.3.13"
- "@bundled-es-modules/memfs": "npm:^4.8.1"
- "@zip.js/zip.js": "npm:^2.7.44"
- chalk: "npm:^5.3.0"
- change-case: "npm:^5.3.0"
- commander: "npm:^8.3.0"
- is-plain-obj: "npm:^4.1.0"
- json5: "npm:^2.2.2"
- patch-package: "npm:^8.0.0"
- path-unified: "npm:^0.1.0"
- tinycolor2: "npm:^1.6.0"
- bin:
- style-dictionary: bin/style-dictionary.js
- checksum: 10c0/8707b3cced5ee7a858c425b296b53f3b9055f388839ab77ec94f9ed012ca99db43ce28fb540cec1659b92680a2769b1ed24d9af891ea98b9b298895341781f30
- languageName: node
- linkType: hard
-
-"style-dictionary@patch:style-dictionary@npm%3A4.0.0-prerelease.36#~/.yarn/patches/style-dictionary-npm-4.0.0-prerelease.36-55c0fc33bd.patch":
- version: 4.0.0-prerelease.36
- resolution: "style-dictionary@patch:style-dictionary@npm%3A4.0.0-prerelease.36#~/.yarn/patches/style-dictionary-npm-4.0.0-prerelease.36-55c0fc33bd.patch::version=4.0.0-prerelease.36&hash=45c7ac"
- dependencies:
- "@bundled-es-modules/deepmerge": "npm:^4.3.1"
- "@bundled-es-modules/glob": "npm:^10.3.13"
- "@bundled-es-modules/memfs": "npm:^4.8.1"
- "@zip.js/zip.js": "npm:^2.7.44"
- chalk: "npm:^5.3.0"
- change-case: "npm:^5.3.0"
- commander: "npm:^8.3.0"
- is-plain-obj: "npm:^4.1.0"
- json5: "npm:^2.2.2"
- patch-package: "npm:^8.0.0"
- path-unified: "npm:^0.1.0"
- tinycolor2: "npm:^1.6.0"
- bin:
- style-dictionary: bin/style-dictionary.js
- checksum: 10c0/dcc005437ee3d6d93536011c772cb8922166d5a20dac2e7d5e7487bcdb3d52007b2bf40d88c5e17ae796f03401c63605b6e586cb3de1003ecfc17f56b0b203c0
- languageName: node
- linkType: hard
-
"supports-color@npm:^5.3.0, supports-color@npm:^5.4.0, supports-color@npm:^5.5.0":
version: 5.5.0
resolution: "supports-color@npm:5.5.0"
@@ -13191,15 +12651,6 @@ __metadata:
languageName: node
linkType: hard
-"thingies@npm:^1.20.0":
- version: 1.21.0
- resolution: "thingies@npm:1.21.0"
- peerDependencies:
- tslib: ^2
- checksum: 10c0/7570ee855aecb73185a672ecf3eb1c287a6512bf5476449388433b2d4debcf78100bc8bfd439b0edd38d2bc3bfb8341de5ce85b8557dec66d0f27b962c9a8bc1
- languageName: node
- linkType: hard
-
"through2-filter@npm:^3.0.0":
version: 3.0.0
resolution: "through2-filter@npm:3.0.0"
@@ -13286,13 +12737,6 @@ __metadata:
languageName: node
linkType: hard
-"tinycolor2@npm:^1.6.0":
- version: 1.6.0
- resolution: "tinycolor2@npm:1.6.0"
- checksum: 10c0/9aa79a36ba2c2a87cb221453465cabacd04b9e35f9694373e846fdc78b1c768110f81e581ea41440106c0f24d9a023891d0887e8075885e790ac40eb0e74a5c1
- languageName: node
- linkType: hard
-
"tinypool@npm:^0.8.3":
version: 0.8.4
resolution: "tinypool@npm:0.8.4"
@@ -13307,15 +12751,6 @@ __metadata:
languageName: node
linkType: hard
-"tmp@npm:^0.0.33":
- version: 0.0.33
- resolution: "tmp@npm:0.0.33"
- dependencies:
- os-tmpdir: "npm:~1.0.2"
- checksum: 10c0/69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408
- languageName: node
- linkType: hard
-
"to-absolute-glob@npm:^2.0.0":
version: 2.0.2
resolution: "to-absolute-glob@npm:2.0.2"
@@ -13433,15 +12868,6 @@ __metadata:
languageName: node
linkType: hard
-"tree-dump@npm:^1.0.1":
- version: 1.0.2
- resolution: "tree-dump@npm:1.0.2"
- peerDependencies:
- tslib: 2
- checksum: 10c0/d1d180764e9c691b28332dbd74226c6b6af361dfb1e134bb11e60e17cb11c215894adee50ffc578da5dcf546006693947be8b6665eb1269b56e2f534926f1c1f
- languageName: node
- linkType: hard
-
"tree-kill@npm:^1.2.2":
version: 1.2.2
resolution: "tree-kill@npm:1.2.2"
@@ -13483,13 +12909,6 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^2.0.0":
- version: 2.6.3
- resolution: "tslib@npm:2.6.3"
- checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a
- languageName: node
- linkType: hard
-
"tslib@npm:^2.0.1, tslib@npm:^2.1.0":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
@@ -13908,16 +13327,6 @@ __metadata:
languageName: node
linkType: hard
-"url@npm:^0.11.3":
- version: 0.11.4
- resolution: "url@npm:0.11.4"
- dependencies:
- punycode: "npm:^1.4.1"
- qs: "npm:^6.12.3"
- checksum: 10c0/cc93405ae4a9b97a2aa60ca67f1cb1481c0221cb4725a7341d149be5e2f9cfda26fd432d64dbbec693d16593b68b8a46aad8e5eab21f814932134c9d8620c662
- languageName: node
- linkType: hard
-
"use@npm:^3.1.0":
version: 3.1.1
resolution: "use@npm:3.1.1"
@@ -13932,7 +13341,7 @@ __metadata:
languageName: node
linkType: hard
-"util@npm:^0.10.3, util@npm:^0.10.4":
+"util@npm:^0.10.4":
version: 0.10.4
resolution: "util@npm:0.10.4"
dependencies:
@@ -13950,7 +13359,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:
@@ -14210,6 +13619,17 @@ __metadata:
languageName: node
linkType: hard
+"wasm-pack@npm:^0.13.0":
+ version: 0.13.0
+ resolution: "wasm-pack@npm:0.13.0"
+ dependencies:
+ binary-install: "npm:^1.0.1"
+ bin:
+ wasm-pack: run.js
+ checksum: 10c0/71ed64c9b0082d51098ec71041ce68a9323d7a0027e3a9c0b694c5931f83ce2a58f1df7255c68239ca4ab702e2daf5c550a7886f8af048f0cb76945a510268b6
+ languageName: node
+ linkType: hard
+
"watcher@npm:^2.3.1":
version: 2.3.1
resolution: "watcher@npm:2.3.1"
@@ -14554,15 +13974,6 @@ __metadata:
languageName: node
linkType: hard
-"yaml@npm:^2.2.2":
- version: 2.5.0
- resolution: "yaml@npm:2.5.0"
- bin:
- yaml: bin.mjs
- checksum: 10c0/771a1df083c8217cf04ef49f87244ae2dd7d7457094425e793b8f056159f167602ce172aa32d6bca21f787d24ec724aee3cecde938f6643564117bd151452631
- languageName: node
- linkType: hard
-
"yaml@npm:^2.4.2":
version: 2.4.2
resolution: "yaml@npm:2.4.2"
diff --git a/manage.sh b/manage.sh
index e50fe5a8cc..46c101c282 100755
--- a/manage.sh
+++ b/manage.sh
@@ -5,15 +5,15 @@ export DEVENV_IMGNAME="$ORGANIZATION/devenv";
export DEVENV_PNAME="penpotdev";
export CURRENT_USER_ID=$(id -u);
-export CURRENT_VERSION=$(cat ./version.txt);
export CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD);
-export CURRENT_HASH=$(git rev-parse --short HEAD);
-export CURRENT_COMMITS=$(git rev-list --count HEAD)
-set -ex
+# Set default java options
+export JAVA_OPTS=${JAVA_OPTS:-"-Xmx1000m -Xms50m"};
+
+set -e
function print-current-version {
- echo -n "$CURRENT_VERSION-$CURRENT_COMMITS-g$CURRENT_HASH"
+ echo -n "$(git describe --tags --match "*.*.*")";
}
function build-devenv {
@@ -98,10 +98,12 @@ function run-devenv-shell {
if [[ ! $(docker ps -f "name=penpot-devenv-main" -q) ]]; then
start-devenv
fi
- docker exec -ti penpot-devenv-main sudo -EH -u penpot bash
+ docker exec -ti \
+ -e JAVA_OPTS="$JAVA_OPTS" \
+ -e EXTERNAL_UID=$CURRENT_USER_ID \
+ penpot-devenv-main sudo -EH -u penpot bash;
}
-
function build {
echo ">> build start: $1"
local version=$(print-current-version);
@@ -114,6 +116,7 @@ function build {
-e EXTERNAL_UID=$CURRENT_USER_ID \
-e BUILD_STORYBOOK=$BUILD_STORYBOOK \
-e SHADOWCLJS_EXTRA_PARAMS=$SHADOWCLJS_EXTRA_PARAMS \
+ -e JAVA_OPTS="$JAVA_OPTS" \
-w /home/penpot/penpot/$1 \
$DEVENV_IMGNAME:latest sudo -EH -u penpot ./scripts/build $version
@@ -181,17 +184,24 @@ function build-exporter-bundle {
echo ">> bundle exporter end";
}
-function build-docker-images {
+function build-frontend-docker-images {
rsync -avr --delete ./bundles/frontend/ ./docker/images/bundle-frontend/;
- rsync -avr --delete ./bundles/backend/ ./docker/images/bundle-backend/;
- rsync -avr --delete ./bundles/exporter/ ./docker/images/bundle-exporter/;
-
pushd ./docker/images;
-
docker build -t penpotapp/frontend:$CURRENT_BRANCH -t penpotapp/frontend:latest -f Dockerfile.frontend .;
- docker build -t penpotapp/backend:$CURRENT_BRANCH -t penpotapp/backend:latest -f Dockerfile.backend .;
- docker build -t penpotapp/exporter:$CURRENT_BRANCH -t penpotapp/exporter:latest -f Dockerfile.exporter .;
+ popd;
+}
+function build-backend-docker-images {
+ rsync -avr --delete ./bundles/backend/ ./docker/images/bundle-backend/;
+ pushd ./docker/images;
+ docker build -t penpotapp/backend:$CURRENT_BRANCH -t penpotapp/backend:latest -f Dockerfile.backend .;
+ popd;
+}
+
+function build-exporter-docker-images {
+ rsync -avr --delete ./bundles/exporter/ ./docker/images/bundle-exporter/;
+ pushd ./docker/images;
+ docker build -t penpotapp/exporter:$CURRENT_BRANCH -t penpotapp/exporter:latest -f Dockerfile.exporter .;
popd;
}
@@ -201,12 +211,26 @@ function usage {
echo "Options:"
echo "- pull-devenv Pulls docker development oriented image"
echo "- build-devenv Build docker development oriented image"
+ echo "- build-devenv-local Build a local 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."
echo "- run-devenv Attaches to the running devenv container and starts development environment"
+ echo "- run-devenv-shell Attaches to the running devenv container and starts a bash shell."
+ echo "- log-devenv Show logs of the running devenv docker compose service."
echo ""
+ echo "- build-bundle Build all bundles (frontend, backend and exporter)."
+ echo "- build-frontend-bundle Build frontend bundle"
+ echo "- build-backend-bundle Build backend bundle."
+ echo "- build-exporter-bundle Build exporter bundle."
+ echo ""
+ echo "- build-docker-images Build all docker images (frontend, backend and exporter)."
+ echo "- build-frontend-docker-images Build frontend docker images."
+ echo "- build-backend-docker-images Build backend docker images."
+ echo "- build-exporter-docker-images Build exporter docker images."
+ echo ""
+ echo "- version Show penpot's version."
}
case $1 in
@@ -227,10 +251,6 @@ case $1 in
build-devenv-local ${@:2}
;;
- push-devenv)
- push-devenv ${@:2}
- ;;
-
create-devenv)
create-devenv ${@:2}
;;
@@ -254,7 +274,7 @@ case $1 in
log-devenv ${@:2}
;;
- # production builds
+ ## production builds
build-bundle)
build-frontend-bundle;
build-backend-bundle;
@@ -274,10 +294,23 @@ case $1 in
;;
build-docker-images)
- build-docker-images
+ build-frontend-docker-images
+ build-backend-docker-images
+ build-exporter-docker-images
+ ;;
+
+ build-frontend-docker-images)
+ build-frontend-docker-images
+ ;;
+
+ build-backend-docker-images)
+ build-backend-docker-images
+ ;;
+
+ build-exporter-docker-images)
+ build-exporter-docker-images
;;
- # Docker Image Tasks
*)
usage
;;
diff --git a/version.txt b/version.txt
deleted file mode 100644
index ccbccc3dc6..0000000000
--- a/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-2.2.0