diff --git a/locales/ar-SA/opencadstudio.ftl b/locales/ar-SA/opencadstudio.ftl index 5ef8a0952..5ed0fc517 100644 --- a/locales/ar-SA/opencadstudio.ftl +++ b/locales/ar-SA/opencadstudio.ftl @@ -1160,7 +1160,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: أدخل Left أو Top أو Right. .isodraft-expected-on-or-off = ISODRAFT: أدخل On أو Off. .xdata-selected-entities-are-on-locked-layers = XDATA: العناصر المحددة على طبقات مقفلة. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: لم يتم تحديد صور نقطية أو الخاصية غير معروفة (استخدم BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: أدخل عددًا صحيحًا من -4 إلى 4. .usage-datalink-path-to-csv = الاستخدام: DATALINK <مسار-ملف-.csv> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: لم يتم العثور على جداول مرتبطة. @@ -4008,6 +4007,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = حدد صورة أو طبقة سفلية: + .adjust-select-pdf-underlay = حدد طبقة سفلية PDF: + .adjust-select-dwf-underlay = حدد طبقة سفلية DWF: + .adjust-select-dgn-underlay = حدد طبقة سفلية DGN: + .adjust-mixed-underlays = *مجموعة تحديد غير صالحة. حدد طبقات سفلية من نوع الملف نفسه فقط.* + .adjust-image-option = أدخل خيار الصورة [التباين/التلاشي/السطوع] <السطوع>: + .adjust-underlay-option = أدخل خيار الطبقة السفلية __ocs_arg_kind__ [التلاشي/التباين/أحادي اللون] <__ocs_arg_option__>: + .adjust-monochrome = أحادي اللون? [نعم/لا] <__ocs_arg_value__>: + .adjust-brightness-value = أدخل قيمة السطوع (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = أدخل قيمة التباين (0-100) <__ocs_arg_value__>: + .adjust-fade-value = أدخل قيمة التلاشي (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = يجب أن تكون القيمة عددًا صحيحًا بين 0 و 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4755,13 +4766,6 @@ view = .x-no-xdata = __ocs_fmt_0__: لا توجد بيانات موسعة. .value-3d-orbit = مدار ثلاثي الأبعاد .value-3d-orbit-drag-with-right-mouse-button = المدار ثلاثي الأبعاد: اسحب بزر الفأرة الأيمن. - .adjust-brightness-contrast-fade = ADJUST [السطوع / التباين / التلاشي]: - .adjust-brightness-0-100 = ADJUST السطوع 0-100: - .adjust-contrast-0-100 = ADJUST التباين 0-100: - .adjust-fade-0-100 = ADJUST التلاشي 0-100: - .adjust-select-raster-image-s-first = ADJUST: حدد صورة نقطية أولًا. - .adjust-value-must-be-0-100 = ADJUST: يجب أن تكون القيمة بين 0 و100. - .adjust-action-v-on-changed-image-s = ADJUST: ‏__ocs_fmt_0__ = __ocs_fmt_1__ على __ocs_fmt_2__ صورة. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE القيمة الجديدة [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: أدخل 0 أو 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE القيمة الجديدة [-4..4]: @@ -4887,7 +4891,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = الطبقة السفلية __ocs_fmt_0__: التلاشي=__ocs_fmt_1__، التباين=__ocs_fmt_2__، التشغيل=__ocs_fmt_3__، القص=__ocs_fmt_4__، الأحادي=__ocs_fmt_5__ .updated-changed-underlay-s = تم تحديث __ocs_fmt_0__ طبقة سفلية. - .usage-adjust-brightness-contrast-fade-0-100 = الاستخدام: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = الاستخدام: ANNOSCALE مثلًا 1:50 أو 2:1 أو معامل .usage-draworder-f-front-b-back-a-above-handle = الاستخدام: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = الاستخدام: HYPERLINK (حدد الكائنات أولًا) diff --git a/locales/bg-BG/opencadstudio.ftl b/locales/bg-BG/opencadstudio.ftl index b35cf4f18..6bdf4f14b 100644 --- a/locales/bg-BG/opencadstudio.ftl +++ b/locales/bg-BG/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: въведете Left, Top или Right. .isodraft-expected-on-or-off = ISODRAFT: въведете On или Off. .xdata-selected-entities-are-on-locked-layers = XDATA: избраните обекти са в заключени слоеве. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: няма избрани растерни изображения или свойството е неизвестно (използвайте BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: въведете цяло число от -4 до 4. .usage-datalink-path-to-csv = Употреба: DATALINK <път-до-.csv> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: няма намерени свързани таблици. @@ -3995,6 +3994,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Изберете изображение или подложка: + .adjust-select-pdf-underlay = Изберете подложка PDF: + .adjust-select-dwf-underlay = Изберете подложка DWF: + .adjust-select-dgn-underlay = Изберете подложка DGN: + .adjust-mixed-underlays = *Невалиден набор за избор. Изберете само подложки от един и същ файлов тип.* + .adjust-image-option = Въведете опция за изображение [Контраст/Заглушаване/Яркост] <Яркост>: + .adjust-underlay-option = Въведете опция за подложка __ocs_arg_kind__ [Заглушаване/Контраст/Монохромно] <__ocs_arg_option__>: + .adjust-monochrome = Монохромно? [Да/Не] <__ocs_arg_value__>: + .adjust-brightness-value = Въведете стойност: яркост (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Въведете стойност: контраст (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Въведете стойност: заглушаване (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Стойността трябва да е цяло число между 0 и 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4742,13 +4753,6 @@ view = .x-no-xdata = __ocs_fmt_0__: няма xdata. .value-3d-orbit = 3D Орбита .value-3d-orbit-drag-with-right-mouse-button = 3D Орбита: влачи с десен бутон на мишката. - .adjust-brightness-contrast-fade = ADJUST [Яркост / Контраст / Заглушаване]: - .adjust-brightness-0-100 = ADJUST яркост 0-100: - .adjust-contrast-0-100 = ADJUST контраст 0-100: - .adjust-fade-0-100 = ADJUST заглушаване 0-100: - .adjust-select-raster-image-s-first = ADJUST: първо избери растерно изображение(я). - .adjust-value-must-be-0-100 = ADJUST: стойността трябва да е 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ на __ocs_fmt_2__ изображение(я). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE нова стойност [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: въведи 0 или 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE нова стойност [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Подложка __ocs_fmt_0__: заглушаване=__ocs_fmt_1__, контраст=__ocs_fmt_2__, вкл.=__ocs_fmt_3__, изрязване=__ocs_fmt_4__, моно=__ocs_fmt_5__ .updated-changed-underlay-s = Обновени __ocs_fmt_0__ подложка(и). - .usage-adjust-brightness-contrast-fade-0-100 = Употреба: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Употреба: ANNOSCALE <съотношение> напр. 1:50, 2:1, или фактор .usage-draworder-f-front-b-back-a-above-handle = Употреба: DRAWORDER F|FRONT | B|BACK | A|ABOVE <манипулатор> | U|UNDER <манипулатор> .usage-hyperlink-url-select-objects-first = Употреба: HYPERLINK (първо избери обекти) diff --git a/locales/cs-CZ/opencadstudio.ftl b/locales/cs-CZ/opencadstudio.ftl index eee9131b0..ec63b0f7b 100644 --- a/locales/cs-CZ/opencadstudio.ftl +++ b/locales/cs-CZ/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: zadejte Left, Top nebo Right. .isodraft-expected-on-or-off = ISODRAFT: zadejte On nebo Off. .xdata-selected-entities-are-on-locked-layers = XDATA: vybrané objekty jsou v uzamčených hladinách. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: nejsou vybrány rastrové obrázky nebo je vlastnost neznámá (použijte BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: zadejte celé číslo od -4 do 4. .usage-datalink-path-to-csv = Použití: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: nebyly nalezeny propojené tabulky. @@ -3993,6 +3992,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Vyberte obrázek nebo podklad: + .adjust-select-pdf-underlay = Vyberte podklad PDF: + .adjust-select-dwf-underlay = Vyberte podklad DWF: + .adjust-select-dgn-underlay = Vyberte podklad DGN: + .adjust-mixed-underlays = *Neplatná sada výběru. Vyberte pouze podklady stejného typu souboru.* + .adjust-image-option = Zadejte možnost obrázku [Kontrast/Vyblednout/Jas] : + .adjust-underlay-option = Zadejte možnost podkladu __ocs_arg_kind__ [Vyblednout/Kontrast/Monochromatický] <__ocs_arg_option__>: + .adjust-monochrome = Monochromatický? [Ano/ne] <__ocs_arg_value__>: + .adjust-brightness-value = Zadejte hodnotu: jas (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Zadejte hodnotu: kontrast (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Zadejte hodnotu: vyblednout (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Hodnota musí být celé číslo mezi 0 a 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4740,13 +4751,6 @@ view = .x-no-xdata = __ocs_fmt_0__: žádná xdata. .value-3d-orbit = 3D oběh .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: táhněte pravým tlačítkem myši. - .adjust-brightness-contrast-fade = ADJUST [Jas / Kontrast / Vyblednutí]: - .adjust-brightness-0-100 = Jas ADJUST 0-100: - .adjust-contrast-0-100 = ADJUST kontrast 0-100: - .adjust-fade-0-100 = ADJUST prolínání 0-100: - .adjust-select-raster-image-s-first = ADJUST: nejprve vyberte rastrový obrázek(y). - .adjust-value-must-be-0-100 = ADJUST: hodnota musí být 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ na snímcích __ocs_fmt_2__. .annoallvisible-new-value-0-1 = Nová hodnota ANNOALLVISIBLE [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: zadejte 0 nebo 1. .annoautoscale-new-value-4-4 = Nová hodnota ANNOAUTOSCALE [-4..4]: @@ -4872,7 +4876,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Podložka __ocs_fmt_0__: vyblednout=__ocs_fmt_1__, kontrast=__ocs_fmt_2__, na=__ocs_fmt_3__, klip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Aktualizované podložky __ocs_fmt_0__. - .usage-adjust-brightness-contrast-fade-0-100 = Použití: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Použití: ANNOSCALE např. 1:50, 2:1 nebo faktor .usage-draworder-f-front-b-back-a-above-handle = Používání: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Použití: HYPERLINK (nejprve vyberte objekty) diff --git a/locales/de-DE/opencadstudio.ftl b/locales/de-DE/opencadstudio.ftl index 87359826f..21d537477 100644 --- a/locales/de-DE/opencadstudio.ftl +++ b/locales/de-DE/opencadstudio.ftl @@ -1148,7 +1148,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: Left, Top oder Right eingeben. .isodraft-expected-on-or-off = ISODRAFT: On oder Off eingeben. .xdata-selected-entities-are-on-locked-layers = XDATA: Ausgewählte Objekte liegen auf gesperrten Layern. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: Keine Rasterbilder ausgewählt oder unbekannte Eigenschaft (BRIGHTNESS/CONTRAST/FADE verwenden). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: Eine ganze Zahl von -4 bis 4 eingeben. .usage-datalink-path-to-csv = Aufruf: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: keine verknüpften Tabellen gefunden. @@ -3994,6 +3993,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Bild oder Unterlage wählen: + .adjust-select-pdf-underlay = PDF-Unterlage wählen: + .adjust-select-dwf-underlay = DWF-Unterlage wählen: + .adjust-select-dgn-underlay = DGN-Unterlage wählen: + .adjust-mixed-underlays = *Ungültiger Auswahlsatz. Nur Unterlagenobjekte desselben Dateityps wählen.* + .adjust-image-option = Bildoption eingeben [Kontrast/Abblendung/Helligkeit] : + .adjust-underlay-option = __ocs_arg_kind__-Unterlagenoption eingeben [Abblendung/Kontrast/Monochrom] <__ocs_arg_option__>: + .adjust-monochrome = Monochrom? [Ja/Nein] <__ocs_arg_value__>: + .adjust-brightness-value = Wert für Helligkeit eingeben (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Wert für Kontrast eingeben (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Wert für Abblendung eingeben (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Der Wert muss eine ganze Zahl zwischen 0 und 100 sein. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4741,13 +4752,6 @@ view = .x-no-xdata = __ocs_fmt_0__: keine xdata. .value-3d-orbit = 3D-Bahn .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: Ziehen Sie mit der rechten Maustaste. - .adjust-brightness-contrast-fade = ADJUST [Helligkeit / Kontrast / Ausblenden]: - .adjust-brightness-0-100 = ADJUST Helligkeit 0-100: - .adjust-contrast-0-100 = ADJUST Kontrast 0-100: - .adjust-fade-0-100 = ADJUST Ausblenden 0-100: - .adjust-select-raster-image-s-first = ADJUST: Wählen Sie zuerst Rasterbild(e). - .adjust-value-must-be-0-100 = ADJUST: Der Wert muss 0-100 sein. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ auf __ocs_fmt_2__ Bild(en). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE neuer Wert [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: Geben Sie 0 oder 1 ein. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE neuer Wert [-4..4]: @@ -4873,7 +4877,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Unterlag __ocs_fmt_0__: fade=__ocs_fmt_1__, contrast=__ocs_fmt_2__, on=__ocs_fmt_3__, clip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Aktualisiert __ocs_fmt_0__ underlay(s). - .usage-adjust-brightness-contrast-fade-0-100 = Verwendung: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Verwendung: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = Verwendung: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Verwendung: HYPERLINK (select objects first) diff --git a/locales/el-GR/opencadstudio.ftl b/locales/el-GR/opencadstudio.ftl index 9acebe04f..b759ad062 100644 --- a/locales/el-GR/opencadstudio.ftl +++ b/locales/el-GR/opencadstudio.ftl @@ -1149,7 +1149,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: πληκτρολογήστε Left, Top ή Right. .isodraft-expected-on-or-off = ISODRAFT: πληκτρολογήστε On ή Off. .xdata-selected-entities-are-on-locked-layers = XDATA: οι επιλεγμένες οντότητες βρίσκονται σε κλειδωμένα επίπεδα. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: δεν έχουν επιλεγεί εικόνες ράστερ ή η ιδιότητα είναι άγνωστη (χρησιμοποιήστε BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: εισαγάγετε ακέραιο από -4 έως 4. .usage-datalink-path-to-csv = Χρήση: DATALINK <διαδρομή-προς-.csv> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: δεν βρέθηκαν συνδεδεμένοι πίνακες. @@ -4006,6 +4005,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Επιλέξτε εικόνα ή υπόβαθρο: + .adjust-select-pdf-underlay = Επιλέξτε υπόβαθρο PDF: + .adjust-select-dwf-underlay = Επιλέξτε υπόβαθρο DWF: + .adjust-select-dgn-underlay = Επιλέξτε υπόβαθρο DGN: + .adjust-mixed-underlays = *Μη έγκυρο σύνολο επιλογής. Επιλέξτε μόνο υπόβαθρα του ίδιου τύπου αρχείου.* + .adjust-image-option = Εισαγάγετε επιλογή εικόνας [Αντίθεση/Ξεθώριασμα/Φωτεινότητα] <Φωτεινότητα>: + .adjust-underlay-option = Εισαγάγετε επιλογή υποβάθρου __ocs_arg_kind__ [Ξεθώριασμα/Αντίθεση/Μονόχρωμο] <__ocs_arg_option__>: + .adjust-monochrome = Μονόχρωμο? [Ναι/Όχι] <__ocs_arg_value__>: + .adjust-brightness-value = Εισαγάγετε τιμή: φωτεινότητα (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Εισαγάγετε τιμή: αντίθεση (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Εισαγάγετε τιμή: ξεθώριασμα (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Η τιμή πρέπει να είναι ακέραιος αριθμός από 0 έως 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4736,13 +4747,6 @@ view = .x-no-xdata = __ocs_fmt_0__: χωρίς xdata. .value-3d-orbit = Τροχιά 3D .value-3d-orbit-drag-with-right-mouse-button = Τροχιά 3D: σύρετε με το δεξί πλήκτρο του ποντικιού. - .adjust-brightness-contrast-fade = ADJUST [Φωτεινότητα / Αντίθεση / Ξεθώριασμα]: - .adjust-brightness-0-100 = ADJUST φωτεινότητα 0-100: - .adjust-contrast-0-100 = ADJUST αντίθεση 0-100: - .adjust-fade-0-100 = ADJUST ξεθώριασμα 0-100: - .adjust-select-raster-image-s-first = ADJUST: επιλέξτε πρώτα εικόνα(ες) ράστερ. - .adjust-value-must-be-0-100 = ADJUST: η τιμή πρέπει να είναι 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ σε __ocs_fmt_2__ εικόνα(ες). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE νέα τιμή [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: δώστε 0 ή 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE νέα τιμή [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Υπόβαθρο __ocs_fmt_0__: ξεθώριασμα=__ocs_fmt_1__, αντίθεση=__ocs_fmt_2__, ενεργό=__ocs_fmt_3__, αποκοπή=__ocs_fmt_4__, μονόχρωμο=__ocs_fmt_5__ .updated-changed-underlay-s = Ενημερώθηκαν __ocs_fmt_0__ υπόβαθρο(α). - .usage-adjust-brightness-contrast-fade-0-100 = Χρήση: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Χρήση: ANNOSCALE <λόγος> π.χ. 1:50, 2:1 ή συντελεστής .usage-draworder-f-front-b-back-a-above-handle = Χρήση: DRAWORDER F|FRONT | B|BACK | A|ABOVE <αναγνωριστικό> | U|UNDER <αναγνωριστικό> .usage-hyperlink-url-select-objects-first = Χρήση: HYPERLINK (επιλέξτε πρώτα αντικείμενα) diff --git a/locales/en-US/opencadstudio.ftl b/locales/en-US/opencadstudio.ftl index fdff89154..af8dc7202 100644 --- a/locales/en-US/opencadstudio.ftl +++ b/locales/en-US/opencadstudio.ftl @@ -1146,7 +1146,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: expected Left, Top, or Right. .isodraft-expected-on-or-off = ISODRAFT: expected On or Off. .xdata-selected-entities-are-on-locked-layers = XDATA: selected entities are on locked layers. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: no raster images selected, or unknown property (use BRIGHTNESS|CONTRAST|FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: enter an integer from -4 through 4. .usage-datalink-path-to-csv = Usage: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: no linked tables found. @@ -4006,6 +4005,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Select image or underlay: + .adjust-select-pdf-underlay = Select PDF underlay: + .adjust-select-dwf-underlay = Select DWF underlay: + .adjust-select-dgn-underlay = Select DGN underlay: + .adjust-mixed-underlays = *Invalid selection set. Select underlay objects of the same file type only.* + .adjust-image-option = Enter image option [Contrast/Fade/Brightness] : + .adjust-underlay-option = Enter __ocs_arg_kind__ underlay option [Fade/Contrast/Monochrome] <__ocs_arg_option__>: + .adjust-monochrome = Monochrome? [Yes/No] <__ocs_arg_value__>: + .adjust-brightness-value = Enter brightness value (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Enter contrast value (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Enter fade value (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Value must be an integer between 0 and 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4735,13 +4746,6 @@ view = .x-no-xdata = __ocs_fmt_0__: no xdata. .value-3d-orbit = 3D Orbit .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: drag with right mouse button. - .adjust-brightness-contrast-fade = ADJUST [Brightness / Contrast / Fade]: - .adjust-brightness-0-100 = ADJUST brightness 0-100: - .adjust-contrast-0-100 = ADJUST contrast 0-100: - .adjust-fade-0-100 = ADJUST fade 0-100: - .adjust-select-raster-image-s-first = ADJUST: select raster image(s) first. - .adjust-value-must-be-0-100 = ADJUST: value must be 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ on __ocs_fmt_2__ image(s). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE new value [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: enter 0 or 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE new value [-4..4]: @@ -4873,7 +4877,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Underlay __ocs_fmt_0__: fade=__ocs_fmt_1__, contrast=__ocs_fmt_2__, on=__ocs_fmt_3__, clip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Updated __ocs_fmt_0__ underlay(s). - .usage-adjust-brightness-contrast-fade-0-100 = Usage: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Usage: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = Usage: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Usage: HYPERLINK (select objects first) diff --git a/locales/es-ES/opencadstudio.ftl b/locales/es-ES/opencadstudio.ftl index 4963ee1c0..559d5f0cd 100644 --- a/locales/es-ES/opencadstudio.ftl +++ b/locales/es-ES/opencadstudio.ftl @@ -1148,7 +1148,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: introduzca Left, Top o Right. .isodraft-expected-on-or-off = ISODRAFT: introduzca On u Off. .xdata-selected-entities-are-on-locked-layers = XDATA: las entidades seleccionadas están en capas bloqueadas. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: no hay imágenes ráster seleccionadas o la propiedad es desconocida (use BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: introduzca un entero de -4 a 4. .usage-datalink-path-to-csv = Uso: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: no se encontraron tablas vinculadas. @@ -3996,6 +3995,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Seleccione una imagen o un calco subyacente: + .adjust-select-pdf-underlay = Seleccione un calco subyacente PDF: + .adjust-select-dwf-underlay = Seleccione un calco subyacente DWF: + .adjust-select-dgn-underlay = Seleccione un calco subyacente DGN: + .adjust-mixed-underlays = *Conjunto de selección no válido. Seleccione solo calcos subyacentes del mismo tipo de archivo.* + .adjust-image-option = Indique una opción de imagen [Contraste/Desvanecimiento/Brillo] : + .adjust-underlay-option = Indique una opción de calco subyacente __ocs_arg_kind__ [Desvanecimiento/Contraste/Monocromo] <__ocs_arg_option__>: + .adjust-monochrome = Monocromo? [Sí/No] <__ocs_arg_value__>: + .adjust-brightness-value = Indique el valor de brillo (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Indique el valor de contraste (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Indique el valor de desvanecimiento (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = El valor debe ser un número entero entre 0 y 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4743,13 +4754,6 @@ view = .x-no-xdata = __ocs_fmt_0__: sin datos extendidos. .value-3d-orbit = Órbita 3D .value-3d-orbit-drag-with-right-mouse-button = Órbita 3D: arrastre con el botón derecho del ratón. - .adjust-brightness-contrast-fade = ADJUST [Brillo/Contraste/Desvanecimiento]: - .adjust-brightness-0-100 = ADJUST Brillo 0-100: - .adjust-contrast-0-100 = ADJUST Contraste 0-100: - .adjust-fade-0-100 = ADJUST Desvanecimiento 0-100: - .adjust-select-raster-image-s-first = ADJUST: seleccione primero una o más imágenes ráster. - .adjust-value-must-be-0-100 = ADJUST: el valor debe estar entre 0 y 100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ en __ocs_fmt_2__ imagen(es). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE Valor nuevo [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: introduzca 0 o 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE Valor nuevo [-4..4]: @@ -4875,7 +4879,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Calco __ocs_fmt_0__: difuminado=__ocs_fmt_1__, contraste=__ocs_fmt_2__, activado=__ocs_fmt_3__, delimitado=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Se actualizaron __ocs_fmt_0__ calcos subyacentes. - .usage-adjust-brightness-contrast-fade-0-100 = Uso: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Uso: ANNOSCALE p. ej., 1:50, 2:1 o un factor .usage-draworder-f-front-b-back-a-above-handle = Uso: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Uso: HYPERLINK (seleccione primero los objetos) diff --git a/locales/fi-FI/opencadstudio.ftl b/locales/fi-FI/opencadstudio.ftl index 871d674d6..9367697f3 100644 --- a/locales/fi-FI/opencadstudio.ftl +++ b/locales/fi-FI/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: anna Left, Top tai Right. .isodraft-expected-on-or-off = ISODRAFT: anna On tai Off. .xdata-selected-entities-are-on-locked-layers = XDATA: valitut objektit ovat lukituilla tasoilla. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: rasterikuvia ei ole valittu tai ominaisuus on tuntematon (käytä BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: anna kokonaisluku väliltä -4–4. .usage-datalink-path-to-csv = Käyttö: DATALINK <.csv-tiedoston-polku> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: linkitettyjä taulukoita ei löytynyt. @@ -3995,6 +3994,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Valitse kuva tai pohja: + .adjust-select-pdf-underlay = Valitse PDF-pohja: + .adjust-select-dwf-underlay = Valitse DWF-pohja: + .adjust-select-dgn-underlay = Valitse DGN-pohja: + .adjust-mixed-underlays = *Virheellinen valintajoukko. Valitse vain samaa tiedostotyyppiä olevia pohjia.* + .adjust-image-option = Anna kuvan asetus [Kontrasti/Häivyttää/Kirkkaus] : + .adjust-underlay-option = Anna __ocs_arg_kind__-pohjan asetus [Häivyttää/Kontrasti/Yksivärinen] <__ocs_arg_option__>: + .adjust-monochrome = Yksivärinen? [Kyllä/Ei] <__ocs_arg_value__>: + .adjust-brightness-value = Anna arvo: kirkkaus (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Anna arvo: kontrasti (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Anna arvo: häivyttää (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Arvon on oltava kokonaisluku väliltä 0–100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4742,13 +4753,6 @@ view = .x-no-xdata = __ocs_fmt_0__: ei xdataa. .value-3d-orbit =3D kiertorata .value-3d-orbit-drag-with-right-mouse-button = 3D-kiertorata: vedä hiiren oikealla painikkeella. - .adjust-brightness-contrast-fade = ADJUST [Kirkkaus / Kontrasti / Haalistuminen]: - .adjust-brightness-0-100 = ADJUST kirkkaus 0-100: - .adjust-contrast-0-100 = ADJUST kontrasti 0-100: - .adjust-fade-0-100 = ADJUST häivytys 0-100: - .adjust-select-raster-image-s-first = ADJUST: valitse ensin rasterikuva(t). - .adjust-value-must-be-0-100 = ADJUST: arvon on oltava 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ __ocs_fmt_2__-kuvissa. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE uusi arvo [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: kirjoita 0 tai 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE uusi arvo [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USER__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Aluskate __ocs_fmt_0__: haalistua=__ocs_fmt_1__, kontrasti=__ocs_fmt_2__, päällä=__ocs_fmt_3__, klipsi=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Päivitetty __ocs_fmt_0__-alusta(t). - .usage-adjust-brightness-contrast-fade-0-100 = Käyttö: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Käyttö: ANNOSCALE esim. 1:50, 2:1 tai kerroin .usage-draworder-f-front-b-back-a-above-handle = Käyttö: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Käyttö: HYPERLINK (valitse ensin objektit) diff --git a/locales/fr-FR/opencadstudio.ftl b/locales/fr-FR/opencadstudio.ftl index a4ef088f1..beb017661 100644 --- a/locales/fr-FR/opencadstudio.ftl +++ b/locales/fr-FR/opencadstudio.ftl @@ -1148,7 +1148,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE : saisissez Left, Top ou Right. .isodraft-expected-on-or-off = ISODRAFT : saisissez On ou Off. .xdata-selected-entities-are-on-locked-layers = XDATA : les objets sélectionnés sont sur des calques verrouillés. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST : aucune image matricielle sélectionnée ou propriété inconnue (utilisez BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE : saisissez un entier entre -4 et 4. .usage-datalink-path-to-csv = Utilisation : DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE : aucune table liée trouvée. @@ -3996,6 +3995,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Sélectionnez une image ou un calque sous-jacent : + .adjust-select-pdf-underlay = Sélectionnez un calque sous-jacent PDF : + .adjust-select-dwf-underlay = Sélectionnez un calque sous-jacent DWF : + .adjust-select-dgn-underlay = Sélectionnez un calque sous-jacent DGN : + .adjust-mixed-underlays = *Jeu de sélection non valide. Sélectionnez uniquement des calques sous-jacents du même type de fichier.* + .adjust-image-option = Entrez une option d'image [Contraste/Estompage/Luminosité] : + .adjust-underlay-option = Entrez une option de calque sous-jacent __ocs_arg_kind__ [Estompage/Contraste/Monochrome] <__ocs_arg_option__>: + .adjust-monochrome = Monochrome? [Oui/Non] <__ocs_arg_value__>: + .adjust-brightness-value = Entrez la valeur de luminosité (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Entrez la valeur de contraste (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Entrez la valeur d’estompage (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = La valeur doit être un nombre entier compris entre 0 et 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4744,13 +4755,6 @@ view = .x-no-xdata = __ocs_fmt_0__: pas de xdata. .value-3d-orbit = Orbite 3D .value-3d-orbit-drag-with-right-mouse-button = Orbite 3D: faites glisser avec le bouton droit de la souris. - .adjust-brightness-contrast-fade = ADJUST [Luminosité / Contraste / Estompage] : - .adjust-brightness-0-100 = ADJUST luminosité 0-100: - .adjust-contrast-0-100 = ADJUST contraste 0-100: - .adjust-fade-0-100 = ADJUST estompage 0-100 : - .adjust-select-raster-image-s-first = ADJUST : sélectionnez d'abord les images master. - .adjust-value-must-be-0-100 = ADJUST: la valeur doit être 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ sur __ocs_fmt_2__ image(s). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE nouvelle valeur [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE : entrez 0 ou 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE nouvelle valeur [-4..4]: @@ -4876,7 +4880,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Sous-couche __ocs_fmt_0__ : estompage=__ocs_fmt_1__, contraste=__ocs_fmt_2__, actif=__ocs_fmt_3__, délimitation=__ocs_fmt_4__, monochrome=__ocs_fmt_5__ .updated-changed-underlay-s = Mise à jour de __ocs_fmt_0__ sous-couche(s). - .usage-adjust-brightness-contrast-fade-0-100 = Utilisation : ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Utilisation : ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = Utilisation : DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Utilisation : HYPERLINK (select objects first) diff --git a/locales/hi-IN/opencadstudio.ftl b/locales/hi-IN/opencadstudio.ftl index fe8c8d122..a13e82d77 100644 --- a/locales/hi-IN/opencadstudio.ftl +++ b/locales/hi-IN/opencadstudio.ftl @@ -1136,7 +1136,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: Left, Top या Right दर्ज करें। .isodraft-expected-on-or-off = ISODRAFT: On या Off दर्ज करें। .xdata-selected-entities-are-on-locked-layers = XDATA: चयनित इकाइयाँ लॉक लेयर पर हैं। - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: कोई रास्टर छवि चयनित नहीं है या गुण अज्ञात है (BRIGHTNESS/CONTRAST/FADE उपयोग करें)। .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: -4 से 4 तक पूर्णांक दर्ज करें। .usage-datalink-path-to-csv = उपयोग: DATALINK <.csv-का-पथ> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: कोई लिंक की गई तालिका नहीं मिली। @@ -3984,6 +3983,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = छवि या अंडरले चुनें: + .adjust-select-pdf-underlay = PDF अंडरले चुनें: + .adjust-select-dwf-underlay = DWF अंडरले चुनें: + .adjust-select-dgn-underlay = DGN अंडरले चुनें: + .adjust-mixed-underlays = *अमान्य चयन सेट। केवल एक ही फ़ाइल प्रकार के अंडरले चुनें।* + .adjust-image-option = छवि विकल्प दर्ज करें [कंट्रास्ट/फेड/चमक] <चमक>: + .adjust-underlay-option = __ocs_arg_kind__ अंडरले विकल्प दर्ज करें [फेड/कंट्रास्ट/मोनोक्रोम] <__ocs_arg_option__>: + .adjust-monochrome = मोनोक्रोम? [हाँ/नहीं] <__ocs_arg_value__>: + .adjust-brightness-value = चमक मान दर्ज करें (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = कंट्रास्ट मान दर्ज करें (0-100) <__ocs_arg_value__>: + .adjust-fade-value = फेड मान दर्ज करें (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = मान 0 और 100 के बीच का पूर्णांक होना चाहिए। .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4731,13 +4742,6 @@ view = .x-no-xdata = __ocs_fmt_0__: कोई Xdata नहीं। .value-3d-orbit = 3D कक्षा .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: दाहिने माउस बटन के साथ खींचें। - .adjust-brightness-contrast-fade = ADJUST [चमक / कॉन्ट्रास्ट / फेड]: - .adjust-brightness-0-100 = ADJUST चमक 0-100: - .adjust-contrast-0-100 = ADJUST विपरीत 0-100: - .adjust-fade-0-100 = ADJUST फीका 0-100: - .adjust-select-raster-image-s-first = ADJUST: पहले रास्टर छवि का चयन करें। - .adjust-value-must-be-0-100 = ADJUST: मान 0-100 होना चाहिए। - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ पर __ocs_fmt_2__ छवि(s). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE नया मान [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: 0 या 1 दर्ज करें। .annoautoscale-new-value-4-4 = ANNOAUTOSCALE नया मूल्य [-4..4]: @@ -4863,7 +4867,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Underlay __ocs_fmt_0__: frequ = __ocs_fmt_1__, विपरीत = __ocs_fmt_2__, on=__ocs_fmt_3__, क्लिप =__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = अद्यतन __ocs_fmt_0__ underlay(s)). - .usage-adjust-brightness-contrast-fade-0-100 = उपयोग: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = उपयोग: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = उपयोग: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = उपयोग: HYPERLINK (select objects first) diff --git a/locales/hu-HU/opencadstudio.ftl b/locales/hu-HU/opencadstudio.ftl index f5f1ab4ed..a079baf5c 100644 --- a/locales/hu-HU/opencadstudio.ftl +++ b/locales/hu-HU/opencadstudio.ftl @@ -1152,7 +1152,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: írja be: Left, Top vagy Right. .isodraft-expected-on-or-off = ISODRAFT: írja be: On vagy Off. .xdata-selected-entities-are-on-locked-layers = XDATA: a kijelölt objektumok zárolt fóliákon vannak. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: nincs kijelölt raszterkép, vagy ismeretlen a tulajdonság (használja: BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: adjon meg egy egész számot -4 és 4 között. .usage-datalink-path-to-csv = Használat: DATALINK <.csv-elérési-út> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: nem található csatolt táblázat. @@ -3992,6 +3991,18 @@ insert = .xref-attach-dwg = DWG csatolása .xref-attach-image = Kép csatolása .select-images = Válasszon képeket: + .adjust-select-image-or-underlay = Válasszon képet vagy alátétet: + .adjust-select-pdf-underlay = Válasszon PDF alátétet: + .adjust-select-dwf-underlay = Válasszon DWF alátétet: + .adjust-select-dgn-underlay = Válasszon DGN alátétet: + .adjust-mixed-underlays = *Érvénytelen kijelölési készlet. Csak azonos fájltípusú alátéteket válasszon.* + .adjust-image-option = Adja meg a kép opcióját [Kontraszt/Halványítás/Fényerő] : + .adjust-underlay-option = Adja meg a(z) __ocs_arg_kind__ alátét opcióját [Halványítás/Kontraszt/Monokróm] <__ocs_arg_option__>: + .adjust-monochrome = Monokróm? [Igen/Nem] <__ocs_arg_value__>: + .adjust-brightness-value = Adja meg az értéket: fényerő (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Adja meg az értéket: kontraszt (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Adja meg az értéket: halványítás (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Az értéknek 0 és 100 közötti egész számnak kell lennie. .transparency-mode-on = Adja meg az átlátszósági módot [ON/OFF] : .transparency-mode-off = Adja meg az átlátszósági módot [ON/OFF] : .xref-attach-menu = Csatolás… @@ -4740,13 +4751,6 @@ view = .x-no-xdata = __ocs_fmt_0__: nincs xdata. .value-3d-orbit = 3D keringés .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: húzza a jobb egérgombbal. - .adjust-brightness-contrast-fade = ADJUST [Brightness / Contrast / Fade]: - .adjust-brightness-0-100 = ADJUST fényerő 0-100: - .adjust-contrast-0-100 = ADJUST kontraszt 0-100: - .adjust-fade-0-100 = ADJUST Halványítás 0–100: - .adjust-select-raster-image-s-first = ADJUST: először válassza ki a raszterképe(ke)t. - .adjust-value-must-be-0-100 = ADJUST: az értéknek 0 és 100 között kell lennie. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ __ocs_fmt_2__ kép(ek)en. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE új érték [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: írjon be 0 vagy 1 értéket. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE új érték [-4..4]: @@ -4866,7 +4870,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Alávetítés __ocs_fmt_0__: halványítás=__ocs_fmt_1__, kontraszt=__ocs_fmt_2__, be=__ocs_fmt_3__, körülvágás=__ocs_fmt_4__, egyszínű=__ocs_fmt_5__ .updated-changed-underlay-s = Frissített __ocs_fmt_0__ alávetítés(ek). - .usage-adjust-brightness-contrast-fade-0-100 = Használat: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Használat: ANNOSCALE pl. 1:50, 2:1 vagy egy tényező .usage-draworder-f-front-b-back-a-above-handle = Használat: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Használat: HYPERLINK (először válassza ki az objektumokat) diff --git a/locales/it-IT/opencadstudio.ftl b/locales/it-IT/opencadstudio.ftl index a5b576760..5c5ab0d55 100644 --- a/locales/it-IT/opencadstudio.ftl +++ b/locales/it-IT/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: immetti Left, Top o Right. .isodraft-expected-on-or-off = ISODRAFT: immetti On o Off. .xdata-selected-entities-are-on-locked-layers = XDATA: le entità selezionate sono su layer bloccati. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: nessuna immagine raster selezionata o proprietà sconosciuta (usa BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: immetti un intero da -4 a 4. .usage-datalink-path-to-csv = Uso: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: nessuna tabella collegata trovata. @@ -3995,6 +3994,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Selezionare un'immagine o un sottoposto: + .adjust-select-pdf-underlay = Selezionare un sottoposto PDF: + .adjust-select-dwf-underlay = Selezionare un sottoposto DWF: + .adjust-select-dgn-underlay = Selezionare un sottoposto DGN: + .adjust-mixed-underlays = *Gruppo di selezione non valido. Selezionare solo sottoposti dello stesso tipo di file.* + .adjust-image-option = Specificare un'opzione immagine [Contrasto/Svanire/Luminosità] : + .adjust-underlay-option = Specificare un'opzione sottoposto __ocs_arg_kind__ [Svanire/Contrasto/Monocromatico] <__ocs_arg_option__>: + .adjust-monochrome = Monocromatico? [Sì/No] <__ocs_arg_value__>: + .adjust-brightness-value = Specificare il valore di luminosità (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Specificare il valore di contrasto (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Specificare il valore di svanire (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Il valore deve essere un numero intero compreso tra 0 e 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4742,13 +4753,6 @@ view = .x-no-xdata = __ocs_fmt_0__: nessun dato x. .value-3d-orbit =Orbita 3D .value-3d-orbit-drag-with-right-mouse-button = Orbita 3D: trascina con il tasto destro del mouse. - .adjust-brightness-contrast-fade = ADJUST [Luminosità/Contrasto/Dissolvenza]: - .adjust-brightness-0-100 = Luminosità ADJUST 0-100: - .adjust-contrast-0-100 = ADJUST contrasto 0-100: - .adjust-fade-0-100 = ADJUST dissolvenza 0-100: - .adjust-select-raster-image-s-first = ADJUST: seleziona prima le immagini raster. - .adjust-value-must-be-0-100 = ADJUST: il valore deve essere compreso tra 0 e 100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ sulle immagini __ocs_fmt_2__. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE nuovo valore [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: inserisci 0 o 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE nuovo valore [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Sottofondo __ocs_fmt_0__: dissolvenza=__ocs_fmt_1__, contrasto=__ocs_fmt_2__, on=__ocs_fmt_3__, clip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Sottofondi __ocs_fmt_0__ aggiornati. - .usage-adjust-brightness-contrast-fade-0-100 = Utilizzo: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Utilizzo: ANNOSCALE ad es. 1:50, 2:1 o un fattore .usage-draworder-f-front-b-back-a-above-handle = Utilizzo: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Utilizzo: HYPERLINK (selezionare prima gli oggetti) diff --git a/locales/ja-JP/opencadstudio.ftl b/locales/ja-JP/opencadstudio.ftl index fc54d3ec0..99d3bae01 100644 --- a/locales/ja-JP/opencadstudio.ftl +++ b/locales/ja-JP/opencadstudio.ftl @@ -1138,7 +1138,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: Left、Top、Right のいずれかを入力してください。 .isodraft-expected-on-or-off = ISODRAFT: On または Off を入力してください。 .xdata-selected-entities-are-on-locked-layers = XDATA: 選択した図形はロックされた画層上にあります。 - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: ラスター画像が選択されていないか、プロパティが不明です(BRIGHTNESS/CONTRAST/FADE を使用)。 .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: -4 から 4 までの整数を入力してください。 .usage-datalink-path-to-csv = 使用法: DATALINK <.csvのパス> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: リンクされた表が見つかりません。 @@ -3984,6 +3983,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = イメージまたはアンダーレイを選択: + .adjust-select-pdf-underlay = PDF アンダーレイを選択: + .adjust-select-dwf-underlay = DWF アンダーレイを選択: + .adjust-select-dgn-underlay = DGN アンダーレイを選択: + .adjust-mixed-underlays = *選択セットが無効です。同じファイル タイプのアンダーレイのみを選択してください。* + .adjust-image-option = イメージ オプションを入力 [コントラスト/フェード/明るさ] <明るさ>: + .adjust-underlay-option = __ocs_arg_kind__ アンダーレイ オプションを入力 [フェード/コントラスト/モノクロ] <__ocs_arg_option__>: + .adjust-monochrome = モノクロ? [はい/いいえ] <__ocs_arg_value__>: + .adjust-brightness-value = 明るさの値を入力 (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = コントラストの値を入力 (0-100) <__ocs_arg_value__>: + .adjust-fade-value = フェードの値を入力 (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = 値は 0 から 100 までの整数でなければなりません。 .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4731,13 +4742,6 @@ view = .x-no-xdata = __ocs_fmt_0__: 拡張データなし。 .value-3d-orbit = 3D オービット .value-3d-orbit-drag-with-right-mouse-button = 3D オービット: マウス右ボタンでドラッグします。 - .adjust-brightness-contrast-fade = ADJUST [明るさ / コントラスト / フェード]: - .adjust-brightness-0-100 = ADJUST 明るさ 0-100: - .adjust-contrast-0-100 = ADJUST コントラスト 0-100: - .adjust-fade-0-100 = ADJUST フェード 0-100: - .adjust-select-raster-image-s-first = ADJUST: 先にラスター画像を選択してください。 - .adjust-value-must-be-0-100 = ADJUST: 値は 0~100 にしてください。 - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_2__ 個の画像で __ocs_fmt_0__ = __ocs_fmt_1__ に変更しました。 .annoallvisible-new-value-0-1 = ANNOALLVISIBLE 新しい値 [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: 0 または 1 を入力してください。 .annoautoscale-new-value-4-4 = ANNOAUTOSCALE 新しい値 [-4..4]: @@ -4863,7 +4867,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = アンダーレイ __ocs_fmt_0__: フェード=__ocs_fmt_1__、コントラスト=__ocs_fmt_2__、表示=__ocs_fmt_3__、クリップ=__ocs_fmt_4__、モノクロ=__ocs_fmt_5__ .updated-changed-underlay-s = __ocs_fmt_0__ 個のアンダーレイを更新しました。 - .usage-adjust-brightness-contrast-fade-0-100 = 使用法: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = 使用法: ANNOSCALE 例: 1:50、2:1、または係数 .usage-draworder-f-front-b-back-a-above-handle = 使用法: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = 使用法: HYPERLINK (先にオブジェクトを選択) diff --git a/locales/ko-KR/opencadstudio.ftl b/locales/ko-KR/opencadstudio.ftl index 276ca2fca..1212a594c 100644 --- a/locales/ko-KR/opencadstudio.ftl +++ b/locales/ko-KR/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: Left, Top 또는 Right를 입력하세요. .isodraft-expected-on-or-off = ISODRAFT: On 또는 Off를 입력하세요. .xdata-selected-entities-are-on-locked-layers = XDATA: 선택한 객체가 잠긴 도면층에 있습니다. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: 래스터 이미지를 선택하지 않았거나 알 수 없는 속성입니다(BRIGHTNESS/CONTRAST/FADE 사용). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: -4부터 4까지 정수를 입력하세요. .usage-datalink-path-to-csv = 사용법: DATALINK <.csv-경로> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: 연결된 테이블을 찾을 수 없습니다. @@ -3995,6 +3994,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = 이미지 또는 언더레이 선택: + .adjust-select-pdf-underlay = PDF 언더레이 선택: + .adjust-select-dwf-underlay = DWF 언더레이 선택: + .adjust-select-dgn-underlay = DGN 언더레이 선택: + .adjust-mixed-underlays = *선택 세트가 잘못되었습니다. 같은 파일 유형의 언더레이만 선택하십시오.* + .adjust-image-option = 이미지 옵션 입력 [대비/페이드/밝기] <밝기>: + .adjust-underlay-option = __ocs_arg_kind__ 언더레이 옵션 입력 [페이드/대비/흑백] <__ocs_arg_option__>: + .adjust-monochrome = 흑백? [예/아니요] <__ocs_arg_value__>: + .adjust-brightness-value = 밝기 값 입력 (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = 대비 값 입력 (0-100) <__ocs_arg_value__>: + .adjust-fade-value = 페이드 값 입력 (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = 값은 0에서 100 사이의 정수여야 합니다. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4742,13 +4753,6 @@ view = .x-no-xdata = __ocs_fmt_0__: 확장 데이터가 없습니다. .value-3d-orbit =3D 궤도 .value-3d-orbit-drag-with-right-mouse-button = 3D 궤도: 마우스 오른쪽 버튼으로 드래그합니다. - .adjust-brightness-contrast-fade = ADJUST [밝기 / 대비 / 페이드]: - .adjust-brightness-0-100 = ADJUST 밝기 0-100: - .adjust-contrast-0-100 = ADJUST 대비 0-100: - .adjust-fade-0-100 = ADJUST 페이드 0-100: - .adjust-select-raster-image-s-first = ADJUST: 먼저 래스터 이미지를 선택합니다. - .adjust-value-must-be-0-100 = ADJUST: 값은 0-100이어야 합니다. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_2__ 이미지의 __ocs_fmt_0__ = __ocs_fmt_1__. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE 새 값 [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: 0 또는 1을 입력합니다. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE 새 값 [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = 언더레이 __ocs_fmt_0__: fade=__ocs_fmt_1__, 대비=__ocs_fmt_2__, on=__ocs_fmt_3__, 클립=__ocs_fmt_4__, 모노=__ocs_fmt_5__ .updated-changed-underlay-s = __ocs_fmt_0__ 언더레이가 업데이트되었습니다. - .usage-adjust-brightness-contrast-fade-0-100 = 사용법: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = 사용법: ANNOSCALE 예: 1:50, 2:1 또는 요소 .usage-draworder-f-front-b-back-a-above-handle = 사용법: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = 사용법: HYPERLINK (객체를 먼저 선택) diff --git a/locales/lo-LA/opencadstudio.ftl b/locales/lo-LA/opencadstudio.ftl index 03fad1302..0c3b3dffc 100644 --- a/locales/lo-LA/opencadstudio.ftl +++ b/locales/lo-LA/opencadstudio.ftl @@ -1153,7 +1153,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: ຕ້ອງການ Left, Top, ຫຼື Right. .isodraft-expected-on-or-off = ISODRAFT: ຕ້ອງການ On ຫຼື Off. .xdata-selected-entities-are-on-locked-layers = XDATA: ອົງປະກອບທີ່ເລືອກຢູ່ໃນເລເຢີທີ່ລັອກໄວ້. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: ບໍ່ມີຮູບພາບຣາສເຕີຖືກເລືອກ, ຫຼື ບໍ່ຮູ້ຈັກຄຸນສົມບັດ (ໃຊ້ BRIGHTNESS|CONTRAST|FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: ປ້ອນຈຳນວນຖ້ວນແຕ່ -4 ຫາ 4. .usage-datalink-path-to-csv = ວິທີໃຊ້: DATALINK <ເສັ້ນທາງໄຟລ໌-.csv> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: ບໍ່ພົບຕາຕະລາງທີ່ເຊື່ອມໂຍງ. @@ -4008,6 +4007,18 @@ insert = .xref-attach-dwg = ແນບ DWG .xref-attach-image = ແນບຮູບພາບ .select-images = ເລືອກຮູບພາບ: + .adjust-select-image-or-underlay = ເລືອກຮູບພາບ ຫຼື ຊັ້ນຮອງ: + .adjust-select-pdf-underlay = ເລືອກຊັ້ນຮອງ PDF: + .adjust-select-dwf-underlay = ເລືອກຊັ້ນຮອງ DWF: + .adjust-select-dgn-underlay = ເລືອກຊັ້ນຮອງ DGN: + .adjust-mixed-underlays = *ຊຸດການເລືອກບໍ່ຖືກຕ້ອງ. ເລືອກສະເພາະຊັ້ນຮອງທີ່ມີປະເພດໄຟລ໌ດຽວກັນ.* + .adjust-image-option = ປ້ອນຕົວເລືອກຮູບພາບ [ຄວາມຄົມຊັດ/ຈາງ/ຄວາມສະຫວ່າງ] <ຄວາມສະຫວ່າງ>: + .adjust-underlay-option = ປ້ອນຕົວເລືອກຊັ້ນຮອງ __ocs_arg_kind__ [ຈາງ/ຄວາມຄົມຊັດ/ສີຂາວດຳ] <__ocs_arg_option__>: + .adjust-monochrome = ສີຂາວດຳ? [ແມ່ນ/ບໍ່] <__ocs_arg_value__>: + .adjust-brightness-value = ປ້ອນຄ່າ ຄວາມສະຫວ່າງ (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = ປ້ອນຄ່າ ຄວາມຄົມຊັດ (0-100) <__ocs_arg_value__>: + .adjust-fade-value = ປ້ອນຄ່າ ຈາງ (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = ຄ່າຕ້ອງເປັນຈໍານວນຖ້ວນລະຫວ່າງ 0 ຫາ 100. .transparency-mode-on = ປ້ອນໂໝດຄວາມໂປ່ງໃສ [ON/OFF] : .transparency-mode-off = ປ້ອນໂໝດຄວາມໂປ່ງໃສ [ON/OFF] : .xref-attach-menu = ແນບ... @@ -4736,13 +4747,6 @@ view = .x-no-xdata = __ocs_fmt_0__: ບໍ່ມີ xdata. .value-3d-orbit = ໝູນມຸມມອງ 3D (3D Orbit) .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: ລາກດ້ວຍປຸ່ມເມົາສ໌ຂວາ. - .adjust-brightness-contrast-fade = ADJUST [ຄວາມສະຫວ່າງ / ຄວາມຄົມຊັດ / ຄວາມຈາງ]: - .adjust-brightness-0-100 = ADJUST ຄວາມສະຫວ່າງ 0-100: - .adjust-contrast-0-100 = ADJUST ຄວາມຄົມຊັດ 0-100: - .adjust-fade-0-100 = ADJUST ຄວາມຈາງ 0-100: - .adjust-select-raster-image-s-first = ADJUST: ເລືອກຮູບພາບແຣັສເຕີກ່ອນ. - .adjust-value-must-be-0-100 = ADJUST: ຄ່າຕ້ອງຢູ່ລະຫວ່າງ 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ ໃນ __ocs_fmt_2__ ຮູບພາບ. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE ຄ່າໃໝ່ [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: ປ້ອນ 0 ຫຼື 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE ຄ່າໃໝ່ [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = ຊັ້ນຮອງພື້ນ __ocs_fmt_0__: ຄວາມຈາງ=__ocs_fmt_1__, ຄວາມຄົມຊັດ=__ocs_fmt_2__, ເປີດ=__ocs_fmt_3__, ຕັດຂອບ=__ocs_fmt_4__, ຂາວດໍາ=__ocs_fmt_5__ .updated-changed-underlay-s = ອັບເດດແລ້ວ __ocs_fmt_0__ ຊັ້ນຮອງພື້ນ. - .usage-adjust-brightness-contrast-fade-0-100 = ວິທີໃຊ້: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = ວິທີໃຊ້: ANNOSCALE <ອັດຕາສ່ວນ> ເຊັ່ນ 1:50, 2:1, ຫຼື ຕົວຄູນ .usage-draworder-f-front-b-back-a-above-handle = ວິທີໃຊ້: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = ວິທີໃຊ້: HYPERLINK (ເລືອກວັດຖຸກ່ອນ) diff --git a/locales/nl-NL/opencadstudio.ftl b/locales/nl-NL/opencadstudio.ftl index 595dfc33d..08806ee03 100644 --- a/locales/nl-NL/opencadstudio.ftl +++ b/locales/nl-NL/opencadstudio.ftl @@ -1146,7 +1146,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: voer Left, Top of Right in. .isodraft-expected-on-or-off = ISODRAFT: voer On of Off in. .xdata-selected-entities-are-on-locked-layers = XDATA: geselecteerde objecten staan op vergrendelde lagen. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: geen rasterafbeeldingen geselecteerd of onbekende eigenschap (gebruik BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: voer een geheel getal van -4 tot en met 4 in. .usage-datalink-path-to-csv = Gebruik: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: geen gekoppelde tabellen gevonden. @@ -3994,6 +3993,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Selecteer afbeelding of onderlegger: + .adjust-select-pdf-underlay = Selecteer PDF-onderlegger: + .adjust-select-dwf-underlay = Selecteer DWF-onderlegger: + .adjust-select-dgn-underlay = Selecteer DGN-onderlegger: + .adjust-mixed-underlays = *Ongeldige selectieset. Selecteer alleen onderleggers van hetzelfde bestandstype.* + .adjust-image-option = Voer afbeeldingsoptie in [Contrast/Transparantie/Helderheid] : + .adjust-underlay-option = Voer __ocs_arg_kind__-onderleggeroptie in [Transparantie/Contrast/Monochroom] <__ocs_arg_option__>: + .adjust-monochrome = Monochroom? [Ja/Nee] <__ocs_arg_value__>: + .adjust-brightness-value = Voer waarde voor helderheid in (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Voer waarde voor contrast in (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Voer waarde voor transparantie in (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = De waarde moet een geheel getal tussen 0 en 100 zijn. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4741,13 +4752,6 @@ view = .x-no-xdata = __ocs_fmt_0__: geen xdata. .value-3d-orbit = 3D-baan .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: sleep met de rechter muisknop. - .adjust-brightness-contrast-fade = ADJUST [Helderheid / Contrast / Vervagen]: - .adjust-brightness-0-100 = ADJUST helderheid 0-100: - .adjust-contrast-0-100 = ADJUST contrast 0-100: - .adjust-fade-0-100 = ADJUST vervaging 0-100: - .adjust-select-raster-image-s-first = ADJUST: selecteer eerst rasterafbeelding(s). - .adjust-value-must-be-0-100 = ADJUST: waarde moet 0-100 zijn. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ op __ocs_fmt_2__ image(s). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE nieuwe waarde [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: vul 0 of 1 in. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE nieuwe waarde [-4..4]: @@ -4873,7 +4877,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Onderlaag __ocs_fmt_0__: fade=__ocs_fmt_1__, contrast=__ocs_fmt_2__, on=__ocs_fmt_3__, clip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Bijgewerkt __ocs_fmt_0__ underlay(s). - .usage-adjust-brightness-contrast-fade-0-100 = Gebruik: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Gebruik: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = Gebruik: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Gebruik: HYPERLINK (select objects first) diff --git a/locales/pl-PL/opencadstudio.ftl b/locales/pl-PL/opencadstudio.ftl index ba66ae7a4..69fe0fd60 100644 --- a/locales/pl-PL/opencadstudio.ftl +++ b/locales/pl-PL/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: wpisz Left, Top lub Right. .isodraft-expected-on-or-off = ISODRAFT: wpisz On lub Off. .xdata-selected-entities-are-on-locked-layers = XDATA: zaznaczone obiekty znajdują się na zablokowanych warstwach. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: brak zaznaczonych obrazów rastrowych lub nieznana właściwość (użyj BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: wpisz liczbę całkowitą od -4 do 4. .usage-datalink-path-to-csv = Użycie: DATALINK <ścieżka-do-.csv> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: nie znaleziono połączonych tabel. @@ -3995,6 +3994,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Wybierz obraz lub podkład: + .adjust-select-pdf-underlay = Wybierz podkład PDF: + .adjust-select-dwf-underlay = Wybierz podkład DWF: + .adjust-select-dgn-underlay = Wybierz podkład DGN: + .adjust-mixed-underlays = *Nieprawidłowy zbiór wskazań. Wybierz tylko podkłady tego samego typu pliku.* + .adjust-image-option = Podaj opcję obrazu [Kontrast/Zniknąć/Jasność] : + .adjust-underlay-option = Podaj opcję podkładu __ocs_arg_kind__ [Zniknąć/Kontrast/Monochromatyczny] <__ocs_arg_option__>: + .adjust-monochrome = Monochromatyczny? [Tak/Nie] <__ocs_arg_value__>: + .adjust-brightness-value = Podaj wartość: jasność (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Podaj wartość: kontrast (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Podaj wartość: zniknąć (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Wartość musi być liczbą całkowitą z zakresu od 0 do 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4742,13 +4753,6 @@ view = .x-no-xdata = __ocs_fmt_0__: brak xdata. .value-3d-orbit =Orbita 3D .value-3d-orbit-drag-with-right-mouse-button = Orbita 3D: przeciągnij prawym przyciskiem myszy. - .adjust-brightness-contrast-fade = ADJUST [Jasność / Kontrast / Zanik]: - .adjust-brightness-0-100 = ADJUST jasność 0-100: - .adjust-contrast-0-100 = ADJUST kontrast 0-100: - .adjust-fade-0-100 = ADJUST zanikanie 0-100: - .adjust-select-raster-image-s-first = ADJUST: najpierw wybierz obrazy rastrowe. - .adjust-value-must-be-0-100 = ADJUST: wartość musi wynosić 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ na obrazach __ocs_fmt_2__. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE nowa wartość [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: wprowadź 0 lub 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE nowa wartość [-4..4]: @@ -4874,7 +4878,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Podkład __ocs_fmt_0__: fade=__ocs_fmt_1__, kontrast=__ocs_fmt_2__, on=__ocs_fmt_3__, klip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Zaktualizowano podkładki __ocs_fmt_0__. - .usage-adjust-brightness-contrast-fade-0-100 = Zastosowanie: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Zastosowanie: ANNOSCALE np. 1:50, 2:1 lub współczynnik .usage-draworder-f-front-b-back-a-above-handle = Zastosowanie: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Sposób użycia: HYPERLINK (najpierw wybierz obiekty) diff --git a/locales/pt-BR/opencadstudio.ftl b/locales/pt-BR/opencadstudio.ftl index d2d58dfa0..b4a0cadf7 100644 --- a/locales/pt-BR/opencadstudio.ftl +++ b/locales/pt-BR/opencadstudio.ftl @@ -1148,7 +1148,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: digite Left, Top ou Right. .isodraft-expected-on-or-off = ISODRAFT: digite On ou Off. .xdata-selected-entities-are-on-locked-layers = XDATA: as entidades selecionadas estão em camadas bloqueadas. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: nenhuma imagem raster selecionada ou propriedade desconhecida (use BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: digite um inteiro de -4 a 4. .usage-datalink-path-to-csv = Uso: DATALINK .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: nenhuma tabela vinculada encontrada. @@ -3997,6 +3996,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Selecione uma imagem ou referência subjacente: + .adjust-select-pdf-underlay = Selecione uma referência subjacente PDF: + .adjust-select-dwf-underlay = Selecione uma referência subjacente DWF: + .adjust-select-dgn-underlay = Selecione uma referência subjacente DGN: + .adjust-mixed-underlays = *Conjunto de seleção inválido. Selecione apenas referências subjacentes do mesmo tipo de arquivo.* + .adjust-image-option = Insira a opção de imagem [Contraste/Esmaecimento/Brilho] : + .adjust-underlay-option = Insira a opção de referência subjacente __ocs_arg_kind__ [Esmaecimento/Contraste/Monocromático] <__ocs_arg_option__>: + .adjust-monochrome = Monocromático? [Sim/Não] <__ocs_arg_value__>: + .adjust-brightness-value = Insira o valor de brilho (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Insira o valor de contraste (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Insira o valor de esmaecimento (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = O valor deve ser um número inteiro entre 0 e 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4743,13 +4754,6 @@ view = .x-no-xdata = __ocs_fmt_0__: sem dados estendidos. .value-3d-orbit = Órbita 3D .value-3d-orbit-drag-with-right-mouse-button = Órbita 3D: arraste com o botão direito do mouse. - .adjust-brightness-contrast-fade = ADJUST [Brilho / Contraste / Esmaecimento]: - .adjust-brightness-0-100 = ADJUST brilho 0-100: - .adjust-contrast-0-100 = ADJUST contraste 0-100: - .adjust-fade-0-100 = ADJUST esmaecimento 0-100: - .adjust-select-raster-image-s-first = ADJUST: selecione primeiro as imagens raster. - .adjust-value-must-be-0-100 = ADJUST: o valor deve estar entre 0 e 100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ em __ocs_fmt_2__ imagens. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE novo valor [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: insira 0 ou 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE novo valor [-4..4]: @@ -4875,7 +4879,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Subjacência __ocs_fmt_0__: esmaecimento=__ocs_fmt_1__, contraste=__ocs_fmt_2__, ligada=__ocs_fmt_3__, delimitada=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = __ocs_fmt_0__ subjacências atualizadas. - .usage-adjust-brightness-contrast-fade-0-100 = Uso: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Uso: ANNOSCALE por exemplo, 1:50, 2:1 ou um fator .usage-draworder-f-front-b-back-a-above-handle = Uso: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Uso: HYPERLINK (selecione primeiro os objetos) diff --git a/locales/ru-RU/opencadstudio.ftl b/locales/ru-RU/opencadstudio.ftl index 31ed883af..ddc319c95 100644 --- a/locales/ru-RU/opencadstudio.ftl +++ b/locales/ru-RU/opencadstudio.ftl @@ -1151,7 +1151,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: введите Left, Top или Right. .isodraft-expected-on-or-off = ISODRAFT: введите On или Off. .xdata-selected-entities-are-on-locked-layers = XDATA: выбранные объекты находятся на заблокированных слоях. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: растровые изображения не выбраны или свойство неизвестно (используйте BRIGHTNESS/CONTRAST/FADE). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: введите целое число от -4 до 4. .usage-datalink-path-to-csv = Использование: DATALINK <путь-к-.csv> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: связанные таблицы не найдены. @@ -3997,6 +3996,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = Выберите изображение или подложку: + .adjust-select-pdf-underlay = Выберите подложку PDF: + .adjust-select-dwf-underlay = Выберите подложку DWF: + .adjust-select-dgn-underlay = Выберите подложку DGN: + .adjust-mixed-underlays = *Недопустимый набор. Выберите только подложки одного типа файлов.* + .adjust-image-option = Введите параметр изображения [контраст/Угасание/Яркость] <Яркость>: + .adjust-underlay-option = Введите параметр подложки __ocs_arg_kind__ [Угасание/контраст/Монохромный] <__ocs_arg_option__>: + .adjust-monochrome = Монохромный? [Да/Нет] <__ocs_arg_value__>: + .adjust-brightness-value = Введите значение: яркость (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Введите значение: контраст (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Введите значение: угасание (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Значение должно быть целым числом от 0 до 100. .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4744,13 +4755,6 @@ view = .x-no-xdata = __ocs_fmt_0__: нет данных. .value-3d-orbit = 3D орбитальная .value-3d-orbit-drag-with-right-mouse-button = 3D Orbit: перетащите правой кнопкой мыши. - .adjust-brightness-contrast-fade = ADJUST [Яркость / Контраст / Фаде]: - .adjust-brightness-0-100 = ADJUST яркость 0-100: - .adjust-contrast-0-100 = ADJUST Контраст 0-100: - .adjust-fade-0-100 = ADJUST выцветание 0-100: - .adjust-select-raster-image-s-first = ADJUST: сначала выберите растровое изображение(и). - .adjust-value-must-be-0-100 = ADJUST: значение должно быть 0-100. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__ = __ocs_fmt_1__ на __ocs_fmt_2__ изображении(ах). .annoallvisible-new-value-0-1 = ANNOALLVISIBLE новое значение [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: введите 0 или 1. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE новое значение [-4..4]: @@ -4876,7 +4880,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Подложка __ocs_fmt_0__: fade=__ocs_fmt_1__, contrast=__ocs_fmt_2__, on=__ocs_fmt_3__, clip=__ocs_fmt_4__, mono=__ocs_fmt_5__ .updated-changed-underlay-s = Обновлено __ocs_fmt_0__ underlay(s). - .usage-adjust-brightness-contrast-fade-0-100 = Использование: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Использование: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = Использование: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Использование: HYPERLINK (select objects first) diff --git a/locales/tr-TR/opencadstudio.ftl b/locales/tr-TR/opencadstudio.ftl index 9b6691d96..41e52c8a1 100644 --- a/locales/tr-TR/opencadstudio.ftl +++ b/locales/tr-TR/opencadstudio.ftl @@ -1134,7 +1134,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE: Left, Top veya Right girin. .isodraft-expected-on-or-off = ISODRAFT: On veya Off girin. .xdata-selected-entities-are-on-locked-layers = XDATA: seçilen nesneler kilitli katmanlarda. - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST: raster görüntü seçilmedi veya özellik bilinmiyor (BRIGHTNESS/CONTRAST/FADE kullanın). .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE: -4 ile 4 arasında bir tamsayı girin. .usage-datalink-path-to-csv = Kullanım: DATALINK <.csv-dosya-yolu> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE: bağlantılı tablo bulunamadı. @@ -3962,6 +3961,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Görüntüleri seçin: + .adjust-select-image-or-underlay = Görüntü veya altlık seçin: + .adjust-select-pdf-underlay = PDF altlığı seçin: + .adjust-select-dwf-underlay = DWF altlığı seçin: + .adjust-select-dgn-underlay = DGN altlığı seçin: + .adjust-mixed-underlays = *Geçersiz seçim kümesi. Yalnız aynı dosya türündeki altlık nesnelerini seçin.* + .adjust-image-option = Görüntü seçeneğini girin [Karşıtlık/Solukluk/Parlaklık] : + .adjust-underlay-option = __ocs_arg_kind__ altlık seçeneğini girin [Solukluk/Karşıtlık/Tek Renkli] <__ocs_arg_option__>: + .adjust-monochrome = Tek Renkli? [Evet/Hayır] <__ocs_arg_value__>: + .adjust-brightness-value = Parlaklık değerini girin (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = Karşıtlık değerini girin (0-100) <__ocs_arg_value__>: + .adjust-fade-value = Solukluk değerini girin (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = Değer 0 ile 100 arasında bir tam sayı olmalıdır. .transparency-mode-on = Saydamlık modunu girin [ON/OFF] : .transparency-mode-off = Saydamlık modunu girin [ON/OFF] : .xref-attach-menu = Attach... @@ -4694,13 +4705,6 @@ view = .x-no-xdata = __ocs_fmt_0__: xdata yok. .value-3d-orbit = 3B Yörünge .value-3d-orbit-drag-with-right-mouse-button = 3B Yörünge: sağ fare düğmesiyle sürükleyin. - .adjust-brightness-contrast-fade = ADJUST [Parlaklık / Karşıtlık / Solma]: - .adjust-brightness-0-100 = ADJUST Parlaklık 0-100: - .adjust-contrast-0-100 = ADJUST Karşıtlık 0-100: - .adjust-fade-0-100 = ADJUST Solma 0-100: - .adjust-select-raster-image-s-first = ADJUST: önce raster görüntüleri seçin. - .adjust-value-must-be-0-100 = ADJUST: değer 0 ile 100 arasında olmalıdır. - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_2__ görüntüde __ocs_fmt_0__ = __ocs_fmt_1__ olarak değiştirildi. .annoallvisible-new-value-0-1 = ANNOALLVISIBLE Yeni değer [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: 0 veya 1 girin. .annoautoscale-new-value-4-4 = ANNOAUTOSCALE Yeni değer [-4..4]: @@ -4820,7 +4824,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__ = __ocs_fmt_1__ .underlay-x-fade-contrast-on-clip-mono = Altlık __ocs_fmt_0__: solukluk=__ocs_fmt_1__, karşıtlık=__ocs_fmt_2__, açık=__ocs_fmt_3__, kırp=__ocs_fmt_4__, tek renk=__ocs_fmt_5__ .updated-changed-underlay-s = __ocs_fmt_0__ altlık güncellendi. - .usage-adjust-brightness-contrast-fade-0-100 = Kullanım: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = Kullanım: ANNOSCALE ör. 1:50, 2:1 veya bir katsayı .usage-draworder-f-front-b-back-a-above-handle = Kullanım: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = Kullanım: HYPERLINK (önce nesneleri seçin) diff --git a/locales/zh-CN/opencadstudio.ftl b/locales/zh-CN/opencadstudio.ftl index efa0c1550..7d3f3d537 100644 --- a/locales/zh-CN/opencadstudio.ftl +++ b/locales/zh-CN/opencadstudio.ftl @@ -1135,7 +1135,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE:请输入 Left、Top 或 Right。 .isodraft-expected-on-or-off = ISODRAFT:请输入 On 或 Off。 .xdata-selected-entities-are-on-locked-layers = XDATA:选定实体位于锁定的图层上。 - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST:未选择光栅图像或属性未知(使用 BRIGHTNESS/CONTRAST/FADE)。 .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE:请输入 -4 到 4 之间的整数。 .usage-datalink-path-to-csv = 用法:DATALINK <.csv文件路径> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE:未找到链接表格。 @@ -3979,6 +3978,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = 选择图像或参考底图: + .adjust-select-pdf-underlay = 选择 PDF 参考底图: + .adjust-select-dwf-underlay = 选择 DWF 参考底图: + .adjust-select-dgn-underlay = 选择 DGN 参考底图: + .adjust-mixed-underlays = *选择集无效。请仅选择相同文件类型的参考底图。* + .adjust-image-option = 输入图像选项 [对比度/变暗/亮度] <亮度>: + .adjust-underlay-option = 输入 __ocs_arg_kind__ 参考底图选项 [变暗/对比度/单色] <__ocs_arg_option__>: + .adjust-monochrome = 单色? [是/否] <__ocs_arg_value__>: + .adjust-brightness-value = 输入亮度值 (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = 输入对比度值 (0-100) <__ocs_arg_value__>: + .adjust-fade-value = 输入变暗值 (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = 值必须是介于 0 和 100 之间的整数。 .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4726,13 +4737,6 @@ view = .x-no-xdata = __ocs_fmt_0__:无xdata. .value-3d-orbit = 三维动态观察 .value-3d-orbit-drag-with-right-mouse-button = 三维轨道:用鼠标右键拖动. - .adjust-brightness-contrast-fade = ADJUST [光亮/对比/淡: - .adjust-brightness-0-100 = ADJUST 亮度 0-100 : - .adjust-contrast-0-100 = ADJUST 对比 0-100 : - .adjust-fade-0-100 = ADJUST 淡出 0- 100 : - .adjust-select-raster-image-s-first = ADJUST:先选择光栅图像。 - .adjust-value-must-be-0-100 = ADJUST:值必须是0-100。 - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__= __ocs_fmt_1__在__ocs_fmt_2__图像上。 .annoallvisible-new-value-0-1 = ANNOALLVISIBLE 新值 [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: 输入 0 或 1 。 .annoautoscale-new-value-4-4 = ANNOAUTOSCALE 新值 [-4..4]: @@ -4858,7 +4862,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__=__ocs_fmt_1__(简体中文) .underlay-x-fade-contrast-on-clip-mono = 内饰 __ocs_fmt_0__: 淡出=( 淡出=)__ocs_fmt_1__,对比=__ocs_fmt_2__打开=__ocs_fmt_3__,夹=__ocs_fmt_4__单数=__ocs_fmt_5__ .updated-changed-underlay-s = 已更新 __ocs_fmt_0__ 内置 。 - .usage-adjust-brightness-contrast-fade-0-100 = 用法: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = 用法: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = 用法: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = 用法: HYPERLINK (select objects first) diff --git a/locales/zh-TW/opencadstudio.ftl b/locales/zh-TW/opencadstudio.ftl index 31a1c5294..0263a4ab7 100644 --- a/locales/zh-TW/opencadstudio.ftl +++ b/locales/zh-TW/opencadstudio.ftl @@ -1147,7 +1147,6 @@ common = .isoplane-expected-left-top-or-right = ISOPLANE:請輸入 Left、Top 或 Right。 .isodraft-expected-on-or-off = ISODRAFT:請輸入 On 或 Off。 .xdata-selected-entities-are-on-locked-layers = XDATA:選取的實體位於鎖定的圖層上。 - .adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade = ADJUST:未選取點陣影像或屬性不明(使用 BRIGHTNESS/CONTRAST/FADE)。 .annoautoscale-enter-an-integer-from-4-through-4 = ANNOAUTOSCALE:請輸入 -4 到 4 之間的整數。 .usage-datalink-path-to-csv = 用法:DATALINK <.csv檔案路徑> .datalinkupdate-no-linked-tables-found = DATALINKUPDATE:找不到連結的表格。 @@ -3991,6 +3990,18 @@ insert = .xref-attach-dwg = Attach DWG .xref-attach-image = Attach Image .select-images = Select image(s): + .adjust-select-image-or-underlay = 選取影像或參考底圖: + .adjust-select-pdf-underlay = 選取 PDF 參考底圖: + .adjust-select-dwf-underlay = 選取 DWF 參考底圖: + .adjust-select-dgn-underlay = 選取 DGN 參考底圖: + .adjust-mixed-underlays = *選取集無效。請只選取相同檔案類型的參考底圖。* + .adjust-image-option = 輸入影像選項 [對比度/變暗/亮度] <亮度>: + .adjust-underlay-option = 輸入 __ocs_arg_kind__ 參考底圖選項 [變暗/對比度/單色] <__ocs_arg_option__>: + .adjust-monochrome = 單色? [是/否] <__ocs_arg_value__>: + .adjust-brightness-value = 輸入亮度值 (0-100) <__ocs_arg_value__>: + .adjust-contrast-value = 輸入對比度值 (0-100) <__ocs_arg_value__>: + .adjust-fade-value = 輸入變暗值 (0-100) <__ocs_arg_value__>: + .adjust-value-integer-0-100 = 值必須是介於 0 和 100 之間的整數。 .transparency-mode-on = Enter transparency mode [ON/OFF] : .transparency-mode-off = Enter transparency mode [ON/OFF] : .xref-attach-menu = Attach... @@ -4738,13 +4749,6 @@ view = .x-no-xdata = __ocs_fmt_0__:無xdata. .value-3d-orbit = 三維動態觀察 .value-3d-orbit-drag-with-right-mouse-button = 三維軌道:用滑鼠右鍵拖動. - .adjust-brightness-contrast-fade = ADJUST [光亮/對比/淡: - .adjust-brightness-0-100 = ADJUST 亮度 0-100 : - .adjust-contrast-0-100 = ADJUST 對比 0-100 : - .adjust-fade-0-100 = ADJUST 淡出 0- 100 : - .adjust-select-raster-image-s-first = ADJUST:先選擇光柵圖像。 - .adjust-value-must-be-0-100 = ADJUST:值必須是0-100。 - .adjust-action-v-on-changed-image-s = ADJUST: __ocs_fmt_0__= __ocs_fmt_1__在__ocs_fmt_2__圖像上。 .annoallvisible-new-value-0-1 = ANNOALLVISIBLE 新值 [0/1]: .annoallvisible-enter-0-or-1 = ANNOALLVISIBLE: 輸入 0 或 1 。 .annoautoscale-new-value-4-4 = ANNOAUTOSCALE 新值 [-4..4]: @@ -4870,7 +4874,6 @@ view = .userr-n-val = USERR__ocs_fmt_0__=__ocs_fmt_1__(簡體中文) .underlay-x-fade-contrast-on-clip-mono = 內飾 __ocs_fmt_0__: 淡出=( 淡出=)__ocs_fmt_1__,對比=__ocs_fmt_2__開啟=__ocs_fmt_3__,夾=__ocs_fmt_4__單數=__ocs_fmt_5__ .updated-changed-underlay-s = 已更新 __ocs_fmt_0__ 內置 。 - .usage-adjust-brightness-contrast-fade-0-100 = 用法: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> .usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor = 用法: ANNOSCALE e.g. 1:50, 2:1, or a factor .usage-draworder-f-front-b-back-a-above-handle = 用法: DRAWORDER F|FRONT | B|BACK | A|ABOVE | U|UNDER .usage-hyperlink-url-select-objects-first = 用法: HYPERLINK (select objects first) diff --git a/src/app/command_driver/utilities.rs b/src/app/command_driver/utilities.rs index 720c9153c..38e35314d 100644 --- a/src/app/command_driver/utilities.rs +++ b/src/app/command_driver/utilities.rs @@ -507,6 +507,32 @@ impl OpenCADStudio { StepInput::SelectionComplete(kept) } + /// Keeps only the kinds of object the active command takes, dropping + /// the rest of a completed selection silently. + fn filter_command_entity_selection(&mut self, input: StepInput) -> StepInput { + let StepInput::SelectionComplete(handles) = input else { + return input; + }; + let i = self.active_tab; + let Some(keep) = self.tabs[i] + .active_cmd + .as_ref() + .and_then(|command| command.selection_entity_filter()) + else { + return StepInput::SelectionComplete(handles); + }; + let (kept, dropped): (Vec, Vec) = handles + .into_iter() + .partition(|h| self.tabs[i].scene.document.get_entity(*h).is_some_and(keep)); + for handle in &dropped { + self.tabs[i].scene.deselect_entity(*handle); + } + if !dropped.is_empty() { + self.refresh_properties(); + } + StepInput::SelectionComplete(kept) + } + /// Drops locked point clouds from a completed selection when the active /// command would move them, saying which were locked and how many went. fn filter_locked_point_cloud_selection(&mut self, input: StepInput) -> StepInput { @@ -562,6 +588,7 @@ impl OpenCADStudio { let input = self.filter_associative_dimension_selection(input); let input = self.filter_block_reference_selection(input); let input = self.filter_locked_point_cloud_selection(input); + let input = self.filter_command_entity_selection(input); // XCLIP / CLIP learn which chosen references carry a clip already. { let i = self.active_tab; diff --git a/src/app/commands/display.rs b/src/app/commands/display.rs index 286196a18..ebfdbbea4 100644 --- a/src/app/commands/display.rs +++ b/src/app/commands/display.rs @@ -1391,101 +1391,120 @@ impl OpenCADStudio { return Some(Task::none()); } - // ADJUST — set brightness / contrast / fade on selected raster images - // ADJUST BRIGHTNESS|CONTRAST|FADE <0-100> - "ADJUST" => { - use crate::command::SelectThenKeywordCommand; - let has_sel = !self.tabs[i].scene.selected_entities().is_empty(); - let c = SelectThenKeywordCommand::new( - "ADJUST", - "ADJUST [Brightness / Contrast / Fade]:", - vec![ - ( - "Brightness", - "BRIGHTNESS", - Some("ADJUST brightness 0-100:"), - ), - ("Contrast", "CONTRAST", Some("ADJUST contrast 0-100:")), - ("Fade", "FADE", Some("ADJUST fade 0-100:")), - ], - has_sel, - ); - self.command_line.push_info(&c.prompt()); - self.tabs[i].active_cmd = Some(Box::new(c)); - } - cmd if cmd.starts_with("ADJUST ") => { - let rest = cmd.trim_start_matches("ADJUST").trim(); - let parts: Vec<&str> = rest.splitn(2, char::is_whitespace).collect(); - let action = parts.first().map(|s| s.to_uppercase()).unwrap_or_default(); - let arg = parts.get(1).copied().unwrap_or("").trim(); - let handles: Vec = self.tabs[i] + // ADJUST / -IMAGEADJUST / PDFADJUST / DWFADJUST / DGNADJUST: + // chosen images or underlays (pickfirst first), then the option + // and the value. + "ADJUST" | "-IMAGEADJUST" | "PDFADJUST" | "DWFADJUST" | "DGNADJUST" => { + let mode = match cmd { + "-IMAGEADJUST" => "I", + "PDFADJUST" => "P", + "DWFADJUST" => "W", + "DGNADJUST" => "G", + _ => "A", + }; + let keep = crate::modules::insert::xadjust::keeps(mode); + let chosen: Vec = self.tabs[i] .scene .selected_entities() - .iter() - .map(|(h, _)| *h) - .filter(|handle| !self.tabs[i].scene.is_layer_locked(*handle)) + .into_iter() + .filter(|(_, e)| keep(e)) + .map(|(h, _)| h) .collect(); - if handles.is_empty() { - self.command_line - .push_error(crate::t!("ADJUST: select raster image(s) first.").as_ref()); - } else if action.is_empty() { - self.command_line.push_info( - crate::t!("Usage: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100>").as_ref(), - ); - } else if let Ok(v) = arg.parse::() { - let v = v.min(100); - self.push_undo_snapshot(i, "ADJUST"); - let mut changed = 0usize; - let mut changed_handles = Vec::new(); - for h in &handles { - if let Some(codec::EntityType::RasterImage(img)) = self.tabs[i] - .scene - .document - .entities_mut() - .find(|e| e.common().handle == *h) - { - match action.as_str() { - "BRIGHTNESS" => { - img.brightness = v; - changed += 1; - changed_handles.push(*h); - } - "CONTRAST" => { - img.contrast = v; - changed += 1; - changed_handles.push(*h); - } - "FADE" => { - img.fade = v; - changed += 1; - changed_handles.push(*h); - } - _ => {} - } - } - } - if changed > 0 { - self.tabs[i].dirty = true; - for &handle in &changed_handles { - self.tabs[i].scene.reseed_derived_caches(handle); - } - let changes: Vec<_> = changed_handles - .into_iter() - .map(|handle| (handle, crate::scene::ChangeKind::Modified)) - .collect(); - self.tabs[i].scene.bump_entities(&changes); - self.command_line.push_output( - crate::tf!("ADJUST: {action} = {v} on {changed} image(s).").as_ref(), - ); - } else { - self.command_line.push_error( - crate::t!("ADJUST: no raster images selected, or unknown property (use BRIGHTNESS|CONTRAST|FADE).").as_ref(), - ); - } - } else { - self.command_line - .push_error(crate::t!("ADJUST: value must be 0-100.").as_ref()); + if !chosen.is_empty() { + self.tabs[i] + .scene + .replace_selection(chosen.into_iter().collect()); + return Some(self.dispatch_command(&format!("_ADJUSTSEL {mode}"))); } + self.start_adjust_selection(i, cmd, mode); + } + // The gathered objects: one kind at a time, then the option. + c if c.starts_with("_ADJUSTSEL ") => { + use crate::command::CadCommand; + use crate::modules::insert::xadjust::{self, AdjustCommand}; + let mode = c["_ADJUSTSEL ".len()..].trim().to_string(); + let keep = xadjust::keeps(&mode); + let name = xadjust::command_name(&mode); + let objects: Vec<(codec::Handle, codec::EntityType)> = self.tabs[i] + .scene + .selected_entities() + .into_iter() + .filter(|(h, e)| keep(e) && !self.tabs[i].scene.is_layer_locked(*h)) + .map(|(h, e)| (h, e.clone())) + .collect(); + match AdjustCommand::for_objects(&objects) { + None => {} + Some(Err(message)) => { + self.command_line.push_error(crate::t!(message).as_ref()); + self.start_adjust_selection(i, name, &mode); + } + Some(Ok(command)) => { + self.command_line.push_info(&command.prompt()); + self.command_line.set_step_options(command.options()); + self.tabs[i].active_cmd = Some(Box::new(command)); + } + } + // Repeating runs the command, not this step. + return Some(self.finish_dispatch(name)); + } + // `_ADJUSTAPPLY ` + // writes the value to every listed image or underlay, one undo step. + c if c.starts_with("_ADJUSTAPPLY ") => { + let mut parts = c.split_whitespace().skip(1); + let prop = parts.next().unwrap_or("").to_string(); + let value: u8 = parts.next().and_then(|v| v.parse().ok()).unwrap_or(0); + let handles: Vec = parts + .filter_map(|h| u64::from_str_radix(h, 16).ok()) + .map(codec::Handle::new) + .collect(); + self.push_undo_snapshot(i, "ADJUST"); + let mut changed = Vec::new(); + for h in &handles { + let done = match self.tabs[i].scene.document.get_entity_mut(*h) { + Some(codec::EntityType::RasterImage(img)) => match prop.as_str() { + "BRIGHTNESS" => { + img.brightness = value; + true + } + "CONTRAST" => { + img.contrast = value; + true + } + "FADE" => { + img.fade = value; + true + } + _ => false, + }, + Some(codec::EntityType::Underlay(u)) => match prop.as_str() { + "CONTRAST" => { + u.set_contrast(value); + true + } + "FADE" => { + u.set_fade(value); + true + } + "MONOCHROME" => { + u.set_monochrome(value != 0); + true + } + _ => false, + }, + _ => false, + }; + if done { + self.tabs[i].scene.reseed_derived_caches(*h); + changed.push((*h, crate::scene::ChangeKind::Modified)); + } + } + if !changed.is_empty() { + self.tabs[i].scene.bump_entities(&changed); + self.tabs[i].dirty = true; + } + // The command used the set up; nothing stays chosen. + self.tabs[i].scene.deselect_all(); + self.refresh_properties(); } // ANNOSCALE / CANNOSCALE — set the current annotation scale @@ -2216,6 +2235,26 @@ pub(crate) fn table_to_csv(table: &codec::entities::Table) -> String { .join("\r\n") } +impl OpenCADStudio { + /// The ADJUST family's object prompt, keeping only the kinds `mode` + /// takes (see `xadjust::keeps`). + fn start_adjust_selection(&mut self, i: usize, name: &str, mode: &str) { + use crate::command::CadCommand; + use crate::modules::insert::xadjust; + self.tabs[i].scene.deselect_all(); + self.refresh_properties(); + let command = crate::modules::draw::select::SelectObjectsCommand::filtered( + name, + &format!("_ADJUSTSEL {mode}"), + xadjust::select_prompt(mode), + xadjust::keeps(mode), + ); + self.command_line.push_info(&command.prompt()); + self.command_line.set_step_options(command.options()); + self.tabs[i].active_cmd = Some(Box::new(command)); + } +} + #[cfg(test)] mod tests { use crate::app::OpenCADStudio; diff --git a/src/app/update/command.rs b/src/app/update/command.rs index 9d6ee11fa..8c476f78d 100644 --- a/src/app/update/command.rs +++ b/src/app/update/command.rs @@ -3911,7 +3911,9 @@ impl OpenCADStudio { return Task::none(); } } - if field.starts_with("ul_") { + if field.starts_with("ul_") + || matches!(field, "ri_bright" | "ri_contrast" | "ri_fade") + { if let Err(message) = crate::entities::underlay::validate_property(field, &val) { self.command_line.push_error(message); diff --git a/src/command.rs b/src/command.rs index 1c8e44349..38ae3219e 100644 --- a/src/command.rs +++ b/src/command.rs @@ -2983,6 +2983,12 @@ pub trait CadCommand: Send { false } + /// The kinds of object the command takes (ADJUST): the host drops the + /// rest of each completed selection without a word. + fn selection_entity_filter(&self) -> Option bool> { + None + } + /// The command takes block references only (XCLIP): the host drops the /// rest and says how many were ineligible. fn selection_keeps_block_references(&self) -> bool { diff --git a/src/entities/raster_image.rs b/src/entities/raster_image.rs index 23b90ddd3..e560a841f 100644 --- a/src/entities/raster_image.rs +++ b/src/entities/raster_image.rs @@ -333,7 +333,20 @@ impl PropertyEditable for RasterImage { .contains(codec::entities::ImageDisplayFlags::USE_CLIPPING_BOUNDARY); let clip_inverted = self.clip_boundary.clip_mode == codec::entities::ClipMode::Inside; let transparency = self.common.transparency.to_string(); + let whole = |label: &str, field: &'static str, value: u8| Property { + label: t!(label).into_owned(), + field, + value: PropValue::EditText(value.to_string()), + }; vec![ + PropSection { + title: t!("Image Adjust").into_owned(), + props: vec![ + whole("Brightness", "ri_bright", self.brightness), + whole("Contrast", "ri_contrast", self.contrast), + whole("Fade", "ri_fade", self.fade), + ], + }, PropSection { title: t!("Geometry").into_owned(), props: vec![ @@ -362,13 +375,6 @@ impl PropertyEditable for RasterImage { title: t!("Misc").into_owned(), props: vec![ ro(t!("Name").as_ref(), "ri_name", self.file_name().to_string()), - edit( - t!("Brightness").as_ref(), - "ri_bright", - self.brightness as f64, - ), - edit(t!("Contrast").as_ref(), "ri_contrast", self.contrast as f64), - edit(t!("Fade").as_ref(), "ri_fade", self.fade as f64), ro(t!("Transparency").as_ref(), "ri_transparency", transparency), Property { label: t!("Show image").into_owned(), @@ -449,9 +455,10 @@ impl PropertyEditable for RasterImage { "ri_ox" => self.insertion_point.x = v, "ri_oy" => self.insertion_point.y = v, "ri_oz" => self.insertion_point.z = v, - "ri_bright" => self.brightness = v.clamp(0.0, 100.0) as u8, - "ri_contrast" => self.contrast = v.clamp(0.0, 100.0) as u8, - "ri_fade" => self.fade = v.clamp(0.0, 100.0) as u8, + // Out-of-range values are refused before they get here. + "ri_bright" if (0.0..=100.0).contains(&v) => self.brightness = v as u8, + "ri_contrast" if (0.0..=100.0).contains(&v) => self.contrast = v as u8, + "ri_fade" if (0.0..=100.0).contains(&v) => self.fade = v as u8, _ => {} } } diff --git a/src/entities/underlay.rs b/src/entities/underlay.rs index 9aa7cc3fb..ba40632f6 100644 --- a/src/entities/underlay.rs +++ b/src/entities/underlay.rs @@ -227,7 +227,8 @@ fn parse_flag(value: &str, current: bool) -> bool { pub(crate) fn validate_property(field: &str, value: &str) -> Result<(), &'static str> { let number = || value.trim().parse::().ok(); match field { - "ul_contrast" | "ul_fade" => match number() { + // A raster image's Image Adjust rows take the same range. + "ul_contrast" | "ul_fade" | "ri_bright" | "ri_contrast" | "ri_fade" => match number() { Some(v) if (0.0..=100.0).contains(&v) && v.fract() == 0.0 => Ok(()), _ => Err("Value must be an integer between 0 and 100"), }, diff --git a/src/locale_catalog.rs b/src/locale_catalog.rs index 656ff455f..1a7be67e5 100644 --- a/src/locale_catalog.rs +++ b/src/locale_catalog.rs @@ -557,13 +557,6 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "ACI:" => Some(("styles", "aci")), "ADDSELECTED: creating a new {kind} is not supported." => Some(("inquiry", "addselected-creating-a-new-kind-is-not-support")), "ADDSELECTED: selected object not found." => Some(("inquiry", "addselected-selected-object-not-found")), - "ADJUST [Brightness / Contrast / Fade]:" => Some(("view", "adjust-brightness-contrast-fade")), - "ADJUST brightness 0-100:" => Some(("view", "adjust-brightness-0-100")), - "ADJUST contrast 0-100:" => Some(("view", "adjust-contrast-0-100")), - "ADJUST fade 0-100:" => Some(("view", "adjust-fade-0-100")), - "ADJUST: select raster image(s) first." => Some(("view", "adjust-select-raster-image-s-first")), - "ADJUST: value must be 0-100." => Some(("view", "adjust-value-must-be-0-100")), - "ADJUST: {action} = {v} on {changed} image(s)." => Some(("view", "adjust-action-v-on-changed-image-s")), "ALIGN Scale objects based on alignment points? [Y/N]:" => Some(("modify", "align-scale-objects-based-on-alignment-points")), "ALIGN Select objects (%{count} selected, Enter when done):" => Some(("modify", "align-select-objects-count-selected-enter-when")), "ALIGN Specify 1st destination point:" => Some(("modify", "align-specify-1st-destination-point")), @@ -3526,7 +3519,6 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "Updated {changed} underlay(s)." => Some(("view", "updated-changed-underlay-s")), "Upper" => Some(("annotate", "upper")), "Upside down" => Some(("common", "upside-down")), - "Usage: ADJUST BRIGHTNESS|CONTRAST|FADE <0-100>" => Some(("view", "usage-adjust-brightness-contrast-fade-0-100")), "Usage: ANNOSCALE e.g. 1:50, 2:1, or a factor" => Some(("view", "usage-annoscale-ratio-e-g-1-50-2-1-or-a-factor")), "Usage: ATTDISP ON | OFF | NORMAL" => Some(("draw", "usage-attdisp-on-off-normal")), "Usage: ATTSYNC . Blocks: {}" => Some(("insert", "usage-attsync-block-name-blocks")), @@ -3837,6 +3829,18 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "Attach DWG" => Some(("insert", "xref-attach-dwg")), "Attach Image" => Some(("insert", "xref-attach-image")), "Select image(s):" => Some(("insert", "select-images")), + "Select image or underlay:" => Some(("insert", "adjust-select-image-or-underlay")), + "Select PDF underlay:" => Some(("insert", "adjust-select-pdf-underlay")), + "Select DWF underlay:" => Some(("insert", "adjust-select-dwf-underlay")), + "Select DGN underlay:" => Some(("insert", "adjust-select-dgn-underlay")), + "*Invalid selection set. Select underlay objects of the same file type only.*" => Some(("insert", "adjust-mixed-underlays")), + "Enter image option [Contrast/Fade/Brightness] :" => Some(("insert", "adjust-image-option")), + "Enter %{kind} underlay option [Fade/Contrast/Monochrome] <%{option}>:" => Some(("insert", "adjust-underlay-option")), + "Monochrome? [Yes/No] <%{value}>:" => Some(("insert", "adjust-monochrome")), + "Enter brightness value (0-100) <%{value}>:" => Some(("insert", "adjust-brightness-value")), + "Enter contrast value (0-100) <%{value}>:" => Some(("insert", "adjust-contrast-value")), + "Enter fade value (0-100) <%{value}>:" => Some(("insert", "adjust-fade-value")), + "Value must be an integer between 0 and 100." => Some(("insert", "adjust-value-integer-0-100")), "Enter transparency mode [ON/OFF] :" => Some(("insert", "transparency-mode-on")), "Enter transparency mode [ON/OFF] :" => Some(("insert", "transparency-mode-off")), "Attach..." => Some(("insert", "xref-attach-menu")), @@ -4217,7 +4221,6 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "ISOPLANE: expected Left, Top, or Right." => Some(("common", "isoplane-expected-left-top-or-right")), "ISODRAFT: expected On or Off." => Some(("common", "isodraft-expected-on-or-off")), "XDATA: selected entities are on locked layers." => Some(("common", "xdata-selected-entities-are-on-locked-layers")), - "ADJUST: no raster images selected, or unknown property (use BRIGHTNESS|CONTRAST|FADE)." => Some(("common", "adjust-no-raster-images-selected-or-unknown-property-use-brightness-contrast-fade")), "ANNOAUTOSCALE: enter an integer from -4 through 4." => Some(("common", "annoautoscale-enter-an-integer-from-4-through-4")), "Usage: DATALINK " => Some(("common", "usage-datalink-path-to-csv")), "DATALINKUPDATE: no linked tables found." => Some(("common", "datalinkupdate-no-linked-tables-found")), diff --git a/src/modules/draw/select.rs b/src/modules/draw/select.rs index 8b7798220..ffe77ad73 100644 --- a/src/modules/draw/select.rs +++ b/src/modules/draw/select.rs @@ -41,6 +41,9 @@ pub struct SelectObjectsCommand { /// The command works on associative dimensions only; the host drops /// everything else from each completed selection. associative_dimensions_only: bool, + /// The kinds of object the command takes; the host drops the rest of + /// each completed selection silently, and Enter on nothing ends quietly. + keep: Option bool>, } impl SelectObjectsCommand { @@ -57,6 +60,7 @@ impl SelectObjectsCommand { auto_constrain_settings: false, prompt_text: None, associative_dimensions_only: false, + keep: None, } } @@ -74,6 +78,7 @@ impl SelectObjectsCommand { auto_constrain_settings: false, prompt_text: None, associative_dimensions_only: false, + keep: None, } } @@ -91,6 +96,7 @@ impl SelectObjectsCommand { auto_constrain_settings: false, prompt_text: None, associative_dimensions_only: false, + keep: None, } } @@ -108,6 +114,7 @@ impl SelectObjectsCommand { auto_constrain_settings: false, prompt_text: None, associative_dimensions_only: false, + keep: None, } } @@ -131,6 +138,18 @@ impl SelectObjectsCommand { command } + /// The command's own wording, keeping only what `keep` accepts. + pub fn filtered( + prompt_cmd: &str, + pending_cmd: &str, + prompt_text: &'static str, + keep: fn(&codec::EntityType) -> bool, + ) -> Self { + let mut command = Self::with_prompt(prompt_cmd, pending_cmd, prompt_text); + command.keep = Some(keep); + command + } + pub fn auto_constrain(pending_cmd: &str) -> Self { let mut command = Self::new(pending_cmd); command.auto_constrain_settings = true; @@ -203,6 +222,10 @@ impl CadCommand for SelectObjectsCommand { self.associative_dimensions_only } + fn selection_entity_filter(&self) -> Option bool> { + self.keep + } + fn selection_drops_locked_point_clouds(&self) -> bool { matches!( self.pending_cmd.as_str(), @@ -320,6 +343,9 @@ impl CadCommand for SelectObjectsCommand { } return CmdResult::NeedPoint; } + if self.keep.is_some() && self.handles.is_empty() { + return CmdResult::Relaunch(std::mem::take(&mut self.pending_cmd), Vec::new()); + } if !self.commit_on_enter || self.handles.is_empty() { return CmdResult::Cancel; } diff --git a/src/modules/insert/mod.rs b/src/modules/insert/mod.rs index 87f1f630b..685317b9e 100644 --- a/src/modules/insert/mod.rs +++ b/src/modules/insert/mod.rs @@ -26,7 +26,7 @@ mod snap_underlays; pub(crate) mod solid3d_cmds; mod underlay_layers; pub(crate) mod wblock; -mod xadjust; +pub(crate) mod xadjust; pub(crate) mod xattach; pub(crate) mod xclip; pub(crate) mod xref_cmd; diff --git a/src/modules/insert/xadjust.rs b/src/modules/insert/xadjust.rs index 92e72fb57..096f934a9 100644 --- a/src/modules/insert/xadjust.rs +++ b/src/modules/insert/xadjust.rs @@ -1,4 +1,30 @@ +// ADJUST / -IMAGEADJUST / PDFADJUST / DWFADJUST / DGNADJUST — brightness, +// contrast and fade of raster images; fade, contrast and monochrome of +// PDF, DWF and DGN underlays. +// +// Select image or underlay: +// Enter image option [Contrast/Fade/Brightness] : +// Enter brightness value (0-100) <50>: +// +// Enter PDF underlay option [Fade/Contrast/Monochrome] : +// Enter fade value (0-100) <25>: +// Monochrome? [Yes/No] : +// +// An image value prompt offers the first image's own value. The underlay +// option and the fade / contrast values offered are the last ones used in +// the session, whatever the underlay kind. The host applies the value to +// every chosen object as one undo step. + +use std::sync::Mutex; + +use codec::entities::{UnderlayDisplayFlags, UnderlayType}; +use codec::types::Handle; +use codec::EntityType; + +use crate::command::{CadCommand, CmdOption, CmdResult, InputKind}; use crate::modules::{IconKind, ModuleEvent, ToolDef}; +use crate::t; + pub const ICON: IconKind = IconKind::Svg(include_bytes!("../../../assets/icons/xadjust.svg")); pub fn tool() -> ToolDef { ToolDef { @@ -8,3 +34,330 @@ pub fn tool() -> ToolDef { event: ModuleEvent::Command("ADJUST".to_string()), } } + +/// What a command takes: `A` images or underlays, `I` images, `P` / `W` / +/// `G` PDF / DWF / DGN underlays. +pub fn keeps(mode: &str) -> fn(&EntityType) -> bool { + fn any(e: &EntityType) -> bool { + matches!(e, EntityType::RasterImage(_) | EntityType::Underlay(_)) + } + fn image(e: &EntityType) -> bool { + matches!(e, EntityType::RasterImage(_)) + } + fn pdf(e: &EntityType) -> bool { + matches!(e, EntityType::Underlay(u) if u.underlay_type == UnderlayType::Pdf) + } + fn dwf(e: &EntityType) -> bool { + matches!(e, EntityType::Underlay(u) if u.underlay_type == UnderlayType::Dwf) + } + fn dgn(e: &EntityType) -> bool { + matches!(e, EntityType::Underlay(u) if u.underlay_type == UnderlayType::Dgn) + } + match mode { + "I" => image, + "P" => pdf, + "W" => dwf, + "G" => dgn, + _ => any, + } +} + +/// The command each mode belongs to. +pub fn command_name(mode: &str) -> &'static str { + match mode { + "I" => "-IMAGEADJUST", + "P" => "PDFADJUST", + "W" => "DWFADJUST", + "G" => "DGNADJUST", + _ => "ADJUST", + } +} + +/// The selection prompt of each command. +pub fn select_prompt(mode: &str) -> &'static str { + match mode { + "I" => "Select image(s):", + "P" => "Select PDF underlay:", + "W" => "Select DWF underlay:", + "G" => "Select DGN underlay:", + _ => "Select image or underlay:", + } +} + +#[derive(Clone, Copy, PartialEq)] +enum Prop { + Brightness, + Contrast, + Fade, + Monochrome, +} + +impl Prop { + fn label(self) -> &'static str { + match self { + Prop::Brightness => "Brightness", + Prop::Contrast => "Contrast", + Prop::Fade => "Fade", + Prop::Monochrome => "Monochrome", + } + } + fn key(self) -> &'static str { + match self { + Prop::Brightness => "BRIGHTNESS", + Prop::Contrast => "CONTRAST", + Prop::Fade => "FADE", + Prop::Monochrome => "MONOCHROME", + } + } +} + +const IMAGE_OPTIONS: [Prop; 3] = [Prop::Contrast, Prop::Fade, Prop::Brightness]; +const UNDERLAY_OPTIONS: [Prop; 3] = [Prop::Fade, Prop::Contrast, Prop::Monochrome]; + +/// The underlay option, fade and contrast last used in the session. +static LAST_UNDERLAY: Mutex<(usize, u8, u8)> = Mutex::new((0, 25, 75)); + +fn last_underlay() -> (usize, u8, u8) { + LAST_UNDERLAY.lock().map(|v| *v).unwrap_or((0, 25, 75)) +} + +enum Subject { + Image { + brightness: u8, + contrast: u8, + fade: u8, + }, + Underlay { + kind: &'static str, + monochrome: bool, + }, +} + +pub struct AdjustCommand { + handles: Vec, + subject: Subject, + prop: Option, +} + +/// Why a chosen set cannot be adjusted together. +pub const MIXED: &str = + "*Invalid selection set. Select underlay objects of the same file type only.*"; + +impl AdjustCommand { + /// The command for the chosen objects (the first one supplies the image + /// values and the monochrome state), or the reason they do not go + /// together. `None` when nothing adjustable was chosen. + pub fn for_objects(objects: &[(Handle, EntityType)]) -> Option> { + let (_, first) = objects.first()?; + let kind = |e: &EntityType| match e { + EntityType::Underlay(u) => Some(u.underlay_type), + _ => None, + }; + if objects.iter().any(|(_, e)| kind(e) != kind(first)) { + return Some(Err(MIXED)); + } + let subject = match first { + EntityType::RasterImage(img) => Subject::Image { + brightness: img.brightness, + contrast: img.contrast, + fade: img.fade, + }, + EntityType::Underlay(u) => Subject::Underlay { + kind: match u.underlay_type { + UnderlayType::Pdf => "PDF", + UnderlayType::Dwf => "DWF", + UnderlayType::Dgn => "DGN", + }, + monochrome: u.flags.contains(UnderlayDisplayFlags::MONOCHROME), + }, + _ => return None, + }; + Some(Ok(Self { + handles: objects.iter().map(|(h, _)| *h).collect(), + subject, + prop: None, + })) + } + + fn options_list(&self) -> &'static [Prop; 3] { + match self.subject { + Subject::Image { .. } => &IMAGE_OPTIONS, + Subject::Underlay { .. } => &UNDERLAY_OPTIONS, + } + } + + fn default_option(&self) -> Prop { + match self.subject { + Subject::Image { .. } => Prop::Brightness, + Subject::Underlay { .. } => UNDERLAY_OPTIONS[last_underlay().0.min(2)], + } + } + + fn default_value(&self, prop: Prop) -> u8 { + match (&self.subject, prop) { + (Subject::Image { brightness, .. }, Prop::Brightness) => *brightness, + (Subject::Image { contrast, .. }, Prop::Contrast) => *contrast, + (Subject::Image { fade, .. }, _) => *fade, + (Subject::Underlay { .. }, Prop::Contrast) => last_underlay().2, + (Subject::Underlay { .. }, _) => last_underlay().1, + } + } + + fn apply(&self, prop: Prop, value: u8) -> CmdResult { + if let Subject::Underlay { .. } = self.subject { + if let Ok(mut last) = LAST_UNDERLAY.lock() { + last.0 = UNDERLAY_OPTIONS.iter().position(|p| *p == prop).unwrap_or(0); + match prop { + Prop::Fade => last.1 = value, + Prop::Contrast => last.2 = value, + _ => {} + } + } + } + let handles: Vec = self + .handles + .iter() + .map(|h| format!("{:X}", h.value())) + .collect(); + CmdResult::Dispatch(format!( + "_ADJUSTAPPLY {} {} {}", + prop.key(), + value, + handles.join(" ") + )) + } +} + +/// Whether `text` names `label` (its key letter or a longer prefix, in +/// English or in the interface language). +fn names(text: &str, label: &str) -> bool { + let english = label.to_uppercase(); + let local = t!(label).to_uppercase(); + !text.is_empty() && (english.starts_with(text) || local.starts_with(text)) +} + +impl CadCommand for AdjustCommand { + fn name(&self) -> &'static str { + "ADJUST" + } + + fn prompt(&self) -> String { + match (self.prop, &self.subject) { + (None, Subject::Image { .. }) => { + t!("Enter image option [Contrast/Fade/Brightness] :").into_owned() + } + (None, Subject::Underlay { kind, .. }) => t!( + "Enter %{kind} underlay option [Fade/Contrast/Monochrome] <%{option}>:", + kind = kind, + option = t!(self.default_option().label()) + ) + .into_owned(), + (Some(Prop::Monochrome), Subject::Underlay { monochrome, .. }) => t!( + "Monochrome? [Yes/No] <%{value}>:", + value = if *monochrome { t!("Yes") } else { t!("No") } + ) + .into_owned(), + (Some(Prop::Brightness), _) => t!( + "Enter brightness value (0-100) <%{value}>:", + value = self.default_value(Prop::Brightness) + ) + .into_owned(), + (Some(Prop::Contrast), _) => t!( + "Enter contrast value (0-100) <%{value}>:", + value = self.default_value(Prop::Contrast) + ) + .into_owned(), + (Some(_), _) => t!( + "Enter fade value (0-100) <%{value}>:", + value = self.default_value(Prop::Fade) + ) + .into_owned(), + } + } + + fn options(&self) -> Vec { + match self.prop { + None => self + .options_list() + .iter() + .map(|p| CmdOption::new(p.label(), &p.label()[..1])) + .collect(), + Some(Prop::Monochrome) => vec![CmdOption::new("Yes", "Y"), CmdOption::new("No", "N")], + Some(_) => Vec::new(), + } + } + + fn input_kind(&self) -> InputKind { + InputKind::SingleToken + } + + fn on_text_input(&mut self, text: &str) -> Option { + let text = text.trim().to_uppercase(); + let invalid = || { + Some(CmdResult::ReportError( + t!("Invalid option keyword.").into_owned(), + )) + }; + match self.prop { + None => { + let chosen = if text.is_empty() { + Some(self.default_option()) + } else { + self.options_list() + .iter() + .copied() + .find(|p| names(&text, p.label())) + }; + let Some(prop) = chosen else { + return invalid(); + }; + self.prop = Some(prop); + Some(CmdResult::NeedPoint) + } + Some(Prop::Monochrome) => { + let Subject::Underlay { monochrome, .. } = self.subject else { + return Some(CmdResult::Cancel); + }; + let on = if text.is_empty() { + monochrome + } else if names(&text, "Yes") { + true + } else if names(&text, "No") { + false + } else { + return invalid(); + }; + Some(self.apply(Prop::Monochrome, on as u8)) + } + Some(prop) => { + let value = if text.is_empty() { + Some(self.default_value(prop)) + } else { + text.parse::().ok().filter(|v| *v <= 100) + }; + match (value, &self.subject) { + (Some(v), _) => Some(self.apply(prop, v)), + (None, Subject::Image { .. }) => Some(CmdResult::ReportError( + t!("Value must be an integer between 0 and 100.").into_owned(), + )), + (None, Subject::Underlay { .. }) => Some(CmdResult::ReportError( + crate::tf!("Requires an integer between {min} and {max}.", min = 0, max = 100) + .into_owned(), + )), + } + } + } + } + + fn on_point(&mut self, _pt: glam::DVec3) -> CmdResult { + CmdResult::NeedPoint + } + + fn on_enter(&mut self) -> CmdResult { + self.on_text_input("").unwrap_or(CmdResult::Cancel) + } +} + +inventory::submit!(crate::command::CommandRegistration { + names: &["-IMAGEADJUST", "PDFADJUST", "DWFADJUST", "DGNADJUST"] +}); diff --git a/src/scene/model/image_model.rs b/src/scene/model/image_model.rs index 8bb860278..1195420fa 100644 --- a/src/scene/model/image_model.rs +++ b/src/scene/model/image_model.rs @@ -252,7 +252,7 @@ impl ImageModel { Some(Self { render_instance: None, file_path: img.file_path.clone(), - pixels: decoded.pixels, + pixels: adjusted_image_pixels(&img.file_path, &decoded.pixels, img.brightness, img.contrast), width: decoded.width, height: decoded.height, opacity, @@ -659,6 +659,67 @@ pub fn clear_image_cache() { /// The result — including a `None` — is cached so the raster loader and the /// unresolved-reference placeholder agree on one answer without fetching /// twice. +/// Brightness and contrast (0–100, 50 = unchanged) as one lookup table per +/// colour channel. Measured against the reference's display of a gradient: +/// brightness is a power curve x^g with g = ((100 − B) / B)^0.72 (0 is black, +/// 100 white); contrast bends lightness around one half the same way, +/// 0.5 ± 0.5·|2x − 1|^h with h = ((100 − C) / C)^0.72 (0 is flat grey, 100 a +/// hard step). Brightness is applied first. Fade is the model's opacity. +pub(crate) fn brightness_contrast_lut(brightness: u8, contrast: u8) -> [u8; 256] { + // ponytail: the 0.72 exponent is a least-squares fit of seven measured + // levels (within about 10/255); refine with more reference samples. + let curve = |v: u8| -> f64 { (f64::from(100 - v.min(100)) / f64::from(v.min(100).max(1))).powf(0.72) }; + let mut lut = [0u8; 256]; + for (i, out) in lut.iter_mut().enumerate() { + let mut x = i as f64 / 255.0; + x = match brightness.min(100) { + 0 => 0.0, + 100 => if i == 0 { 0.0 } else { 1.0 }, + b => x.powf(curve(b)), + }; + x = match contrast.min(100) { + 0 => 0.5, + 100 => if x >= 0.5 { 1.0 } else { 0.0 }, + c => { + let d = 2.0 * x - 1.0; + 0.5 + 0.5 * d.signum() * d.abs().powf(curve(c)) + } + }; + *out = (x.clamp(0.0, 1.0) * 255.0).round() as u8; + } + lut +} + +/// The decoded raster with the entity's brightness and contrast applied, +/// memoised per source and setting (the GPU keeps textures per pixel buffer). +fn adjusted_image_pixels(path: &str, pixels: &Arc>, brightness: u8, contrast: u8) -> Arc> { + if brightness == 50 && contrast == 50 { + return Arc::clone(pixels); + } + type Key = (String, usize, u8, u8); + static CACHE: OnceLock>>>> = OnceLock::new(); + let key = (path.to_string(), Arc::as_ptr(pixels) as usize, brightness, contrast); + let cache = CACHE.get_or_init(|| Mutex::new(HashMap::new())); + if let Some(hit) = cache.lock().unwrap_or_else(|p| p.into_inner()).get(&key) { + return Arc::clone(hit); + } + let lut = brightness_contrast_lut(brightness, contrast); + let mut out = pixels.as_ref().clone(); + for px in out.chunks_exact_mut(4) { + for c in &mut px[..3] { + *c = lut[*c as usize]; + } + } + let out = Arc::new(out); + let mut cache = cache.lock().unwrap_or_else(|p| p.into_inner()); + // ponytail: cleared wholesale past 64 entries; an LRU if many images are adjusted. + if cache.len() > 64 { + cache.clear(); + } + cache.insert(key, Arc::clone(&out)); + out +} + pub fn resolve_image(path: &str) -> Option { let path = path.trim(); if path.is_empty() {