Merge branch 'master' into enhance/i18n

This commit is contained in:
Mega Yu
2026-04-17 10:35:36 +08:00
31 changed files with 122 additions and 88 deletions

View File

@@ -56,7 +56,7 @@
:aliases {:cljs {:extra-paths ["src/dev-cljs/" "src/test/" "src/electron/"]
:extra-deps {org.clojure/tools.namespace {:mvn/version "1.5.0"}
cider/cider-nrepl {:mvn/version "0.58.0"}
cider/cider-nrepl {:mvn/version "0.59.0"}
org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"}
tortue/spy {:mvn/version "2.15.0"}
binaryage/devtools {:mvn/version "1.0.7"}}
@@ -66,7 +66,7 @@
pjstadig/humane-test-output {:mvn/version "0.11.0"}
org.clojars.knubie/cljs-run-test {:mvn/version "1.0.1"}
tortue/spy {:mvn/version "2.15.0"}
cider/cider-nrepl {:mvn/version "0.58.0"}}
cider/cider-nrepl {:mvn/version "0.59.0"}}
:main-opts ["-m" "shadow.cljs.devtools.cli"]}
:bench {:extra-paths ["src/bench/"]

View File

@@ -212,6 +212,23 @@
(transact-fn repo-or-conn tx-data tx-meta)
(transact-sync repo-or-conn tx-data tx-meta))))))
(defn- make-conn [opts]
;; `datascript.conn/->Conn` is not exposed in nbb runtime.
;; Start from a fresh conn and merge the desired internal state.
(let [conn (d/create-conn)]
(swap! (:atom conn) merge opts)
conn))
(defn- conn-from-db
"Forked conn-from-db to not invoke `d/store`, it's unsafe to store during nested batch tx."
[db]
(if-some [_storage (storage/storage db)]
(make-conn
{:db db
:tx-tail []
:db-last-stored db})
(make-conn {:db db})))
(defn batch-transact-with-temp-conn!
"Run batched tx work against a temporary conn, then apply all collected tx-data
to `conn` with a single final `transact!`.
@@ -229,7 +246,7 @@
- `listen-db` (if provided) receives each intermediate tx-report from temp conn.
- Do not rely on returned tx-report shape for undo/redo behavior."
[conn tx-meta batch-tx-fn & {:keys [listen-db]}]
(let [temp-conn (d/conn-from-db @conn)
(let [temp-conn (conn-from-db @conn)
*batch-tx-data (volatile! [])
*complete? (volatile! false)]
;; can read from disk, write is disallowed

View File

@@ -371,41 +371,6 @@
(reset! *result (apply toggle-reaction! conn args))
nil))
(defn- apply-single-op!
[conn ops *result opts' clean-tx-meta]
(let [db @conn
op (first ops)
result (case (ffirst ops)
:save-block
(apply outliner-core/save-block db (second op))
:insert-blocks
(let [[blocks target-block-id insert-opts] (second op)]
(outliner-core/insert-blocks db blocks
(d/entity db [:block/uuid target-block-id])
insert-opts))
:delete-blocks
(let [[block-ids opts] (second op)
blocks (keep #(d/entity db [:block/uuid %]) block-ids)]
(outliner-core/delete-blocks db blocks (merge opts opts'))))
additional-tx (:additional-tx opts')
full-tx (concat (:tx-data result) additional-tx)]
(ldb/transact! conn full-tx clean-tx-meta)
(reset! *result result)))
(defn- apply-save-followed-by-insert!
[conn ops *result opts' clean-tx-meta]
(let [save-block-tx (:tx-data (apply outliner-core/save-block @conn (second (first ops))))
[blocks target-block-id insert-opts] (second (second ops))
insert-blocks-result (outliner-core/insert-blocks @conn blocks
(d/entity @conn [:block/uuid target-block-id])
insert-opts)
additional-tx (:additional-tx opts')
full-tx (concat save-block-tx
(:tx-data insert-blocks-result)
additional-tx)]
(ldb/transact! conn full-tx clean-tx-meta)
(reset! *result insert-blocks-result)))
(defn apply-ops!
[conn ops opts]
(assert (ops-validator ops) ops)
@@ -420,22 +385,11 @@
(and single-op-outliner-op
(nil? (:outliner-op opts)))
(assoc :outliner-op single-op-outliner-op))
*result (atom nil)
clean-tx-meta (dissoc opts' :additional-tx :transact-opts :current-block)]
(cond
(and single-op-outliner-op
(contains? #{:save-block :insert-blocks :delete-blocks} (ffirst ops)))
(apply-single-op! conn ops *result opts' clean-tx-meta)
*result (atom nil)]
(and (= 2 (count ops))
(= :save-block (ffirst ops))
(= :insert-blocks (first (second ops))))
(apply-save-followed-by-insert! conn ops *result opts' clean-tx-meta)
:else
(outliner-tx/transact!
opts'
(doseq [op-entry ops]
(apply-op! conn opts' *result op-entry))))
(outliner-tx/transact!
opts'
(doseq [op-entry ops]
(apply-op! conn opts' *result op-entry)))
@*result))

View File

@@ -259,10 +259,32 @@
[:<>
(let [handle-copy!
(fn [_e]
(-> (util/copy-image-to-clipboard image-src)
(p/then #(notification/show! (t :notification/copied) :success))
(p/catch (fn [error]
(js/console.error error)))))
;; Electron renderer cannot fetch file:// URLs; read the
;; file via IPC and copy the blob directly.
(if (util/electron?)
(let [ext (some-> (util/get-file-ext image-src) string/lower-case)
;; Should support all exts in common-config/img-formats
ext->mime {"png" "image/png"
"jpg" "image/jpeg"
"jpeg" "image/jpeg"
"gif" "image/gif"
"webp" "image/webp"
"bmp" "image/bmp"
"svg" "image/svg+xml"
"ico" "image/x-icon"}
mime (get ext->mime ext)]
(if-not mime
(notification/show! (t :asset/copy-image-unsupported-extension (str "." ext)) :warning)
(-> (p/let [binary (fs/read-file-raw nil image-src {})
blob (js/Blob. (array binary) (clj->js {:type mime}))]
(util/copy-image-blob-to-clipboard blob))
(p/then #(notification/show! (t :notification/copied) :success))
(p/catch (fn [error]
(js/console.error error))))))
(-> (util/copy-image-to-clipboard src')
(p/then #(notification/show! (t :notification/copied) :success))
(p/catch (fn [error]
(js/console.error error))))))
handle-delete!
(fn [_e]
(when-let [block-id (get-blockid)]
@@ -347,7 +369,7 @@
(ipc/ipc "openFileInFolder" image-src)
(js/window.apis.openExternal image-src)))}
[:span.flex.items-center.gap-1
(ui/icon "folder-pin") (t (if local? :asset/show-in-folder :asset/open-in-browser))]))
(ui/icon "folder-pin") (t (if local? :asset/show-file-in-folder :asset/open-in-browser))]))
(when-not config/publishing?
[:<>

View File

@@ -2,11 +2,13 @@
(:require [cljs-time.coerce :as tc]
[cljs.pprint :as pp]
[clojure.string :as string]
[electron.ipc :as ipc]
[frontend.commands :as commands]
[frontend.components.editor :as editor]
[frontend.components.export :as export]
[frontend.components.icon :as icon-component]
[frontend.components.page-menu :as page-menu]
[frontend.config :as config]
[frontend.context.i18n :refer [t]]
[frontend.db :as db]
[frontend.extensions.fsrs :as fsrs]
@@ -24,6 +26,7 @@
[frontend.util.url :as url-util]
[goog.dom :as gdom]
[goog.object :as gobj]
[logseq.common.path :as path]
[logseq.common.util :as common-util]
[logseq.db :as ldb]
[logseq.shui.ui :as shui]
@@ -241,6 +244,16 @@
(editor-handler/copy-block-ref! block-id tap-f)))}
(t :block/copy-url)))
(when (and (util/electron?) (ldb/asset? block))
(shui/dropdown-menu-item
{:key "Show asset in folder"
:on-click (fn [_e]
(let [assets-dir (config/get-current-repo-assets-root)
ext (name (:logseq.property.asset/type block))
file-path (path/path-join assets-dir (str (:block/uuid block) "." ext))]
(ipc/ipc "openFileInFolder" file-path)))}
(t :asset/show-file-in-folder)))
(shui/dropdown-menu-item
{:key "Copy as"
:on-click (fn [_]

View File

@@ -55,7 +55,7 @@
:else
;; FIXME: should move to worker
(let [txs [(db-class/build-new-class (db/get-db)
{:block/uuid [:block/uuid (:block/uuid page-entity)]
{:block/uuid (:block/uuid page-entity)
:block/title (:block/title page-entity)
:block/created-at (:block/created-at page-entity)})
[:db/retract (:db/id page-entity) :block/tags :logseq.class/Page]]]

View File

@@ -1314,16 +1314,20 @@
(.catch (fn [err]
(js/console.error "Web clipboard failed" err)))))))))
#?(:cljs
(defn copy-image-blob-to-clipboard
[blob]
(if (= (.-type blob) "image/png")
(write-blob-to-clipboard blob)
(image-blob->png blob write-blob-to-clipboard))))
#?(:cljs
(defn copy-image-to-clipboard
[src]
(-> (js/fetch src)
(.then (fn [data]
(-> (.blob data)
(.then (fn [blob]
(if (= (.-type blob) "image/png")
(write-blob-to-clipboard blob)
(image-blob->png blob write-blob-to-clipboard))))
(.then copy-image-blob-to-clipboard)
(.catch js/console.error)))))))
(defn memoize-last

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Bovenliggend element kan nie als eigen eienskap worden ingesloten"
:asset/confirm-delete-image "Is jy seker jy wil hierdie beeld uitvee?"
:asset/copy "Kopieer"
:asset/copy-image-unsupported-extension "Kopiëring van beelde word nie vir {1}-lêers ondersteun nie"
:asset/create-local-copy-warning "Skep 'n plaaslike bate van 'n eksterne een. PDF-aantekeninge vereis 'n plaaslike bate om behoorlik te werk."
:asset/create-title "Skep bate"
:asset/delete "Verwyder"
@@ -64,7 +65,7 @@
:asset/select-file "Kies batelêer"
:asset/select-from-disk "Kies van skyf"
:asset/selected-directories "Gekose gidse:"
:asset/show-in-folder "Wys in gids"
:asset/show-file-in-folder "Wys lêer in gids"
:asset/size-too-large "Lêer is te groot"
:asset/syncing "Sinkronisasie"
:asset/title-label "Batetitel:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "لا يمكن تضمين العنصر الأصلي كخاصية"
:asset/confirm-delete-image "هل أنت متأكد من أنك تريد حذف هذه الصورة؟"
:asset/copy "نسخ"
:asset/copy-image-unsupported-extension "نسخ الصورة غير مدعوم لملفات {1}"
:asset/create-local-copy-warning "إنشاء أصل محلي من أصل خارجي. تتطلب تعليقات PDF التوضيحية أصلًا محليًا للعمل بشكل صحيح."
:asset/create-title "إنشاء أصل"
:asset/delete "حذف"
@@ -64,7 +65,7 @@
:asset/select-file "تحديد ملف الأصل"
:asset/select-from-disk "التحديد من القرص"
:asset/selected-directories "المجلدات المحددة:"
:asset/show-in-folder "عرض في المجلد"
:asset/show-file-in-folder "إظهار الملف في المجلد"
:asset/size-too-large "الملف كبير جداً"
:asset/syncing "جاري المزامنة"
:asset/title-label "عنوان الأصل:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "No es pot incrustar el pare com a propietat pròpia"
:asset/confirm-delete-image "Esteu segur que voleu eliminar aquesta imatge?"
:asset/copy "Copiar imatge"
:asset/copy-image-unsupported-extension "Copiar la imatge no és compatible amb els fitxers {1}"
:asset/create-local-copy-warning "S'està creant un recurs local a partir d'un d'extern. Les anotacions PDF requereixen un recurs local per funcionar correctament."
:asset/create-title "Crear recurs"
:asset/delete "Eliminar imatge"
@@ -64,7 +65,7 @@
:asset/select-file "Seleccioneu el fitxer del recurs"
:asset/select-from-disk "Seleccionar del disc"
:asset/selected-directories "Directoris seleccionats:"
:asset/show-in-folder "Mostrar imatge a la carpeta"
:asset/show-file-in-folder "Mostrar el fitxer a la carpeta"
:asset/size-too-large "El recurs és massa gran"
:asset/syncing "Sincronització en curs"
:asset/title-label "Títol del recurs:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Nelze vložit rodiče jako vlastní vlastnost"
:asset/confirm-delete-image "Jste si jisti, že chcete odstranit tento obrázek?"
:asset/copy "Kopírovat obrázek"
:asset/copy-image-unsupported-extension "Kopírování obrázku není pro soubory {1} podporováno"
:asset/create-local-copy-warning "Vytváření lokální kopie z externího souboru. PDF anotace vyžadují lokální soubor pro správné fungování."
:asset/create-title "Vytvořit soubor"
:asset/delete "Odstranit obrázek"
@@ -64,7 +65,7 @@
:asset/select-file "Vybrat soubor"
:asset/select-from-disk "Vybrat z disku"
:asset/selected-directories "Vybrané adresáře:"
:asset/show-in-folder "Zobrazit obrázek ve složce"
:asset/show-file-in-folder "Zobrazit soubor ve složce"
:asset/size-too-large "Soubor je příliš velký"
:asset/syncing "Synchronizace"
:asset/title-label "Název souboru:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Elternelement kann nicht als eigene Eigenschaft eingebettet werden"
:asset/confirm-delete-image "Möchten Sie dieses Bild wirklich löschen?"
:asset/copy "Bild kopieren"
:asset/copy-image-unsupported-extension "Das Kopieren von Bildern wird für Dateien vom Typ {1} nicht unterstützt"
:asset/create-local-copy-warning "Es wird ein lokales Asset aus einem externen erstellt. PDF-Anmerkungen erfordern ein lokales Asset, um richtig zu funktionieren."
:asset/create-title "Asset erstellen"
:asset/delete "Bild löschen"
@@ -64,7 +65,7 @@
:asset/select-file "Asset-Datei auswählen"
:asset/select-from-disk "Von Festplatte auswählen"
:asset/selected-directories "Ausgewählte Verzeichnisse:"
:asset/show-in-folder "Bild im Ordner anzeigen"
:asset/show-file-in-folder "Datei im Ordner anzeigen"
:asset/size-too-large "Asset-Größe ist zu groß"
:asset/syncing "Wird synchronisiert"
:asset/title-label "Asset-Titel:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Can't embed parent block as its own property"
:asset/confirm-delete-image "Are you sure you want to delete this image?"
:asset/copy "Copy image"
:asset/copy-image-unsupported-extension "Copy image is not supported for {1} files"
:asset/create-local-copy-warning "Creating a local asset from an external one. PDF annotations require a local asset to work properly."
:asset/create-title "Create asset"
:asset/delete "Delete image"
@@ -64,7 +65,7 @@
:asset/select-file "Select Asset File"
:asset/select-from-disk "Select from disk"
:asset/selected-directories "Selected directories:"
:asset/show-in-folder "Show image in folder"
:asset/show-file-in-folder "Show file in folder"
:asset/size-too-large "Asset size shouldn't be larger than 100M"
:asset/syncing "Syncing"
:asset/title-label "Asset title:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "No se puede incrustar el padre como su propia propiedad"
:asset/confirm-delete-image "¿Está seguro de que desea eliminar esta imagen?"
:asset/copy "Copiar imagen"
:asset/copy-image-unsupported-extension "No se admite copiar imágenes para archivos {1}"
:asset/create-local-copy-warning "Creando un archivo local a partir de uno externo. Las anotaciones PDF requieren un archivo local para funcionar correctamente."
:asset/create-title "Crear archivo adjunto"
:asset/delete "Eliminar imagen"
@@ -64,7 +65,7 @@
:asset/select-file "Seleccionar archivo adjunto"
:asset/select-from-disk "Seleccionar desde disco"
:asset/selected-directories "Directorios seleccionados:"
:asset/show-in-folder "Mostrar imagen en la carpeta"
:asset/show-file-in-folder "Mostrar archivo en la carpeta"
:asset/size-too-large "El recurso es demasiado grande"
:asset/syncing "Sincronizando"
:asset/title-label "Título del archivo adjunto:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "نمی‌توان والد را به عنوان ویژگی خودش جاسازی کرد"
:asset/confirm-delete-image "آیا مطمئن هستید که می‌خواهید این تصویر را حذف کنید؟"
:asset/copy "کپی"
:asset/copy-image-unsupported-extension "کپی تصویر برای فایل‌های {1} پشتیبانی نمی‌شود"
:asset/create-local-copy-warning "ایجاد فایل پیوست محلی از یک فایل خارجی. حاشیه‌نویسی PDF نیاز به فایل پیوست محلی دارد تا به درستی کار کند."
:asset/create-title "ایجاد فایل پیوست"
:asset/delete "حذف"
@@ -64,7 +65,7 @@
:asset/select-file "انتخاب فایل پیوست"
:asset/select-from-disk "انتخاب از دیسک"
:asset/selected-directories "پوشه‌های انتخاب شده:"
:asset/show-in-folder "نمایش در پوشه"
:asset/show-file-in-folder "نمایش فایل در پوشه"
:asset/size-too-large "فایل خیلی بزرگ است"
:asset/syncing "در حال همگام‌سازی"
:asset/title-label "عنوان فایل پیوست:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Impossible d'intégrer le parent comme sa propre propriété"
:asset/confirm-delete-image "Voulez-vous vraiment supprimer cette image ?"
:asset/copy "Copier l'image"
:asset/copy-image-unsupported-extension "La copie d'image n'est pas prise en charge pour les fichiers {1}"
:asset/create-local-copy-warning "Création d'un fichier local à partir d'un fichier externe. Les annotations PDF nécessitent un fichier local pour fonctionner correctement."
:asset/create-title "Créer un fichier"
:asset/delete "Supprimer l'image"
@@ -64,7 +65,7 @@
:asset/select-file "Sélectionner un fichier"
:asset/select-from-disk "Sélectionner depuis le disque"
:asset/selected-directories "Répertoires sélectionnés :"
:asset/show-in-folder "Montrer l'image dans le dossier"
:asset/show-file-in-folder "Afficher le fichier dans le dossier"
:asset/size-too-large "La taille de la ressource est trop grande"
:asset/syncing "Synchronisation en cours"
:asset/title-label "Titre du fichier :"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Tidak dapat menyematkan induk sebagai propertinya sendiri"
:asset/confirm-delete-image "Apakah Anda yakin ingin menghapus gambar ini?"
:asset/copy "Salin gambar"
:asset/copy-image-unsupported-extension "Menyalin gambar tidak didukung untuk file {1}"
:asset/create-local-copy-warning "Membuat aset lokal dari aset eksternal. Anotasi PDF memerlukan aset lokal agar berfungsi dengan baik."
:asset/create-title "Buat aset"
:asset/delete "Hapus gambar"
@@ -64,7 +65,7 @@
:asset/select-file "Pilih File Aset"
:asset/select-from-disk "Pilih dari disk"
:asset/selected-directories "Direktori yang dipilih:"
:asset/show-in-folder "Tampilkan gambar di folder"
:asset/show-file-in-folder "Tampilkan file di folder"
:asset/size-too-large "Berkas terlalu besar"
:asset/syncing "Menyinkronkan"
:asset/title-label "Judul aset:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Impossibile incorporare il genitore come propria proprietà"
:asset/confirm-delete-image "Sei sicuro di voler eliminare questa immagine?"
:asset/copy "Copia immagine"
:asset/copy-image-unsupported-extension "La copia dell'immagine non è supportata per i file {1}"
:asset/create-local-copy-warning "Creazione di una risorsa locale da una esterna. Le annotazioni PDF richiedono una risorsa locale per funzionare correttamente."
:asset/create-title "Crea risorsa"
:asset/delete "Elimina immagine"
@@ -64,7 +65,7 @@
:asset/select-file "Seleziona file risorsa"
:asset/select-from-disk "Seleziona dal disco"
:asset/selected-directories "Cartelle selezionate:"
:asset/show-in-folder "Mostra nella cartella"
:asset/show-file-in-folder "Mostra file nella cartella"
:asset/size-too-large "La risorsa è troppo grande"
:asset/syncing "Sincronizzazione in corso"
:asset/title-label "Titolo risorsa:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "自身のプロパティとして親を埋め込むことはできません"
:asset/confirm-delete-image "この画像を削除してもよろしいですか?"
:asset/copy "アセットをコピー"
:asset/copy-image-unsupported-extension "{1} ファイルは画像のコピーに対応していません"
:asset/create-local-copy-warning "外部アセットからローカルアセットを作成します。PDFの注釈機能にはローカルアセットが必要です。"
:asset/create-title "アセットを作成"
:asset/delete "画像を削除"
@@ -64,7 +65,7 @@
:asset/select-file "アセットファイルを選択"
:asset/select-from-disk "ディスクから選択"
:asset/selected-directories "選択されたディレクトリ:"
:asset/show-in-folder "画像のフォルダを開く"
:asset/show-file-in-folder "ファイルをフォルダーに表示"
:asset/size-too-large "アセットのサイズが大きすぎます"
:asset/syncing "同期中"
:asset/title-label "アセットのタイトル:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "자신의 속성으로 부모를 임베드할 수 없습니다"
:asset/confirm-delete-image "이 이미지를 삭제하시겠습니까?"
:asset/copy "에셋 복사"
:asset/copy-image-unsupported-extension "{1} 파일은 이미지 복사를 지원하지 않습니다"
:asset/create-local-copy-warning "외부 자산에서 로컬 자산을 생성합니다. PDF 주석이 제대로 작동하려면 로컬 자산이 필요합니다."
:asset/create-title "자산 만들기"
:asset/delete "이미지 삭제"
@@ -64,7 +65,7 @@
:asset/select-file "자산 파일 선택"
:asset/select-from-disk "디스크에서 선택"
:asset/selected-directories "선택된 디렉터리:"
:asset/show-in-folder "이미지 폴더에서 기"
:asset/show-file-in-folder "파일을 폴더에서 기"
:asset/size-too-large "에셋 크기가 너무 큽니다"
:asset/syncing "동기화 중"
:asset/title-label "자산 제목:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Overordnet element kan ikke bygges inn som egen egenskap"
:asset/confirm-delete-image "Er du sikker på at du vil slette dette bildet?"
:asset/copy "Kopier"
:asset/copy-image-unsupported-extension "Kopiering av bilder støttes ikke for {1}-filer"
:asset/create-local-copy-warning "Oppretter en lokal kopi fra et eksternt vedlegg. PDF-merknader krever et lokalt vedlegg for å fungere riktig."
:asset/create-title "Opprett vedlegg"
:asset/delete "Slett"
@@ -64,7 +65,7 @@
:asset/select-file "Velg vedleggsfil"
:asset/select-from-disk "Velg fra disk"
:asset/selected-directories "Valgte mapper:"
:asset/show-in-folder "Vis i mappe"
:asset/show-file-in-folder "Vis fil i mappe"
:asset/size-too-large "Filen er for stor"
:asset/syncing "Synkroniserer"
:asset/title-label "Vedleggstittel:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Bovenliggend element kan niet als eigen eigenschap worden ingesloten"
:asset/confirm-delete-image "Weet u zeker dat u deze afbeelding wilt verwijderen?"
:asset/copy "Kopiëren"
:asset/copy-image-unsupported-extension "Afbeelding kopiëren wordt niet ondersteund voor {1}-bestanden"
:asset/create-local-copy-warning "Er wordt een lokale bijlage aangemaakt van een externe bron. PDF-annotaties vereisen een lokale bijlage om correct te werken."
:asset/create-title "Bijlage aanmaken"
:asset/delete "Verwijderen"
@@ -64,7 +65,7 @@
:asset/select-file "Bijlagebestand selecteren"
:asset/select-from-disk "Selecteren van schijf"
:asset/selected-directories "Geselecteerde mappen:"
:asset/show-in-folder "In map tonen"
:asset/show-file-in-folder "Bestand in map tonen"
:asset/size-too-large "Bestand is te groot"
:asset/syncing "Synchroniseren"
:asset/title-label "Bijlagetitel:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Nie można osadzić rodzica jako własnej właściwości"
:asset/confirm-delete-image "Czy na pewno chcesz usunąć ten obraz?"
:asset/copy "Kopiuj obrazek"
:asset/copy-image-unsupported-extension "Kopiowanie obrazu nie jest obsługiwane dla plików {1}"
:asset/create-local-copy-warning "Tworzenie lokalnego zasobu z zewnętrznego. Adnotacje PDF wymagają lokalnego zasobu, aby działały poprawnie."
:asset/create-title "Utwórz zasób"
:asset/delete "Usuń obrazek"
@@ -64,7 +65,7 @@
:asset/select-file "Wybierz plik zasobu"
:asset/select-from-disk "Wybierz z dysku"
:asset/selected-directories "Wybrane katalogi:"
:asset/show-in-folder "Pokaż obrazek w folderze"
:asset/show-file-in-folder "Pokaż plik w folderze"
:asset/size-too-large "Zasób jest zbyt duży"
:asset/syncing "Synchronizacja"
:asset/title-label "Tytuł zasobu:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Não é possível incorporar o pai como sua própria propriedade"
:asset/confirm-delete-image "Tem certeza de que deseja excluir esta imagem?"
:asset/copy "Copiar imagem"
:asset/copy-image-unsupported-extension "Copiar imagem não é compatível com arquivos {1}"
:asset/create-local-copy-warning "Criando um arquivo local a partir de um externo. Anotações em PDF requerem um arquivo local para funcionar corretamente."
:asset/create-title "Criar arquivo"
:asset/delete "Excluir imagem"
@@ -64,7 +65,7 @@
:asset/select-file "Selecionar arquivo"
:asset/select-from-disk "Selecionar do disco"
:asset/selected-directories "Diretórios selecionados:"
:asset/show-in-folder "Mostrar imagem na pasta"
:asset/show-file-in-folder "Mostrar arquivo na pasta"
:asset/size-too-large "O recurso é muito grande"
:asset/syncing "Sincronizando"
:asset/title-label "Título do arquivo:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Não é possível incorporar o pai como sua própria propriedade"
:asset/confirm-delete-image "Tem a certeza de que quer apagar esta imagem?"
:asset/copy "Copiar imagem"
:asset/copy-image-unsupported-extension "Copiar imagem não é suportado para ficheiros {1}"
:asset/create-local-copy-warning "A criar um ficheiro local a partir de um externo. As anotações PDF requerem um ficheiro local para funcionar corretamente."
:asset/create-title "Criar ficheiro"
:asset/delete "Eliminar imagem"
@@ -64,7 +65,7 @@
:asset/select-file "Selecionar ficheiro"
:asset/select-from-disk "Selecionar do disco"
:asset/selected-directories "Diretórios selecionados:"
:asset/show-in-folder "Mostrar imagem na pasta"
:asset/show-file-in-folder "Mostrar ficheiro na pasta"
:asset/size-too-large "O recurso é muito grande"
:asset/syncing "Sincronização em curso"
:asset/title-label "Título do ficheiro:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Невозможно встроить родителя как собственное свойство"
:asset/confirm-delete-image "Вы уверены, что хотите удалить это изображение?"
:asset/copy "Копировать изображение"
:asset/copy-image-unsupported-extension "Копирование изображения не поддерживается для файлов {1}"
:asset/create-local-copy-warning "Создание локальной копии из внешнего ресурса. Для корректной работы аннотаций PDF необходим локальный файл."
:asset/create-title "Создать ресурс"
:asset/delete "Удалить изображение"
@@ -64,7 +65,7 @@
:asset/select-file "Выбрать файл"
:asset/select-from-disk "Выбрать с диска"
:asset/selected-directories "Выбранные каталоги:"
:asset/show-in-folder "Показать изображение в папке"
:asset/show-file-in-folder "Показать файл в папке"
:asset/size-too-large "Ресурс слишком большой"
:asset/syncing "Синхронизация"
:asset/title-label "Название ресурса:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Nemožno vložit rodiče jako vlastní vlastnosť"
:asset/confirm-delete-image "Naozaj chcete odstrániť tento obrázok?"
:asset/copy "Kopírovať obrázok"
:asset/copy-image-unsupported-extension "Kopírovanie obrázka nie je podporované pre súbory {1}"
:asset/create-local-copy-warning "Vytvára sa lokálna kópia externého súboru. Anotácie PDF vyžadujú lokálny súbor na správne fungovanie."
:asset/create-title "Vytvoriť súbor"
:asset/delete "Odstrániť obrázok"
@@ -64,7 +65,7 @@
:asset/select-file "Vybrať súbor"
:asset/select-from-disk "Vybrať z disku"
:asset/selected-directories "Vybrané priečinky:"
:asset/show-in-folder "Zobraziť obrázok v adresári"
:asset/show-file-in-folder "Zobraziť súbor v priečinku"
:asset/size-too-large "Soubor je příliš velký"
:asset/syncing "Synchronizácia"
:asset/title-label "Názov súboru:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Üst öğe kendi özelliği olarak gömülemez"
:asset/confirm-delete-image "Bu görseli silmek istediğinizden emin misiniz?"
:asset/copy "Resmi kopyala"
:asset/copy-image-unsupported-extension "Resim kopyalama {1} dosyaları için desteklenmiyor"
:asset/create-local-copy-warning "Harici bir dosyadan yerel dosya oluşturuluyor. PDF açıklamaları düzgün çalışması için yerel dosya gerektirir."
:asset/create-title "Dosya oluştur"
:asset/delete "Resmi sil"
@@ -64,7 +65,7 @@
:asset/select-file "Dosya Seç"
:asset/select-from-disk "Diskten seç"
:asset/selected-directories "Seçilen dizinler:"
:asset/show-in-folder "Resmi klasörde göster"
:asset/show-file-in-folder "Dosyayı klasörde göster"
:asset/size-too-large "Dosya çok büyük"
:asset/syncing "Senkronize ediliyor"
:asset/title-label "Dosya başlığı:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "Неможливо встроить родителя как собственное властивість"
:asset/confirm-delete-image "Ви впевнені, що хочете видалити це зображення?"
:asset/copy "Копіювати зображення"
:asset/copy-image-unsupported-extension "Копіювання зображення не підтримується для файлів {1}"
:asset/create-local-copy-warning "Створення локального ресурсу із зовнішнього. Анотації PDF потребують локального ресурсу для коректної роботи."
:asset/create-title "Створити ресурс"
:asset/delete "Видалити зображення"
@@ -64,7 +65,7 @@
:asset/select-file "Обрати файл ресурсу"
:asset/select-from-disk "Обрати з диска"
:asset/selected-directories "Обрані каталоги:"
:asset/show-in-folder "Показати зображення у папці"
:asset/show-file-in-folder "Показати файл у папці"
:asset/size-too-large "Ресурс слишком большой"
:asset/syncing "Синхронізація"
:asset/title-label "Назва ресурсу:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "不能把父块嵌入为它自己的属性"
:asset/confirm-delete-image "确定要删除这张图片吗?"
:asset/copy "复制图片"
:asset/copy-image-unsupported-extension "不支持复制 {1} 文件中的图片"
:asset/create-local-copy-warning "正在从外部资源创建本地附件。PDF 批注功能需要本地附件才能正常使用。"
:asset/create-title "创建附件"
:asset/delete "删除图片"
@@ -64,7 +65,7 @@
:asset/select-file "选择附件文件"
:asset/select-from-disk "从磁盘选择"
:asset/selected-directories "已选目录:"
:asset/show-in-folder "在文件夹中显示图片"
:asset/show-file-in-folder "在文件夹中显示文件"
:asset/size-too-large "资源大小不能超过 100M"
:asset/syncing "同步中"
:asset/title-label "附件标题:"

View File

@@ -49,6 +49,7 @@
:asset/cannot-embed-parent-as-own-property "不能把父區塊嵌入成它自己的屬性"
:asset/confirm-delete-image "你確定要刪除這張圖片嗎?"
:asset/copy "複製圖片"
:asset/copy-image-unsupported-extension "不支援複製 {1} 檔案中的圖片"
:asset/create-local-copy-warning "正在從外部來源建立本機素材。PDF 註解需要本機素材才能正常運作。"
:asset/create-title "建立素材"
:asset/delete "刪除圖片"
@@ -64,7 +65,7 @@
:asset/select-file "選擇素材檔案"
:asset/select-from-disk "從磁碟選擇"
:asset/selected-directories "已選擇的目錄:"
:asset/show-in-folder "於資料夾顯示圖片"
:asset/show-file-in-folder "於資料夾顯示檔案"
:asset/size-too-large "資源大小不能超過 100M"
:asset/syncing "正在同步"
:asset/title-label "素材標題:"