From 019422d2208408ef882199d6cc173d3d6e6ab8e3 Mon Sep 17 00:00:00 2001 From: Karim Jerbi Date: Sat, 12 Sep 2026 21:08:15 +0100 Subject: [PATCH] feat(xref): docked External References panel with previews and translations Docked External References panel with host row, thumbnail previews, and translated interface strings. --- locales/ar-SA/opencadstudio.ftl | 85 +++- locales/bg-BG/opencadstudio.ftl | 91 +++- locales/cs-CZ/opencadstudio.ftl | 89 +++- locales/de-DE/opencadstudio.ftl | 83 ++- locales/el-GR/opencadstudio.ftl | 25 +- locales/en-US/opencadstudio.ftl | 25 +- locales/es-ES/opencadstudio.ftl | 87 +++- locales/fi-FI/opencadstudio.ftl | 83 ++- locales/fr-FR/opencadstudio.ftl | 87 +++- locales/hi-IN/opencadstudio.ftl | 89 +++- locales/hu-HU/opencadstudio.ftl | 87 +++- locales/it-IT/opencadstudio.ftl | 87 +++- locales/ja-JP/opencadstudio.ftl | 89 +++- locales/ko-KR/opencadstudio.ftl | 91 +++- locales/nl-NL/opencadstudio.ftl | 87 +++- locales/pl-PL/opencadstudio.ftl | 87 +++- locales/pt-BR/opencadstudio.ftl | 85 +++- locales/ru-RU/opencadstudio.ftl | 91 +++- locales/tr-TR/opencadstudio.ftl | 89 +++- locales/zh-CN/opencadstudio.ftl | 91 +++- locales/zh-TW/opencadstudio.ftl | 91 +++- src/app/commands/blocks.rs | 51 +- src/app/commands/mod.rs | 2 +- src/app/document.rs | 2 +- src/app/mod.rs | 20 +- src/app/update/dialog.rs | 73 ++- src/app/update/mod.rs | 97 +++- src/app/view/mod.rs | 7 + src/app/view/modal.rs | 7 - src/locale_catalog.rs | 25 +- src/ui/dock.rs | 5 +- src/ui/window/xref_manager.rs | 867 +++++++++++++++++++++++++++++--- 32 files changed, 2691 insertions(+), 184 deletions(-) diff --git a/locales/ar-SA/opencadstudio.ftl b/locales/ar-SA/opencadstudio.ftl index ae2f9dcbb..7bb530079 100644 --- a/locales/ar-SA/opencadstudio.ftl +++ b/locales/ar-SA/opencadstudio.ftl @@ -1041,7 +1041,7 @@ common = .loft-surface-created = LOFT: تم إنشاء السطح. .loft-solid-created = LOFT: أُنشئ المجسم. .attsync-no-editable-block-references = ATTSYNC: لا توجد مراجع كتل قابلة للتحرير. - .xref-reloaded-with-repairs = XREF أُعيد التحميل مع إصلاحات: "__ocs_fmt_0__" + .xref-reloaded-with-repairs = XREF تم إعادة التحميل مع إصلاحات: "__ocs_fmt_0__" .xref-reload-failed = XREF فشل إعادة التحميل: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = العرض السابق .zoom-no-previous-view = ZOOM: لا يوجد عرض سابق. @@ -1627,7 +1627,7 @@ common = .create-triangular-face = إنشاء وجه مثلث .location = { common.position } .creation-mode = وضع الإنشاء - .path = المسار + .path = المسار: .expression = تعبير .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3137,6 +3137,86 @@ insert = .xref-external-references = XREF المراجع الخارجية: .xref-no-external-references-in-this-drawing = XREF لا توجد مراجع خارجية في هذا الرسم. .xref-reloaded = XREF أُعيد تحميل "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: تم تعيين "__ocs_fmt_0__" إلى تراكب. + .xref-set-to-attach = XREF: تم تعيين "__ocs_fmt_0__" إلى إرفاق. + .xref-cannot-unload-nested-reference = XREF: لا يمكن إلغاء تحميل المرجع المتداخل '__ocs_fmt_0__'. ألغ تحميله في رسمته المضيفة. + .xref-cannot-overlay-nested-reference = XREF: لا يمكن تراكب المرجع المتداخل '__ocs_fmt_0__'. راكبه في رسمته المضيفة. + .xref-cannot-reload-nested-reference = XREF: لا يمكن إعادة تحميل المرجع المتداخل '__ocs_fmt_0__'. أعد تحميله في رسمته المضيفة. + .xref-cannot-attach-nested-reference = XREF: لا يمكن إرفاق المرجع المتداخل '__ocs_fmt_0__'. أرفقه في رسمته المضيفة. + .xref-cannot-set-path-type-nested-reference = XREF: لا يمكن تعيين نوع المسار للمرجع المتداخل '__ocs_fmt_0__'. عينه في رسمته المضيفة. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: إعادة التحميل تنطبق على مراجع الرسومات فقط. + .xref-bound = XREF: تم دمج "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: تم دمج "__ocs_fmt_0__" مع __ocs_fmt_1__ مقبض نمط غير معاد تعيينها (انظر قيود الدمج). + .xref-cannot-bind-nested-reference = XREF: لا يمكن دمج المرجع المتداخل '__ocs_fmt_0__'. ادمجه في رسمته المضيفة. + .xref-cannot-bind = XREF: لا يمكن دمج "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: دمج PDF (استيراد المتجهات) غير متوفر في هذا الإصدار. + .xref-cannot-detach-nested-reference = XREF: لا يمكن فصل المرجع المتداخل '__ocs_fmt_0__'. افصله في رسمته المضيفة. + .xref-cannot-make-path-relative = XREF: لا يمكن جعل المسار نسبيًا عبر محركات الأقراص. + .xref-detached = XREF: تم فصل "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: لا يوجد مرجع محمّل بهذا المفتاح. + .xref-no-references-match = XREF: لا توجد مراجع تطابق '__ocs_fmt_0__'. + .xref-manager-title = المراجع الخارجية + .xref-self-attach-blocked = XATTACH: لا يمكن إرفاق الرسمة المضيفة بنفسها. + .xref-overlays-drawing-references-only = XREF: التراكب ينطبق على مراجع الرسومات فقط. + .xref-path-set-for = XREF: تم تعيين المسار لـ "__ocs_fmt_0__" — أعد التحميل للتطبيق. + .xref-unloaded = XREF: تم إلغاء تحميل "__ocs_fmt_0__". + .xref-unknown-option = XREF: خيار غير معروف '__ocs_fmt_0__'. الخيارات: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: تم تحديث __ocs_fmt_0__ مرجع(مراجع). + .usage-xref-path-pattern = الاستخدام: XREF Path + .usage-xref-path-find = الاستخدام: XREF Path Find + .usage-xref-pathtype = الاستخدام: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ مرجع(مراجع) غير موجودة — افتح مدير المراجع باستخدام EXTERNALREFERENCES. + .xref-nested-not-rendered = (متداجئ — غير منقول) + .change-path = تغيير المسار: + .date = التاريخ + .details = التفاصيل + .xref-detach = فصل + .failed = فشل + .xref-file-attach-is-not-available-on-web = إرفاق الملف غير متاح على الويب — قائمة المراجع أدناه للقراءة فقط. + .xref-file-name = اسم الملف + .found-at = موجود في + .xref-help = مساعدة + .xref-nested-references-are-read-only = المراجع المتداخلة للقراءة فقط — عدلها في رسمتها المضيفة. + .not-found = غير موجود + .orphaned = يتيم + .unreferenced = غير مرجعي + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = مفتوح + .xref-untitled = بدون عنوان + .xref-unresolved = غير محلول + .xref-preview-not-available = المعاينة غير متاحة + .xref-reload-all = إعادة تحميل الكل + .xref-dwg = DWG + .xref-pixel-width = عرض البكسل + .xref-pixel-height = ارتفاع البكسل + .xref-resolution-unit = وحدة الدقة + .xref-overlay = تراكب + .xref-reference-manager-select-rows-bind = مدير المراجع — حدد الصفوف، ثم فصل، إلغاء تحميل، إعادة تحميل، دمج، تراكب، أو وضع تغيير المسار. + .xref-bind = دمج + .xref-refresh = تحديث + .relative = نسبي + .xref-reload = إعادة تحميل + .xref-replace = استبدال: + .saved-path = المسار المحفوظ + .xref-select-a-reference-first = حدد مرجعًا أولاً. + .xref-select-a-reference-to-inspect-its = حدد مرجعًا لفحص تفاصيله + .xref-set-path = تعيين المسار + .stale = قديم + .toggle-list-tree = تبديل القائمة/الشجرة + .tree = شجرة + .xref-type-a-new-path-first = اكتب مسارًا جديدًا أولاً. + .xref-type-the-path-prefix-to-find-first = اكتب بادئة المسار للبحث أولاً. + .xref-unload = إلغاء تحميل + .unloaded = غير محمل + .xref-new-path-for-selection = مسار جديد للتحديد + .xref-new-path-prefix = بادئة مسار جديدة + .xref-old-path-prefix = بادئة المسار القديم .xref-save-the-drawing-first-to-resolve-relativ = XREF احفظ الرسم أولًا لحل مسارات المراجع الخارجية النسبية. .object-s-copied-to-clipboard-base-3-3 = نُسخ __ocs_fmt_0__ كائن إلى الحافظة (الأساس __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = نُسخ __ocs_fmt_0__ كائن إلى الحافظة. @@ -3236,6 +3316,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE حدد خطًا أو شعاعًا أو خط إنشاء للمحور: .revolve-select-objects-or-mode = REVOLVE حدد عناصر التدوير أو [الوضع] (Enter للإنهاء): + .path = Path: model = .create = إنشاء .boolean = عمليات منطقية diff --git a/locales/bg-BG/opencadstudio.ftl b/locales/bg-BG/opencadstudio.ftl index 44b46ade8..fb31b680d 100644 --- a/locales/bg-BG/opencadstudio.ftl +++ b/locales/bg-BG/opencadstudio.ftl @@ -1028,8 +1028,8 @@ common = .loft-surface-created = LOFT: повърхността е създадена. .loft-solid-created = LOFT: тялото е създадено. .attsync-no-editable-block-references = ATTSYNC: няма редактируеми препратки към блокове. - .xref-reloaded-with-repairs = XREF Презаредено с поправки: "__ocs_fmt_0__" - .xref-reload-failed = XREF Неуспешно презареждане: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF Презареден с ремонти: "__ocs_fmt_0__" + .xref-reload-failed = XREF Презареждането неуспешно: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Предишен изглед .zoom-no-previous-view = ZOOM: няма предишен изглед. .zoom-object = Мащабиране към обект @@ -1117,8 +1117,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = Вмъкване на "__ocs_fmt_0__" от файл. .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF Възстановено с предупреждения: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Неуспешно възстановяване: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF Възстановен с предупреждения: "__ocs_fmt_0__" + .xref-recovery-failed = XREF Възстановяването неуспешно: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Изберете поне едно оформление. .printing-is-not-available-in-the-web-version = Печатът не е достъпен в уеб версията. .sending-selected-layouts-to-the-system-printer = Изпращане на избраните оформления към системния принтер… @@ -1614,7 +1614,7 @@ common = .create-triangular-face = Създаване на триъгълна стена .location = { common.position } .creation-mode = Режим на създаване - .path = Траектория + .path = Път: .expression = Израз .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3124,6 +3124,86 @@ insert = .xref-external-references = XREF Външни референции: .xref-no-external-references-in-this-drawing = XREF Няма външни референции в този чертеж. .xref-reloaded = XREF Презареден "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" зададен на Наслагване. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" зададен на Прикачване. + .xref-cannot-unload-nested-reference = XREF: не може да се изключи вложена референция '__ocs_fmt_0__'. Изключете я в нейния чертеж-домакин. + .xref-cannot-overlay-nested-reference = XREF: не може да се наслагне вложена референция '__ocs_fmt_0__'. Насложете я в нейния чертеж-домакин. + .xref-cannot-reload-nested-reference = XREF: не може да се презареди вложена референция '__ocs_fmt_0__'. Презаредете я в нейния чертеж-домакин. + .xref-cannot-attach-nested-reference = XREF: не може да се прикачи вложена референция '__ocs_fmt_0__'. Прикачете я в нейния чертеж-домакин. + .xref-cannot-set-path-type-nested-reference = XREF: не може да се зададе тип път за вложена референция '__ocs_fmt_0__'. Задайте го в нейния чертеж-домакин. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: презареждането се прилага само за референции на чертежи. + .xref-bound = XREF: вграден "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: вграден "__ocs_fmt_0__" с __ocs_fmt_1__ непредефинирани стилови манипулатори (вижте ограниченията на вграждането). + .xref-cannot-bind-nested-reference = XREF: не може да се вгради вложена референция '__ocs_fmt_0__'. Вградете я в нейния чертеж-домакин. + .xref-cannot-bind = XREF: не може да се вгради "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: Вграждането на PDF (векторен импорт) не е налично в тази версия. + .xref-cannot-detach-nested-reference = XREF: не може да се изключи вложена референция '__ocs_fmt_0__'. Изключете я в нейния чертеж-домакин. + .xref-cannot-make-path-relative = XREF: не може да се направи относителен път между различни дискове. + .xref-detached = XREF: изключен "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: няма заредена референция с този ключ. + .xref-no-references-match = XREF: няма референции, съвпадащи с '__ocs_fmt_0__'. + .xref-manager-title = Външни референции + .xref-self-attach-blocked = XATTACH: не може да се прикачи чертежът-домакин в самия себе си. + .xref-overlays-drawing-references-only = XREF: наслагванията се прилагат само за референции на чертежи. + .xref-path-set-for = XREF: Пътят е зададен за "__ocs_fmt_0__" — Презаредете, за да се приложи. + .xref-unloaded = XREF: изключен от паметта "__ocs_fmt_0__". + .xref-unknown-option = XREF: неизвестна опция '__ocs_fmt_0__'. Опции: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: актуализирани __ocs_fmt_0__ референции(я). + .usage-xref-path-pattern = Употреба: XREF Path + .usage-xref-path-find = Употреба: XREF Path Find + .usage-xref-pathtype = Употреба: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ референция(и) не са намерени — отворете мениджъра на референции с EXTERNALREFERENCES. + .xref-nested-not-rendered = (вложена — не се визуализира) + .change-path = Промяна на пътя: + .date = Дата + .details = Подробности + .xref-detach = Изключване + .failed = Неуспешно + .xref-file-attach-is-not-available-on-web = Прикачването на файл не е достъпно в уеб версията — списъкът с референции по-долу е само за четене. + .xref-file-name = Име на файл + .found-at = Намерен на + .xref-help = Помощ + .xref-nested-references-are-read-only = Вложените референции са само за четене — редактирайте ги в техния чертеж-домакин. + .not-found = Не е намерен + .orphaned = Изолиран + .unreferenced = Без референции + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Отворен + .xref-untitled = Без заглавие + .xref-unresolved = Неразрешен + .xref-preview-not-available = Нарази не е наличен + .xref-reload-all = Презареждане на всички + .xref-dwg = DWG + .xref-pixel-width = Ширина в пиксели + .xref-pixel-height = Височина в пиксели + .xref-resolution-unit = Единица за разделителна способност + .xref-overlay = Наслащване + .xref-reference-manager-select-rows-bind = Мениджър на референции — изберете редове, след това Изключване, Изключване от паметта, Презареждане, Вграждане, Наслагване или режим за промяна на пътя. + .xref-bind = Вграждане + .xref-refresh = Опресняване + .relative = Относителен + .xref-reload = Презареждане + .xref-replace = Замяна: + .saved-path = Запазен път + .xref-select-a-reference-first = Първо изберете референция. + .xref-select-a-reference-to-inspect-its = Изберете референция, за да видите нейните детайли + .xref-set-path = Задаване на път + .stale = Остарял + .toggle-list-tree = Превключване списък/дърво + .tree = Дърво + .xref-type-a-new-path-first = Първо въведете нов път. + .xref-type-the-path-prefix-to-find-first = Първо въведете префикса на пътя за търсене. + .xref-unload = Изключване от паметта + .unloaded = Изключен + .xref-new-path-for-selection = нов път за селекцията + .xref-new-path-prefix = нов префикс на път + .xref-old-path-prefix = стар префикс на път .xref-save-the-drawing-first-to-resolve-relativ = XREF Първо запази чертежа, за да се разрешат относителните XREF пътища. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ обект(а) копирани в клипборда (база __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ обект(а) копирани в клипборда. @@ -3223,6 +3303,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Изберете линия, лъч или конструктивна права за ос: .revolve-select-objects-or-mode = REVOLVE Изберете обекти за завъртане или [Режим] (Enter за край): + .path = Път: model = .create = Създаване .boolean = Булеви операции diff --git a/locales/cs-CZ/opencadstudio.ftl b/locales/cs-CZ/opencadstudio.ftl index ff24f0b1f..4edfea292 100644 --- a/locales/cs-CZ/opencadstudio.ftl +++ b/locales/cs-CZ/opencadstudio.ftl @@ -1029,7 +1029,7 @@ common = .loft-solid-created = LOFT: těleso vytvořeno. .attsync-no-editable-block-references = ATTSYNC: žádné upravitelné reference bloků. .xref-reloaded-with-repairs = XREF Znovu načteno s opravami: "__ocs_fmt_0__" - .xref-reload-failed = XREF Opětovné načtení selhalo: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reload-failed = XREF Znovunačtení selhalo: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Předchozí pohled .zoom-no-previous-view = ZOOM: žádný předchozí pohled. .zoom-object = Přiblížit objekt @@ -1117,8 +1117,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = Vkládání "__ocs_fmt_0__" ze souboru. .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF Obnoveno s varováními: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Obnova selhala: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF Obnoveno s varováníemi: "__ocs_fmt_0__" + .xref-recovery-failed = XREF Obnovení selhalo: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Vyberte alespoň jedno rozvržení. .printing-is-not-available-in-the-web-version = Tisk není ve webové verzi dostupný. .sending-selected-layouts-to-the-system-printer = Odesílání vybraných rozvržení na systémovou tiskárnu… @@ -1614,7 +1614,7 @@ common = .create-triangular-face = Vytvořit trojúhelníkovou plochu .location = { common.position } .creation-mode = Režim vytváření - .path = Trajektorie + .path = Cesta: .expression = Výraz .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3122,6 +3122,86 @@ insert = .xref-external-references = XREF Externí reference: .xref-no-external-references-in-this-drawing = XREF V tomto výkresu nejsou žádné externí odkazy. .xref-reloaded = XREF Znovu načteno "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" nastaven na Překrýt. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" nastaven na Připojit. + .xref-cannot-unload-nested-reference = XREF: nelze odpojit vnořenou referenci '__ocs_fmt_0__'. Odpojte ji v jejím hostitelském výkresu. + .xref-cannot-overlay-nested-reference = XREF: nelze překrýt vnořenou referenci '__ocs_fmt_0__'. Překryjte ji v jejím hostitelském výkresu. + .xref-cannot-reload-nested-reference = XREF: nelze znovu načíst vnořenou referenci '__ocs_fmt_0__'. Znovu ji načtěte v jejím hostitelském výkresu. + .xref-cannot-attach-nested-reference = XREF: nelze připojit vnořenou referenci '__ocs_fmt_0__'. Připojte ji v jejím hostitelském výkresu. + .xref-cannot-set-path-type-nested-reference = XREF: nelze nastavit typ cesty pro vnořenou referenci '__ocs_fmt_0__'. Nastavte jej v jejím hostitelském výkresu. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: znovunačtení platí pouze pro výkresové reference. + .xref-bound = XREF: vložen "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: vložen "__ocs_fmt_0__" s __ocs_fmt_1__ nepřemapovanými úchopovými body stylu (viz omezení vkládání). + .xref-cannot-bind-nested-reference = XREF: nelze vložit vnořenou referenci '__ocs_fmt_0__'. Vložte ji v jejím hostitelském výkresu. + .xref-cannot-bind = XREF: nelze vložit "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: Vložení PDF (vektorový import) není v této verzi dostupné. + .xref-cannot-detach-nested-reference = XREF: nelze oddělit vnořenou referenci '__ocs_fmt_0__'. Oddělte ji v jejím hostitelském výkresu. + .xref-cannot-make-path-relative = XREF: nelze nastavit relativní cestu mezi jednotkami. + .xref-detached = XREF: oddělen "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: žádná načtená reference s tímto klíčem. + .xref-no-references-match = XREF: žádné reference neodpovídají '__ocs_fmt_0__'. + .xref-manager-title = Externí reference + .xref-self-attach-blocked = XATTACH: nelze připojit hostitelský výkres do sebe sama. + .xref-overlays-drawing-references-only = XREF: překrytí se vztahují pouze na výkresové reference. + .xref-path-set-for = XREF: Cesta nastavena pro "__ocs_fmt_0__" — provedením znovunačtení aplikujte. + .xref-unloaded = XREF: odpojen "__ocs_fmt_0__". + .xref-unknown-option = XREF: neznámá volba '__ocs_fmt_0__'. Volby: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: aktualizováno __ocs_fmt_0__ referencí. + .usage-xref-path-pattern = Použití: XREF Path + .usage-xref-path-find = Použití: XREF Path Find + .usage-xref-pathtype = Použití: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ reference nenalezeny — otevřete správce referencí pomocí EXTERNALREFERENCES. + .xref-nested-not-rendered = (vnořená — nevykresluje se) + .change-path = Změnit cestu: + .date = Datum + .details = Podrobnosti + .xref-detach = Oddělit + .failed = Selhalo + .xref-file-attach-is-not-available-on-web = Připojení souboru není na webu dostupné — seznam referencí níže je pouze pro čtení. + .xref-file-name = Název souboru + .found-at = Nalezeno v + .xref-help = Nápověda + .xref-nested-references-are-read-only = Vnořené reference jsou pouze pro čtení — upravte je v jejich hostitelském výkresu. + .not-found = Nenalezeno + .orphaned = Osamocený + .unreferenced = Neodkazovaný + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Otevřeno + .xref-untitled = Bez názvu + .xref-unresolved = Nevyřešený + .xref-preview-not-available = Náhled není k dispozici + .xref-reload-all = Znovu načíst vše + .xref-dwg = DWG + .xref-pixel-width = Šířka pixelů + .xref-pixel-height = Výška pixelů + .xref-resolution-unit = Jednotka rozlišení + .xref-overlay = Překrytí + .xref-reference-manager-select-rows-bind = Správce referencí — vyberte řádky, poté Oddělit, Odpojit, Znovu načíst, Vložit, Překrýt nebo režim změny cesty. + .xref-bind = Vložit + .xref-refresh = Obnovit + .relative = Relativní + .xref-reload = Znovu načíst + .xref-replace = Nahradit: + .saved-path = Uložená cesta + .xref-select-a-reference-first = Nejprve vyberte referenci. + .xref-select-a-reference-to-inspect-its = Vyberte referenci pro zobrazení jejích podrobností + .xref-set-path = Nastavit cestu + .stale = Zastaralý + .toggle-list-tree = Přepnout seznam/strom + .tree = Strom + .xref-type-a-new-path-first = Nejprve zadejte novou cestu. + .xref-type-the-path-prefix-to-find-first = Nejprve zadejte předponu cesty k vyhledání. + .xref-unload = Odpojit + .unloaded = Odpojeno + .xref-new-path-for-selection = nová cesta pro výběr + .xref-new-path-prefix = nová předpona cesty + .xref-old-path-prefix = stará předpona cesty .xref-save-the-drawing-first-to-resolve-relativ = XREF Nejprve uložte výkres, abyste vyřešili relativní cesty XREF. .object-s-copied-to-clipboard-base-3-3 = Objekt(y) __ocs_fmt_0__ zkopírován do schránky (základna __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = Objekt(y) __ocs_fmt_0__ zkopírován do schránky. @@ -3221,6 +3301,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Vyberte úsečku, polopřímku nebo konstrukční přímku jako osu: .revolve-select-objects-or-mode = REVOLVE Vyberte objekty k rotaci nebo [Režim] (Enter ukončí): + .path = Cesta: model = .create = Vytvořit .boolean = Booleovské operace diff --git a/locales/de-DE/opencadstudio.ftl b/locales/de-DE/opencadstudio.ftl index bad405a19..b54489ca1 100644 --- a/locales/de-DE/opencadstudio.ftl +++ b/locales/de-DE/opencadstudio.ftl @@ -1615,7 +1615,7 @@ common = .create-triangular-face = Dreieckige Fläche erstellen .location = { common.position } .creation-mode = Erstellungsmodus - .path = Pfad + .path = Pfad: .expression = Ausdruck .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3123,6 +3123,86 @@ insert = .xref-external-references = XREF Externe Referenzen: .xref-no-external-references-in-this-drawing = XREF Keine externen Referenzen in dieser Zeichnung. .xref-reloaded = XREF Reloaded "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" auf Überlagern festgelegt. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" auf Anhängen festgelegt. + .xref-cannot-unload-nested-reference = XREF: kann die geschachtelte Referenz '__ocs_fmt_0__' nicht entladen. Entladen Sie sie in der Host-Zeichnung. + .xref-cannot-overlay-nested-reference = XREF: kann die geschachtelte Referenz '__ocs_fmt_0__' nicht überlagern. Überlagern Sie sie in der Host-Zeichnung. + .xref-cannot-reload-nested-reference = XREF: kann die geschachtelte Referenz '__ocs_fmt_0__' nicht neu laden. Laden Sie sie in der Host-Zeichnung neu. + .xref-cannot-attach-nested-reference = XREF: kann die geschachtelte Referenz '__ocs_fmt_0__' nicht anhängen. Hängen Sie sie in der Host-Zeichnung an. + .xref-cannot-set-path-type-nested-reference = XREF: kann den Pfadtyp für die geschachtelte Referenz '__ocs_fmt_0__' nicht festlegen. Legen Sie ihn in der Host-Zeichnung fest. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: Neuladen gilt nur für Zeichnungsreferenzen. + .xref-bound = XREF: "__ocs_fmt_0__" eingebunden. + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" mit __ocs_fmt_1__ nicht neu zugeordneten Style-Griffen eingebunden (siehe Bind-Einschränkungen). + .xref-cannot-bind-nested-reference = XREF: kann die geschachtelte Referenz '__ocs_fmt_0__' nicht einbinden. Binden Sie sie in der Host-Zeichnung ein. + .xref-cannot-bind = XREF: "__ocs_fmt_0__" kann nicht eingebunden werden: __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: PDF-Einbindung (Vektorimport) ist in dieser Version nicht verfügbar. + .xref-cannot-detach-nested-reference = XREF: kann die geschachtelte Referenz '__ocs_fmt_0__' nicht trennen. Trennen Sie sie in der Host-Zeichnung. + .xref-cannot-make-path-relative = XREF: Pfad kann nicht über Laufwerkgrenzen hinweg relativiert werden. + .xref-detached = XREF: "__ocs_fmt_0__" getrennt. + .xref-no-loaded-reference-with-that-key = XREF: keine geladene Referenz mit diesem Schlüssel. + .xref-no-references-match = XREF: keine Referenzen stimmen mit '__ocs_fmt_0__' überein. + .xref-manager-title = Externe Referenzen + .xref-self-attach-blocked = XATTACH: kann die Host-Zeichnung nicht in sich selbst anhängen. + .xref-overlays-drawing-references-only = XREF: Überlagerungen gelten nur für Zeichnungsreferenzen. + .xref-path-set-for = XREF: Pfad für "__ocs_fmt_0__" festgelegt — zum Anwenden neu laden. + .xref-unloaded = XREF: "__ocs_fmt_0__" entladen. + .xref-unknown-option = XREF: unbekannte Option '__ocs_fmt_0__'. Optionen: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ Referenz(en) aktualisiert. + .usage-xref-path-pattern = Verwendung: XREF Path + .usage-xref-path-find = Verwendung: XREF Path Find + .usage-xref-pathtype = Verwendung: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ Referenz(en) nicht gefunden — öffnen Sie den Referenzmanager mit EXTERNALREFERENCES. + .xref-nested-not-rendered = (geschachtelt — nicht dargestellt) + .change-path = Pfad ändern: + .date = Datum + .details = Details + .xref-detach = Trennen + .failed = Fehlgeschlagen + .xref-file-attach-is-not-available-on-web = Dateianhängen ist im Web nicht verfügbar — die Referenzliste unten ist schreibgeschützt. + .xref-file-name = Dateiname + .found-at = Gefunden bei + .xref-help = Hilfe + .xref-nested-references-are-read-only = Geschachtelte Referenzen sind schreibgeschützt — bearbeiten Sie sie in ihrer Host-Zeichnung. + .not-found = Nicht gefunden + .orphaned = Verwaist + .unreferenced = Unreferenziert + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Geöffnet + .xref-untitled = Ohne Titel + .xref-unresolved = Nicht aufgelöst + .xref-preview-not-available = Vorschau nicht verfügbar + .xref-reload-all = Alle neu laden + .xref-dwg = DWG + .xref-pixel-width = Pixelbreite + .xref-pixel-height = Pixelhöhe + .xref-resolution-unit = Auflösungseinheit + .xref-overlay = Überlagern + .xref-reference-manager-select-rows-bind = Referenzmanager — wählen Sie Zeilen aus, dann Trennen, Entladen, Neu laden, Einbinden, Überlagern oder einen Pfadänderungsmodus. + .xref-bind = Einbinden + .xref-refresh = Aktualisieren + .relative = Relativ + .xref-reload = Neu laden + .xref-replace = Ersetzen: + .saved-path = Gespeicherter Pfad + .xref-select-a-reference-first = Wählen Sie zuerst eine Referenz aus. + .xref-select-a-reference-to-inspect-its = Wählen Sie eine Referenz aus, um ihre Details anzuzeigen + .xref-set-path = Pfad festlegen + .stale = Veraltet + .toggle-list-tree = Liste/Baum umschalten + .tree = Baum + .xref-type-a-new-path-first = Geben Sie zuerst einen neuen Pfad ein. + .xref-type-the-path-prefix-to-find-first = Geben Sie zuerst die zu suchende Pfadpräfix ein. + .xref-unload = Entladen + .unloaded = Entladen + .xref-new-path-for-selection = neuer Pfad für die Auswahl + .xref-new-path-prefix = neue Pfadpräfix + .xref-old-path-prefix = alte Pfadpräfix .xref-save-the-drawing-first-to-resolve-relativ = XREF Speichern Sie zuerst die Zeichnung, um relative XREF Pfade aufzulösen. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ Objekt(e) kopiert ins Zwischenablage (Basis __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ Objekt(e) kopiert ins Clipboard. @@ -3222,6 +3302,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Linie, Strahl oder Konstruktionslinie als Achse wählen: .revolve-select-objects-or-mode = REVOLVE Objekte zum Rotieren wählen oder [Modus] (Enter zum Beenden): + .path = Path: model = .create = Erstellen .boolean = Boolesche Operationen diff --git a/locales/el-GR/opencadstudio.ftl b/locales/el-GR/opencadstudio.ftl index 15d5eda19..85633b204 100644 --- a/locales/el-GR/opencadstudio.ftl +++ b/locales/el-GR/opencadstudio.ftl @@ -1971,8 +1971,6 @@ file = .warning-corrupt-entities-dropped-parser-junk-b = Προειδοποίηση: απορρίφθηκαν __ocs_fmt_0__ κατεστραμμένες οντότητες (άχρηστα δεδομένα αναλυτή — εσφαλμένα κάθετα διανύσματα / πλήθη) .warning-corrupt-xref-entities-dropped = Προειδοποίηση: απορρίφθηκαν __ocs_fmt_0__ κατεστραμμένες οντότητες xref .xref-loaded = XREF Φορτώθηκε το "__ocs_fmt_0__" - .xref-recovered-with-warnings = XREF Recovered with warnings: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Recovery failed: "__ocs_fmt_0__" (__ocs_fmt_1__) .cmd-cannot-create-folder-e = __ocs_fmt_0__: δεν είναι δυνατή η δημιουργία φακέλου (__ocs_fmt_1__). .cmd-packaged-copied-file-s-into = __ocs_fmt_0__: συσκευάστηκαν __ocs_fmt_1__ αρχείο(α) στο __ocs_fmt_2__ .error-external-change-checks-remain-active = __ocs_fmt_0__. Οι έλεγχοι εξωτερικών αλλαγών παραμένουν ενεργοί. @@ -3153,15 +3151,13 @@ insert = .xref-cannot-attach-nested-reference = XREF: cannot attach nested reference '__ocs_fmt_0__'. Attach it in its host drawing. .xref-cannot-set-path-type-nested-reference = XREF: cannot set path type for nested reference '__ocs_fmt_0__'. Set it in its host drawing. .reload-applies-to-drawing-references-only = __ocs_fmt_0__: reload applies to drawing references only. - .xref-manager-title = Reference Manager + .xref-manager-title = External References .xref-self-attach-blocked = XATTACH: cannot attach the host drawing into itself. .xref-overlays-drawing-references-only = XREF: overlays apply to drawing references only. .xref-path-set-for = XREF: Path set for "__ocs_fmt_0__" — Reload to apply. .xref-unloaded = XREF: unloaded "__ocs_fmt_0__". .xref-unknown-option = XREF: unknown option '__ocs_fmt_0__'. Options: ? Reload Unload Detach Path Pathtype Bind Overlay Attach .xref-updated-references = XREF: updated __ocs_fmt_0__ reference(s). - .xref-reloaded-with-repairs = XREF Reloaded with repairs: "__ocs_fmt_0__" - .xref-reload-failed = XREF Reload failed: "__ocs_fmt_0__" (__ocs_fmt_1__) .usage-xref-path-pattern = Usage: XREF Path .usage-xref-path-find = Usage: XREF Path Find .usage-xref-pathtype = Usage: XREF Pathtype [pattern] @@ -3176,15 +3172,28 @@ insert = .xref-file-name = File name .found-at = Found At .xref-help = Help - .image = Image .xref-nested-references-are-read-only = Nested references are read-only — edit them in their host drawing. .not-found = Not found .orphaned = Orphaned .unreferenced = Unreferenced + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Opened + .xref-untitled = Untitled + .xref-unresolved = Unresolved + .xref-preview-not-available = Preview not available + .xref-reload-all = Reload All + .xref-dwg = DWG + .xref-pixel-width = Pixel Width + .xref-pixel-height = Pixel Height + .xref-resolution-unit = Resolution Unit .xref-overlay = Overlay .path = Path: - .pdf = PDF - .xref-reference-manager-select-rows = Reference Manager — select rows, then Detach, Unload, Reload, Overlay, or a Change Path mode. .xref-reference-manager-select-rows-bind = Reference Manager — select rows, then Detach, Unload, Reload, Bind, Overlay, or a Change Path mode. .xref-bind = Bind .xref-refresh = Refresh diff --git a/locales/en-US/opencadstudio.ftl b/locales/en-US/opencadstudio.ftl index 51f574526..729bd8711 100644 --- a/locales/en-US/opencadstudio.ftl +++ b/locales/en-US/opencadstudio.ftl @@ -1972,8 +1972,6 @@ file = .warning-corrupt-entities-dropped-parser-junk-b = Warning: __ocs_fmt_0__ corrupt entities dropped (parser junk — bad normals / counts) .warning-corrupt-xref-entities-dropped = Warning: __ocs_fmt_0__ corrupt xref entities dropped .xref-loaded = XREF Loaded "__ocs_fmt_0__" - .xref-recovered-with-warnings = XREF Recovered with warnings: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Recovery failed: "__ocs_fmt_0__" (__ocs_fmt_1__) .cmd-cannot-create-folder-e = __ocs_fmt_0__: cannot create folder (__ocs_fmt_1__). .cmd-packaged-copied-file-s-into = __ocs_fmt_0__: packaged __ocs_fmt_1__ file(s) into __ocs_fmt_2__ .error-external-change-checks-remain-active = __ocs_fmt_0__. External-change checks remain active. @@ -3154,15 +3152,13 @@ insert = .xref-detached = XREF: detached "__ocs_fmt_0__". .xref-no-loaded-reference-with-that-key = XREF: no loaded reference with that key. .xref-no-references-match = XREF: no references match '__ocs_fmt_0__'. - .xref-manager-title = Reference Manager + .xref-manager-title = External References .xref-self-attach-blocked = XATTACH: cannot attach the host drawing into itself. .xref-overlays-drawing-references-only = XREF: overlays apply to drawing references only. .xref-path-set-for = XREF: Path set for "__ocs_fmt_0__" — Reload to apply. .xref-unloaded = XREF: unloaded "__ocs_fmt_0__". .xref-unknown-option = XREF: unknown option '__ocs_fmt_0__'. Options: ? Reload Unload Detach Path Pathtype Bind Overlay Attach .xref-updated-references = XREF: updated __ocs_fmt_0__ reference(s). - .xref-reloaded-with-repairs = XREF Reloaded with repairs: "__ocs_fmt_0__" - .xref-reload-failed = XREF Reload failed: "__ocs_fmt_0__" (__ocs_fmt_1__) .usage-xref-path-pattern = Usage: XREF Path .usage-xref-path-find = Usage: XREF Path Find .usage-xref-pathtype = Usage: XREF Pathtype [pattern] @@ -3177,15 +3173,28 @@ insert = .xref-file-name = File name .found-at = Found At .xref-help = Help - .image = Image .xref-nested-references-are-read-only = Nested references are read-only — edit them in their host drawing. .not-found = Not found .orphaned = Orphaned .unreferenced = Unreferenced + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Opened + .xref-untitled = Untitled + .xref-unresolved = Unresolved + .xref-preview-not-available = Preview not available + .xref-reload-all = Reload All + .xref-dwg = DWG + .xref-pixel-width = Pixel Width + .xref-pixel-height = Pixel Height + .xref-resolution-unit = Resolution Unit .xref-overlay = Overlay .path = Path: - .pdf = PDF - .xref-reference-manager-select-rows = Reference Manager — select rows, then Detach, Unload, Reload, Overlay, or a Change Path mode. .xref-reference-manager-select-rows-bind = Reference Manager — select rows, then Detach, Unload, Reload, Bind, Overlay, or a Change Path mode. .xref-bind = Bind .xref-refresh = Refresh diff --git a/locales/es-ES/opencadstudio.ftl b/locales/es-ES/opencadstudio.ftl index 72ddf64f4..c5ccf4e59 100644 --- a/locales/es-ES/opencadstudio.ftl +++ b/locales/es-ES/opencadstudio.ftl @@ -1030,7 +1030,7 @@ common = .loft-solid-created = LOFT: se creó el sólido. .attsync-no-editable-block-references = ATTSYNC: no hay referencias de bloque editables. .xref-reloaded-with-repairs = XREF Recargado con reparaciones: "__ocs_fmt_0__" - .xref-reload-failed = XREF Error al recargar: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reload-failed = XREF Falló la recarga: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Zoom anterior .zoom-no-previous-view = ZOOM: no hay vista anterior. .zoom-object = Zoom a objeto @@ -1119,7 +1119,7 @@ common = .inserting-from-file = Insertando "__ocs_fmt_0__" desde el archivo. .insert-file = INSERT FILE: __ocs_fmt_0__ .xref-recovered-with-warnings = XREF Recuperado con advertencias: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Error de recuperación: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovery-failed = XREF Falló la recuperación: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Seleccione al menos una presentación. .printing-is-not-available-in-the-web-version = La impresión no está disponible en la versión web. .sending-selected-layouts-to-the-system-printer = Enviando las presentaciones seleccionadas a la impresora del sistema… @@ -1615,7 +1615,7 @@ common = .create-triangular-face = Crear una cara triangular .location = { common.position } .creation-mode = Modo de creación - .path = Trayectoria + .path = Ruta: .expression = Expresión .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3125,6 +3125,86 @@ insert = .xref-external-references = XREF Referencias externas: .xref-no-external-references-in-this-drawing = XREF No hay referencias externas en este dibujo. .xref-reloaded = XREF Se volvió a cargar «__ocs_fmt_0__» + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" establecido en Superponer. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" establecido en Adjuntar. + .xref-cannot-unload-nested-reference = XREF: no se puede descargar la referencia anidada '__ocs_fmt_0__'. Descárguela en su dibujo host. + .xref-cannot-overlay-nested-reference = XREF: no se puede superponer la referencia anidada '__ocs_fmt_0__'. Superpóngala en su dibujo host. + .xref-cannot-reload-nested-reference = XREF: no se puede recargar la referencia anidada '__ocs_fmt_0__'. Recárguela en su dibujo host. + .xref-cannot-attach-nested-reference = XREF: no se puede adjuntar la referencia anidada '__ocs_fmt_0__'. Adjuntela en su dibujo host. + .xref-cannot-set-path-type-nested-reference = XREF: no se puede establecer el tipo de ruta para la referencia anidada '__ocs_fmt_0__'. Establézcalo en su dibujo host. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: la recarga se aplica solo a referencias de dibujo. + .xref-bound = XREF: vinculado "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: vinculado "__ocs_fmt_0__" con __ocs_fmt_1__ manejadores de estilo sin reasignar (consulte las limitaciones de vinculación). + .xref-cannot-bind-nested-reference = XREF: no se puede vincular la referencia anidada '__ocs_fmt_0__'. Vinculéla en su dibujo host. + .xref-cannot-bind = XREF: no se puede vincular "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: La vinculación de PDF (importación vectorial) no está disponible en esta versión. + .xref-cannot-detach-nested-reference = XREF: no se puede desvincular la referencia anidada '__ocs_fmt_0__'. Desvincúlela en su dibujo host. + .xref-cannot-make-path-relative = XREF: no se puede hacer la ruta relativa entre unidades. + .xref-detached = XREF: desvinculado "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: no hay referencia cargada con esa clave. + .xref-no-references-match = XREF: no hay referencias que coincidan con '__ocs_fmt_0__'. + .xref-manager-title = Referencias externas + .xref-self-attach-blocked = XATTACH: no se puede adjuntar el dibujo host en sí mismo. + .xref-overlays-drawing-references-only = XREF: las superposiciones se aplican solo a referencias de dibujo. + .xref-path-set-for = XREF: Ruta establecida para "__ocs_fmt_0__" — Recargue para aplicar. + .xref-unloaded = XREF: descargado "__ocs_fmt_0__". + .xref-unknown-option = XREF: opción desconocida '__ocs_fmt_0__'. Opciones: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ referencia(s) actualizadas. + .usage-xref-path-pattern = Uso: XREF Path + .usage-xref-path-find = Uso: XREF Path Find + .usage-xref-pathtype = Uso: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ referencia(s) no encontradas — abra el administrador de referencias con EXTERNALREFERENCES. + .xref-nested-not-rendered = (anidada — no renderizada) + .change-path = Cambiar ruta: + .date = Fecha + .details = Detalles + .xref-detach = Desvincular + .failed = Falló + .xref-file-attach-is-not-available-on-web = El adjunto de archivos no está disponible en la web — la lista de referencias a continuación es de solo lectura. + .xref-file-name = Nombre de archivo + .found-at = Encontrado en + .xref-help = Ayuda + .xref-nested-references-are-read-only = Las referencias anidadas son de solo lectura — edítelas en su dibujo host. + .not-found = No encontrado + .orphaned = Huérfano + .unreferenced = Sin referencia + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Abierto + .xref-untitled = Sin título + .xref-unresolved = No resuelto + .xref-preview-not-available = Vista previa no disponible + .xref-reload-all = Recargar todo + .xref-dwg = DWG + .xref-pixel-width = Ancho en píxeles + .xref-pixel-height = Altura en píxeles + .xref-resolution-unit = Unidad de resolución + .xref-overlay = Superponer + .xref-reference-manager-select-rows-bind = Administrador de referencias — seleccione filas, luego Desvincular, Descargar, Recargar, Vincular, Superponer o un modo de cambio de ruta. + .xref-bind = Vincular + .xref-refresh = Actualizar + .relative = Relativa + .xref-reload = Recargar + .xref-replace = Reemplazar: + .saved-path = Ruta guardada + .xref-select-a-reference-first = Seleccione una referencia primero. + .xref-select-a-reference-to-inspect-its = Seleccione una referencia para inspeccionar sus detalles + .xref-set-path = Establecer ruta + .stale = Desactualizado + .toggle-list-tree = Alternar lista/árbol + .tree = Árbol + .xref-type-a-new-path-first = Escriba una nueva ruta primero. + .xref-type-the-path-prefix-to-find-first = Escriba primero el prefijo de ruta a buscar. + .xref-unload = Descargar + .unloaded = Descargado + .xref-new-path-for-selection = nueva ruta para la selección + .xref-new-path-prefix = nuevo prefijo de ruta + .xref-old-path-prefix = prefijo de ruta antiguo .xref-save-the-drawing-first-to-resolve-relativ = XREF Guarde primero el dibujo para resolver las rutas relativas de referencias externas. .object-s-copied-to-clipboard-base-3-3 = Se copiaron __ocs_fmt_0__ objetos al portapapeles (base __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = Se copiaron __ocs_fmt_0__ objetos al portapapeles. @@ -3224,6 +3304,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Seleccione una línea, un rayo o una línea de construcción como eje: .revolve-select-objects-or-mode = REVOLVE Seleccione objetos para revolucionar o [Modo] (Intro para terminar): + .path = Ruta: model = .create = Crear .boolean = Booleanas diff --git a/locales/fi-FI/opencadstudio.ftl b/locales/fi-FI/opencadstudio.ftl index f8ece8573..29ba7d47a 100644 --- a/locales/fi-FI/opencadstudio.ftl +++ b/locales/fi-FI/opencadstudio.ftl @@ -1614,7 +1614,7 @@ common = .create-triangular-face = Luo kolmionmuotoinen pinta .location = { common.position } .creation-mode = Luontitila - .path = Polku + .path = Polku: .expression = Lauseke .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3124,6 +3124,86 @@ insert = .xref-external-references = XREF Ulkoiset viitteet: .xref-no-external-references-in-this-drawing = XREF Tässä piirustuksessa ei ole ulkoisia viittauksia. .xref-reloaded = XREF Ladattu uudelleen "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" asetettu Peitä-tilaan. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" asetettu Liitä-tilaan. + .xref-cannot-unload-nested-reference = XREF: ei voi purkaa sisäkkäistä viittausta '__ocs_fmt_0__'. Pura se isäntäpiirroksessa. + .xref-cannot-overlay-nested-reference = XREF: ei voi peittää sisäkkäistä viittausta '__ocs_fmt_0__'. Peitä se isäntäpiirrokseen. + .xref-cannot-reload-nested-reference = XREF: ei voi ladata uudelleen sisäkkäistä viittausta '__ocs_fmt_0__'. Lataa se uudelleen isäntäpiirroksessa. + .xref-cannot-attach-nested-reference = XREF: ei voi liittää sisäkkäistä viittausta '__ocs_fmt_0__'. Liitä se isäntäpiirrokseen. + .xref-cannot-set-path-type-nested-reference = XREF: ei voi asettaa polkutyyppiä sisäkkäiselle viittaukselle '__ocs_fmt_0__'. Aseta se isäntäpiirroksessa. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: lataaminen uudelleen koskee vain piirrosviittauksia. + .xref-bound = XREF: sidottu "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: sidottu "__ocs_fmt_0__" __ocs_fmt_1__ uudelleenohjaamattomalla tyylikahvalla (katso sidonnan rajoitukset). + .xref-cannot-bind-nested-reference = XREF: ei voi sitoa sisäkkäistä viittausta '__ocs_fmt_0__'. Sido se isäntäpiirrokseen. + .xref-cannot-bind = XREF: ei voi sitoa "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: PDF:n sidonta (vektorituonti) ei ole käytettävissä tässä versiossa. + .xref-cannot-detach-nested-reference = XREF: ei voi irrottaa sisäkkäistä viittausta '__ocs_fmt_0__'. Irrota se isäntäpiirroksesta. + .xref-cannot-make-path-relative = XREF: polkua ei voi tehdä suhteelliseksi eri asemien välillä. + .xref-detached = XREF: irrotettu "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: ei ladattua viittausta tällä avaimella. + .xref-no-references-match = XREF: viittaukset eivät vastaa '__ocs_fmt_0__'. + .xref-manager-title = Ulkoiset viittaukset + .xref-self-attach-blocked = XATTACH: isäntäpiirrosta ei voi liittää itseensä. + .xref-overlays-drawing-references-only = XREF: peitot koskevat vain piirrosviittauksia. + .xref-path-set-for = XREF: Polku asetettu kohteelle "__ocs_fmt_0__" — Lataa uudelleen käyttääksesi. + .xref-unloaded = XREF: purettu "__ocs_fmt_0__". + .xref-unknown-option = XREF: tuntematon valinta '__ocs_fmt_0__'. Valinnat: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: päivitetty __ocs_fmt_0__ viittausta(sta). + .usage-xref-path-pattern = Käyttö: XREF Path + .usage-xref-path-find = Käyttö: XREF Path Find + .usage-xref-pathtype = Käyttö: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ viittausta(sta) ei löytynyt — avaa viittausten hallinta EXTERNALREFERENCES-komennolla. + .xref-nested-not-rendered = (sisäkkäinen — ei renderöity) + .change-path = Vaihda polku: + .date = Päiväys + .details = Tiedot + .xref-detach = Irrota + .failed = Epäonnistui + .xref-file-attach-is-not-available-on-web = Tiedoston liittäminen ei ole käytettävissä verkossa — alla oleva viittausluettelo on vain luku -muotoinen. + .xref-file-name = Tiedostonimi + .found-at = Löytyi + .xref-help = Ohje + .xref-nested-references-are-read-only = Sisäkkäiset viittaukset ovat vain luku -muotoisia — muokkaa niitä niiden isäntäpiirroksessa. + .not-found = Ei löytynyt + .orphaned = Orpo + .unreferenced = Ei viitattu + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Avattu + .xref-untitled = Nimetön + .xref-unresolved = Ratkaisematon + .xref-preview-not-available = Esikatselu ei ole käytettävissä + .xref-reload-all = Lataa kaikki uudelleen + .xref-dwg = DWG + .xref-pixel-width = Leveys pikseleinä + .xref-pixel-height = Korkeus pikseleinä + .xref-resolution-unit = Resoluution yksikkö + .xref-overlay = Peitä + .xref-reference-manager-select-rows-bind = Viittausten hallinta — valitse rivit, sitten Irrota, Pura, Lataa uudelleen, Sido, Peitä tai polun muutostila. + .xref-bind = Sido + .xref-refresh = Päivitä + .relative = Suhteellinen + .xref-reload = Lataa uudelleen + .xref-replace = Korvaa: + .saved-path = Tallennettu polku + .xref-select-a-reference-first = Valitse ensin viittaus. + .xref-select-a-reference-to-inspect-its = Valitse viittaus tarkastellaksesi sen tietoja + .xref-set-path = Aseta polku + .stale = Vanhentunut + .toggle-list-tree = Vaihda lista/puu + .tree = Puu + .xref-type-a-new-path-first = Kirjoita ensin uusi polku. + .xref-type-the-path-prefix-to-find-first = Kirjoita ensin etsittävä polun etuliite. + .xref-unload = Pura + .unloaded = Ei ladattu + .xref-new-path-for-selection = uusi polku valinnalle + .xref-new-path-prefix = uusi polun etuliite + .xref-old-path-prefix = vanha polun etuliite .xref-save-the-drawing-first-to-resolve-relativ = XREF Tallenna piirustus ensin määrittääksesi suhteelliset XREF-polut. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ objekti(t) kopioitu leikepöydälle (perus __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ objekti(t) kopioitu leikepöydälle. @@ -3223,6 +3303,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Valitse akseliksi viiva, puolisuora tai apuviiva: .revolve-select-objects-or-mode = REVOLVE Valitse pyöräytettävät objektit tai [Tila] (Enter lopettaa): + .path = Path: model = .create = Luo .boolean = Boolen operaatiot diff --git a/locales/fr-FR/opencadstudio.ftl b/locales/fr-FR/opencadstudio.ftl index 56c3ec309..6e42bc415 100644 --- a/locales/fr-FR/opencadstudio.ftl +++ b/locales/fr-FR/opencadstudio.ftl @@ -1030,7 +1030,7 @@ common = .loft-solid-created = LOFT : solide créé. .attsync-no-editable-block-references = ATTSYNC : aucune référence de bloc modifiable. .xref-reloaded-with-repairs = XREF Rechargé avec réparations : "__ocs_fmt_0__" - .xref-reload-failed = XREF Échec du rechargement : "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reload-failed = XREF Le rechargement a échoué : "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Vue précédente .zoom-no-previous-view = ZOOM : aucune vue précédente. .zoom-object = Zoom sur l’objet @@ -1119,7 +1119,7 @@ common = .inserting-from-file = Insertion de "__ocs_fmt_0__" depuis le fichier. .insert-file = INSERT FILE: __ocs_fmt_0__ .xref-recovered-with-warnings = XREF Récupéré avec avertissements : "__ocs_fmt_0__" - .xref-recovery-failed = XREF Échec de la récupération : "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovery-failed = XREF La récupération a échoué : "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Sélectionnez au moins une présentation. .printing-is-not-available-in-the-web-version = L’impression n’est pas disponible dans la version web. .sending-selected-layouts-to-the-system-printer = Envoi des présentations sélectionnées à l’imprimante système… @@ -1615,7 +1615,7 @@ common = .create-triangular-face = Créer une face triangulaire .location = { common.position } .creation-mode = Mode de création - .path = Trajectoire + .path = Chemin : .expression = Expression .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3125,6 +3125,86 @@ insert = .xref-external-references = XREF Références externes: .xref-no-external-references-in-this-drawing = XREF Aucune référence externe dans ce dessin. .xref-reloaded = XREF Rechargé "__ocs_fmt_0__" + .xref-set-to-overlay = XREF : "__ocs_fmt_0__" défini sur Superposer. + .xref-set-to-attach = XREF : "__ocs_fmt_0__" défini sur Attacher. + .xref-cannot-unload-nested-reference = XREF : impossible de décharger la référence imbriquée '__ocs_fmt_0__'. Déchargez-la dans son dessin hôte. + .xref-cannot-overlay-nested-reference = XREF : impossible de superposer la référence imbriquée '__ocs_fmt_0__'. Superposez-la dans son dessin hôte. + .xref-cannot-reload-nested-reference = XREF : impossible de recharger la référence imbriquée '__ocs_fmt_0__'. Rechargez-la dans son dessin hôte. + .xref-cannot-attach-nested-reference = XREF : impossible d'attacher la référence imbriquée '__ocs_fmt_0__'. Attachez-la dans son dessin hôte. + .xref-cannot-set-path-type-nested-reference = XREF : impossible de définir le type de chemin pour la référence imbriquée '__ocs_fmt_0__'. Définissez-le dans son dessin hôte. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__ : le rechargement s'applique uniquement aux références de dessin. + .xref-bound = XREF : lié "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF : lié "__ocs_fmt_0__" avec __ocs_fmt_1__ poignées de style non réaffectées (voir les limitations de liaison). + .xref-cannot-bind-nested-reference = XREF : impossible de lier la référence imbriquée '__ocs_fmt_0__'. Liez-la dans son dessin hôte. + .xref-cannot-bind = XREF : impossible de lier "__ocs_fmt_0__" : __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF : La liaison PDF (importation vectorielle) n'est pas disponible dans cette version. + .xref-cannot-detach-nested-reference = XREF : impossible de détacher la référence imbriquée '__ocs_fmt_0__'. Détachez-la dans son dessin hôte. + .xref-cannot-make-path-relative = XREF : impossible de rendre le chemin relatif entre lecteurs. + .xref-detached = XREF : détaché "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF : aucune référence chargée avec cette clé. + .xref-no-references-match = XREF : aucune référence ne correspond à '__ocs_fmt_0__'. + .xref-manager-title = Références externes + .xref-self-attach-blocked = XATTACH : impossible d'attacher le dessin hôte dans lui-même. + .xref-overlays-drawing-references-only = XREF : les superpositions s'appliquent uniquement aux références de dessin. + .xref-path-set-for = XREF : Chemin défini pour "__ocs_fmt_0__" — Rechargez pour appliquer. + .xref-unloaded = XREF : déchargé "__ocs_fmt_0__". + .xref-unknown-option = XREF : option inconnue '__ocs_fmt_0__'. Options : ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF : __ocs_fmt_0__ référence(s) mise(s) à jour. + .usage-xref-path-pattern = Utilisation : XREF Path + .usage-xref-path-find = Utilisation : XREF Path Find + .usage-xref-pathtype = Utilisation : XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ référence(s) non trouvée(s) — ouvrez le gestionnaire de références avec EXTERNALREFERENCES. + .xref-nested-not-rendered = (imbriquée — non rendue) + .change-path = Changer le chemin : + .date = Date + .details = Détails + .xref-detach = Détacher + .failed = Échec + .xref-file-attach-is-not-available-on-web = L'attachement de fichier n'est pas disponible sur le web — la liste des références ci-dessous est en lecture seule. + .xref-file-name = Nom de fichier + .found-at = Trouvé à + .xref-help = Aide + .xref-nested-references-are-read-only = Les références imbriquées sont en lecture seule — modifiez-les dans leur dessin hôte. + .not-found = Introuvable + .orphaned = Orphelin + .unreferenced = Sans référence + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Ouvert + .xref-untitled = Sans titre + .xref-unresolved = Non résolu + .xref-preview-not-available = Aperçu non disponible + .xref-reload-all = Tout recharger + .xref-dwg = DWG + .xref-pixel-width = Largeur en pixels + .xref-pixel-height = Hauteur en pixels + .xref-resolution-unit = Unité de résolution + .xref-overlay = Superposer + .xref-reference-manager-select-rows-bind = Gestionnaire de références — sélectionnez des lignes, puis Détacher, Décharger, Recharger, Lier, Superposer ou un mode de changement de chemin. + .xref-bind = Lier + .xref-refresh = Actualiser + .relative = Relatif + .xref-reload = Recharger + .xref-replace = Remplacer : + .saved-path = Chemin enregistré + .xref-select-a-reference-first = Sélectionnez d'abord une référence. + .xref-select-a-reference-to-inspect-its = Sélectionnez une référence pour inspecter ses détails + .xref-set-path = Définir le chemin + .stale = Obsolète + .toggle-list-tree = Basculer liste/arborescence + .tree = Arborescence + .xref-type-a-new-path-first = Tapez d'abord un nouveau chemin. + .xref-type-the-path-prefix-to-find-first = Tapez d'abord le préfixe de chemin à rechercher. + .xref-unload = Décharger + .unloaded = Déchargé + .xref-new-path-for-selection = nouveau chemin pour la sélection + .xref-new-path-prefix = nouveau préfixe de chemin + .xref-old-path-prefix = ancien préfixe de chemin .xref-save-the-drawing-first-to-resolve-relativ = XREF Enregistrez d’abord le dessin afin de résoudre les chemins XREF relatifs. .object-s-copied-to-clipboard-base-3-3 = Objets copiés dans le presse-papiers : __ocs_fmt_0__ (point de base __ocs_fmt_1__, __ocs_fmt_2__). .object-s-copied-to-clipboard = Objets copiés dans le presse-papiers : __ocs_fmt_0__. @@ -3224,6 +3304,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Sélectionnez une ligne, une demi-droite ou une droite de construction comme axe : .revolve-select-objects-or-mode = REVOLVE Sélectionnez les objets de révolution ou [Mode] (Entrée pour terminer) : + .path = Chemin : model = .create = Créer .boolean = Opérations booléennes diff --git a/locales/hi-IN/opencadstudio.ftl b/locales/hi-IN/opencadstudio.ftl index a237913db..e6c18acf1 100644 --- a/locales/hi-IN/opencadstudio.ftl +++ b/locales/hi-IN/opencadstudio.ftl @@ -1017,8 +1017,8 @@ common = .loft-surface-created = LOFT: सतह बनाई गई। .loft-solid-created = LOFT: ठोस बनाया गया। .attsync-no-editable-block-references = ATTSYNC: कोई संपादन योग्य ब्लॉक संदर्भ नहीं है। - .xref-reloaded-with-repairs = XREF सुधारों के साथ फिर लोड किया: "__ocs_fmt_0__" - .xref-reload-failed = XREF फिर लोड करना विफल: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF मरम्मत के साथ पुनः लोड किया गया: "__ocs_fmt_0__" + .xref-reload-failed = XREF पुनः लोड विफल: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = पिछला दृश्य .zoom-no-previous-view = ZOOM: कोई पिछला दृश्य नहीं है। .zoom-object = ऑब्जेक्ट पर ज़ूम करें @@ -1106,7 +1106,7 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = फ़ाइल से "__ocs_fmt_0__" सम्मिलित किया जा रहा है। .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF चेतावनियों के साथ पुनर्प्राप्त: "__ocs_fmt_0__" + .xref-recovered-with-warnings = XREF चेतावनियों के साथ पुनर्प्राप्त किया गया: "__ocs_fmt_0__" .xref-recovery-failed = XREF पुनर्प्राप्ति विफल: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = कम से कम एक लेआउट चुनें। .printing-is-not-available-in-the-web-version = वेब संस्करण में प्रिंट उपलब्ध नहीं है। @@ -1603,7 +1603,7 @@ common = .create-triangular-face = त्रिकोणीय फलक बनाएँ .location = { common.position } .creation-mode = निर्माण मोड - .path = पथ + .path = पथ: .expression = व्यंजक .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3113,6 +3113,86 @@ insert = .xref-external-references = XREF बाहरी संदर्भ: .xref-no-external-references-in-this-drawing = XREF इस ड्रॉइंग में कोई बाहरी संदर्भ नहीं है। .xref-reloaded = XREF “__ocs_fmt_0__” पुनः लोड किया गया + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" को ओवरले पर सेट किया गया। + .xref-set-to-attach = XREF: "__ocs_fmt_0__" को अटैच पर सेट किया गया। + .xref-cannot-unload-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' अनलोड नहीं कर सकता। इसे अपने होस्ट ड्राइंग में अनलोड करें। + .xref-cannot-overlay-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' ओवरले नहीं कर सकता। इसे अपने होस्ट ड्राइंग में ओवरले करें। + .xref-cannot-reload-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' पुनः लोड नहीं कर सकता। इसे अपने होस्ट ड्राइंग में पुनः लोड करें। + .xref-cannot-attach-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' संलग्न नहीं कर सकता। इसे अपने होस्ट ड्राइंग में संलग्न करें। + .xref-cannot-set-path-type-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' के लिए पथ प्रकार सेट नहीं कर सकता। इसे अपने होस्ट ड्राइंग में सेट करें। + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: पुनः लोड करना केवल ड्राइंग संदर्भों पर लागू होता है। + .xref-bound = XREF: "__ocs_fmt_0__" बाइंड किया गया। + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" को __ocs_fmt_1__ अनरेमैप्ड स्टाइल हैंडल के साथ बाइंड किया गया (बाइंड सीमाएँ देखें)। + .xref-cannot-bind-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' बाइंड नहीं कर सकता। इसे अपने होस्ट ड्राइंग में बाइंड करें। + .xref-cannot-bind = XREF: "__ocs_fmt_0__" बाइंड नहीं कर सकता: __ocs_fmt_1__। + .xref-pdf-bind-unavailable = XREF: PDF बाइंड (वेक्टर आयात) इस संस्करण में उपलब्ध नहीं है। + .xref-cannot-detach-nested-reference = XREF: नेस्टेड संदर्भ '__ocs_fmt_0__' डिटैच नहीं कर सकता। इसे अपने होस्ट ड्राइंग में डिटैच करें। + .xref-cannot-make-path-relative = XREF: ड्राइव के पार पथ को सापेक्ष नहीं बना सकता। + .xref-detached = XREF: "__ocs_fmt_0__" डिटैच किया गया। + .xref-no-loaded-reference-with-that-key = XREF: उस कुंजी के साथ कोई लोडेड संदर्भ नहीं। + .xref-no-references-match = XREF: '__ocs_fmt_0__' से मेल खाने वाला कोई संदर्भ नहीं। + .xref-manager-title = बाहरी संदर्भ + .xref-self-attach-blocked = XATTACH: होस्ट ड्राइंग को स्वयं में संलग्न नहीं कर सकता। + .xref-overlays-drawing-references-only = XREF: ओवरले केवल ड्राइंग संदर्भों पर लागू होते हैं। + .xref-path-set-for = XREF: "__ocs_fmt_0__" के लिए पथ सेट किया गया — लागू करने के लिए पुनः लोड करें। + .xref-unloaded = XREF: "__ocs_fmt_0__" अनलोड किया गया। + .xref-unknown-option = XREF: अज्ञात विकल्प '__ocs_fmt_0__'. विकल्प: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ संदर्भ अद्यतन किए गए। + .usage-xref-path-pattern = उपयोग: XREF Path + .usage-xref-path-find = उपयोग: XREF Path Find + .usage-xref-pathtype = उपयोग: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ संदर्भ नहीं मिले — EXTERNALREFERENCES के साथ संदर्भ प्रबंधक खोलें। + .xref-nested-not-rendered = (नेस्टेड — रेंडर नहीं किया गया) + .change-path = पथ बदलें: + .date = दिनांक + .details = विवरण + .xref-detach = डिटैच + .failed = विफल + .xref-file-attach-is-not-available-on-web = फ़ाइल संलग्न करना वेब पर उपलब्ध नहीं है — नीचे दी गई संदर्भ सूची केवल पढ़ने के लिए है। + .xref-file-name = फ़ाइल नाम + .found-at = पर पाया गया + .xref-help = सहायता + .xref-nested-references-are-read-only = नेस्टेड संदर्भ केवल पढ़ने के लिए हैं — उन्हें अपने होस्ट ड्राइंग में संपादित करें। + .not-found = नहीं मिला + .orphaned = अनाथ + .unreferenced = संदर्भित नहीं + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = खोला गया + .xref-untitled = बिना शीर्षक + .xref-unresolved = अनिर्धारित + .xref-preview-not-available = पूर्वावलोकन उपलब्ध नहीं + .xref-reload-all = सभी पुनः लोड करें + .xref-dwg = DWG + .xref-pixel-width = पिक्सेल चौड़ाई + .xref-pixel-height = पिक्सेल ऊँचाई + .xref-resolution-unit = रिज़ॉल्यूशन इकाई + .xref-overlay = ओवरले + .xref-reference-manager-select-rows-bind = संदर्भ प्रबंधक — पंक्तियाँ चुनें, फिर डिटैच, अनलोड, पुनः लोड, बाइंड, ओवरले, या पथ परिवर्तन मोड। + .xref-bind = बाइंड + .xref-refresh = ताज़ा करें + .relative = सापेक्ष + .xref-reload = पुनः लोड करें + .xref-replace = बदलें: + .saved-path = सहेजा गया पथ + .xref-select-a-reference-first = पहले एक संदर्भ चुनें। + .xref-select-a-reference-to-inspect-its = इसके विवरण निरीक्षण करने के लिए एक संदर्भ चुनें + .xref-set-path = पथ सेट करें + .stale = पुराना + .toggle-list-tree = सूची/ट्री टॉगल करें + .tree = ट्री + .xref-type-a-new-path-first = पहले एक नया पथ टाइप करें। + .xref-type-the-path-prefix-to-find-first = पहले खोजने के लिए पथ उपसर्ग टाइप करें। + .xref-unload = अनलोड + .unloaded = अनलोड + .xref-new-path-for-selection = चयन के लिए नया पथ + .xref-new-path-prefix = नया पथ उपसर्ग + .xref-old-path-prefix = पुराना पथ उपसर्ग .xref-save-the-drawing-first-to-resolve-relativ = XREF सापेक्ष पथ निर्धारित करने के लिए पहले ड्रॉइंग सहेजें। .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ ऑब्जेक्ट (s) क्लिपबोर्ड (बेस __ocs_fmt_1__, __ocs_fmt_2__) को कॉपी किया गया। .object-s-copied-to-clipboard = __ocs_fmt_0__ ऑब्जेक्ट (s) क्लिपबोर्ड पर कॉपी किया गया। @@ -3212,6 +3292,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE अक्ष के लिए रेखा, किरण या निर्माण रेखा चुनें: .revolve-select-objects-or-mode = REVOLVE घुमाने के लिए ऑब्जेक्ट चुनें या [मोड] (समाप्त करने के लिए Enter): + .path = Path: model = .create = बनाएँ .boolean = बूलियन संक्रियाएँ diff --git a/locales/hu-HU/opencadstudio.ftl b/locales/hu-HU/opencadstudio.ftl index 83e0202fa..f2b81d643 100644 --- a/locales/hu-HU/opencadstudio.ftl +++ b/locales/hu-HU/opencadstudio.ftl @@ -1029,7 +1029,7 @@ common = .loft-solid-created = LOFT: tömör létrehozva. .attsync-no-editable-block-references = ATTSYNC: nincsenek szerkeszthető blokkhivatkozások. .xref-reloaded-with-repairs = XREF Újratöltve javításokkal: "__ocs_fmt_0__" - .xref-reload-failed = XREF Az újratöltés sikertelen: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reload-failed = XREF Újratöltés sikertelen: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Előző nézet .zoom-no-previous-view = ZOOM: nincs előző nézet. .zoom-object = Nagyítás objektumra @@ -1118,7 +1118,7 @@ common = .inserting-from-file = "__ocs_fmt_0__" beszúrása fájlból. .insert-file = INSERT FILE: __ocs_fmt_0__ .xref-recovered-with-warnings = XREF Helyreállítva figyelmeztetésekkel: "__ocs_fmt_0__" - .xref-recovery-failed = XREF A helyreállítás sikertelen: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovery-failed = XREF Helyreállítás sikertelen: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Válasszon legalább egy elrendezést. .printing-is-not-available-in-the-web-version = A nyomtatás nem érhető el a webes verzióban. .sending-selected-layouts-to-the-system-printer = Kijelölt elrendezések küldése a rendszer nyomtatójára… @@ -1614,7 +1614,7 @@ common = .create-triangular-face = Háromszögű lap létrehozása .location = { common.position } .creation-mode = Létrehozási mód - .path = Útvonal + .path = Útvonal: .expression = Kifejezés .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3124,6 +3124,86 @@ insert = .xref-external-references = XREF Külső hivatkozások: .xref-no-external-references-in-this-drawing = XREF Nincsenek külső hivatkozások ezen a rajzon. .xref-reloaded = XREF újratöltve "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" beállítva Átfedésre. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" beállítva Csatolásra. + .xref-cannot-unload-nested-reference = XREF: nem rakható ki a beágyazott hivatkozás '__ocs_fmt_0__'. Rakja ki a befogadó rajzban. + .xref-cannot-overlay-nested-reference = XREF: nem fedhető át a beágyazott hivatkozás '__ocs_fmt_0__'. Fedje át a befogadó rajzban. + .xref-cannot-reload-nested-reference = XREF: nem tölthető újra a beágyazott hivatkozás '__ocs_fmt_0__'. Töltse újra a befogadó rajzban. + .xref-cannot-attach-nested-reference = XREF: nem csatolható a beágyazott hivatkozás '__ocs_fmt_0__'. Csatolja a befogadó rajzban. + .xref-cannot-set-path-type-nested-reference = XREF: nem állítható be útvonaltípus a beágyazott hivatkozáshoz '__ocs_fmt_0__'. Állítsa be a befogadó rajzban. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: az újratöltés csak rajzhivatkozásokra vonatkozik. + .xref-bound = XREF: "__ocs_fmt_0__" beágyazva. + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" beágyazva __ocs_fmt_1__ nem újratérképezett stílusfogóval (lásd a beágyazási korlátokat). + .xref-cannot-bind-nested-reference = XREF: nem beágyazható a beágyazott hivatkozás '__ocs_fmt_0__'. Ágyazza be a befogadó rajzban. + .xref-cannot-bind = XREF: "__ocs_fmt_0__" nem beágyazható: __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: PDF-beágyazás (vektorimport) nem érhető el ebben a verzióban. + .xref-cannot-detach-nested-reference = XREF: nem választható le a beágyazott hivatkozás '__ocs_fmt_0__'. Válassza le a befogadó rajzban. + .xref-cannot-make-path-relative = XREF: az útvonal nem tehető relatívvá meghajtók között. + .xref-detached = XREF: "__ocs_fmt_0__" leválasztva. + .xref-no-loaded-reference-with-that-key = XREF: nincs betöltött hivatkozás ezzel a kulccsal. + .xref-no-references-match = XREF: egyetlen hivatkozás sem egyezik a következővel: '__ocs_fmt_0__'. + .xref-manager-title = Külső hivatkozások + .xref-self-attach-blocked = XATTACH: a befogadó rajzot nem lehet önmagába csatolni. + .xref-overlays-drawing-references-only = XREF: az átfedések csak rajzhivatkozásokra vonatkoznak. + .xref-path-set-for = XREF: Útvonal beállítva a következőhöz: "__ocs_fmt_0__" — az alkalmazáshoz töltse újra. + .xref-unloaded = XREF: "__ocs_fmt_0__" kirakva. + .xref-unknown-option = XREF: ismeretlen opció '__ocs_fmt_0__'. Opciók: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ hivatkozás frissítve. + .usage-xref-path-pattern = Használat: XREF Path + .usage-xref-path-find = Használat: XREF Path Find + .usage-xref-pathtype = Használat: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ hivatkozás nem található — nyissa meg a hivatkozáskezelőt az EXTERNALREFERENCES paranccsal. + .xref-nested-not-rendered = (beágyazott — nem jelenik meg) + .change-path = Útvonal módosítása: + .date = Dátum + .details = Részletek + .xref-detach = Leválasztás + .failed = Sikertelen + .xref-file-attach-is-not-available-on-web = Fájl csatolása nem érhető el a weben — az alábbi hivatkozási lista csak olvasható. + .xref-file-name = Fájlnév + .found-at = Található itt: + .xref-help = Súgó + .xref-nested-references-are-read-only = A beágyazott hivatkozások csak olvashatók — szerkessze őket a befogadó rajzban. + .not-found = Nem található + .orphaned = Árva + .unreferenced = Nem hivatkozott + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Megnyitva + .xref-untitled = Névtelen + .xref-unresolved = Feloldatlan + .xref-preview-not-available = Előnézet nem érhető el + .xref-reload-all = Összes újratöltése + .xref-dwg = DWG + .xref-pixel-width = Pixelszélesség + .xref-pixel-height = Pixelmagasság + .xref-resolution-unit = Felbontás egysége + .xref-overlay = Átfedés + .xref-reference-manager-select-rows-bind = Hivatkozáskezelő — válasszon sorokat, majd Leválasztás, Kirakás, Újratöltés, Beágyazás, Átfedés vagy útvonalváltási mód. + .xref-bind = Beágyazás + .xref-refresh = Frissítés + .relative = Relatív + .xref-reload = Újratöltés + .xref-replace = Csere: + .saved-path = Mentett útvonal + .xref-select-a-reference-first = Először válasszon ki egy hivatkozást. + .xref-select-a-reference-to-inspect-its = Válasszon egy hivatkozást a részletek megtekintéséhez + .xref-set-path = Útvonal beállítása + .stale = Elavult + .toggle-list-tree = Lista/fa nézet váltás + .tree = Fa + .xref-type-a-new-path-first = Először írjon be egy új útvonalat. + .xref-type-the-path-prefix-to-find-first = Először írja be a keresendő útvonal-előtagot. + .xref-unload = Kirakás + .unloaded = Kirakva + .xref-new-path-for-selection = új útvonal a kijelöléshez + .xref-new-path-prefix = új útvonal-előtag + .xref-old-path-prefix = régi útvonal-előtag .xref-save-the-drawing-first-to-resolve-relativ = XREF Először mentse a rajzot a relatív XREF útvonalak feloldásához. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ objektum(ok) a vágólapra másolva (alap __ocs_fmt_1__, __ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ objektum(ok) a vágólapra másolva. @@ -3223,6 +3303,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Válasszon vonalat, félegyenest vagy szerkesztővonalat tengelyként: .revolve-select-objects-or-mode = REVOLVE Válasszon megforgatandó objektumokat vagy [Mód] (Enter a befejezéshez): + .path = Path: model = .create = Létrehozás .boolean = Logikai műveletek diff --git a/locales/it-IT/opencadstudio.ftl b/locales/it-IT/opencadstudio.ftl index 2e1a28c2c..eff522794 100644 --- a/locales/it-IT/opencadstudio.ftl +++ b/locales/it-IT/opencadstudio.ftl @@ -1029,7 +1029,7 @@ common = .loft-solid-created = LOFT: solido creato. .attsync-no-editable-block-references = ATTSYNC: nessun riferimento di blocco modificabile. .xref-reloaded-with-repairs = XREF Ricaricato con riparazioni: "__ocs_fmt_0__" - .xref-reload-failed = XREF Ricaricamento non riuscito: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reload-failed = XREF Ricarica fallita: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Zoom precedente .zoom-no-previous-view = ZOOM: nessuna vista precedente. .zoom-object = Zoom oggetto @@ -1118,7 +1118,7 @@ common = .inserting-from-file = Inserimento di "__ocs_fmt_0__" dal file. .insert-file = INSERT FILE: __ocs_fmt_0__ .xref-recovered-with-warnings = XREF Recuperato con avvisi: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Recupero non riuscito: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovery-failed = XREF Recupero fallito: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Seleziona almeno un layout. .printing-is-not-available-in-the-web-version = La stampa non è disponibile nella versione web. .sending-selected-layouts-to-the-system-printer = Invio dei layout selezionati alla stampante di sistema… @@ -1614,7 +1614,7 @@ common = .create-triangular-face = Crea faccia triangolare .location = { common.position } .creation-mode = Modalità di creazione - .path = Percorso + .path = Percorso: .expression = Espressione .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3124,6 +3124,86 @@ insert = .xref-external-references = XREF Riferimenti esterni: .xref-no-external-references-in-this-drawing = XREF Nessun riferimento esterno in questo disegno. .xref-reloaded = XREF Ricaricato "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" impostato su Sovrapposto. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" impostato su Allegato. + .xref-cannot-unload-nested-reference = XREF: impossibile scaricare il riferimento nidificato '__ocs_fmt_0__'. Scaricarlo nel suo disegno host. + .xref-cannot-overlay-nested-reference = XREF: impossibile sovrapporre il riferimento nidificato '__ocs_fmt_0__'. Sovrapporlo nel suo disegno host. + .xref-cannot-reload-nested-reference = XREF: impossibile ricaricare il riferimento nidificato '__ocs_fmt_0__'. Ricaricarlo nel suo disegno host. + .xref-cannot-attach-nested-reference = XREF: impossibile allegare il riferimento nidificato '__ocs_fmt_0__'. Allegarlo nel suo disegno host. + .xref-cannot-set-path-type-nested-reference = XREF: impossibile impostare il tipo di percorso per il riferimento nidificato '__ocs_fmt_0__'. Impostarlo nel suo disegno host. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: il ricaricamento si applica solo ai riferimenti di disegno. + .xref-bound = XREF: associato "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: associato "__ocs_fmt_0__" con __ocs_fmt_1__ maniglie di stile non rimappate (vedere i limiti di associazione). + .xref-cannot-bind-nested-reference = XREF: impossibile associare il riferimento nidificato '__ocs_fmt_0__'. Associarlo nel suo disegno host. + .xref-cannot-bind = XREF: impossibile associare "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: L'associazione PDF (importazione vettoriale) non è disponibile in questa versione. + .xref-cannot-detach-nested-reference = XREF: impossibile scollegare il riferimento nidificato '__ocs_fmt_0__'. Scollegarlo nel suo disegno host. + .xref-cannot-make-path-relative = XREF: impossibile rendere relativo il percorso tra unità. + .xref-detached = XREF: scollegato "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: nessun riferimento caricato con quella chiave. + .xref-no-references-match = XREF: nessun riferimento corrisponde a '__ocs_fmt_0__'. + .xref-manager-title = Riferimenti esterni + .xref-self-attach-blocked = XATTACH: impossibile allegare il disegno host in se stesso. + .xref-overlays-drawing-references-only = XREF: le sovrapposizioni si applicano solo ai riferimenti di disegno. + .xref-path-set-for = XREF: Percorso impostato per "__ocs_fmt_0__" — Ricaricare per applicare. + .xref-unloaded = XREF: scaricato "__ocs_fmt_0__". + .xref-unknown-option = XREF: opzione sconosciuta '__ocs_fmt_0__'. Opzioni: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ riferimento(i) aggiornati. + .usage-xref-path-pattern = Uso: XREF Path + .usage-xref-path-find = Uso: XREF Path Find + .usage-xref-pathtype = Uso: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ riferimento(i) non trovato(i) — aprire il gestore dei riferimenti con EXTERNALREFERENCES. + .xref-nested-not-rendered = (nidificato — non renderizzato) + .change-path = Cambia percorso: + .date = Data + .details = Dettagli + .xref-detach = Scollega + .failed = Non riuscito + .xref-file-attach-is-not-available-on-web = L'allegato di file non è disponibile sul web — l'elenco dei riferimenti sottostante è di sola lettura. + .xref-file-name = Nome file + .found-at = Trovato in + .xref-help = Guida + .xref-nested-references-are-read-only = I riferimenti nidificati sono di sola lettura — modificarli nel loro disegno host. + .not-found = Non trovato + .orphaned = Orfano + .unreferenced = Non referenziato + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Aperto + .xref-untitled = Senza titolo + .xref-unresolved = Non risolto + .xref-preview-not-available = Anteprima non disponibile + .xref-reload-all = Ricarica tutto + .xref-dwg = DWG + .xref-pixel-width = Larghezza in pixel + .xref-pixel-height = Altezza in pixel + .xref-resolution-unit = Unità di risoluzione + .xref-overlay = Sovrapponi + .xref-reference-manager-select-rows-bind = Gestore riferimenti — selezionare righe, quindi Scollega, Scarica, Ricarica, Associa, Sovrapponi o una modalità di modifica percorso. + .xref-bind = Associa + .xref-refresh = Aggiorna + .relative = Relativo + .xref-reload = Ricarica + .xref-replace = Sostituisci: + .saved-path = Percorso salvato + .xref-select-a-reference-first = Selezionare prima un riferimento. + .xref-select-a-reference-to-inspect-its = Selezionare un riferimento per ispezionarne i dettagli + .xref-set-path = Imposta percorso + .stale = Non aggiornato + .toggle-list-tree = Alterna elenco/albero + .tree = Albero + .xref-type-a-new-path-first = Digitare prima un nuovo percorso. + .xref-type-the-path-prefix-to-find-first = Digitare prima il prefisso del percorso da cercare. + .xref-unload = Scarica + .unloaded = Scaricato + .xref-new-path-for-selection = nuovo percorso per la selezione + .xref-new-path-prefix = nuovo prefisso percorso + .xref-old-path-prefix = vecchio prefisso percorso .xref-save-the-drawing-first-to-resolve-relativ = XREF Salvare prima il disegno per risolvere i percorsi XREF relativi. .object-s-copied-to-clipboard-base-3-3 = Oggetto/i __ocs_fmt_0__ copiati negli appunti (base __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ oggetto/i copiati negli appunti. @@ -3223,6 +3303,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Seleziona una linea, semiretta o linea di costruzione come asse: .revolve-select-objects-or-mode = REVOLVE Seleziona oggetti da rivoluzionare o [Modalità] (Invio per terminare): + .path = Path: model = .create = Crea .boolean = Operazioni booleane diff --git a/locales/ja-JP/opencadstudio.ftl b/locales/ja-JP/opencadstudio.ftl index e14ae20c2..8de10394f 100644 --- a/locales/ja-JP/opencadstudio.ftl +++ b/locales/ja-JP/opencadstudio.ftl @@ -1019,7 +1019,7 @@ common = .loft-surface-created = LOFT: サーフェスを作成しました。 .loft-solid-created = LOFT: ソリッドを作成しました。 .attsync-no-editable-block-references = ATTSYNC: 編集可能なブロック参照がありません。 - .xref-reloaded-with-repairs = XREF 修復して再読み込みしました: "__ocs_fmt_0__" + .xref-reloaded-with-repairs = XREF 修復付きで再読み込みされました: "__ocs_fmt_0__" .xref-reload-failed = XREF 再読み込みに失敗しました: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = 前の表示 .zoom-no-previous-view = ZOOM: 前の表示はありません。 @@ -1108,8 +1108,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = ファイルから "__ocs_fmt_0__" を挿入しています。 .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF 警告付きで復元しました: "__ocs_fmt_0__" - .xref-recovery-failed = XREF 復元に失敗しました: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF 警告付きでリカバリされました: "__ocs_fmt_0__" + .xref-recovery-failed = XREF リカバリに失敗しました: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = レイアウトを1つ以上選択してください。 .printing-is-not-available-in-the-web-version = Web版では印刷できません。 .sending-selected-layouts-to-the-system-printer = 選択したレイアウトをシステムプリンターに送信中… @@ -1605,7 +1605,7 @@ common = .create-triangular-face = 三角形の面を作成 .location = { common.position } .creation-mode = 作成モード - .path = パス + .path = パス: .expression = 式 .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3113,6 +3113,86 @@ insert = .xref-external-references = XREF 外部参照: .xref-no-external-references-in-this-drawing = XREF この図面には外部参照がありません。 .xref-reloaded = XREF 「__ocs_fmt_0__」を再ロードしました + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" をオーバーレイに設定しました。 + .xref-set-to-attach = XREF: "__ocs_fmt_0__" をアタッチに設定しました。 + .xref-cannot-unload-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' をアンロードできません。ホスト図面でアンロードしてください。 + .xref-cannot-overlay-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' をオーバーレイできません。ホスト図面でオーバーレイしてください。 + .xref-cannot-reload-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' を再読み込みできません。ホスト図面で再読み込みしてください。 + .xref-cannot-attach-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' をアタッチできません。ホスト図面でアタッチしてください。 + .xref-cannot-set-path-type-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' のパスタイプを設定できません。ホスト図面で設定してください。 + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: 再読み込みは図面参照にのみ適用されます。 + .xref-bound = XREF: "__ocs_fmt_0__" をバインドしました。 + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" を __ocs_fmt_1__ 個の未再マップのスタイルハンドルでバインドしました(バインド制限を参照)。 + .xref-cannot-bind-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' をバインドできません。ホスト図面でバインドしてください。 + .xref-cannot-bind = XREF: "__ocs_fmt_0__" をバインドできません: __ocs_fmt_1__。 + .xref-pdf-bind-unavailable = XREF: PDFバインド(ベクターインポート)はこのバージョンでは利用できません。 + .xref-cannot-detach-nested-reference = XREF: ネストされた参照 '__ocs_fmt_0__' をデタッチできません。ホスト図面でデタッチしてください。 + .xref-cannot-make-path-relative = XREF: ドライブをまたいでパスを相対にできません。 + .xref-detached = XREF: "__ocs_fmt_0__" をデタッチしました。 + .xref-no-loaded-reference-with-that-key = XREF: そのキーを持つロードされた参照はありません。 + .xref-no-references-match = XREF: '__ocs_fmt_0__' に一致する参照はありません。 + .xref-manager-title = 外部参照 + .xref-self-attach-blocked = XATTACH: ホスト図面をそれ自体にアタッチできません。 + .xref-overlays-drawing-references-only = XREF: オーバーレイは図面参照にのみ適用されます。 + .xref-path-set-for = XREF: "__ocs_fmt_0__" のパスを設定しました — 適用するには再読み込みしてください。 + .xref-unloaded = XREF: "__ocs_fmt_0__" をアンロードしました。 + .xref-unknown-option = XREF: 不明なオプション '__ocs_fmt_0__'。オプション: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ 個の参照を更新しました。 + .usage-xref-path-pattern = 使用方法: XREF Path + .usage-xref-path-find = 使用方法: XREF Path Find + .usage-xref-pathtype = 使用方法: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ 個の参照が見つかりません — EXTERNALREFERENCES で参照マネージャーを開いてください。 + .xref-nested-not-rendered = (ネスト — レンダリングされません) + .change-path = パスを変更: + .date = 日付 + .details = 詳細 + .xref-detach = デタッチ + .failed = 失敗 + .xref-file-attach-is-not-available-on-web = ファイル添付はWebでは利用できません — 以下の参照リストは読み取り専用です。 + .xref-file-name = ファイル名 + .found-at = 見つかった場所 + .xref-help = ヘルプ + .xref-nested-references-are-read-only = ネストされた参照は読み取り専用です — ホスト図面で編集してください。 + .not-found = 見つかりません + .orphaned = 孤立 + .unreferenced = 未参照 + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = 開かれました + .xref-untitled = 無題 + .xref-unresolved = 未解決 + .xref-preview-not-available = プレビューは利用できません + .xref-reload-all = すべて再読み込み + .xref-dwg = DWG + .xref-pixel-width = ピクセル幅 + .xref-pixel-height = ピクセル高さ + .xref-resolution-unit = 解像度単位 + .xref-overlay = オーバーレイ + .xref-reference-manager-select-rows-bind = 参照マネージャー — 行を選択してから、デタッチ、アンロード、再読み込み、バインド、オーバーレイ、またはパス変更モードを選択してください。 + .xref-bind = バインド + .xref-refresh = 更新 + .relative = 相対 + .xref-reload = 再読み込み + .xref-replace = 置換: + .saved-path = 保存されたパス + .xref-select-a-reference-first = まず参照を選択してください。 + .xref-select-a-reference-to-inspect-its = 詳細を確認する参照を選択してください + .xref-set-path = パスを設定 + .stale = 古い + .toggle-list-tree = リスト/ツリー切り替え + .tree = ツリー + .xref-type-a-new-path-first = まず新しいパスを入力してください。 + .xref-type-the-path-prefix-to-find-first = まず検索するパスプレフィックスを入力してください。 + .xref-unload = アンロード + .unloaded = アンロード + .xref-new-path-for-selection = 選択に対する新しいパス + .xref-new-path-prefix = 新しいパスプレフィックス + .xref-old-path-prefix = 古いパスプレフィックス .xref-save-the-drawing-first-to-resolve-relativ = XREF 相対 XREF パスを解決するには、先に図面を保存してください。 .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ 個のオブジェクトをクリップボードにコピーしました(基点 __ocs_fmt_1__,__ocs_fmt_2__)。 .object-s-copied-to-clipboard = __ocs_fmt_0__ 個のオブジェクトをクリップボードにコピーしました。 @@ -3212,6 +3292,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE 軸にする線分、半直線、または構築線を選択: .revolve-select-objects-or-mode = REVOLVE 回転させるオブジェクトを選択、または[モード](Enterで終了): + .path = Path: model = .create = 作成 .boolean = ブール演算 diff --git a/locales/ko-KR/opencadstudio.ftl b/locales/ko-KR/opencadstudio.ftl index 05151a434..c9e5a5345 100644 --- a/locales/ko-KR/opencadstudio.ftl +++ b/locales/ko-KR/opencadstudio.ftl @@ -1028,8 +1028,8 @@ common = .loft-surface-created = LOFT: 표면을 생성했습니다. .loft-solid-created = LOFT: 솔리드가 생성되었습니다. .attsync-no-editable-block-references = ATTSYNC: 편집 가능한 블록 참조가 없습니다. - .xref-reloaded-with-repairs = XREF 복구하여 다시 로드했습니다: "__ocs_fmt_0__" - .xref-reload-failed = XREF 다시 로드하지 못했습니다: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF 수리와 함께 다시 로드됨: "__ocs_fmt_0__" + .xref-reload-failed = XREF 다시 로드 실패: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = 이전 뷰 .zoom-no-previous-view = ZOOM: 이전 뷰가 없습니다. .zoom-object = 객체로 줌 @@ -1117,8 +1117,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = 파일에서 "__ocs_fmt_0__"을(를) 삽입합니다. .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF 경고와 함께 복구했습니다: "__ocs_fmt_0__" - .xref-recovery-failed = XREF 복구하지 못했습니다: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF 경고와 함께 복구됨: "__ocs_fmt_0__" + .xref-recovery-failed = XREF 복구 실패: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = 배치를 하나 이상 선택하세요. .printing-is-not-available-in-the-web-version = 웹 버전에서는 인쇄할 수 없습니다. .sending-selected-layouts-to-the-system-printer = 선택한 배치를 시스템 프린터로 보내는 중… @@ -1614,7 +1614,7 @@ common = .create-triangular-face = 삼각형 면 작성 .location = { common.position } .creation-mode = 작성 모드 - .path = 경로 + .path = 경로: .expression = 표현식 .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3124,6 +3124,86 @@ insert = .xref-external-references = XREF 외부 참조: .xref-no-external-references-in-this-drawing = XREF 이 도면에는 외부 참조가 없습니다. .xref-reloaded = XREF가 "__ocs_fmt_0__"를 다시 로드했습니다. + .xref-set-to-overlay = XREF: "__ocs_fmt_0__"을(를) 오버레이로 설정함. + .xref-set-to-attach = XREF: "__ocs_fmt_0__"을(를) 첨부로 설정함. + .xref-cannot-unload-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'을(를) 언로드할 수 없습니다. 호스트 도면에서 언로드하세요. + .xref-cannot-overlay-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'을(를) 오버레이할 수 없습니다. 호스트 도면에서 오버레이하세요. + .xref-cannot-reload-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'을(를) 다시 로드할 수 없습니다. 호스트 도면에서 다시 로드하세요. + .xref-cannot-attach-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'을(를) 첨부할 수 없습니다. 호스트 도면에서 첨부하세요. + .xref-cannot-set-path-type-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'의 경로 유형을 설정할 수 없습니다. 호스트 도면에서 설정하세요. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: 다시 로드는 도면 참조에만 적용됩니다. + .xref-bound = XREF: "__ocs_fmt_0__" 바인드됨. + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" 바인드됨, __ocs_fmt_1__개의 재매핑되지 않은 스타일 핸들 (바인드 제한사항 참조). + .xref-cannot-bind-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'을(를) 바인드할 수 없습니다. 호스트 도면에서 바인드하세요. + .xref-cannot-bind = XREF: "__ocs_fmt_0__"을(를) 바인드할 수 없음: __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: PDF 바인드(벡터 가져오기)는 이 버전에서 사용할 수 없습니다. + .xref-cannot-detach-nested-reference = XREF: 중첩 참조 '__ocs_fmt_0__'을(를) 분리할 수 없습니다. 호스트 도면에서 분리하세요. + .xref-cannot-make-path-relative = XREF: 드라이브 간 경로를 상대적으로 만들 수 없습니다. + .xref-detached = XREF: "__ocs_fmt_0__" 분리됨. + .xref-no-loaded-reference-with-that-key = XREF: 해당 키를 가진 로드된 참조가 없습니다. + .xref-no-references-match = XREF: '__ocs_fmt_0__'과(와) 일치하는 참조가 없습니다. + .xref-manager-title = 외부 참조 + .xref-self-attach-blocked = XATTACH: 호스트 도면을 자신에게 첨부할 수 없습니다. + .xref-overlays-drawing-references-only = XREF: 오버레이는 도면 참조에만 적용됩니다. + .xref-path-set-for = XREF: "__ocs_fmt_0__"에 대한 경로가 설정됨 — 적용하려면 다시 로드하세요. + .xref-unloaded = XREF: "__ocs_fmt_0__" 언로드됨. + .xref-unknown-option = XREF: 알 수 없는 옵션 '__ocs_fmt_0__'. 옵션: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__개의 참조가 업데이트됨. + .usage-xref-path-pattern = 사용법: XREF Path + .usage-xref-path-find = 사용법: XREF Path Find + .usage-xref-pathtype = 사용법: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__개의 참조를 찾을 수 없음 — EXTERNALREFERENCES로 참조 관리자를 여세요. + .xref-nested-not-rendered = (중첩 — 렌더링되지 않음) + .change-path = 경로 변경: + .date = 날짜 + .details = 세부 정보 + .xref-detach = 분리 + .failed = 실패 + .xref-file-attach-is-not-available-on-web = 파일 첨부는 웹에서 사용할 수 없습니다 — 아래 참조 목록은 읽기 전용입니다. + .xref-file-name = 파일 이름 + .found-at = 찾은 위치 + .xref-help = 도움말 + .xref-nested-references-are-read-only = 중첩 참조는 읽기 전용입니다 — 호스트 도면에서 편집하세요. + .not-found = 찾을 수 없음 + .orphaned = 고아 + .unreferenced = 참조되지 않음 + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = 열림 + .xref-untitled = 제목 없음 + .xref-unresolved = 확인되지 않음 + .xref-preview-not-available = 미리보기를 사용할 수 없음 + .xref-reload-all = 모두 다시 로드 + .xref-dwg = DWG + .xref-pixel-width = 픽셀 너비 + .xref-pixel-height = 픽셀 높이 + .xref-resolution-unit = 해상도 단위 + .xref-overlay = 오버레이 + .xref-reference-manager-select-rows-bind = 참조 관리자 — 행을 선택한 다음 분리, 언로드, 다시 로드, 바인드, 오버레이 또는 경로 변경 모드를 선택하세요. + .xref-bind = 바인드 + .xref-refresh = 새로 고침 + .relative = 상대 + .xref-reload = 다시 로드 + .xref-replace = 바꾸기: + .saved-path = 저장된 경로 + .xref-select-a-reference-first = 먼저 참조를 선택하세요. + .xref-select-a-reference-to-inspect-its = 세부 정보를 확인할 참조를 선택하세요 + .xref-set-path = 경로 설정 + .stale = 오래됨 + .toggle-list-tree = 목록/트리 전환 + .tree = 트리 + .xref-type-a-new-path-first = 먼저 새 경로를 입력하세요. + .xref-type-the-path-prefix-to-find-first = 먼저 찾을 경로 접두어를 입력하세요. + .xref-unload = 언로드 + .unloaded = 언로드됨 + .xref-new-path-for-selection = 선택 항목에 대한 새 경로 + .xref-new-path-prefix = 새 경로 접두어 + .xref-old-path-prefix = 이전 경로 접두어 .xref-save-the-drawing-first-to-resolve-relativ = XREF 상대 XREF 경로를 확인하려면 먼저 도면을 저장하십시오. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ 개체가 클립보드에 복사되었습니다(기본 __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ 개체가 클립보드에 복사되었습니다. @@ -3223,6 +3303,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE 축으로 사용할 선, 반직선 또는 구성선을 선택하세요: .revolve-select-objects-or-mode = REVOLVE 회전할 객체 선택 또는 [모드] (Enter로 완료): + .path = Path: model = .create = 생성 .boolean = 불리언 연산 diff --git a/locales/nl-NL/opencadstudio.ftl b/locales/nl-NL/opencadstudio.ftl index 600feb8a4..49eb43ac1 100644 --- a/locales/nl-NL/opencadstudio.ftl +++ b/locales/nl-NL/opencadstudio.ftl @@ -1027,8 +1027,8 @@ common = .loft-surface-created = LOFT: oppervlak gemaakt. .loft-solid-created = LOFT: vaste stof aangemaakt. .attsync-no-editable-block-references = ATTSYNC: geen bewerkbare blokreferenties. - .xref-reloaded-with-repairs = XREF Opnieuw geladen met reparaties: "__ocs_fmt_0__" - .xref-reload-failed = XREF Opnieuw laden mislukt: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF Herladen met reparaties: "__ocs_fmt_0__" + .xref-reload-failed = XREF Herladen mislukt: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Vorige weergave .zoom-no-previous-view = ZOOM: geen vorige weergave. .zoom-object = Inzoomen op object @@ -1613,7 +1613,7 @@ common = .create-triangular-face = Driehoekig vlak maken .location = { common.position } .creation-mode = Aanmaakmodus - .path = Pad + .path = Pad: .expression = Expressie .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3123,6 +3123,86 @@ insert = .xref-external-references = XREF Externe verwijzingen: .xref-no-external-references-in-this-drawing = XREF Geen externe referenties in deze tekening. .xref-reloaded = XREF Herladen "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" ingesteld op Overleggen. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" ingesteld op Koppelen. + .xref-cannot-unload-nested-reference = XREF: kan geneste verwijzing '__ocs_fmt_0__' niet ontladen. Ontlaad deze in de hosttekening. + .xref-cannot-overlay-nested-reference = XREF: kan geneste verwijzing '__ocs_fmt_0__' niet overleggen. Overleg deze in de hosttekening. + .xref-cannot-reload-nested-reference = XREF: kan geneste verwijzing '__ocs_fmt_0__' niet herladen. Herlaad deze in de hosttekening. + .xref-cannot-attach-nested-reference = XREF: kan geneste verwijzing '__ocs_fmt_0__' niet koppelen. Koppel deze in de hosttekening. + .xref-cannot-set-path-type-nested-reference = XREF: kan padtype niet instellen voor geneste verwijzing '__ocs_fmt_0__'. Stel dit in in de hosttekening. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: opnieuw laden geldt alleen voor tekeningreferenties. + .xref-bound = XREF: "__ocs_fmt_0__" ingevoegd. + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" ingevoegd met __ocs_fmt_1__ niet-hertoegewezen stijlgrepen (zie bindingsbeperkingen). + .xref-cannot-bind-nested-reference = XREF: kan geneste verwijzing '__ocs_fmt_0__' niet invoegen. Voeg deze in in de hosttekening. + .xref-cannot-bind = XREF: kan "__ocs_fmt_0__" niet invoegen: __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: PDF-invoeging (vectorimport) is niet beschikbaar in deze versie. + .xref-cannot-detach-nested-reference = XREF: kan geneste verwijzing '__ocs_fmt_0__' niet loskoppelen. Koppel deze los in de hosttekening. + .xref-cannot-make-path-relative = XREF: kan pad niet relatief maken tussen stations. + .xref-detached = XREF: "__ocs_fmt_0__" losgekoppeld. + .xref-no-loaded-reference-with-that-key = XREF: geen geladen referentie met die sleutel. + .xref-no-references-match = XREF: geen referenties komen overeen met '__ocs_fmt_0__'. + .xref-manager-title = Externe referenties + .xref-self-attach-blocked = XATTACH: kan de hosttekening niet in zichzelf koppelen. + .xref-overlays-drawing-references-only = XREF: overleggingen gelden alleen voor tekeningreferenties. + .xref-path-set-for = XREF: Pad ingesteld voor "__ocs_fmt_0__" — Herlaad om toe te passen. + .xref-unloaded = XREF: "__ocs_fmt_0__" ontladen. + .xref-unknown-option = XREF: onbekende optie '__ocs_fmt_0__'. Opties: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ referentie(s) bijgewerkt. + .usage-xref-path-pattern = Gebruik: XREF Path + .usage-xref-path-find = Gebruik: XREF Path Find + .usage-xref-pathtype = Gebruik: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ referentie(s) niet gevonden — open de referentiebeheerder met EXTERNALREFERENCES. + .xref-nested-not-rendered = (genest — niet weergegeven) + .change-path = Pad wijzigen: + .date = Datum + .details = Details + .xref-detach = Loskoppelen + .failed = Mislukt + .xref-file-attach-is-not-available-on-web = Bestand koppelen is niet beschikbaar op het web — de onderstaande referentielijst is alleen-lezen. + .xref-file-name = Bestandsnaam + .found-at = Gevonden op + .xref-help = Help + .xref-nested-references-are-read-only = Geneste referenties zijn alleen-lezen — bewerk ze in hun hosttekening. + .not-found = Niet gevonden + .orphaned = Wees + .unreferenced = Onverwezen + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Geopend + .xref-untitled = Naamloos + .xref-unresolved = Onopgelost + .xref-preview-not-available = Voorbeeld niet beschikbaar + .xref-reload-all = Alles herladen + .xref-dwg = DWG + .xref-pixel-width = Pixelbreedte + .xref-pixel-height = Pixelhoogte + .xref-resolution-unit = Resolutie-eenheid + .xref-overlay = Overleggen + .xref-reference-manager-select-rows-bind = Referentiebeheerder — selecteer rijen, daarna Loskoppelen, Ontladen, Herladen, Invoegen, Overleggen of een padwijzigingsmodus. + .xref-bind = Invoegen + .xref-refresh = Vernieuwen + .relative = Relatief + .xref-reload = Herladen + .xref-replace = Vervangen: + .saved-path = Opgeslagen pad + .xref-select-a-reference-first = Selecteer eerst een referentie. + .xref-select-a-reference-to-inspect-its = Selecteer een referentie om de details te bekijken + .xref-set-path = Pad instellen + .stale = Verouderd + .toggle-list-tree = Lijst/structuur wisselen + .tree = Structuur + .xref-type-a-new-path-first = Typ eerst een nieuw pad. + .xref-type-the-path-prefix-to-find-first = Typ eerst het padprefix om te zoeken. + .xref-unload = Ontladen + .unloaded = Ontladen + .xref-new-path-for-selection = nieuw pad voor selectie + .xref-new-path-prefix = nieuw padprefix + .xref-old-path-prefix = oud padprefix .xref-save-the-drawing-first-to-resolve-relativ = XREF Sla de tekening eerst op om relatieve XREF paden op te lossen. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ object(en) naar het klembord gekopieerd (basispunt __ocs_fmt_1__, __ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ object(en) naar het klembord gekopieerd. @@ -3222,6 +3302,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Selecteer een lijn, straal of constructielijn als as: .revolve-select-objects-or-mode = REVOLVE Selecteer objecten om te wentelen of [Modus] (Enter om te voltooien): + .path = Path: model = .create = Maken .boolean = Booleaanse bewerkingen diff --git a/locales/pl-PL/opencadstudio.ftl b/locales/pl-PL/opencadstudio.ftl index b8d7b9e80..05900caf3 100644 --- a/locales/pl-PL/opencadstudio.ftl +++ b/locales/pl-PL/opencadstudio.ftl @@ -1028,8 +1028,8 @@ common = .loft-surface-created = LOFT: utworzono powierzchnię. .loft-solid-created = LOFT: utworzono bryłę. .attsync-no-editable-block-references = ATTSYNC: brak edytowalnych odwołań do bloków. - .xref-reloaded-with-repairs = XREF Wczytano ponownie z naprawami: "__ocs_fmt_0__" - .xref-reload-failed = XREF Ponowne wczytanie nie powiodło się: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF Przeładowano z naprawami: "__ocs_fmt_0__" + .xref-reload-failed = XREF Przeładowanie nie powiodło się: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Poprzedni widok .zoom-no-previous-view = ZOOM: brak poprzedniego widoku. .zoom-object = Powiększ do obiektu @@ -1614,7 +1614,7 @@ common = .create-triangular-face = Utwórz trójkątną ścianę .location = { common.position } .creation-mode = Tryb tworzenia - .path = Ścieżka + .path = Ścieżka: .expression = Wyrażenie .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3124,6 +3124,86 @@ insert = .xref-external-references = XREF Referencje zewnętrzne: .xref-no-external-references-in-this-drawing = XREF Brak zewnętrznych odniesień na tym rysunku. .xref-reloaded = XREF Załadowano ponownie „__ocs_fmt_0__” + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" ustawiono na Nałóż. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" ustawiono na Dołącz. + .xref-cannot-unload-nested-reference = XREF: nie można odłączyć zagnieżdżonego odwołania '__ocs_fmt_0__'. Odłącz je w rysunku nadrzędnym. + .xref-cannot-overlay-nested-reference = XREF: nie można nałożyć zagnieżdżonego odwołania '__ocs_fmt_0__'. Nałóż je w rysunku nadrzędnym. + .xref-cannot-reload-nested-reference = XREF: nie można przeładować zagnieżdżonego odwołania '__ocs_fmt_0__'. Przeładuj je w rysunku nadrzędnym. + .xref-cannot-attach-nested-reference = XREF: nie można dołączyć zagnieżdżonego odwołania '__ocs_fmt_0__'. Dołącz je w swoim rysunku nadrzędnym. + .xref-cannot-set-path-type-nested-reference = XREF: nie można ustawić typu ścieżki dla zagnieżdżonego odwołania '__ocs_fmt_0__'. Ustaw go w rysunku nadrzędnym. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: przeładowanie dotyczy tylko odwołań do rysunków. + .xref-bound = XREF: powiązano "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: powiązano "__ocs_fmt_0__" z __ocs_fmt_1__ nieprzypisanymi uchwytami stylu (patrz ograniczenia wiązania). + .xref-cannot-bind-nested-reference = XREF: nie można powiązać zagnieżdżonego odwołania '__ocs_fmt_0__'. Powiąż je w rysunku nadrzędnym. + .xref-cannot-bind = XREF: nie można powiązać "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: Powiązanie PDF (import wektorowy) nie jest dostępne w tej wersji. + .xref-cannot-detach-nested-reference = XREF: nie można odłączyć zagnieżdżonego odwołania '__ocs_fmt_0__'. Odłącz je w rysunku nadrzędnym. + .xref-cannot-make-path-relative = XREF: nie można uczynić ścieżki względną między dyskami. + .xref-detached = XREF: odłączono "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: brak załadowanego odwołania o tym kluczu. + .xref-no-references-match = XREF: brak odwołań pasujących do '__ocs_fmt_0__'. + .xref-manager-title = Odwołania zewnętrzne + .xref-self-attach-blocked = XATTACH: nie można dołączyć rysunku nadrzędnego do samego siebie. + .xref-overlays-drawing-references-only = XREF: nałożenia dotyczą tylko odwołań do rysunków. + .xref-path-set-for = XREF: Ścieżka ustawiona dla "__ocs_fmt_0__" — Przeładuj, aby zastosować. + .xref-unloaded = XREF: odłączono z pamięci "__ocs_fmt_0__". + .xref-unknown-option = XREF: nieznana opcja '__ocs_fmt_0__'. Opcje: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: zaktualizowano __ocs_fmt_0__ odwołanie(a). + .usage-xref-path-pattern = Użycie: XREF Path + .usage-xref-path-find = Użycie: XREF Path Find + .usage-xref-pathtype = Użycie: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ odwołanie(a) nie znalezione — otwórz menedżera odwołań za pomocą EXTERNALREFERENCES. + .xref-nested-not-rendered = (zagnieżdżone — nie renderowane) + .change-path = Zmień ścieżkę: + .date = Data + .details = Szczegóły + .xref-detach = Odłącz + .failed = Niepowodzenie + .xref-file-attach-is-not-available-on-web = Dołączanie pliku nie jest dostępne w wersji internetowej — lista odwołań poniżej jest tylko do odczytu. + .xref-file-name = Nazwa pliku + .found-at = Znaleziono w + .xref-help = Pomoc + .xref-nested-references-are-read-only = Zagnieżdżone odwołania są tylko do odczytu — edytuj je w ich rysunku nadrzędnym. + .not-found = Nie znaleziono + .orphaned = Osierocony + .unreferenced = Nieodwołany + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Otwarte + .xref-untitled = Bez tytułu + .xref-unresolved = Nierozwiązane + .xref-preview-not-available = Podgląd niedostępny + .xref-reload-all = Przeładuj wszystko + .xref-dwg = DWG + .xref-pixel-width = Szerokość w pikselach + .xref-pixel-height = Wysokość w pikselach + .xref-resolution-unit = Jednostka rozdzielczości + .xref-overlay = Nałóż + .xref-reference-manager-select-rows-bind = Menedżer odwołań — wybierz wiersze, następnie Odłącz, Odłącz z pamięci, Przeładuj, Powiąż, Nałóż lub tryb zmiany ścieżki. + .xref-bind = Powiąż + .xref-refresh = Odśwież + .relative = Względna + .xref-reload = Przeładuj + .xref-replace = Zamień: + .saved-path = Zapisana ścieżka + .xref-select-a-reference-first = Najpierw wybierz odwołanie. + .xref-select-a-reference-to-inspect-its = Wybierz odwołanie, aby wyświetlić jego szczegóły + .xref-set-path = Ustaw ścieżkę + .stale = Nieaktualny + .toggle-list-tree = Przełącz listę/drzewo + .tree = Drzewo + .xref-type-a-new-path-first = Najpierwprowadź nową ścieżkę. + .xref-type-the-path-prefix-to-find-first = Najpierw wprowadź prefiks ścieżki do wyszukania. + .xref-unload = Odłącz z pamięci + .unloaded = Odłączone + .xref-new-path-for-selection = nowa ścieżka dla zaznaczenia + .xref-new-path-prefix = nowy prefiks ścieżki + .xref-old-path-prefix = stary prefiks ścieżki .xref-save-the-drawing-first-to-resolve-relativ = XREF Zapisz najpierw rysunek, aby ustalić względne ścieżki XREF. .object-s-copied-to-clipboard-base-3-3 = Obiekt(y) __ocs_fmt_0__ skopiowano do schowka (bazowe __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = Obiekt(y) __ocs_fmt_0__ skopiowano do schowka. @@ -3223,6 +3303,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Wybierz linię, półprostą lub linię konstrukcyjną jako oś: .revolve-select-objects-or-mode = REVOLVE Wybierz obiekty do obrotu lub [Tryb] (Enter kończy): + .path = Path: model = .create = Utwórz .boolean = Operacje boolowskie diff --git a/locales/pt-BR/opencadstudio.ftl b/locales/pt-BR/opencadstudio.ftl index f5a0507f4..32a0196bd 100644 --- a/locales/pt-BR/opencadstudio.ftl +++ b/locales/pt-BR/opencadstudio.ftl @@ -1030,7 +1030,7 @@ common = .loft-solid-created = LOFT: sólido criado. .attsync-no-editable-block-references = ATTSYNC: nenhuma referência de bloco editável. .xref-reloaded-with-repairs = XREF Recarregado com reparos: "__ocs_fmt_0__" - .xref-reload-failed = XREF Falha ao recarregar: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reload-failed = XREF Falha no recarregamento: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Zoom anterior .zoom-no-previous-view = ZOOM: nenhuma vista anterior. .zoom-object = Zoom no objeto @@ -1615,7 +1615,7 @@ common = .create-triangular-face = Criar face triangular .location = { common.position } .creation-mode = Modo de criação - .path = Caminho + .path = Caminho: .expression = Expressão .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3125,6 +3125,87 @@ insert = .xref-external-references = XREF Referências externas: .xref-no-external-references-in-this-drawing = XREF Nenhuma referência externa neste desenho. .xref-reloaded = XREF “__ocs_fmt_0__” recarregada + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" definido como Sobrepor. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" definido como Anexar. + .xref-cannot-unload-nested-reference = XREF: não é possível descarregar referência aninhada '__ocs_fmt_0__'. Descarregue-a no desenho host. + .xref-cannot-overlay-nested-reference = XREF: não é possível sobrepor referência aninhada '__ocs_fmt_0__'. Sobreponha-a no desenho host. + .xref-cannot-reload-nested-reference = XREF: não é possível recarregar referência aninhada '__ocs_fmt_0__'. Recarregue-a no desenho host. + .xref-cannot-attach-nested-reference = XREF: não é possível anexar referência aninhada '__ocs_fmt_0__'. Anexe-a no desenho host. + .xref-cannot-set-path-type-nested-reference = XREF: não é possível definir o tipo de caminho para referência aninhada '__ocs_fmt_0__'. Defina-o no desenho host. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: o recarregamento se aplica apenas a referências de desenho. + .xref-bound = XREF: vinculado "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: vinculado "__ocs_fmt_0__" com __ocs_fmt_1__ alças de estilo não remapeadas (consulte as limitações de vinculação). + .xref-cannot-bind-nested-reference = XREF: não é possível vincular referência aninhada '__ocs_fmt_0__'. Vincule-a no desenho host. + .xref-cannot-bind = XREF: não é possível vincular "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: Vinculação de PDF (importação vetorial) não está disponível nesta versão. + .xref-cannot-detach-nested-reference = XREF: não é possível desanexar referência aninhada '__ocs_fmt_0__'. Desanexe-a no desenho host. + .xref-cannot-make-path-relative = XREF: não é possível tornar o caminho relativo entre unidades. + .xref-detached = XREF: desanexado "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: nenhuma referência carregada com essa chave. + .xref-no-references-match = XREF: nenhuma referência corresponde a '__ocs_fmt_0__'. + .xref-manager-title = Referências externas + .xref-self-attach-blocked = XATTACH: não é possível anexar o desenho host a si mesmo. + .xref-overlays-drawing-references-only = XREF: sobreposições se aplicam apenas a referências de desenho. + .xref-path-set-for = XREF: Caminho definido para "__ocs_fmt_0__" — Recarregue para aplicar. + .xref-unloaded = XREF: descarregado "__ocs_fmt_0__". + .xref-unknown-option = XREF: opção desconhecida '__ocs_fmt_0__'. Opções: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ referência(s) atualizada(s). + .usage-xref-path-pattern = Uso: XREF Path + .usage-xref-path-find = Uso: XREF Path Find + .usage-xref-pathtype = Uso: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ referência(s) não encontrada(s) — abra o gerenciador de referências com EXTERNALREFERENCES. + .xref-nested-not-rendered = (aninhada — não renderizada) + .change-path = Alterar caminho: + .date = Data + .details = Detalhes + .xref-detach = Desanexar + .failed = Falhou + .xref-file-attach-is-not-available-on-web = Anexar arquivo não está disponível na web — a lista de referências abaixo é somente leitura. + .xref-file-name = Nome do arquivo + .found-at = Encontrado em + .xref-help = Ajuda + .xref-nested-references-are-read-only = Referências aninhadas são somente leitura — edite-as em seu desenho host. + .not-found = Não encontrado + .orphaned = Órfão + .unreferenced = Não referenciado + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .path = Path: + .xref-opened = Aberto + .xref-untitled = Sem título + .xref-unresolved = Não resolvido + .xref-preview-not-available = Visualização não disponível + .xref-reload-all = Recarregar tudo + .xref-dwg = DWG + .xref-pixel-width = Largura em pixels + .xref-pixel-height = Altura em pixels + .xref-resolution-unit = Unidade de resolução + .xref-overlay = Sobrepor + .xref-reference-manager-select-rows-bind = Gerenciador de referências — selecione linhas, depois Desanexar, Descarregar, Recarregar, Vincular, Sobrepor ou um modo de alteração de caminho. + .xref-bind = Vincular + .xref-refresh = Atualizar + .relative = Relativo + .xref-reload = Recarregar + .xref-replace = Substituir: + .saved-path = Caminho salvo + .xref-select-a-reference-first = Selecione uma referência primeiro. + .xref-select-a-reference-to-inspect-its = Selecione uma referência para inspecionar seus detalhes + .xref-set-path = Definir caminho + .stale = Desatualizado + .toggle-list-tree = Alternar lista/árvore + .tree = Árvore + .xref-type-a-new-path-first = Digite um novo caminho primeiro. + .xref-type-the-path-prefix-to-find-first = Digite primeiro o prefixo do caminho a ser encontrado. + .xref-unload = Descarregar + .unloaded = Descarregado + .xref-new-path-for-selection = novo caminho para seleção + .xref-new-path-prefix = novo prefixo de caminho + .xref-old-path-prefix = prefixo de caminho antigo .xref-save-the-drawing-first-to-resolve-relativ = XREF Salve primeiro o desenho para resolver os caminhos relativos das referências externas. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ objetos copiados para a área de transferência (base __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ objetos copiados para a área de transferência. diff --git a/locales/ru-RU/opencadstudio.ftl b/locales/ru-RU/opencadstudio.ftl index 6dfa348e3..aefefa284 100644 --- a/locales/ru-RU/opencadstudio.ftl +++ b/locales/ru-RU/opencadstudio.ftl @@ -1032,8 +1032,8 @@ common = .loft-surface-created = LOFT: поверхность создана. .loft-solid-created = LOFT: твердое создание. .attsync-no-editable-block-references = ATTSYNC: нет редактируемых вхождений блоков. - .xref-reloaded-with-repairs = XREF Перезагружено с исправлениями: "__ocs_fmt_0__" - .xref-reload-failed = XREF Не удалось перезагрузить: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF Перезагружен с исправлениями: "__ocs_fmt_0__" + .xref-reload-failed = XREF Ошибка перезагрузки: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Предыдущий вид .zoom-no-previous-view = ZOOM: предыдущего вида нет. .zoom-object = Масштаб по объекту @@ -1121,8 +1121,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = Вставка "__ocs_fmt_0__" из файла. .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF Восстановлено с предупреждениями: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Не удалось восстановить: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF Восстановлен с предупреждениями: "__ocs_fmt_0__" + .xref-recovery-failed = XREF Ошибка восстановления: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = Выберите хотя бы один лист. .printing-is-not-available-in-the-web-version = Печать недоступна в веб-версии. .sending-selected-layouts-to-the-system-printer = Отправка выбранных листов на системный принтер… @@ -1618,7 +1618,7 @@ common = .create-triangular-face = Создать треугольную грань .location = { common.position } .creation-mode = Режим создания - .path = Траектория + .path = Путь: .expression = Выражение .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3126,6 +3126,86 @@ insert = .xref-external-references = XREF Внешние ссылки: .xref-no-external-references-in-this-drawing = XREF В этом чертеже нет внешних ссылок. .xref-reloaded = XREF Перезагрузка "__ocs_fmt_0__" + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" установлен на Наложение. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" установлен на Присоединение. + .xref-cannot-unload-nested-reference = XREF: невозможно выгрузить вложенную ссылку '__ocs_fmt_0__'. Выгрузите ее в основном чертеже. + .xref-cannot-overlay-nested-reference = XREF: невозможно наложить вложенную ссылку '__ocs_fmt_0__'. Наложите ее в основном чертеже. + .xref-cannot-reload-nested-reference = XREF: невозможно перезагрузить вложенную ссылку '__ocs_fmt_0__'. Перезагрузите ее в основном чертеже. + .xref-cannot-attach-nested-reference = XREF: невозможно присоединить вложенную ссылку '__ocs_fmt_0__'. Присоедините ее в основном чертеже. + .xref-cannot-set-path-type-nested-reference = XREF: невозможно установить тип пути для вложенной ссылки '__ocs_fmt_0__'. Установите его в основном чертеже. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: перезагрузка применяется только к ссылкам на чертежи. + .xref-bound = XREF: включен "__ocs_fmt_0__". + .xref-bound-with-unremapped-handles = XREF: включен "__ocs_fmt_0__" с __ocs_fmt_1__ непереопределенными стилевыми маркерами (см. ограничения включения). + .xref-cannot-bind-nested-reference = XREF: невозможно включить вложенную ссылку '__ocs_fmt_0__'. Включите ее в основном чертеже. + .xref-cannot-bind = XREF: невозможно включить "__ocs_fmt_0__": __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: Включение PDF (векторный импорт) недоступно в этой версии. + .xref-cannot-detach-nested-reference = XREF: невозможно отсоединить вложенную ссылку '__ocs_fmt_0__'. Отсоедините ее в основном чертеже. + .xref-cannot-make-path-relative = XREF: невозможно сделать путь относительным между дисками. + .xref-detached = XREF: отсоединен "__ocs_fmt_0__". + .xref-no-loaded-reference-with-that-key = XREF: нет загруженной ссылки с этим ключом. + .xref-no-references-match = XREF: нет ссылок, соответствующих '__ocs_fmt_0__'. + .xref-manager-title = Внешние ссылки + .xref-self-attach-blocked = XATTACH: нельзя присоединить основной чертеж к самому себе. + .xref-overlays-drawing-references-only = XREF: наложения применяются только к ссылкам на чертежи. + .xref-path-set-for = XREF: Путь установлен для "__ocs_fmt_0__" — Перезагрузите для применения. + .xref-unloaded = XREF: выгружен "__ocs_fmt_0__". + .xref-unknown-option = XREF: неизвестная опция '__ocs_fmt_0__'. Опции: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: обновлено __ocs_fmt_0__ ссылок(и). + .usage-xref-path-pattern = Использование: XREF Path + .usage-xref-path-find = Использование: XREF Path Find + .usage-xref-pathtype = Использование: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ ссылка(и) не найдены — откройте диспетчер ссылок с помощью EXTERNALREFERENCES. + .xref-nested-not-rendered = (вложенная — не отображается) + .change-path = Изменить путь: + .date = Дата + .details = Подробности + .xref-detach = Отсоединить + .failed = Сбой + .xref-file-attach-is-not-available-on-web = Присоединение файла недоступно в веб-версии — список ссылок ниже доступен только для чтения. + .xref-file-name = Имя файла + .found-at = Найдено в + .xref-help = Справка + .xref-nested-references-are-read-only = Вложенные ссылки доступны только для чтения — редактируйте их в основном чертеже. + .not-found = Не найдено + .orphaned = Изолированный + .unreferenced = Неиспользуемый + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Открыт + .xref-untitled = Без названия + .xref-unresolved = Неразрешенный + .xref-preview-not-available = Предпросмотр недоступен + .xref-reload-all = Перезагрузить все + .xref-dwg = DWG + .xref-pixel-width = Ширина в пикселях + .xref-pixel-height = Высота в пикселях + .xref-resolution-unit = Единица разрешения + .xref-overlay = Наложение + .xref-reference-manager-select-rows-bind = Диспетчер ссылок — выберите строки, затем Отсоединить, Выгрузить, Перезагрузить, Включить, Наложить или режим изменения пути. + .xref-bind = Включить + .xref-refresh = Обновить + .relative = Относительный + .xref-reload = Перезагрузить + .xref-replace = Заменить: + .saved-path = Сохраненный путь + .xref-select-a-reference-first = Сначала выберите ссылку. + .xref-select-a-reference-to-inspect-its = Выберите ссылку для просмотра ее деталей + .xref-set-path = Установить путь + .stale = Устаревший + .toggle-list-tree = Переключить список/дерево + .tree = Дерево + .xref-type-a-new-path-first = Сначала введите новый путь. + .xref-type-the-path-prefix-to-find-first = Сначала введите префикс пути для поиска. + .xref-unload = Выгрузить + .unloaded = Выгружен + .xref-new-path-for-selection = новый путь для выбора + .xref-new-path-prefix = новый префикс пути + .xref-old-path-prefix = старый префикс пути .xref-save-the-drawing-first-to-resolve-relativ = XREF Сначала сохраните чертёж, чтобы определить относительные пути внешних ссылок. .object-s-copied-to-clipboard-base-3-3 = В буфер обмена скопировано объектов: __ocs_fmt_0__ (базовая точка: __ocs_fmt_1__, __ocs_fmt_2__). .object-s-copied-to-clipboard = В буфер обмена скопировано объектов: __ocs_fmt_0__. @@ -3225,6 +3305,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE Выберите линию, луч или вспомогательную прямую в качестве оси: .revolve-select-objects-or-mode = REVOLVE Выберите объекты для вращения или [Режим] (Enter — завершить): + .path = Путь: model = .create = Создание .boolean = Булевы операции diff --git a/locales/tr-TR/opencadstudio.ftl b/locales/tr-TR/opencadstudio.ftl index f0538ada9..53a6d0022 100644 --- a/locales/tr-TR/opencadstudio.ftl +++ b/locales/tr-TR/opencadstudio.ftl @@ -1015,8 +1015,8 @@ common = .loft-surface-created = LOFT: yüzey oluşturuldu. .loft-solid-created = LOFT: Katı oluşturuldu. .attsync-no-editable-block-references = ATTSYNC: düzenlenebilir blok referansı yok. - .xref-reloaded-with-repairs = XREF Onarılarak yeniden yüklendi: "__ocs_fmt_0__" - .xref-reload-failed = XREF Yeniden yüklenemedi: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF Onarımlarla yeniden yüklendi: "__ocs_fmt_0__" + .xref-reload-failed = XREF Yeniden yükleme başarısız: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = Önceki görünüme yakınlaştır .zoom-no-previous-view = ZOOM: önceki görünüm yok. .zoom-object = Nesneye yakınlaştır @@ -1105,7 +1105,7 @@ common = .inserting-from-file = Dosyadan "__ocs_fmt_0__" ekleniyor. .insert-file = INSERT FILE: __ocs_fmt_0__ .xref-recovered-with-warnings = XREF Uyarılarla kurtarıldı: "__ocs_fmt_0__" - .xref-recovery-failed = XREF Kurtarılamadı: "__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovery-failed = XREF Kurtarma başarısız: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = En az bir pafta seçin. .printing-is-not-available-in-the-web-version = Web sürümünde yazdırma kullanılamıyor. .sending-selected-layouts-to-the-system-printer = Seçilen paftalar sistem yazıcısına gönderiliyor… @@ -1601,7 +1601,7 @@ common = .create-triangular-face = Üçgen yüz oluştur .location = { common.position } .creation-mode = Oluşturma modu - .path = Yol + .path = Yol: .expression = İfade .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3092,6 +3092,86 @@ insert = .xref-external-references = XREF Dış referanslar: .xref-no-external-references-in-this-drawing = XREF Bu çizimde dış referans yok. .xref-reloaded = XREF "__ocs_fmt_0__" yeniden yüklendi + .xref-set-to-overlay = XREF: "__ocs_fmt_0__" Üzerine Ekle olarak ayarlandı. + .xref-set-to-attach = XREF: "__ocs_fmt_0__" Ekle olarak ayarlandı. + .xref-cannot-unload-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' kaldırılamaz. Ana çiziminde kaldırın. + .xref-cannot-overlay-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' üzerine eklenemez. Ana çiziminde üzerine ekleyin. + .xref-cannot-reload-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' yeniden yüklenemez. Ana çiziminde yeniden yükleyin. + .xref-cannot-attach-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' eklenemez. Ana çiziminde ekleyin. + .xref-cannot-set-path-type-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' için yol türü ayarlanamaz. Ana çiziminde ayarlayın. + .reload-applies-to-drawing-references-only = __ocs_fmt_0__: yeniden yükleme yalnızca çizim referansları için geçerlidir. + .xref-bound = XREF: "__ocs_fmt_0__" bağlandı. + .xref-bound-with-unremapped-handles = XREF: "__ocs_fmt_0__" bağlandı, __ocs_fmt_1__ yeniden eşlenmemiş stil tutamaçları (bağlama sınırlamalarına bakın). + .xref-cannot-bind-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' bağlanamaz. Ana çiziminde bağlayın. + .xref-cannot-bind = XREF: "__ocs_fmt_0__" bağlanamıyor: __ocs_fmt_1__. + .xref-pdf-bind-unavailable = XREF: PDF bağlama (vektör içe aktarma) bu sürümde mevcut değil. + .xref-cannot-detach-nested-reference = XREF: iç içe referans '__ocs_fmt_0__' ayrılamaz. Ana çiziminde ayırın. + .xref-cannot-make-path-relative = XREF: sürücüler arasında yol göreceli yapılamaz. + .xref-detached = XREF: "__ocs_fmt_0__" ayrıldı. + .xref-no-loaded-reference-with-that-key = XREF: bu anahtara sahip yüklenmiş referans yok. + .xref-no-references-match = XREF: '__ocs_fmt_0__' ile eşleşen referans yok. + .xref-manager-title = Harici Referanslar + .xref-self-attach-blocked = XATTACH: ana çizim kendine eklenemez. + .xref-overlays-drawing-references-only = XREF: üzerine eklemeler yalnızca çizim referansları için geçerlidir. + .xref-path-set-for = XREF: "__ocs_fmt_0__" için yol ayarlandı — uygulamak için Yeniden Yükleyin. + .xref-unloaded = XREF: "__ocs_fmt_0__" kaldırıldı. + .xref-unknown-option = XREF: bilinmeyen seçenek '__ocs_fmt_0__'. Seçenekler: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: __ocs_fmt_0__ referans güncellendi. + .usage-xref-path-pattern = Kullanım: XREF Path + .usage-xref-path-find = Kullanım: XREF Path Find + .usage-xref-pathtype = Kullanım: XREF Pathtype [pattern] + .xref-missing-open-xrefman = __ocs_fmt_0__ referans bulunamadı — referans yöneticisini EXTERNALREFERENCES ile açın. + .xref-nested-not-rendered = (iç içe — oluşturulmadı) + .change-path = Yolu değiştir: + .date = Tarih + .details = Ayrıntılar + .xref-detach = Ayır + .failed = Başarısız + .xref-file-attach-is-not-available-on-web = Dosya ekleme web üzerinde mevcut değil — aşağıdaki referans listesi salt okunurdur. + .xref-file-name = Dosya adı + .found-at = Bulunduğu yer + .xref-help = Yardım + .xref-nested-references-are-read-only = İç içe referanslar salt okunurdur — ana çizimlerinde düzenleyin. + .not-found = Bulunamadı + .orphaned = Kimsesiz + .unreferenced = Referanssız + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = Açıldı + .xref-untitled = Başlıksız + .xref-unresolved = Çözümlenmedi + .xref-preview-not-available = Önizleme mevcut değil + .xref-reload-all = Tümünü Yeniden Yükle + .xref-dwg = DWG + .xref-pixel-width = Piksel Genişliği + .xref-pixel-height = Piksel Yüksekliği + .xref-resolution-unit = Çözünürlük Birimi + .xref-overlay = Üzerine ekle + .xref-reference-manager-select-rows-bind = Referans Yöneticisi — satırları seçin, ardından Ayır, Kaldır, Yeniden Yükle, Bağla, Üzerine Ekle veya bir Yol Değiştirme modu. + .xref-bind = Bağla + .xref-refresh = Yenile + .relative = Göreceli + .xref-reload = Yeniden Yükle + .xref-replace = Değiştir: + .saved-path = Kaydedilen yol + .xref-select-a-reference-first = Önce bir referans seçin. + .xref-select-a-reference-to-inspect-its = Ayrıntılarını incelemek için bir referans seçin + .xref-set-path = Yolu Ayarla + .stale = Güncel değil + .toggle-list-tree = Liste/ağaç görünümünü değiştir + .tree = Ağaç + .xref-type-a-new-path-first = Önce yeni bir yol yazın. + .xref-type-the-path-prefix-to-find-first = Önce bulunacak yol önekini yazın. + .xref-unload = Kaldır + .unloaded = Kaldırıldı + .xref-new-path-for-selection = seçim için yeni yol + .xref-new-path-prefix = yeni yol öneki + .xref-old-path-prefix = eski yol öneki .xref-save-the-drawing-first-to-resolve-relativ = XREF Göreli XREF yollarını çözümlemek için önce çizimi kaydedin. .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ nesne panoya kopyalandı (taban __ocs_fmt_1__,__ocs_fmt_2__). .object-s-copied-to-clipboard = __ocs_fmt_0__ nesne panoya kopyalandı. @@ -3184,6 +3264,7 @@ insert = .select-at-least-one-guide-curve = { draw.select }: { common.guides } (≥1). .specify-the-requested-path-or-point-or-use-undo = { common.specify }: { common.path } / { common.point } [{ common.undo }]. + .path = Path: model = .create = Oluştur .boolean = Boole işlemleri diff --git a/locales/zh-CN/opencadstudio.ftl b/locales/zh-CN/opencadstudio.ftl index ba629a629..b4915c7da 100644 --- a/locales/zh-CN/opencadstudio.ftl +++ b/locales/zh-CN/opencadstudio.ftl @@ -1016,8 +1016,8 @@ common = .loft-surface-created = LOFT:已创建曲面。 .loft-solid-created = LOFT: 已创建固态 。 .attsync-no-editable-block-references = ATTSYNC:没有可编辑的块参照。 - .xref-reloaded-with-repairs = XREF 已修复并重新加载:"__ocs_fmt_0__" - .xref-reload-failed = XREF 重新加载失败:"__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF 已重新加载(带修复): "__ocs_fmt_0__" + .xref-reload-failed = XREF 重新加载失败: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = 上一个视图 .zoom-no-previous-view = ZOOM:没有上一个视图。 .zoom-object = 缩放到对象 @@ -1105,8 +1105,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = 正在从文件插入 "__ocs_fmt_0__"。 .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF 已恢复,但存在警告:"__ocs_fmt_0__" - .xref-recovery-failed = XREF 恢复失败:"__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF 已恢复(带警告): "__ocs_fmt_0__" + .xref-recovery-failed = XREF 恢复失败: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = 请至少选择一个布局。 .printing-is-not-available-in-the-web-version = 网页版不支持打印。 .sending-selected-layouts-to-the-system-printer = 正在将选定布局发送到系统打印机… @@ -1602,7 +1602,7 @@ common = .create-triangular-face = 创建三角面 .location = { common.position } .creation-mode = 创建模式 - .path = 路径 + .path = 路径: .expression = 表达式 .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3108,6 +3108,86 @@ insert = .xref-external-references = XREF 外部参考文献 : .xref-no-external-references-in-this-drawing = XREF 此绘图中没有外部引用 。 .xref-reloaded = XREF 重新装入了 “ __ocs_fmt_0__ ” + .xref-set-to-overlay = XREF: 已将 "__ocs_fmt_0__" 设置为覆盖。 + .xref-set-to-attach = XREF: 已将 "__ocs_fmt_0__" 设置为附着。 + .xref-cannot-unload-nested-reference = XREF: 无法卸载嵌套参照 '__ocs_fmt_0__'。请在宿主图形中卸载它。 + .xref-cannot-overlay-nested-reference = XREF: 无法覆盖嵌套参照 '__ocs_fmt_0__'。请在宿主图形中覆盖它。 + .xref-cannot-reload-nested-reference = XREF: 无法重新加载嵌套参照 '__ocs_fmt_0__'。请在宿主图形中重新加载它。 + .xref-cannot-attach-nested-reference = XREF: 无法附着嵌套参照 '__ocs_fmt_0__'。请在宿主图形中附着它。 + .xref-cannot-set-path-type-nested-reference = XREF: 无法为嵌套参照 '__ocs_fmt_0__' 设置路径类型。请在宿主图形中设置它。 + .reload-applies-to-drawing-references-only = __ocs_fmt_0__:重新加载仅适用于图形参照。 + .xref-bound = XREF: 已绑定 "__ocs_fmt_0__"。 + .xref-bound-with-unremapped-handles = XREF: 已绑定 "__ocs_fmt_0__",包含 __ocs_fmt_1__ 个未重新映射的样式手柄(参见绑定限制)。 + .xref-cannot-bind-nested-reference = XREF: 无法绑定嵌套参照 '__ocs_fmt_0__'。请在宿主图形中绑定它。 + .xref-cannot-bind = XREF: 无法绑定 "__ocs_fmt_0__":__ocs_fmt_1__。 + .xref-pdf-bind-unavailable = XREF: PDF 绑定(矢量导入)在此版本中不可用。 + .xref-cannot-detach-nested-reference = XREF: 无法拆离嵌套参照 '__ocs_fmt_0__'。请在宿主图形中拆离它。 + .xref-cannot-make-path-relative = XREF: 无法在驱动器之间设置相对路径。 + .xref-detached = XREF: 已拆离 "__ocs_fmt_0__"。 + .xref-no-loaded-reference-with-that-key = XREF: 没有该键的已加载参照。 + .xref-no-references-match = XREF: 没有与 '__ocs_fmt_0__' 匹配的参照。 + .xref-manager-title = 外部参照 + .xref-self-attach-blocked = XATTACH: 不能将宿主图形附着到自身。 + .xref-overlays-drawing-references-only = XREF: 覆盖仅适用于图形参照。 + .xref-path-set-for = XREF: 已为 "__ocs_fmt_0__" 设置路径 — 请重新加载以应用。 + .xref-unloaded = XREF: 已卸载 "__ocs_fmt_0__"。 + .xref-unknown-option = XREF: 未知选项 '__ocs_fmt_0__'。选项: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: 已更新 __ocs_fmt_0__ 个参照。 + .usage-xref-path-pattern = 用法: XREF Path + .usage-xref-path-find = 用法: XREF Path Find + .usage-xref-pathtype = 用法: XREF Pathtype [pattern] + .xref-missing-open-xrefman = 未找到 __ocs_fmt_0__ 个参照 — 请使用 EXTERNALREFERENCES 打开参照管理器。 + .xref-nested-not-rendered = (嵌套 — 未渲染) + .change-path = 更改路径: + .date = 日期 + .details = 详细信息 + .xref-detach = 拆离 + .failed = 失败 + .xref-file-attach-is-not-available-on-web = 文件附着在网页版中不可用 — 下面的参照列表为只读。 + .xref-file-name = 文件名 + .found-at = 位于 + .xref-help = 帮助 + .xref-nested-references-are-read-only = 嵌套参照为只读 — 请在宿主图形中编辑它们。 + .not-found = 未找到 + .orphaned = 孤立 + .unreferenced = 未参照 + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = 已打开 + .xref-untitled = 无标题 + .xref-unresolved = 未解析 + .xref-preview-not-available = 预览不可用 + .xref-reload-all = 全部重新加载 + .xref-dwg = DWG + .xref-pixel-width = 像素宽度 + .xref-pixel-height = 像素高度 + .xref-resolution-unit = 分辨率单位 + .xref-overlay = 覆盖 + .xref-reference-manager-select-rows-bind = 参照管理器 — 选择行,然后执行拆离、卸载、重新加载、绑定、覆盖或路径更改模式。 + .xref-bind = 绑定 + .xref-refresh = 刷新 + .relative = 相对 + .xref-reload = 重新加载 + .xref-replace = 替换: + .saved-path = 保存路径 + .xref-select-a-reference-first = 请先选择一个参照。 + .xref-select-a-reference-to-inspect-its = 选择参照以查看其详细信息 + .xref-set-path = 设置路径 + .stale = 过时 + .toggle-list-tree = 切换列表/树 + .tree = 树 + .xref-type-a-new-path-first = 请先输入新路径。 + .xref-type-the-path-prefix-to-find-first = 请先输入要查找的路径前缀。 + .xref-unload = 卸载 + .unloaded = 卸载 + .xref-new-path-for-selection = 选择的新路径 + .xref-new-path-prefix = 新路径前缀 + .xref-old-path-prefix = 旧路径前缀 .xref-save-the-drawing-first-to-resolve-relativ = XREF 先保存绘图以解析相亲的XREF路径 。 .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ 对象已复制到剪贴板( 基准 __ocs_fmt_1__,__ocs_fmt_2__) 。 .object-s-copied-to-clipboard = __ocs_fmt_0__ 对象被复制到剪贴板。 @@ -3207,6 +3287,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE 选择用作轴的直线、射线或构造线: .revolve-select-objects-or-mode = REVOLVE 选择要旋转的对象或 [模式](按 Enter 完成): + .path = Path: model = .create = 创建 .boolean = 布尔运算 diff --git a/locales/zh-TW/opencadstudio.ftl b/locales/zh-TW/opencadstudio.ftl index 86825c1c0..de8fc834f 100644 --- a/locales/zh-TW/opencadstudio.ftl +++ b/locales/zh-TW/opencadstudio.ftl @@ -1028,8 +1028,8 @@ common = .loft-surface-created = LOFT:已建立曲面。 .loft-solid-created = LOFT: 已建立實體 。 .attsync-no-editable-block-references = ATTSYNC:沒有可編輯的圖塊參考。 - .xref-reloaded-with-repairs = XREF 已修復並重新載入:"__ocs_fmt_0__" - .xref-reload-failed = XREF 重新載入失敗:"__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-reloaded-with-repairs = XREF 已重新載入(含修復): "__ocs_fmt_0__" + .xref-reload-failed = XREF 重新載入失敗: "__ocs_fmt_0__" (__ocs_fmt_1__) .zoom-previous = 上一個視圖 .zoom-no-previous-view = ZOOM:沒有上一個視圖。 .zoom-object = 縮放至物件 @@ -1117,8 +1117,8 @@ common = .dwg-dxf-files = { common.files } (DWG/DXF) .inserting-from-file = 正在從檔案插入 "__ocs_fmt_0__"。 .insert-file = INSERT FILE: __ocs_fmt_0__ - .xref-recovered-with-warnings = XREF 已復原,但有警告:"__ocs_fmt_0__" - .xref-recovery-failed = XREF 復原失敗:"__ocs_fmt_0__" (__ocs_fmt_1__) + .xref-recovered-with-warnings = XREF 已復原(含警告): "__ocs_fmt_0__" + .xref-recovery-failed = XREF 復原失敗: "__ocs_fmt_0__" (__ocs_fmt_1__) .select-at-least-one-layout = 請至少選取一個配置。 .printing-is-not-available-in-the-web-version = 網頁版不支援列印。 .sending-selected-layouts-to-the-system-printer = 正在將選取的配置傳送至系統印表機… @@ -1614,7 +1614,7 @@ common = .create-triangular-face = 建立三角面 .location = { common.position } .creation-mode = 建立模式 - .path = 路徑 + .path = 路徑: .expression = 表示式 .reference-length = { common.reference }: { common.length } .new-length = { common.new }: { common.length } @@ -3120,6 +3120,86 @@ insert = .xref-external-references = XREF 外部參考文獻 : .xref-no-external-references-in-this-drawing = XREF 此繪圖中沒有外部引用 。 .xref-reloaded = XREF 重新載入了 “ __ocs_fmt_0__ ” + .xref-set-to-overlay = XREF: 已將 "__ocs_fmt_0__" 設定為覆蓋。 + .xref-set-to-attach = XREF: 已將 "__ocs_fmt_0__" 設定為附著。 + .xref-cannot-unload-nested-reference = XREF: 無法卸載巢狀參考 '__ocs_fmt_0__'。請在主控圖面中卸載它。 + .xref-cannot-overlay-nested-reference = XREF: 無法覆蓋巢狀參考 '__ocs_fmt_0__'。請在主控圖面中覆蓋它。 + .xref-cannot-reload-nested-reference = XREF: 無法重新載入巢狀參考 '__ocs_fmt_0__'。請在主控圖面中重新載入它。 + .xref-cannot-attach-nested-reference = XREF: 無法附著巢狀參考 '__ocs_fmt_0__'。請在主控圖面中附著它。 + .xref-cannot-set-path-type-nested-reference = XREF: 無法為巢狀參考 '__ocs_fmt_0__' 設定路徑類型。請在主控圖面中設定它。 + .reload-applies-to-drawing-references-only = __ocs_fmt_0__:重新載入僅適用於圖面參考。 + .xref-bound = XREF: 已繫結 "__ocs_fmt_0__"。 + .xref-bound-with-unremapped-handles = XREF: 已繫結 "__ocs_fmt_0__",包含 __ocs_fmt_1__ 個未重新映射的樣式控點(參見繫結限制)。 + .xref-cannot-bind-nested-reference = XREF: 無法繫結巢狀參考 '__ocs_fmt_0__'。請在主控圖面中繫結它。 + .xref-cannot-bind = XREF: 無法繫結 "__ocs_fmt_0__":__ocs_fmt_1__。 + .xref-pdf-bind-unavailable = XREF: PDF 繫結(向量匯入)在此版本中不可用。 + .xref-cannot-detach-nested-reference = XREF: 無法分離巢狀參考 '__ocs_fmt_0__'。請在主控圖面中分離它。 + .xref-cannot-make-path-relative = XREF: 無法在磁碟機之間設定相對路徑。 + .xref-detached = XREF: 已分離 "__ocs_fmt_0__"。 + .xref-no-loaded-reference-with-that-key = XREF: 沒有該鍵的已載入參考。 + .xref-no-references-match = XREF: 沒有與 '__ocs_fmt_0__' 匹配的參考。 + .xref-manager-title = 外部參考 + .xref-self-attach-blocked = XATTACH: 不能將主控圖面附著到自身。 + .xref-overlays-drawing-references-only = XREF: 覆蓋僅適用於圖面參考。 + .xref-path-set-for = XREF: 已為 "__ocs_fmt_0__" 設定路徑 — 請重新載入以套用。 + .xref-unloaded = XREF: 已卸載 "__ocs_fmt_0__"。 + .xref-unknown-option = XREF: 未知選項 '__ocs_fmt_0__'。選項: ? Reload Unload Detach Path Pathtype Bind Overlay Attach + .xref-updated-references = XREF: 已更新 __ocs_fmt_0__ 個參考。 + .usage-xref-path-pattern = 用法: XREF Path + .usage-xref-path-find = 用法: XREF Path Find + .usage-xref-pathtype = 用法: XREF Pathtype [pattern] + .xref-missing-open-xrefman = 未找到 __ocs_fmt_0__ 個參考 — 請使用 EXTERNALREFERENCES 開啟參考管理員。 + .xref-nested-not-rendered = (巢狀 — 未算繪) + .change-path = 更改路徑: + .date = 日期 + .details = 詳細資訊 + .xref-detach = 分離 + .failed = 失敗 + .xref-file-attach-is-not-available-on-web = 檔案附著在網頁版中不可用 — 下面的參考清單為唯讀。 + .xref-file-name = 檔案名稱 + .found-at = 位於 + .xref-help = 說明 + .xref-nested-references-are-read-only = 巢狀參考為唯讀 — 請在主控圖面中編輯它們。 + .not-found = 未找到 + .orphaned = 孤立 + .unreferenced = 未參考 + .xref-change-path = Change Path + .xref-make-absolute = Make Absolute + .xref-make-relative = Make Relative + .xref-remove-path = Remove Path + .xref-select-new-path = Select New Path + .xref-select-a-single-reference-first = Select a single reference first. + .xref-reload-all-references = Reload All References + .xref-opened = 已開啟 + .xref-untitled = 無標題 + .xref-unresolved = 未解析 + .xref-preview-not-available = 預覽不可用 + .xref-reload-all = 全部重新載入 + .xref-dwg = DWG + .xref-pixel-width = 像素寬度 + .xref-pixel-height = 像素高度 + .xref-resolution-unit = 解析度單位 + .xref-overlay = 覆蓋 + .xref-reference-manager-select-rows-bind = 參考管理員 — 選擇列,然後執行分離、卸載、重新載入、繫結、覆蓋或路徑變更模式。 + .xref-bind = 繫結 + .xref-refresh = 重新整理 + .relative = 相對 + .xref-reload = 重新載入 + .xref-replace = 取代: + .saved-path = 儲存路徑 + .xref-select-a-reference-first = 請先選擇一個參考。 + .xref-select-a-reference-to-inspect-its = 選擇參考以檢視其詳細資訊 + .xref-set-path = 設定路徑 + .stale = 過時 + .toggle-list-tree = 切換清單/樹狀 + .tree = 樹狀 + .xref-type-a-new-path-first = 請先輸入新路徑。 + .xref-type-the-path-prefix-to-find-first = 請先輸入要尋找的路徑前綴。 + .xref-unload = 卸載 + .unloaded = 卸載 + .xref-new-path-for-selection = 選擇的新路徑 + .xref-new-path-prefix = 新路徑前綴 + .xref-old-path-prefix = 舊路徑前綴 .xref-save-the-drawing-first-to-resolve-relativ = XREF 先儲存繪圖以解析相親的XREF路徑 。 .object-s-copied-to-clipboard-base-3-3 = __ocs_fmt_0__ 物件已複製到剪貼簿( 基準 __ocs_fmt_1__,__ocs_fmt_2__) 。 .object-s-copied-to-clipboard = __ocs_fmt_0__ 物件被複製到剪貼簿。 @@ -3219,6 +3299,7 @@ insert = .revolve-select-line-ray-or-construction-line-for-axis = REVOLVE 選取用作軸的直線、射線或建構線: .revolve-select-objects-or-mode = REVOLVE 選取要旋轉的物件或 [模式](按 Enter 完成): + .path = Path: model = .create = 建立 .boolean = 布林運算 diff --git a/src/app/commands/blocks.rs b/src/app/commands/blocks.rs index 17c53cc8c..52a1465dc 100644 --- a/src/app/commands/blocks.rs +++ b/src/app/commands/blocks.rs @@ -574,10 +574,24 @@ impl OpenCADStudio { } } - // XREFMAN — open/focus the Reference Manager palette (display-only, - // Task 7). The XREF command below is untouched. - "XREFMAN" => { - return Some(Task::done(Message::ToggleXrefManager)); + // EXTERNALREFERENCES — toggle the docked External References panel. + // (XREFMAN was a provisional name and is not kept, not even as an + // alias.) The XREF command below is untouched. + "EXTERNALREFERENCES" => { + self.show_external_references ^= true; + if self.show_external_references { + // Always open expanded so the panel is immediately usable; + // dock it on the right if the user closed it from the layout. + if self.dock.location(crate::ui::dock::PanelId::ExternalReferences).is_none() { + self.dock.dock( + crate::ui::dock::PanelId::ExternalReferences, + crate::app::config::DockSide::Right, + usize::MAX, + ); + } + self.dock_expanded = Some(crate::ui::dock::PanelId::ExternalReferences); + self.refresh_xref_manager(); + } } cmd if cmd.eq_ignore_ascii_case("XREF") || cmd.to_ascii_uppercase().starts_with("XREF ") || cmd.eq_ignore_ascii_case("-XREF") || cmd.to_ascii_uppercase().starts_with("-XREF ") => { // XREF sub-option dispatcher (Task 5). The verb is @@ -1452,6 +1466,35 @@ mod tests { assert!(out.contains("No external references") || out.contains("External references")); } + #[test] + fn externalreferences_opens_palette() { + // EXTERNALREFERENCES is the palette command; XREFMAN is not kept, + // not even as an alias (single-token verbs take the no-suggest path, + // so an unknown verb reports "Unknown command"). + let mut app = fresh_app(); + let out = run_capture(&mut app, "EXTERNALREFERENCES"); + assert!(!out.contains("Unknown command"), "got: {out:?}"); + let out_old = run_capture(&mut app, "XREFMAN"); + assert!(out_old.contains("Unknown command"), "got: {out_old:?}"); + } + + #[test] + fn externalreferences_populates_panel_table() { + // The panel table must list whatever `XREF ?` lists: opening the + // palette refreshes entries synchronously in the command arm. + let mut app = fresh_app(); + add_dwg_xref(&mut app, "PLAN", "old/plan.dwg"); + let list = run_capture(&mut app, "XREF ?"); + assert!(list.contains("PLAN"), "CLI lists it, got: {list:?}"); + let _ = run_capture(&mut app, "EXTERNALREFERENCES"); + assert!(app.show_external_references); + assert!( + app.xref_manager.entries.iter().any(|e| e.name == "PLAN"), + "panel table must list what XREF lists" + ); + assert!(app.xref_manager.display_rows().len() >= 2); + } + #[test] fn xref_reload_no_match_resolves_nothing() { let mut app = fresh_app(); diff --git a/src/app/commands/mod.rs b/src/app/commands/mod.rs index 90296dbe8..9c60e3660 100644 --- a/src/app/commands/mod.rs +++ b/src/app/commands/mod.rs @@ -612,6 +612,7 @@ inventory::submit!(crate::command::CommandRegistration { "EXPORT", "EXPORTSTEP", "EXPORTSTL", + "EXTERNALREFERENCES", "EXTRIM", "FILETAB", "FIND", @@ -714,7 +715,6 @@ inventory::submit!(crate::command::CommandRegistration { "XR", "XREF", "-XREF", - "XREFMAN", "XRELOAD", "ZOOM", "ZS", diff --git a/src/app/document.rs b/src/app/document.rs index fa19e5694..6f42c0660 100644 --- a/src/app/document.rs +++ b/src/app/document.rs @@ -202,7 +202,7 @@ pub(super) struct DocumentTab { /// palette refresh; `Stale` is detectable from the second refresh on. pub(super) xref_stat_cache: crate::io::xref_model::RefStatCache, /// NotFound count from the last file-open xref resolution (Task 8b). - /// The palette renders a neutral "open XREFMAN" notice while non-zero; + /// The palette renders a neutral "open EXTERNALREFERENCES" notice while non-zero; /// never auto-opens a modal. Cleared by a clean palette refresh. pub(super) xref_missing: usize, /// Sentinel "Welcome / Start" tab. Always at index 0 when present. diff --git a/src/app/mod.rs b/src/app/mod.rs index 7dbebbfbd..fcfd5e723 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -693,6 +693,8 @@ pub(super) struct OpenCADStudio { show_properties: bool, /// Docked Insert Block panel visibility. pub(crate) show_block_palette: bool, + /// Docked External References panel visibility (EXTERNALREFERENCES). + pub(crate) show_external_references: bool, /// General edge-stack dock layout for the side panels. pub(crate) dock: crate::ui::dock::DockState, /// Which panel is currently floated at full height (hovered, or a pinned @@ -1730,7 +1732,6 @@ pub enum ModalKind { UpdateNotice, DonationPrompt, Layers, - XrefManager, LayerStateManager, LayerTranslator, DrawingUnits, @@ -2355,6 +2356,22 @@ pub enum Message { XrefManagerSelect(usize), /// Flip the palette's list/tree presentation. XrefManagerToggleTree, + /// Flip the palette's details/preview lower pane. + XrefManagerTogglePreview, + /// Toggle the Attach dropdown menu. + XrefManagerAttachMenu, + /// Toggle the Refresh dropdown menu. + XrefManagerRefreshMenu, + /// Toggle the Change Path dropdown menu. + XrefManagerPathMenu, + /// Close all palette dropdown menus (overlay dismissal). + XrefManagerDismissMenus, + /// Open the file picker for Select New Path (anchor entry). + XrefPathPick, + /// Result of the Select New Path picker. + XrefPathPickResult(Result), + /// Reload every direct reference (toolbar Reload All). + XrefManagerReloadAll, /// Expand/collapse one tree parent (block-record handle key). XrefManagerToggleExpand(u64), /// Selection-scoped palette operation (detach/unload/reload/overlay/pathtype). @@ -3733,6 +3750,7 @@ impl OpenCADStudio { render_mode_preview: None, show_properties: true, show_block_palette: false, + show_external_references: false, block_palette: Default::default(), xref_manager: Default::default(), dock: Default::default(), diff --git a/src/app/update/dialog.rs b/src/app/update/dialog.rs index 3c3c99a47..bb16348a9 100644 --- a/src/app/update/dialog.rs +++ b/src/app/update/dialog.rs @@ -599,6 +599,9 @@ pub(super) fn on_ribbon_tool_click(&mut self, tool_id: String, event: ModuleEven self.show_block_palette = false; self.block_palette.placing = None; } + PanelId::ExternalReferences => { + self.show_external_references = false; + } PanelId::Properties => { self.show_properties = false; self.ribbon.set_properties(false); @@ -692,6 +695,7 @@ pub(super) fn on_ribbon_tool_click(&mut self, tool_id: String, event: ModuleEven match id { PanelId::Properties => self.show_properties, PanelId::BlockPalette => self.show_block_palette, + PanelId::ExternalReferences => self.show_external_references, } } @@ -772,6 +776,15 @@ pub(super) fn on_ribbon_tool_click(&mut self, tool_id: String, event: ModuleEven .unwrap_or_else(|| std::path::PathBuf::from(".")); let tab_id = self.tabs[i].id; let revision = self.tabs[i].edit_revision; + let (host_name, host_path) = match &self.tabs[i].current_path { + Some(p) => ( + p.file_stem() + .map(|s| s.to_string_lossy().into_owned()) + .unwrap_or_default(), + p.to_string_lossy().into_owned(), + ), + None => (String::new(), String::new()), + }; let baselines = { let tab = &self.tabs[i]; self.xref_manager.refresh( @@ -779,6 +792,8 @@ pub(super) fn on_ribbon_tool_click(&mut self, tool_id: String, event: ModuleEven &base_dir, tab.xref_unloaded.as_set(), &tab.xref_stat_cache.0, + &host_name, + &host_path, ) }; let tab = &mut self.tabs[i]; @@ -803,7 +818,7 @@ pub(super) fn on_ribbon_tool_click(&mut self, tool_id: String, event: ModuleEven /// XOPEN-return edit, undo/redo — all bump `edit_revision`). Cheap: /// `collect_entries` stats files without re-parsing the host. pub(crate) fn refresh_xref_manager_if_stale(&mut self) { - if self.active_modal != Some(crate::app::ModalKind::XrefManager) { + if !self.dock_panel_visible(crate::ui::dock::PanelId::ExternalReferences) { return; } let i = self.active_tab; @@ -1164,6 +1179,62 @@ pub(super) fn on_ribbon_tool_click(&mut self, tool_id: String, event: ModuleEven self.refresh_xref_manager(); } + /// Reload every direct drawing reference (toolbar Reload All). Same + /// engine path as `XRELOAD`: undo snapshot, session flags cleared, + /// full resolve, per-ref report, stat baselines refreshed. + pub(crate) fn xref_manager_reload_all(&mut self) { + if cfg!(target_arch = "wasm32") { + self.command_line.push_error(crate::t!("Reference changes are not available on web — the reference list is read-only.").as_ref()); + return; + } + let i = self.active_tab; + let Some(path) = self.tabs[i].current_path.clone() else { + self.command_line + .push_error(crate::t!("XREF Save the drawing first to resolve relative XREF paths.").as_ref()); + return; + }; + let Some(base_dir) = path.parent().map(|p| p.to_path_buf()) else { + self.command_line + .push_error(crate::t!("XREF Save the drawing first to resolve relative XREF paths.").as_ref()); + return; + }; + let reload_keys: Vec = crate::io::xref::collect_entries_with_prev( + &self.tabs[i].scene.document, + &base_dir, + self.tabs[i].xref_unloaded.as_set(), + &self.tabs[i].xref_stat_cache.0, + ) + .iter() + .filter(|e| e.kind == crate::io::xref_model::RefKind::DwgXref && e.parent_key.is_none()) + .map(|e| e.key) + .collect(); + self.push_undo_snapshot(i, "XREF-RELOAD"); + for key in &reload_keys { + self.tabs[i].xref_unloaded.remove(key); + self.tabs[i].xref_stat_cache.remove(key); + } + let (infos, _dropped) = + crate::io::xref::resolve_xrefs(&mut self.tabs[i].scene.document, &base_dir); + let fresh = crate::io::xref::collect_entries_with_prev( + &self.tabs[i].scene.document, + &base_dir, + self.tabs[i].xref_unloaded.as_set(), + &self.tabs[i].xref_stat_cache.0, + ); + for e in &fresh { + if e.status == crate::io::xref_model::RefStatus::Loaded { + if let Some(m) = e.modified { + self.tabs[i].xref_stat_cache.insert(e.key, m); + } + } + } + for info in &infos { + self.report_xref_status(info); + } + self.post_ref_op(i); + self.refresh_xref_manager(); + } + /// Apply the details-pane path draft to the anchor entry (verbatim /// store, same engine fn as `XREF Path`). pub(crate) fn xref_manager_path_apply(&mut self) { diff --git a/src/app/update/mod.rs b/src/app/update/mod.rs index 103796246..77e2ff78a 100644 --- a/src/app/update/mod.rs +++ b/src/app/update/mod.rs @@ -2131,12 +2131,15 @@ impl OpenCADStudio { } Message::ToggleXrefManager => { - if self.active_modal == Some(super::ModalKind::XrefManager) { - self.active_modal = None; - self.reset_modal_geometry(); - } else { + self.show_external_references ^= true; + if self.show_external_references { + use crate::app::config::DockSide; + use crate::ui::dock::PanelId; + if self.dock.location(PanelId::ExternalReferences).is_none() { + self.dock.dock(PanelId::ExternalReferences, DockSide::Right, usize::MAX); + } + self.dock_expanded = Some(PanelId::ExternalReferences); self.refresh_xref_manager(); - self.active_modal = Some(super::ModalKind::XrefManager); } Task::none() } @@ -2152,6 +2155,90 @@ impl OpenCADStudio { self.xref_manager.toggle_tree(); Task::none() } + Message::XrefManagerTogglePreview => { + self.xref_manager.show_preview ^= true; + Task::none() + } + Message::XrefManagerAttachMenu => { + self.xref_manager.attach_open ^= true; + self.xref_manager.refresh_open = false; + self.xref_manager.path_open = false; + Task::none() + } + Message::XrefManagerRefreshMenu => { + self.xref_manager.refresh_open ^= true; + self.xref_manager.attach_open = false; + self.xref_manager.path_open = false; + Task::none() + } + Message::XrefManagerPathMenu => { + self.xref_manager.path_open ^= true; + self.xref_manager.attach_open = false; + self.xref_manager.refresh_open = false; + Task::none() + } + Message::XrefManagerDismissMenus => { + self.xref_manager.attach_open = false; + self.xref_manager.refresh_open = false; + self.xref_manager.path_open = false; + Task::none() + } + Message::XrefPathPick => Task::perform( + async { + let handle = crate::sys::file_dialog() + .set_title(crate::t!("Select New Path").as_ref()) + .pick_file() + .await; + match handle { + Some(h) => Ok(crate::sys::handle_path(&h)), + None => Err("Cancelled".to_string()), + } + }, + Message::XrefPathPickResult, + ), + Message::XrefPathPickResult(Ok(path)) => { + // Select New Path applies the picked file to the single + // direct anchor entry (menu gates the rest). + let i = self.active_tab; + let anchor = self.xref_manager.anchor.and_then(|a| { + self.xref_manager + .entries + .get(a) + .filter(|_| !self.xref_manager.nested.contains(&a)) + .map(|e| (e.key, e.name.clone())) + }); + let Some((key, _)) = anchor else { + return Task::none(); + }; + let new_raw = path.to_string_lossy().into_owned(); + self.push_undo_snapshot(i, "XREF-PATH"); + match crate::io::xref::set_ref_path( + &mut self.tabs[i].scene.document, + key, + &new_raw, + ) { + Ok(name) => { + self.command_line.push_output(crate::tf!( + "XREF: Path set for \"{}\" — Reload to apply.", + name + ).as_ref()); + self.post_ref_op(i); + } + Err(msg) => self.command_line.push_error(msg.as_str()), + } + self.refresh_xref_manager(); + Task::none() + } + Message::XrefPathPickResult(Err(e)) => { + if e != "Cancelled" { + self.command_line.push_error(crate::tf!("XREF: {e}").as_ref()); + } + Task::none() + } + Message::XrefManagerReloadAll => { + self.xref_manager_reload_all(); + Task::none() + } Message::XrefManagerToggleExpand(key) => { self.xref_manager.toggle_expand(key); Task::none() diff --git a/src/app/view/mod.rs b/src/app/view/mod.rs index 6ba89cd45..ba4770bdf 100644 --- a/src/app/view/mod.rs +++ b/src/app/view/mod.rs @@ -1812,6 +1812,7 @@ bg={bg_ms:.1}ms n={view_count}" match id { crate::ui::dock::PanelId::Properties => self.show_properties, crate::ui::dock::PanelId::BlockPalette => self.show_block_palette, + crate::ui::dock::PanelId::ExternalReferences => self.show_external_references, } }; let edge_stack = |side: crate::app::config::DockSide| -> Option> { @@ -2839,6 +2840,12 @@ impl OpenCADStudio { crate::ui::dock::PanelId::BlockPalette => { crate::ui::window::block_palette::view(&self.block_palette, width, auto_collapse) } + crate::ui::dock::PanelId::ExternalReferences => self.xref_manager.view( + width, + auto_collapse, + tab.xref_missing, + &tab.scene.document, + ), }; let divider = dock_divider(id); match side { diff --git a/src/app/view/modal.rs b/src/app/view/modal.rs index 445ce6ae5..8df1e0324 100644 --- a/src/app/view/modal.rs +++ b/src/app/view/modal.rs @@ -20,7 +20,6 @@ impl OpenCADStudio { Some(K::UpdateNotice) => crate::tr!("modal", "update-available"), Some(K::DonationPrompt) => crate::tr!("donation", "title"), Some(K::Layers) => crate::tr!("modal", "layer-manager"), - Some(K::XrefManager) => crate::t!("Reference Manager").into_owned(), Some(K::LayerStateManager) => crate::tr!("modal", "layer-state-manager"), Some(K::LayerTranslator) => crate::t!("Layer Translator").into_owned(), Some(K::DrawingUnits) => crate::t!("Drawing Units").into_owned(), @@ -395,12 +394,6 @@ impl OpenCADStudio { |flow| tab.layers.view_window(self.layer_name_col_w, flow), ) } - super::super::ModalKind::XrefManager => { - sized_flow(ex, 960, 560, |flow| { - let missing = self.tabs[self.active_tab].xref_missing; - self.xref_manager.view_window(flow, missing) - }) - } super::super::ModalKind::LayerTranslator => { use crate::modules::draw::layers::laytrans; let i = self.active_tab; diff --git a/src/locale_catalog.rs b/src/locale_catalog.rs index 3a6bf7e4a..20eaf2a7d 100644 --- a/src/locale_catalog.rs +++ b/src/locale_catalog.rs @@ -3157,6 +3157,22 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "XREF: bound \"{}\" with {} unremapped style handles (see bind limitations)." => Some(("insert", "xref-bound-with-unremapped-handles")), "XREF: cannot bind nested reference '{}'. Bind it in its host drawing." => Some(("insert", "xref-cannot-bind-nested-reference")), "Unreferenced" => Some(("insert", "unreferenced")), + "Change Path" => Some(("insert", "xref-change-path")), + "Make Absolute" => Some(("insert", "xref-make-absolute")), + "Make Relative" => Some(("insert", "xref-make-relative")), + "Remove Path" => Some(("insert", "xref-remove-path")), + "Select New Path" => Some(("insert", "xref-select-new-path")), + "Select a single reference first." => Some(("insert", "xref-select-a-single-reference-first")), + "Reload All References" => Some(("insert", "xref-reload-all-references")), + "Opened" => Some(("insert", "xref-opened")), + "Untitled" => Some(("insert", "xref-untitled")), + "Unresolved" => Some(("insert", "xref-unresolved")), + "Preview not available" => Some(("insert", "xref-preview-not-available")), + "Reload All" => Some(("insert", "xref-reload-all")), + "DWG" => Some(("insert", "xref-dwg")), + "Pixel Width" => Some(("insert", "xref-pixel-width")), + "Pixel Height" => Some(("insert", "xref-pixel-height")), + "Resolution Unit" => Some(("insert", "xref-resolution-unit")), "XREF: cannot unload nested reference '{}'. Unload it in its host drawing." => Some(("insert", "xref-cannot-unload-nested-reference")), "XREF: cannot overlay nested reference '{}'. Overlay it in its host drawing." => Some(("insert", "xref-cannot-overlay-nested-reference")), "XREF: cannot reload nested reference '{}'. Reload it in its host drawing." => Some(("insert", "xref-cannot-reload-nested-reference")), @@ -3164,7 +3180,7 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "XREF: cannot set path type for nested reference '{}'. Set it in its host drawing." => Some(("insert", "xref-cannot-set-path-type-nested-reference")), "{}: reload applies to drawing references only." => Some(("insert", "reload-applies-to-drawing-references-only")), "XREF: \"{}\" set to Attach." => Some(("insert", "xref-set-to-attach")), - "Reference Manager" => Some(("insert", "xref-manager-title")), + "External References" => Some(("insert", "xref-manager-title")), "XATTACH: cannot attach the host drawing into itself." => Some(("insert", "xref-self-attach-blocked")), "XREF: cannot bind \"{}\": {}." => Some(("insert", "xref-cannot-bind")), "XREF: cannot detach nested reference '{}'. Detach it in its host drawing." => Some(("insert", "xref-cannot-detach-nested-reference")), @@ -3178,10 +3194,6 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "XREF: unloaded \"{}\"." => Some(("insert", "xref-unloaded")), "XREF: unknown option '{}'. Options: ? Reload Unload Detach Path Pathtype Bind Overlay Attach" => Some(("insert", "xref-unknown-option")), "XREF: updated {} reference(s)." => Some(("insert", "xref-updated-references")), - "XREF Recovered with warnings: \"{}\"" => Some(("file", "xref-recovered-with-warnings")), - "XREF Recovery failed: \"{}\" ({})" => Some(("file", "xref-recovery-failed")), - "XREF Reload failed: \"{}\" ({})" => Some(("insert", "xref-reload-failed")), - "XREF Reloaded with repairs: \"{}\"" => Some(("insert", "xref-reloaded-with-repairs")), "Usage: XREF Path " => Some(("insert", "usage-xref-path-pattern")), "Usage: XREF Path Find " => Some(("insert", "usage-xref-path-find")), "Usage: XREF Pathtype [pattern]" => Some(("insert", "usage-xref-pathtype")), @@ -3196,14 +3208,11 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "File name" => Some(("insert", "xref-file-name")), "Found At" => Some(("insert", "found-at")), "Help" => Some(("insert", "xref-help")), - "Image" => Some(("insert", "image")), "Nested references are read-only — edit them in their host drawing." => Some(("insert", "xref-nested-references-are-read-only")), "Not found" => Some(("insert", "not-found")), "Orphaned" => Some(("insert", "orphaned")), "Overlay" => Some(("insert", "xref-overlay")), "Path:" => Some(("insert", "path")), - "PDF" => Some(("insert", "pdf")), - "Reference Manager — select rows, then Detach, Unload, Reload, Overlay, or a Change Path mode." => Some(("insert", "xref-reference-manager-select-rows")), "Reference Manager — select rows, then Detach, Unload, Reload, Bind, Overlay, or a Change Path mode." => Some(("insert", "xref-reference-manager-select-rows-bind")), "Bind" => Some(("insert", "xref-bind")), "Refresh" => Some(("insert", "xref-refresh")), diff --git a/src/ui/dock.rs b/src/ui/dock.rs index 37d99f258..22772aa47 100644 --- a/src/ui/dock.rs +++ b/src/ui/dock.rs @@ -41,6 +41,7 @@ pub enum DockMsg { pub enum PanelId { Properties, BlockPalette, + ExternalReferences, } impl PanelId { @@ -49,6 +50,7 @@ impl PanelId { match self { PanelId::Properties => "Properties", PanelId::BlockPalette => "Block Palette", + PanelId::ExternalReferences => "External References", } } @@ -57,6 +59,7 @@ impl PanelId { match self { PanelId::Properties => 250.0, PanelId::BlockPalette => 260.0, + PanelId::ExternalReferences => 300.0, } } } @@ -131,7 +134,7 @@ impl DockState { /// resize never hit a missing configuration. Also a cheap heal for configs /// written by an older version. pub fn ensure_settings(&mut self) { - for id in [PanelId::Properties, PanelId::BlockPalette] { + for id in [PanelId::Properties, PanelId::BlockPalette, PanelId::ExternalReferences] { self.panels.entry(id).or_insert_with(|| DockPanel::for_id(id)); } } diff --git a/src/ui/window/xref_manager.rs b/src/ui/window/xref_manager.rs index 19d81879f..8d8742611 100644 --- a/src/ui/window/xref_manager.rs +++ b/src/ui/window/xref_manager.rs @@ -26,8 +26,13 @@ const IS_WASM: bool = cfg!(target_arch = "wasm32"); const FONT_SZ: f32 = ROW_H * 0.42; // ≈11 px at ROW_H=26 /// Fixed table height so the details pane below keeps stable space. const TABLE_H: f32 = 240.0; +/// Minimum table content width: the six columns stay readable and the list +/// sidescrolls in narrower docks instead of squeezing. +const TABLE_MIN_W: f32 = 480.0; /// Indent per tree depth level. const INDENT_W: f32 = 16.0; +/// Longest edge of a preview image, in pixels. +const PREVIEW_MAX: u32 = 256; /// One visible row in [`XrefManagerPanel::display_rows`]. #[derive(Clone, Copy, Debug, PartialEq, Eq)] @@ -40,6 +45,11 @@ pub struct DisplayRow { pub is_nested: bool, } +/// Display-row index reserved for the host-drawing pseudo-row (list first +/// row, tree root). It addresses no entry: row rendering special-cases it +/// and selection ignores it. +pub const HOST_ROW: usize = usize::MAX; + /// Palette state for the Reference Manager. /// /// Session state (unloaded set, stat cache) lives per-tab on `DocumentTab` @@ -49,6 +59,10 @@ pub struct DisplayRow { pub struct XrefManagerPanel { /// Cached [`collect_entries_with_prev`] output for the active drawing. pub entries: Vec, + /// Display name of the host drawing (first list row / tree root). + pub host_name: String, + /// Absolute path of the host drawing, if saved (host row Saved Path). + pub host_path: String, /// Multi-selected entry indices — consumed by batch path ops. pub selected: HashSet, /// Anchor entry driving the details pane (last row clicked). @@ -72,6 +86,16 @@ pub struct XrefManagerPanel { /// Drafts for the Find & Replace row. pub find_input: String, pub replace_input: String, + /// Open dropdown menus (one at a time; dismissed together). + pub attach_open: bool, + pub refresh_open: bool, + pub path_open: bool, + /// Decoded preview images keyed by `(entry key, resolved path)` — rebuilt + /// on every refresh for the anchor entry only, so the per-frame `view` + /// stays pure and file I/O never happens during rendering. + pub previews: HashMap<(u64, String), iced::widget::image::Handle>, + /// Details (`false`) vs Preview (`true`) lower pane. + pub show_preview: bool, } /// Selection-gated palette operation the toolbar offers. @@ -103,7 +127,11 @@ impl XrefManagerPanel { base_dir: &Path, unloaded: &HashSet, prev: &HashMap, + host_name: &str, + host_path: &str, ) -> Vec<(u64, SystemTime)> { + self.host_name = host_name.to_string(); + self.host_path = host_path.to_string(); let old = std::mem::take(&mut self.entries); let sel_ids: HashSet<(u64, String)> = self .selected @@ -184,6 +212,23 @@ impl XrefManagerPanel { .iter() .position(|e| e.key == k && e.saved_path == p) }); + // Previews decode here (not in `view`, which must stay pure): the + // anchor entry only, and only under single selection — the spec shows + // a preview solely for one selected reference. + self.previews.clear(); + if self.selected.len() <= 1 { + if let Some(a) = self.anchor.and_then(|i| self.entries.get(i)) { + if let (Some(found), Some(img)) = + (a.found_at.clone(), reference_preview(a)) + { + let (w, h) = (img.width(), img.height()); + self.previews.insert( + (a.key, found), + iced::widget::image::Handle::from_rgba(w, h, img.into_raw()), + ); + } + } + } self.expanded.retain(|k| live_keys.contains(k)); self.entries .iter() @@ -195,7 +240,17 @@ impl XrefManagerPanel { /// Click toggles membership in the multi-selection set; selecting sets the /// details anchor, deselecting the anchor falls back to a survivor. pub fn toggle_select(&mut self, index: usize) { - if index >= self.entries.len() { + if index == HOST_ROW || index >= self.entries.len() { + return; + } + if self.tree { + // Tree view selects a single file reference at a time. + if self.selected.contains(&index) { + return; + } + self.selected.clear(); + self.selected.insert(index); + self.anchor = Some(index); return; } if !self.selected.remove(&index) { @@ -242,17 +297,22 @@ impl XrefManagerPanel { /// inline, skipping repeats by normalized saved path so a cyclic closure /// can never recurse on screen. pub fn display_rows(&self) -> Vec { + // The host drawing leads in both modes (list first row, tree root). + let host = DisplayRow { + index: HOST_ROW, + depth: 0, + is_nested: false, + }; if !self.tree { - return self - .entries - .iter() - .enumerate() - .map(|(index, _)| DisplayRow { + let mut rows = vec![host]; + rows.extend(self.entries.iter().enumerate().map(|(index, _)| { + DisplayRow { index, depth: 0, is_nested: self.nested.contains(&index), - }) - .collect(); + } + })); + return rows; } fn append_tree( panel: &XrefManagerPanel, @@ -293,40 +353,148 @@ impl XrefManagerPanel { } append_tree(self, index, 0, &mut seen, &mut rows); } + // The host drawing leads: first list row, tree root. In tree mode + // everything below renders one level deeper as its descendants. + if self.tree { + for row in rows.iter_mut() { + row.depth += 1; + } + } + rows.insert( + 0, + DisplayRow { + index: HOST_ROW, + depth: 0, + is_nested: false, + }, + ); rows } - /// Render the palette as the full content of its modal dialog. + /// Render the palette as a docked side panel (EXTERNALREFERENCES). /// /// `missing` is the active tab's open-time NotFound count — a neutral - /// notice renders while non-zero (never an auto-open modal). - pub fn view_window( - &self, - sizing: crate::ui::modal::ModalSizing, + /// notice renders while non-zero. Mirrors the block palette's dock + /// chrome (title, pin, close) and sizing conventions. + pub fn view<'a>( + &'a self, + width: f32, + auto_collapse: bool, missing: usize, - ) -> Element<'_, Message> { - // ── Toolbar ─────────────────────────────────────────────────────── - let can_attach = !IS_WASM; - let attach = if can_attach { - toolbar_btn(crate::t!("Attach").into_owned(), Some(Message::XAttachPick)) + doc: &'a CadDocument, + ) -> Element<'a, Message> { + use crate::ui::dock::{DockMsg, PanelId}; + // ── Dock chrome (title, pin, close) — matches the block palette ── + let pin_icon = if auto_collapse { + crate::ui::icons::themed_primary_weak_text(crate::ui::icons::PIN, 12.0) } else { - toolbar_tip( - crate::t!("Attach").into_owned(), - crate::t!("File attach is not available on web — the reference list below is read-only.").into_owned(), + crate::ui::icons::themed_secondary(crate::ui::icons::PIN, 12.0) + }; + let pin = button(pin_icon) + .on_press(Message::Dock(DockMsg::AutoCollapseToggle( + PanelId::ExternalReferences, + ))) + .style(move |theme: &Theme, status| { + let mut style = button::subtle(theme, status); + if auto_collapse { + let palette = theme.palette(); + style.background = Some(Background::Color(palette.primary.weak.color)); + style.text_color = palette.primary.weak.text; + style.border.color = palette.primary.base.color; + style.border.width = 1.0; + } + style + }) + .padding([3, 5]); + let pin = tooltip(pin, text("Auto").size(10), tooltip::Position::Bottom).gap(4); + let close = button(crate::ui::icons::themed_secondary(crate::ui::icons::CLOSE, 12.0)) + .on_press(Message::Dock(DockMsg::Close(PanelId::ExternalReferences))) + .style(button::subtle) + .padding([3, 5]); + let close = tooltip(close, text("Close").size(10), tooltip::Position::Bottom).gap(4); + let title_bar = mouse_area( + container( + row![ + text(crate::t!("External References")).size(12), + iced::widget::Space::new().width(Fill), + pin, + close, + ] + .spacing(3) + .align_y(iced::Center), + ) + .style(|theme: &Theme| container::Style { + background: Some(Background::Color(theme.palette().background.weak.color)), + ..Default::default() + }) + .width(Fill) + .padding([3, 6]), + ) + .on_press(Message::Dock(DockMsg::DockGrab(PanelId::ExternalReferences))) + .interaction(iced::mouse::Interaction::Grab); + // Table content follows the dock width (minus chrome padding) with a + // floor so columns stay readable: widening the dock widens the table, + // narrowing it sidescrolls instead of squeezing. + let table_w = (width - 16.0).max(TABLE_MIN_W); + // ── Toolbar: split-button groups per spec ─────────────────────── + // Attach ▾ (default DWG), Refresh ▾ (default Refresh), Change Path ▾. + // The main button runs the default; the triangle opens the rest in an + // overlay menu. Formats without an attach command in this build + // (DWF/DGN/point clouds/coordination models) are omitted, not dead. + let web_tip = crate::t!("File attach is not available on web — the reference list below is read-only.").into_owned(); + let attach = if IS_WASM { + toolbar_tip(crate::t!("Attach").into_owned(), web_tip.clone()) + } else { + split_button( + toolbar_btn(crate::t!("Attach").into_owned(), Some(Message::XAttachPick)), + self.attach_open, + Message::XrefManagerAttachMenu, + vec![ + menu_item( + crate::t!("Image").into_owned(), + Some(Message::ImagePick), + None, + ), + menu_item( + crate::t!("PDF").into_owned(), + Some(Message::PdfAttachPick), + None, + ), + ], ) }; - let refresh = toolbar_btn( - crate::t!("Refresh").into_owned(), - Some(Message::XrefManagerRefresh), - ); - let mode_label = if self.tree { - crate::t!("List").into_owned() + let refresh = if IS_WASM { + toolbar_tip(crate::t!("Refresh").into_owned(), web_tip.clone()) } else { - crate::t!("Tree").into_owned() + split_button( + toolbar_btn( + crate::t!("Refresh").into_owned(), + Some(Message::XrefManagerRefresh), + ), + self.refresh_open, + Message::XrefManagerRefreshMenu, + vec![menu_item( + crate::t!("Reload All References").into_owned(), + Some(Message::XrefManagerReloadAll), + None, + )], + ) }; - let mode_btn = toolbar_btn(mode_label, Some(Message::XrefManagerToggleTree)); + // List / Tree are two buttons; the active mode renders inert. + let list_btn = if self.tree { + toolbar_btn(crate::t!("List").into_owned(), Some(Message::XrefManagerToggleTree)) + } else { + toolbar_btn(crate::t!("List").into_owned(), None) + }; + let tree_btn = if self.tree { + toolbar_btn(crate::t!("Tree").into_owned(), None) + } else { + toolbar_btn(crate::t!("Tree").into_owned(), Some(Message::XrefManagerToggleTree)) + }; + let mode_row: Element<'static, Message> = + row![list_btn, tree_btn].spacing(2).into(); let mode_btn: Element<'_, Message> = tooltip( - mode_btn, + mode_row, text(crate::t!("Toggle list/tree")).size(11), tooltip::Position::Bottom, ) @@ -381,26 +549,100 @@ impl XrefManagerPanel { XrefPaletteOp::Attach, &gate, ); - let change_path = row![ - text(crate::t!("Change Path:")).size(11), - op_btn( - crate::t!("Full").into_owned(), - XrefPaletteOp::Pathtype(Pathtype::Full), - &gate, - ), - op_btn( - crate::t!("Relative").into_owned(), - XrefPaletteOp::Pathtype(Pathtype::Relative), - &gate, - ), - op_btn( - crate::t!("File name").into_owned(), - XrefPaletteOp::Pathtype(Pathtype::None), - &gate, - ), - ] - .spacing(2) - .align_y(iced::Center); + // Change Path group: greyed until a reference whose path can change + // (a direct, non-nested row) is selected. Each option carries its own + // gate so non-executable choices render greyed with the reason. + let has_direct = self + .entries + .iter() + .enumerate() + .any(|(i, _)| self.selected.contains(&i) && !self.nested.contains(&i)); + let single_direct_anchor = self.anchor.is_some_and(|a| { + self.selected.len() == 1 + && self.entries.get(a).is_some() + && !self.nested.contains(&a) + }); + let host_saved = !self.host_path.is_empty(); + let find_ready = !self.find_input.is_empty() && !self.replace_input.is_empty(); + let web_readonly: Option = IS_WASM.then(|| { + crate::t!("Reference changes are not available on web — the reference list is read-only.").into_owned() + }); + let path_group_gate: Option = web_readonly.clone().or_else(|| { + if has_direct { + None + } else if self.selected.is_empty() { + Some(crate::t!("Select a reference first.").into_owned()) + } else { + Some( + crate::t!("Nested references are read-only — edit them in their host drawing.") + .into_owned(), + ) + } + }); + let change_path = match path_group_gate { + Some(reason) => toolbar_tip(crate::t!("Change Path").into_owned(), reason), + None => { + let relative_gate = if host_saved { + None + } else { + Some( + crate::t!("XREF Save the drawing first to resolve relative XREF paths.") + .into_owned(), + ) + }; + let new_path_gate = if single_direct_anchor { + None + } else { + Some(crate::t!("Select a single reference first.").into_owned()) + }; + let find_gate = if find_ready { + None + } else { + Some(crate::t!("Type the path prefix to find first.").into_owned()) + }; + split_button( + toolbar_btn( + crate::t!("Change Path").into_owned(), + Some(Message::XrefManagerPathMenu), + ), + self.path_open, + Message::XrefManagerPathMenu, + vec![ + menu_item( + crate::t!("Make Absolute").into_owned(), + Some(Message::XrefManagerOp(XrefPaletteOp::Pathtype( + Pathtype::Full, + ))), + None, + ), + menu_item( + crate::t!("Make Relative").into_owned(), + Some(Message::XrefManagerOp(XrefPaletteOp::Pathtype( + Pathtype::Relative, + ))), + relative_gate, + ), + menu_item( + crate::t!("Remove Path").into_owned(), + Some(Message::XrefManagerOp(XrefPaletteOp::Pathtype( + Pathtype::None, + ))), + None, + ), + menu_item( + crate::t!("Select New Path").into_owned(), + Some(Message::XrefPathPick), + new_path_gate, + ), + menu_item( + crate::t!("Find and Replace").into_owned(), + Some(Message::XrefManagerFindReplaceApply), + find_gate, + ), + ], + ) + } + }; let help = toolbar_tip( crate::t!("Help").into_owned(), crate::t!("Reference Manager — select rows, then Detach, Unload, Reload, Bind, Overlay, or a Change Path mode.").into_owned(), @@ -426,7 +668,7 @@ impl XrefManagerPanel { background: Some(Background::Color(theme.palette().background.weak.color)), ..Default::default() }) - .width(sizing.width) + .width(Fill) .padding([4, 8]); // ── Find & Replace / path-edit row ──────────────────────────────── @@ -509,7 +751,7 @@ impl XrefManagerPanel { background: Some(Background::Color(theme.palette().background.weak.color)), ..Default::default() }) - .width(sizing.width) + .width(Fill) .padding([4, 8]); // ── Column header ───────────────────────────────────────────────── @@ -523,7 +765,7 @@ impl XrefManagerPanel { text(crate::t!("Saved Path")).size(10).style(muted_style).width(Length::FillPortion(4)), ] .spacing(4) - .width(sizing.width) + .width(Length::Fixed(table_w)) .align_y(iced::Center), ) .style(|theme: &Theme| { @@ -539,11 +781,20 @@ impl XrefManagerPanel { } }) .padding([4, 8]) - .width(sizing.width); + .width(Fill); // ── Reference rows ──────────────────────────────────────────────── let mut rows_col = column![].spacing(0); for display in self.display_rows() { + if display.index == HOST_ROW { + rows_col = rows_col.push(host_row( + display, + &self.host_name, + &self.host_path, + table_w, + )); + continue; + } let Some(entry) = self.entries.get(display.index) else { continue; }; @@ -557,9 +808,12 @@ impl XrefManagerPanel { is_sel, self.tree && has_children, is_expanded, + table_w, )); } - let body: Element<'_, Message> = if self.entries.is_empty() { + // ── Reference table: header + rows scroll together, horizontally + // (fixed content width overflows narrow docks) and vertically. + let table_rows: Element<'_, Message> = if self.entries.is_empty() { container( text(crate::t!("XREF No external references in this drawing.")) .size(12) @@ -576,14 +830,20 @@ impl XrefManagerPanel { .height(Length::Fixed(TABLE_H)) .into() } else { - scrollable(rows_col).height(Length::Fixed(TABLE_H)).into() + scrollable(column![col_header, rows_col]) + .direction(iced::widget::scrollable::Direction::Both { + vertical: iced::widget::scrollable::Scrollbar::new(), + horizontal: iced::widget::scrollable::Scrollbar::new(), + }) + .height(Length::Fixed(TABLE_H)) + .into() }; // ── Missing-on-open notice + details pane ───────────────────────── let notice: Option> = if missing > 0 { Some( container(text(crate::tf!( - "{} reference(s) not found — open the reference manager with XREFMAN.", + "{} reference(s) not found — open the reference manager with EXTERNALREFERENCES.", missing ))) .padding([6, 8]) @@ -593,13 +853,99 @@ impl XrefManagerPanel { } else { None }; - let details = details_pane(self.anchor.and_then(|i| self.entries.get(i))); + // ── Details / Preview lower pane ──────────────────────────────── + // Toggle buttons mirror the spec's Details/Preview switch. Preview is + // a placeholder in v1 (no thumbnail pipeline): a grey field, or + // "Preview not available" — never a broken image control. + let details_tab = toolbar_btn( + crate::t!("Details").into_owned(), + if self.show_preview { + Some(Message::XrefManagerTogglePreview) + } else { + None + }, + ); + let preview_tab = toolbar_btn( + crate::t!("Preview").into_owned(), + if self.show_preview { + None + } else { + Some(Message::XrefManagerTogglePreview) + }, + ); + let pane_tabs = row![details_tab, preview_tab] + .spacing(4) + .align_y(iced::Center); + let lower: Element<'_, Message> = if self.show_preview { + // Single selection → the decoded image, or "Preview not + // available" (DXF/PDF/unresolvable). Anything else → the spec's + // solid grey field. + let single = self.anchor.and_then(|i| { + (self.selected.len() <= 1) + .then(|| self.entries.get(i)) + .flatten() + }); + let preview_body: Element<'_, Message> = match single { + Some(e) => { + let cached = e.found_at.as_deref().and_then(|found| { + self.previews.get(&(e.key, found.to_string())) + }); + match cached { + Some(handle) => container( + iced::widget::image(handle.clone()) + .width(Length::Fixed(220.0)), + ) + .center_x(Fill) + .center_y(Fill) + .width(Fill) + .height(Length::Fixed(120.0)) + .into(), + None => container( + column![ + text(e.name.as_str()).size(11), + text(crate::t!("Preview not available")).size(11).style(muted_style), + ] + .spacing(4) + .align_x(iced::Center), + ) + .center_x(Fill) + .center_y(Fill) + .width(Fill) + .height(Length::Fixed(120.0)) + .into(), + } + } + None => container(text("—").size(11).style(muted_style)) + .center_x(Fill) + .center_y(Fill) + .width(Fill) + .height(Length::Fixed(120.0)) + .style(|theme: &Theme| container::Style { + background: Some(Background::Color( + theme.palette().background.weak.color, + )), + ..Default::default() + }) + .into(), + }; + container(column![pane_tabs, preview_body].spacing(2)) + .padding([6, 8]) + .width(Fill) + .into() + } else { + let details = + details_pane(self.anchor.and_then(|i| self.entries.get(i)), doc); + container(column![pane_tabs, details].spacing(2)) + .padding([6, 8]) + .width(Fill) + .into() + }; - let mut content = column![toolbar, edit_row, col_header, body]; + let mut content = column![title_bar, toolbar, edit_row, table_rows]; if let Some(notice) = notice { content = content.push(notice); } - content = content.push(details); + content = content.push(lower); container(content.spacing(0)) .style(|theme: &Theme| container::Style { background: Some(Background::Color( @@ -607,8 +953,8 @@ impl XrefManagerPanel { )), ..Default::default() }) - .width(sizing.width) - .height(sizing.height) + .width(Fill) + .height(Fill) .into() } } @@ -659,7 +1005,8 @@ fn status_text(status: RefStatus) -> std::borrow::Cow<'static, str> { RefStatus::Loaded => crate::t!("Loaded"), RefStatus::Unloaded => crate::t!("Unloaded"), RefStatus::NotFound => crate::t!("Not found"), - RefStatus::Failed => crate::t!("Failed"), + // Unreadable file: the industry palette term is Unresolved. + RefStatus::Failed => crate::t!("Unresolved"), RefStatus::Stale => crate::t!("Stale"), RefStatus::Orphaned => crate::t!("Orphaned"), RefStatus::Unreferenced => crate::t!("Unreferenced"), @@ -672,11 +1019,29 @@ fn type_text(entry: &ReferenceEntry) -> std::borrow::Cow<'static, str> { RefType::Attach => crate::t!("Attach"), RefType::Overlay => crate::t!("Overlay"), }, - RefKind::Image => crate::t!("Image"), + // Raster images display their file format (spec: type column shows + // the image format); unknown extensions fall back to Image. + RefKind::Image => image_format(&entry.saved_path), RefKind::Pdf => crate::t!("PDF"), } } +/// Uppercase file extension of an image path (`plan.BMP` → `BMP`). +/// Extensionless or overlong suffixes fall back to `Image`. +fn image_format(saved_path: &str) -> std::borrow::Cow<'static, str> { + let file = saved_path.rsplit(['/', '\\']).next().unwrap_or(""); + let ext = file + .rsplit('.') + .next() + .filter(|_| file.contains('.')) + .unwrap_or(""); + if ext.is_empty() || ext.len() > 5 { + crate::t!("Image") + } else { + std::borrow::Cow::Owned(ext.to_ascii_uppercase()) + } +} + fn format_size(size_bytes: Option) -> String { match size_bytes { None => "—".to_string(), @@ -798,12 +1163,69 @@ fn toolbar_tip(label: String, tip: String) -> Element<'static, Message> { tooltip(b, text(tip).size(11), tooltip::Position::Bottom).into() } +/// Split button: a default action plus a triangle that opens the rest in an +/// overlay menu (spec toolbar: Attach ▾, Refresh ▾, Change Path ▾). +/// +/// `main` is the already-gated default-action element; `toggle` flips this +/// menu (closing the others is handled at the message site); `items` are the +/// menu rows, each full-width. Dismissal (Escape / outside click) funnels to +/// [`Message::XrefManagerDismissMenus`]. +fn split_button( + main: Element<'static, Message>, + menu_open: bool, + toggle: Message, + items: Vec>, +) -> Element<'static, Message> { + let caret = button( + container(crate::ui::icons::themed_arrow_down(9.0)).align_y(iced::Center), + ) + .on_press(toggle) + .style(button::subtle) + .padding([4, 6]); + let head = row![main, caret].spacing(0).align_y(iced::Center); + let popup: Element<'static, Message> = container( + column(items.into_iter().map(|item| { + container(item).width(Fill).into() + })) + .spacing(2) + .padding(4), + ) + .style(|theme: &Theme| container::Style { + background: Some(Background::Color( + theme.palette().background.base.color, + )), + border: Border { + color: theme.palette().background.neutral.color, + width: 1.0, + radius: 3.0.into(), + }, + ..Default::default() + }) + .width(Length::Fixed(220.0)) + .into(); + iced_aw::DropDown::new(head, popup, menu_open) + .alignment(iced_aw::drop_down::Alignment::Bottom) + .offset(2.0) + .on_dismiss(Message::XrefManagerDismissMenus) + .into() +} + +/// One dropdown-menu row: a full-width button when the option can execute, +/// otherwise greyed text carrying the reason. +fn menu_item(label: String, msg: Option, gate: Option) -> Element<'static, Message> { + match (msg, gate) { + (Some(m), None) => toolbar_btn(label, Some(m)), + (_, reason) => toolbar_tip(label, reason.unwrap_or_default()), + } +} + fn xref_row<'a>( display: DisplayRow, entry: &'a ReferenceEntry, is_selected: bool, show_expand: bool, is_expanded: bool, + table_w: f32, ) -> Element<'a, Message> { let mut name = entry.name.clone(); if display.is_nested { @@ -841,7 +1263,7 @@ fn xref_row<'a>( text(entry.saved_path.clone()).size(FONT_SZ).width(Length::FillPortion(4)), ] .spacing(4) - .width(Fill) + .width(Length::Fixed(table_w)) .align_y(iced::Center); let index = display.index; @@ -875,7 +1297,58 @@ fn xref_row<'a>( .into() } -fn details_pane(entry: Option<&ReferenceEntry>) -> Element<'_, Message> { +/// The host-drawing pseudo-row: always first, never selectable, never +/// actionable. Mirrors the industry layout (current drawing leads the list +/// and roots the tree) with an `Opened` / `Current` status/type pair. +fn host_row<'a>(display: DisplayRow, host_name: &'a str, host_path: &'a str, table_w: f32) -> Element<'a, Message> { + let name = if host_name.is_empty() { + crate::t!("Untitled").into_owned() + } else { + host_name.to_string() + }; + let saved = if host_path.is_empty() { "—" } else { host_path }; + let mut name_cell = row![].spacing(2).align_y(iced::Center); + if display.depth > 0 { + name_cell = name_cell.push( + iced::widget::Space::new().width(Length::Fixed(INDENT_W * display.depth as f32)), + ); + } + name_cell = name_cell.push({ + let name_text: Element<'_, Message> = text(name).size(FONT_SZ).into(); + name_text + }); + let content = row![ + name_cell.width(Length::FillPortion(3)), + text(crate::t!("Opened")).size(FONT_SZ).width(Length::Fixed(88.0)), + text("—").size(FONT_SZ).width(Length::Fixed(76.0)), + text(crate::t!("Current")).size(FONT_SZ).width(Length::Fixed(76.0)), + text("—").size(FONT_SZ).width(Length::Fixed(96.0)), + text(saved).size(FONT_SZ).width(Length::FillPortion(4)), + ] + .spacing(4) + .width(Length::Fixed(table_w)) + .align_y(iced::Center); + container(content) + .style(|theme: &Theme| { + let pair = theme.palette().background.base; + container::Style { + background: Some(Background::Color(pair.color)), + text_color: Some(pair.text), + ..Default::default() + } + }) + .padding(Padding { + top: 0.0, + bottom: 0.0, + left: 8.0, + right: 8.0, + }) + .height(Length::Fixed(ROW_H)) + .width(Fill) + .into() +} + +fn details_pane<'a>(entry: Option<&'a ReferenceEntry>, doc: &'a CadDocument) -> Element<'a, Message> { let inner: Element<'_, Message> = match entry { None => text(crate::t!("Select a reference to inspect its details")) .size(11) @@ -890,7 +1363,7 @@ fn details_pane(entry: Option<&ReferenceEntry>) -> Element<'_, Message> { }; let size = format_size(e.size_bytes); let date = format_date(e.modified); - column![ + let mut rows = column![ detail_row(crate::t!("Reference"), e.name.as_str()), detail_row(crate::t!("Status"), status_text(e.status)), detail_row(crate::t!("Size"), size), @@ -899,8 +1372,28 @@ fn details_pane(entry: Option<&ReferenceEntry>) -> Element<'_, Message> { detail_row(crate::t!("Found At"), found), detail_row(crate::t!("Saved Path"), saved), ] - .spacing(1) - .into() + .spacing(1); + // Image-specific properties (read-only). The file format exposes + // pixel dimensions and resolution units; color system / color + // depth are not stored by the format and are omitted deliberately. + if e.kind == RefKind::Image { + if let Some(def) = find_image_def(doc, e.key) { + rows = rows + .push(detail_row( + crate::t!("Pixel Width"), + format!("{}", def.size_in_pixels.0), + )) + .push(detail_row( + crate::t!("Pixel Height"), + format!("{}", def.size_in_pixels.1), + )) + .push(detail_row( + crate::t!("Resolution Unit"), + format!("{:?}", def.resolution_unit), + )); + } + } + rows.into() } }; container( @@ -924,6 +1417,55 @@ fn details_pane(entry: Option<&ReferenceEntry>) -> Element<'_, Message> { .into() } +/// Decode one entry's preview image (`None` = placeholder territory). +/// +/// Sources mirror what the formats actually carry: DWG files embed a preview +/// (read header-only via `dwg_thumbnailer`, no full parse — DXF has none, so +/// it resolves to no preview); raster images decode through the `image` +/// crate and downscale; PDFs have no rasterizer in this build. Only +/// Loaded/Stale rows resolve — Unloaded/NotFound show the placeholder by +/// design. Web builds skip filesystem decoding entirely. +fn reference_preview(entry: &ReferenceEntry) -> Option { + if IS_WASM { + return None; + } + if !matches!(entry.status, RefStatus::Loaded | RefStatus::Stale) { + return None; + } + let found = entry.found_at.as_deref().filter(|s| !s.is_empty())?; + match entry.kind { + RefKind::DwgXref => { + let ext = found + .rsplit(['/', '\\']) + .next() + .and_then(|f| f.rsplit('.').next()) + .unwrap_or("") + .to_ascii_lowercase(); + if ext != "dwg" { + return None; + } + dwg_thumbnailer::extract(std::path::Path::new(found), PREVIEW_MAX) + } + RefKind::Image => { + let img = image::open(found).ok()?; + Some(img.thumbnail(PREVIEW_MAX, PREVIEW_MAX).to_rgba8()) + } + RefKind::Pdf => None, + } +} + +/// Image definition backing a [`RefKind::Image`] entry, looked up by the +/// entry key (definition-object handle) for the Details pane extras. +fn find_image_def( + doc: &CadDocument, + key: u64, +) -> Option<&acadrust::objects::ImageDefinition> { + doc.objects.get(&acadrust::types::Handle::from(key)).and_then(|o| match o { + acadrust::objects::ObjectType::ImageDefinition(def) => Some(def), + _ => None, + }) +} + fn detail_row<'a>( label: impl Into>, value: impl Into>, @@ -994,18 +1536,21 @@ mod tests { entry(3, "B2", "b.dwg"), ]; panel.tree = true; - // Same file under two names renders twice; only exact - // (path, name) repeats collapse. - assert_eq!(panel.display_rows().len(), 3); + // Host row leads; same file under two names renders twice; only + // exact (path, name) repeats collapse. + let rows = panel.display_rows(); + assert_eq!(rows.len(), 4); + assert_eq!(rows[0].index, HOST_ROW); + assert!(rows[1..].iter().all(|r| r.depth >= 1)); panel.entries.push(entry(4, "B", "b.dwg")); - assert_eq!(panel.display_rows().len(), 3); + assert_eq!(panel.display_rows().len(), 4); // Mark B2 nested under A: A claims (a.dwg, A), B2-as-child claims // (b.dwg, B2); the B root still renders as (b.dwg, B). panel.nested.insert(2); panel.children.insert(1, vec![2]); panel.expanded.insert(1); let rows = panel.display_rows(); - assert_eq!(rows.len(), 3); // A, B2-as-child-of-A, B + assert_eq!(rows.len(), 4); // host, A, B2-as-child-of-A, B assert!(rows.iter().any(|r| r.index == 2 && r.is_nested)); // A second parent claiming the same child shows nothing twice. panel.entries.push(entry(5, "C", "c.dwg")); @@ -1019,6 +1564,36 @@ mod tests { assert_eq!(count, 1); } + #[test] + fn host_row_leads_and_ignores_selection() { + let mut panel = XrefManagerPanel::default(); + panel.entries = vec![entry(1, "A", "a.dwg")]; + panel.host_name = "host".to_string(); + for tree in [false, true] { + panel.tree = tree; + let rows = panel.display_rows(); + assert_eq!(rows[0].index, HOST_ROW); + assert_eq!(rows[0].depth, 0); + } + panel.toggle_select(HOST_ROW); // no-op, never selected + assert!(panel.selected.is_empty()); + assert_eq!(panel.anchor, None); + } + + #[test] + fn tree_selects_single_reference() { + let mut panel = XrefManagerPanel::default(); + panel.entries = vec![entry(1, "A", "a.dwg"), entry(2, "B", "b.dwg")]; + panel.tree = true; + panel.toggle_select(0); + panel.toggle_select(1); + assert_eq!(panel.selected, HashSet::from([1])); + assert_eq!(panel.anchor, Some(1)); + panel.tree = false; + panel.toggle_select(0); + assert_eq!(panel.selected, HashSet::from([0, 1])); + } + #[test] fn actionable_selection_skips_nested() { let mut panel = XrefManagerPanel::default(); @@ -1033,6 +1608,15 @@ mod tests { assert!(!panel.selection_has_nested()); } + #[test] + fn image_format_reads_extension() { + assert_eq!(image_format("C:/exa/plan.BMP"), "BMP"); + assert_eq!(image_format("a/b/c.png"), "PNG"); + assert_eq!(image_format("noext"), "Image"); + assert_eq!(image_format("toolong.abcdef"), "Image"); + assert_eq!(image_format(""), "Image"); + } + #[test] fn expand_collapses_by_default() { let mut panel = XrefManagerPanel::default(); @@ -1046,4 +1630,139 @@ mod tests { panel.toggle_expand(1); assert!(!panel.display_rows().iter().any(|r| r.is_nested)); } + + fn preview_doc2(dir: &std::path::Path) -> acadrust::CadDocument { + // Two referenced images → genuine multi-select. + use acadrust::objects::{ImageDefinition, ObjectType}; + let mut doc = acadrust::CadDocument::new(); + for (i, name) in ["a.png", "b.png"].iter().enumerate() { + let img = image::RgbaImage::from_pixel(8, 8, image::Rgba([9, 9, 9, 255])); + img.save(dir.join(name)).unwrap(); + let path = dir.join(name).to_string_lossy().into_owned(); + let h = doc.allocate_handle(); + let mut def = ImageDefinition::with_dimensions(path.clone(), 8, 8); + def.handle = h; + doc.objects.insert(h, ObjectType::ImageDefinition(def)); + let mut ent = acadrust::entities::RasterImage::new( + &path, + acadrust::types::Vector3::ZERO, + 8.0 + i as f64, + 8.0, + ); + ent.definition_handle = Some(h); + doc.add_entity(acadrust::EntityType::RasterImage(ent)).unwrap(); + } + doc + } + + fn preview_doc(dir: &std::path::Path, name: &str) -> acadrust::CadDocument { + // Referenced 8x8 PNG under `dir`; the entry resolves Loaded. + use acadrust::objects::{ImageDefinition, ObjectType}; + let img = image::RgbaImage::from_pixel(8, 8, image::Rgba([9, 9, 9, 255])); + img.save(dir.join(name)).unwrap(); + let img_path = dir.join(name).to_string_lossy().into_owned(); + let mut doc = acadrust::CadDocument::new(); + let h = doc.allocate_handle(); + let mut def = ImageDefinition::with_dimensions(img_path.clone(), 8, 8); + def.handle = h; + doc.objects.insert(h, ObjectType::ImageDefinition(def)); + let mut ent = acadrust::entities::RasterImage::new( + &img_path, + acadrust::types::Vector3::ZERO, + 8.0, + 8.0, + ); + ent.definition_handle = Some(h); + doc.add_entity(acadrust::EntityType::RasterImage(ent)).unwrap(); + doc + } + + #[test] + fn preview_decodes_for_single_selection() { + let dir = std::env::temp_dir().join(format!( + "ocs_xref_preview_{}_{}", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + )); + std::fs::create_dir_all(&dir).unwrap(); + let doc = preview_doc(&dir, "img.png"); + let mut panel = XrefManagerPanel::default(); + let empty = std::collections::HashSet::new(); + let no_prev = std::collections::HashMap::new(); + panel.refresh(&doc, &dir, &empty, &no_prev, "host", ""); + assert!(panel.previews.is_empty(), "nothing selected → no decode"); + panel.toggle_select(0); + panel.refresh(&doc, &dir, &empty, &no_prev, "host", ""); + assert_eq!(panel.previews.len(), 1, "single anchor decodes once"); + let (handle, _) = panel.previews.iter().next().unwrap(); + assert!(panel.entries.iter().any(|e| e.key == handle.0)); + std::fs::remove_dir_all(&dir).ok(); + } + + #[test] + fn preview_skipped_for_multi_selection() { + // Spec: the preview pane shows an image for a single selected + // reference only — multi-select decodes nothing (grey field). + let dir = std::env::temp_dir().join(format!( + "ocs_xref_preview_multi_{}_{}", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + )); + std::fs::create_dir_all(&dir).unwrap(); + let doc = preview_doc2(&dir); + let mut panel = XrefManagerPanel::default(); + let empty = std::collections::HashSet::new(); + let no_prev = std::collections::HashMap::new(); + panel.refresh(&doc, &dir, &empty, &no_prev, "host", ""); + // One image row exists; duplicate it as a second row to multi-select. + panel.entries.push(panel.entries[0].clone()); + panel.toggle_select(0); + panel.toggle_select(1); + assert_eq!(panel.selected.len(), 2); + panel.refresh(&doc, &dir, &empty, &no_prev, "host", ""); + assert!( + panel.previews.is_empty(), + "multi-select → grey field, no decode" + ); + std::fs::remove_dir_all(&dir).ok(); + } + + #[test] + fn preview_missing_without_embedded_data() { + // A DWG reference whose file has no embedded preview resolves to no + // preview (placeholder path), never an error. + let dir = std::env::temp_dir().join(format!( + "ocs_xref_preview_dwg_{}_{}", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + )); + std::fs::create_dir_all(&dir).unwrap(); + std::fs::write(dir.join("plan.dwg"), b"not-a-real-dwg").unwrap(); + let mut doc = acadrust::CadDocument::new(); + let mut br = acadrust::tables::BlockRecord::new("PLAN"); + br.flags.is_xref = true; + br.xref_path = dir.join("plan.dwg").to_string_lossy().into_owned(); + br.handle = doc.allocate_handle(); + doc.block_records.add(br).unwrap(); + let mut panel = XrefManagerPanel::default(); + let empty = std::collections::HashSet::new(); + let no_prev = std::collections::HashMap::new(); + panel.refresh(&doc, &dir, &empty, &no_prev, "host", ""); + panel.toggle_select(0); + panel.refresh(&doc, &dir, &empty, &no_prev, "host", ""); + assert!( + panel.previews.is_empty(), + "undecodable file → placeholder, no cache entry" + ); + std::fs::remove_dir_all(&dir).ok(); + } }