mirror of
https://github.com/penpot/penpot.git
synced 2025-03-23 05:01:23 -05:00
Merge pull request #5581 from penpot/eva-fix-broken-token-context-menu
This commit is contained in:
commit
b81f4e913f
34 changed files with 152 additions and 137 deletions
|
@ -640,6 +640,13 @@
|
|||
(let [path-split (split-path path)]
|
||||
(merge-path-item (first path-split) name)))
|
||||
|
||||
(defn split-string-half
|
||||
"Split string in two halfs"
|
||||
[s]
|
||||
(let [len (count s)
|
||||
mid (quot len 2)]
|
||||
[(subs s 0 mid)
|
||||
(subs s mid)]))
|
||||
|
||||
(defn get-frame-objects
|
||||
"Retrieves a new objects map only with the objects under frame-id (with frame-id)"
|
||||
|
|
|
@ -70,7 +70,7 @@ test.describe("Tokens: Tokens Tab", () => {
|
|||
await expect(submitButton).toBeEnabled();
|
||||
await submitButton.click();
|
||||
|
||||
await expect(tokensTabPanel.getByText("color.primary")).toBeEnabled();
|
||||
await expect(tokensTabPanel.getByLabel("primary")).toBeEnabled();
|
||||
|
||||
// Create token referencing the previous one with keyboard
|
||||
|
||||
|
@ -87,7 +87,7 @@ test.describe("Tokens: Tokens Tab", () => {
|
|||
await expect(submitButton).toBeEnabled();
|
||||
await nameField.press("Enter");
|
||||
|
||||
const referenceToken = tokensTabPanel.getByText("color.secondary");
|
||||
const referenceToken = tokensTabPanel.getByLabel("color.secondary");
|
||||
await expect(referenceToken).toBeEnabled();
|
||||
|
||||
// Tokens tab panel should have two tokens with the color red / #ff0000
|
||||
|
@ -105,6 +105,35 @@ test.describe("Tokens: Tokens Tab", () => {
|
|||
}),
|
||||
).toHaveAttribute("aria-checked", "true");
|
||||
});
|
||||
|
||||
test("User creates grouped color token", async ({ page }) => {
|
||||
const { workspacePage, tokensUpdateCreateModal, tokenThemesSetsSidebar } =
|
||||
await setupFileWithTokens(page);
|
||||
|
||||
const tokensTabPanel = page.getByRole("tabpanel", { name: "tokens" });
|
||||
await tokensTabPanel.getByTitle("Add token: Color").click();
|
||||
|
||||
// Create grouped color token with mouse
|
||||
|
||||
await expect(tokensUpdateCreateModal).toBeVisible();
|
||||
|
||||
const nameField = tokensUpdateCreateModal.getByLabel("Name");
|
||||
const valueField = tokensUpdateCreateModal.getByLabel("Value");
|
||||
|
||||
await nameField.click();
|
||||
await nameField.fill("color.dark.primary");
|
||||
|
||||
await valueField.click();
|
||||
await valueField.fill("red");
|
||||
|
||||
const submitButton = tokensUpdateCreateModal.getByRole("button", {
|
||||
name: "Save",
|
||||
});
|
||||
await expect(submitButton).toBeEnabled();
|
||||
await submitButton.click();
|
||||
|
||||
await expect(tokensTabPanel.getByLabel("color.dark.primary")).toBeEnabled();
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Tokens: Sets Tab", () => {
|
||||
|
|
|
@ -198,7 +198,6 @@
|
|||
(tr "shortcuts.toggle-lock")
|
||||
(tr "shortcuts.toggle-lock-size")
|
||||
(tr "shortcuts.toggle-rulers")
|
||||
(tr "shortcuts.toggle-rules")
|
||||
(tr "shortcuts.toggle-snap-guides")
|
||||
(tr "shortcuts.toggle-snap-ruler-guide")
|
||||
(tr "shortcuts.toggle-textpalette")
|
||||
|
|
|
@ -321,8 +321,9 @@
|
|||
children]])]))
|
||||
|
||||
(mf/defc menu-tree
|
||||
[{:keys [selected-shapes submenu-offset submenu-direction type] :as context-data}]
|
||||
(let [entries (if (seq selected-shapes)
|
||||
[{:keys [selected-shapes submenu-offset submenu-direction type errors] :as context-data}]
|
||||
(let [entries (if (and (not (some? errors))
|
||||
(seq selected-shapes))
|
||||
(if (some? type)
|
||||
(submenu-actions-selection-actions context-data)
|
||||
(selection-actions context-data))
|
||||
|
@ -343,7 +344,7 @@
|
|||
:selected? selected?}])])))
|
||||
|
||||
(mf/defc token-context-menu-tree
|
||||
[{:keys [width direction] :as mdata}]
|
||||
[{:keys [width direction errors] :as mdata}]
|
||||
(let [objects (mf/deref refs/workspace-page-objects)
|
||||
selected (mf/deref refs/selected-shapes)
|
||||
selected-shapes (into [] (keep (d/getf objects)) selected)
|
||||
|
@ -354,6 +355,7 @@
|
|||
[:& menu-tree {:submenu-offset width
|
||||
:submenu-direction direction
|
||||
:token token
|
||||
:errors errors
|
||||
:selected-token-set-path selected-token-set-path
|
||||
:selected-shapes selected-shapes}]]))
|
||||
|
||||
|
|
|
@ -83,6 +83,7 @@
|
|||
(st/emit! (dt/show-token-context-menu
|
||||
{:type :token
|
||||
:position (dom/get-client-position event)
|
||||
:errors (:errors token)
|
||||
:token-name (:name token)}))))
|
||||
|
||||
on-toggle-open-click (mf/use-fn
|
||||
|
@ -121,6 +122,7 @@
|
|||
[:> icon-button* {:on-click on-popover-open-click
|
||||
:variant "ghost"
|
||||
:icon "add"
|
||||
;; TODO: This needs translation
|
||||
:aria-label (str "Add token: " title)}]]
|
||||
(when open?
|
||||
[:& cmm/asset-section-block {:role :content}
|
||||
|
|
|
@ -174,6 +174,7 @@
|
|||
[err]
|
||||
(let [[header-1 header-2 & errors] (str/split err "\n")]
|
||||
(when (and
|
||||
;; TODO: This needs translations
|
||||
(= header-1 "Error: ")
|
||||
(= header-2 "Reference Errors:"))
|
||||
errors)))
|
||||
|
@ -206,10 +207,11 @@
|
|||
|
||||
;; === Errors
|
||||
|
||||
(defn humanize-errors [{:keys [errors value] :as _token}]
|
||||
(defn humanize-errors [{:keys [errors] :as token}]
|
||||
(->> (map (fn [err]
|
||||
(case err
|
||||
:error.style-dictionary/missing-reference (str "Could not resolve reference token with the name: " value)
|
||||
(case (:error/code err)
|
||||
;; TODO: This needs translations
|
||||
:error.style-dictionary/missing-reference (str "Could not resolve reference token with the name: " (:error/value err))
|
||||
nil))
|
||||
errors)
|
||||
(str/join "\n")))
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
(ns app.main.ui.workspace.tokens.token-pill
|
||||
(:require-macros [app.main.style :as stl])
|
||||
(:require
|
||||
[app.common.files.helpers :as cfh]
|
||||
[app.common.types.tokens-lib :as ctob]
|
||||
[app.main.ui.components.color-bullet :refer [color-bullet]]
|
||||
[app.main.ui.ds.foundations.assets.icon :refer [icon*]]
|
||||
[app.main.ui.ds.foundations.utilities.token.token-status :refer [token-status-icon*]]
|
||||
[app.main.ui.workspace.tokens.style-dictionary :as sd]
|
||||
[app.main.ui.workspace.tokens.token :as wtt]
|
||||
[app.util.dom :as dom]
|
||||
[app.util.i18n :refer [tr]]
|
||||
[cuerdas.core :as str]
|
||||
[rumext.v2 :as mf]))
|
||||
|
@ -16,11 +18,18 @@
|
|||
[{:keys [on-click token theme-token full-applied on-context-menu half-applied]}]
|
||||
(let [{:keys [name value resolved-value errors]} token
|
||||
errors? (or (nil? theme-token) (and (seq errors) (seq (:errors theme-token))))
|
||||
|
||||
color (when (seq (ctob/find-token-value-references value))
|
||||
(wtt/resolved-value-hex theme-token))
|
||||
|
||||
contains-path? (str/includes? name ".")
|
||||
splitted-name (cfh/split-string-half name)
|
||||
color (or color (wtt/resolved-value-hex token))
|
||||
on-click
|
||||
(mf/use-callback
|
||||
(mf/deps errors? on-click)
|
||||
(fn [event]
|
||||
(dom/stop-propagation event)
|
||||
(when (and (not (seq errors)) on-click)
|
||||
(on-click event))))
|
||||
|
||||
token-status-id (cond
|
||||
half-applied
|
||||
|
@ -35,25 +44,34 @@
|
|||
:token-pill-invalid-applied (and full-applied errors?))
|
||||
:type "button"
|
||||
:title (cond
|
||||
errors? (sd/humanize-errors token)
|
||||
errors? (if (nil? theme-token)
|
||||
(tr "workspace.token-set.not-active")
|
||||
(sd/humanize-errors token))
|
||||
:else (->> [(str "Token: " name)
|
||||
(tr "workspace.token.original-value" value)
|
||||
(tr "workspace.token.resolved-value" resolved-value)]
|
||||
(str/join "\n")))
|
||||
:on-click on-click
|
||||
:on-context-menu on-context-menu
|
||||
:disabled errors?}
|
||||
:on-context-menu on-context-menu}
|
||||
(cond
|
||||
color
|
||||
[:& color-bullet {:color color
|
||||
:mini true}]
|
||||
errors?
|
||||
[:> icon*
|
||||
{:icon-id "broken-link"
|
||||
:class (stl/css :token-pill-icon)}]
|
||||
|
||||
color
|
||||
[:& color-bullet {:color color
|
||||
:mini true}]
|
||||
:else
|
||||
[:> token-status-icon*
|
||||
{:icon-id token-status-id
|
||||
:class (stl/css :token-pill-icon)}])
|
||||
name]))
|
||||
(if contains-path?
|
||||
[:span {:class (stl/css :divided-name-wrapper)
|
||||
:aria-label name}
|
||||
[:span {:class (stl/css :first-name-wrapper)}
|
||||
(first splitted-name)]
|
||||
[:span {:class (stl/css :last-name-wrapper)}
|
||||
(last splitted-name)]]
|
||||
[:span {:class (stl/css :name-wrapper)
|
||||
:aria-label name}
|
||||
name])]))
|
|
@ -53,6 +53,32 @@
|
|||
--token-pill-accent: var(--color-background-tertiary);
|
||||
}
|
||||
}
|
||||
.name-wrapper {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.divided-name-wrapper {
|
||||
height: $s-16;
|
||||
}
|
||||
|
||||
.first-name-wrapper {
|
||||
display: inline-block;
|
||||
max-width: 50%;
|
||||
overflow: hidden;
|
||||
white-space: pre;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.last-name-wrapper {
|
||||
display: inline-block;
|
||||
max-width: 50%;
|
||||
overflow: hidden;
|
||||
white-space: pre;
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
.token-pill-applied {
|
||||
--token-pill-background: var(--color-token-background);
|
||||
|
@ -84,8 +110,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
.token-pill-invalid,
|
||||
.token-pill-invalid-applied {
|
||||
.token-pill-invalid {
|
||||
--token-pill-background: var(--color-background-tertiary);
|
||||
--token-pill-foreground: var(--color-foreground-error);
|
||||
--token-pill-border: var(--color-background-tertiary);
|
||||
|
@ -101,6 +126,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
.token-pill-invalid-applied {
|
||||
--token-pill-border: var(--color-foreground-error);
|
||||
&:hover,
|
||||
&:focus-visible,
|
||||
&:disabled {
|
||||
--token-pill-border: var(--color-foreground-error);
|
||||
}
|
||||
}
|
||||
|
||||
.token-pill-icon {
|
||||
color: var(--token-pill-accent);
|
||||
}
|
||||
|
|
|
@ -287,7 +287,7 @@ msgstr "Genereer nuwe token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Toegangstoken is suksesvol geskep."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -295,7 +295,7 @@ msgstr "قم بإنشاء رمز جديد"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "تم إنشاء رمز الوصول بنجاح."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -329,7 +329,7 @@ msgstr "Generovat nový token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Přístupový token byl úspěšně vytvořen."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -336,7 +336,7 @@ msgstr "Neues Token generieren"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Der Zugangstoken wurde erfolgreich erstellt."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -324,14 +324,8 @@ 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:65
|
||||
#, fuzzy
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr ""
|
||||
msgstr "Access token created successfully."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
msgid "dashboard.access-tokens.empty.add-one"
|
||||
|
@ -1153,9 +1147,8 @@ msgid "errors.member-is-muted"
|
|||
msgstr "The profile you inviting has emails muted (spam reports or high bounces)."
|
||||
|
||||
#: src/app/main/errors.cljs:228
|
||||
#, fuzzy
|
||||
msgid "errors.migration-in-progress"
|
||||
msgstr ""
|
||||
msgstr "Migration in progress"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs
|
||||
#, unused
|
||||
|
@ -1252,11 +1245,6 @@ msgstr "Email or password is incorrect."
|
|||
msgid "errors.wrong-old-password"
|
||||
msgstr "Old password is incorrect"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:85
|
||||
#, fuzzy
|
||||
msgid "exclude"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/settings/feedback.cljs:74
|
||||
msgid "feedback.description"
|
||||
msgstr "Description"
|
||||
|
@ -1557,11 +1545,6 @@ msgstr "Text"
|
|||
msgid "inspect.tabs.info"
|
||||
msgstr "Info"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:80
|
||||
#, fuzzy
|
||||
msgid "intersection"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/main_menu.cljs:163
|
||||
msgid "label.shortcuts"
|
||||
msgstr "Shortcuts"
|
||||
|
@ -2315,11 +2298,6 @@ msgstr "Create token"
|
|||
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:911
|
||||
msgid "modals.create-webhook.submit-label"
|
||||
msgstr "Create webhook"
|
||||
|
@ -3827,11 +3805,6 @@ msgstr "Lock proportions"
|
|||
msgid "shortcuts.toggle-rulers"
|
||||
msgstr "Show / Hide rulers"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:201
|
||||
#, fuzzy
|
||||
msgid "shortcuts.toggle-rules"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:202
|
||||
msgid "shortcuts.toggle-snap-guides"
|
||||
msgstr "Snap to guides"
|
||||
|
@ -6308,21 +6281,6 @@ msgstr "Edit themes"
|
|||
msgid "workspace.token.edit-token"
|
||||
msgstr "Edit token"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs:408
|
||||
#, fuzzy
|
||||
msgid "workspace.token.enter-token-description"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs:370
|
||||
#, fuzzy
|
||||
msgid "workspace.token.enter-token-name"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs:390
|
||||
#, fuzzy
|
||||
msgid "workspace.token.enter-token-value"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/sets.cljs:186
|
||||
#, unused
|
||||
msgid "workspace.token.grouping-set-alert"
|
||||
|
@ -6380,11 +6338,6 @@ msgstr "Select set."
|
|||
msgid "workspace.token.set-selection-theme"
|
||||
msgstr "Define what token sets should be used as part of this theme option:"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs:119
|
||||
#, fuzzy
|
||||
msgid "workspace.token.theme"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
#, unused
|
||||
msgid "workspace.token.theme-name"
|
||||
|
@ -6394,20 +6347,9 @@ msgstr "Theme %s"
|
|||
msgid "workspace.token.themes"
|
||||
msgstr "Themes"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs:409
|
||||
#, fuzzy
|
||||
msgid "workspace.token.token-description"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs:373
|
||||
#, fuzzy
|
||||
msgid "workspace.token.token-name"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/form.cljs:391
|
||||
#, fuzzy
|
||||
msgid "workspace.token.token-value"
|
||||
msgstr ""
|
||||
#: src/app/main/ui/workspace/tokens/token_pill.cljs:47
|
||||
msgid "workspace.token-set.not-active"
|
||||
msgstr "Token set is not active"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar.cljs:117, src/app/main/ui/workspace/sidebar.cljs:126
|
||||
msgid "workspace.toolbar.assets"
|
||||
|
|
|
@ -332,7 +332,7 @@ msgstr "Generar nuevo token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Access token creado con éxito."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
@ -1163,6 +1163,10 @@ msgstr ""
|
|||
"El perfil que esta invitando tiene los emails silenciados (por reportes de "
|
||||
"spam o alto indice de rebote)."
|
||||
|
||||
#: src/app/main/errors.cljs:228
|
||||
msgid "errors.migration-in-progress"
|
||||
msgstr "Migración en proceso"
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs
|
||||
#, unused
|
||||
msgid "errors.password-invalid-confirmation"
|
||||
|
@ -6757,6 +6761,10 @@ msgstr "Nuevo tema"
|
|||
msgid "workspace.token.themes"
|
||||
msgstr "Temas"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/token_pill.cljs:47
|
||||
msgid "workspace.token-set.not-active"
|
||||
msgstr "El set de tokens no está aplicado"
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs
|
||||
msgid "workspace.token.theme-name"
|
||||
msgstr "Tema %s"
|
||||
|
|
|
@ -294,7 +294,7 @@ msgstr "Generar nuevo token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Token de acceso creado correctamente."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -332,7 +332,7 @@ msgstr "Générer un nouveau jeton"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Jeton d'accès créé avec succès."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -270,7 +270,7 @@ msgstr "samo sabuwar lambar tsaro"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "ka sami lambar tsaron da aka yi."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -318,7 +318,7 @@ msgstr "יצירת אסימון חדש"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "אסימון הגישה נוצר בהצלחה."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -331,12 +331,8 @@ 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:65
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr " "
|
||||
msgstr "Token akses berhasil dibuat."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
msgid "dashboard.access-tokens.empty.add-one"
|
||||
|
@ -1051,10 +1047,6 @@ msgstr ""
|
|||
"Profil yang Anda undang membisukan surel (laporan spam atau lompatan "
|
||||
"tinggi)."
|
||||
|
||||
#: src/app/main/errors.cljs:228
|
||||
msgid "errors.migration-in-progress"
|
||||
msgstr " "
|
||||
|
||||
#: src/app/main/ui/settings/password.cljs
|
||||
#, unused
|
||||
msgid "errors.password-invalid-confirmation"
|
||||
|
@ -1154,10 +1146,6 @@ msgstr "Surel atau kata sandi tidak benar."
|
|||
msgid "errors.wrong-old-password"
|
||||
msgstr "Kata sandi lama tidak benar"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:85
|
||||
msgid "exclude"
|
||||
msgstr " "
|
||||
|
||||
#: src/app/main/ui/settings/feedback.cljs:74
|
||||
msgid "feedback.description"
|
||||
msgstr "Deskripsi"
|
||||
|
@ -1461,10 +1449,6 @@ msgstr "Teks"
|
|||
msgid "inspect.tabs.info"
|
||||
msgstr "Info"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/options/menus/bool.cljs:80
|
||||
msgid "intersection"
|
||||
msgstr " "
|
||||
|
||||
#: src/app/main/ui/workspace/main_menu.cljs:162
|
||||
msgid "label.shortcuts"
|
||||
msgstr "Pintasan"
|
||||
|
@ -2151,10 +2135,6 @@ msgstr "Buat token"
|
|||
msgid "modals.create-access-token.title"
|
||||
msgstr "Buat token baru"
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:152
|
||||
msgid "modals.create-access-token.token"
|
||||
msgstr " "
|
||||
|
||||
#: src/app/main/ui/dashboard/team.cljs:911
|
||||
msgid "modals.create-webhook.submit-label"
|
||||
msgstr "Buat kaitan web"
|
||||
|
@ -3640,10 +3620,6 @@ msgstr "Kunci proporsi"
|
|||
msgid "shortcuts.toggle-rulers"
|
||||
msgstr "Tampilkan / Sembunyikan penggaris"
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:199
|
||||
msgid "shortcuts.toggle-rules"
|
||||
msgstr " "
|
||||
|
||||
#: src/app/main/ui/workspace/sidebar/shortcuts.cljs:200
|
||||
msgid "shortcuts.toggle-snap-guides"
|
||||
msgstr "Pasang ke panduan"
|
||||
|
@ -6107,10 +6083,6 @@ msgstr "Klik untuk menutup jalur"
|
|||
msgid "dashboard.empty-placeholder-drafts-title"
|
||||
msgstr "Belum ada draf."
|
||||
|
||||
#: src/app/main/ui/workspace/tokens/modals/themes.cljs:119
|
||||
msgid "workspace.token.theme"
|
||||
msgstr " "
|
||||
|
||||
#: src/app/main/ui/dashboard/fonts.cljs:445
|
||||
msgid "dashboard.fonts.empty-placeholder-viewer-sub"
|
||||
msgstr ""
|
||||
|
|
|
@ -256,7 +256,7 @@ msgstr "Mepụta ọdịmara ọhụrụ"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Mmepụtara ọdịmara nnweta gara nke ọma ."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -5122,7 +5122,7 @@ msgstr "Elimina"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Token di accesso creato con successo."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:143
|
||||
|
|
|
@ -303,7 +303,7 @@ msgstr "새로운 토큰 생성하기"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "엑세스 토큰이 성공적으로 생성되었습니다."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -330,7 +330,7 @@ msgstr "Izveidot jaunu pilnvaru"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Piekļuves pilnvara ir veiksmīgi izveidota."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -277,7 +277,7 @@ msgstr "Jana token baru"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Token capaian berjaya dihasilkan."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -329,7 +329,7 @@ msgstr "Nieuw toegangsbewijs aanmaken"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Toegangsbewijs is succesvol aangemaakt."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -328,7 +328,7 @@ msgstr "Gerar novo token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Token de acesso criado com sucesso."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -314,7 +314,7 @@ msgstr "Generați jeton nou"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Jeton de acces creat cu succes."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -329,7 +329,7 @@ msgstr "Skapa ny token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Accesstoken skapad."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -757,7 +757,7 @@ msgstr "สร้างโทเคนใหม่"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "สร้างโทเคนสำหรับการเข้าถึงสำเร็จแล้ว"
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -330,7 +330,7 @@ msgstr "Yeni belirteç oluştur"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Erişim belirteci başarıyla oluşturuldu."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -334,7 +334,7 @@ msgstr "Згенерувати новий токен"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "Токен доступу успішно створено."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -268,7 +268,7 @@ msgstr "ṣe ìpilẹ̀sẹ̀ àmì tókìnnì"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "ṣe àyẹ̀wò àmì tókìnnì tí o ṣẹ̀dá bó ṣeyẹ."
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -300,7 +300,7 @@ msgstr "生成新令牌"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "成功创建访问令牌。"
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
|
@ -283,7 +283,7 @@ msgstr "產生新的 Token"
|
|||
|
||||
#: src/app/main/ui/settings/access-tokens.cljs
|
||||
#, unused
|
||||
msgid "dashboard.access-tokens.create-success"
|
||||
msgid "dashboard.access-tokens.create.success"
|
||||
msgstr "已成功建立 Access Token。"
|
||||
|
||||
#: src/app/main/ui/settings/access_tokens.cljs:289
|
||||
|
|
Loading…
Add table
Reference in a new issue