diff --git a/locales/ar-SA/opencadstudio.ftl b/locales/ar-SA/opencadstudio.ftl index fe5d8961f..6dd0fd5c2 100644 --- a/locales/ar-SA/opencadstudio.ftl +++ b/locales/ar-SA/opencadstudio.ftl @@ -1388,6 +1388,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = يتحكم في مربع التحديد المرئي ومنطقة النقر معًا. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = التطبيقات + .installed-plugins-and-their-sources = الإضافات المثبتة ومصادرها + .plugins-2 = الإضافات… + .keyboard-shortcuts-2 = اختصارات لوحة المفاتيح + .keyboard-shortcuts-3 = اختصارات لوحة المفاتيح… + .command-aliases-2 = الأسماء المستعارة للأوامر + .command-aliases-3 = الأسماء المستعارة للأوامر… + .file-safety = أمان الملفات + .automatic-save = الحفظ التلقائي + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = الدقائق بين عمليات حفظ الاسترداد في ملف ‎.sv$‎؛ القيمة 0 تعطّله (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = الاحتفاظ بنسخة ‎.bak‎ عند استبدال رسم (ISAVEBAK) + .plotting = الطباعة + .plot-device-paper-scale-and-plot-styles = جهاز الطباعة والورق والمقياس وأنماط الطباعة + .plot-and-page-setup = الطباعة وإعداد الصفحة… + .fill-truetype-glyphs-textfill = ملء محارف TrueType (TEXTFILL) + .command-line = سطر الأوامر + .prompt-lines = أسطر المطالبة + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = أسطر المطالبة المؤقتة أعلى نافذة الأوامر (CLIPROMPTLINES). + .history-fade-time = زمن تلاشي السجل + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = مدة بقاء أسطر السجل ظاهرة؛ القيمة 0 تتخطاها (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = النقر على الكائنات المتداخلة يفتح أداة اختيار + .block-edit = تحرير الكتلة + .double-click-to-edit-block-in-place-refedit = النقر المزدوج يحرر الكتلة في مكانها (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = النقر المزدوج على الكتل ذات السمات يحرر سماتها (ATTEDIT) + .user-preferences = تفضيلات المستخدم + .zoom = التكبير + .reverse-mouse-wheel-zoom-zoomwheel = عكس التكبير بعجلة الفأرة (ZOOMWHEEL) + .zoom-factor = معامل التكبير + .how-far-one-wheel-notch-zooms-zoomfactor = مقدار التكبير لكل درجة من العجلة (ZOOMFACTOR). + .text-and-dimensions = النص والأبعاد + .textedit-edits-one-object-and-ends-texteditmode = يحرر TEXTEDIT كائنًا واحدًا ثم ينتهي (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = الأبعاد المتصلة ترث طبقة ونمط البعد الأساسي (DIMCONTINUEMODE) + .qdim-origin-priority = أولوية أصل QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = النقاط التي يقيس منها QDIM. يمكن ضبطها داخل الأمر أيضًا. + .add-scales-automatically = إضافة المقاييس تلقائيًا + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = الكائنات التوضيحية التي تتبنى مقياس توضيح تم ضبطه حديثًا (ANNOAUTOSCALE). + .length-angle-and-insertion-units = وحدات الطول والزاوية والإدراج + .drawing-units-2 = وحدات الرسم… + .drafting = الرسم + .drafting-rotation = دوران الرسم + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = يدير الشعيرات المتقاطعة وشبكة الالتقاط في نظام الإحداثيات النشط (SNAPANG). + .polar-tracking-increment = زيادة التتبع القطبي + .snap-and-grid = الالتقاط والشبكة + .snap-modes-grid-spacing-and-object-snap = أوضاع الالتقاط وتباعد الشبكة والتقاط الكائنات + .drafting-settings-2 = إعدادات الرسم… + .modeling-3d = النمذجة ثلاثية الأبعاد + .display-tools = أدوات العرض + .show-the-navigation-cube-navvcube = إظهار مكعب التنقل (NAVVCUBE) + .show-the-ucs-icon-ucsicon = إظهار أيقونة نظام الإحداثيات (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = وضع أيقونة نظام الإحداثيات عند نقطة الأصل (UCSICON ORigin) + .display-resolution = دقة العرض + .applies-to-the-current-drawing = ينطبق على الرسم الحالي + .isolines-per-surface = خطوط التساوي لكل سطح + .show-silhouette-edges-on-solids-dispsilh = إظهار حواف الظل الخارجي على المجسمات (DISPSILH) + .surface-density-u = كثافة السطح U + .surface-density-v = كثافة السطح V + .surface-type = نوع السطح + .record-the-history-of-composite-solids-solidhist = تسجيل تاريخ المجسمات المركبة (SOLIDHIST) + .show-solid-history = إظهار تاريخ المجسمات + .not-available = غير متاح + .open-folder = فتح المجلد + .where-the-application-keeps-its-own-files-these-locations-are-fixed = المكان الذي يحفظ فيه التطبيق ملفاته الخاصة. هذه المواقع ثابتة. + .configuration = التهيئة + .plot-styles = أنماط الطباعة + .autosave-files = ملفات الحفظ التلقائي .selection-modes = أوضاع التحديد .use-shift-to-add-to-selection-pickadd = استخدام Shift للإضافة إلى التحديد (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = الضغط والسحب يرسم مستطيلاً بدلاً من التحديد الحر (PICKDRAG) diff --git a/locales/bg-BG/opencadstudio.ftl b/locales/bg-BG/opencadstudio.ftl index 01b8c9683..cb93e9870 100644 --- a/locales/bg-BG/opencadstudio.ftl +++ b/locales/bg-BG/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Управлява видимото поле за избор и областта за щракване. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Приложения + .installed-plugins-and-their-sources = Инсталирани добавки и техните източници + .plugins-2 = Добавки… + .keyboard-shortcuts-2 = Клавишни комбинации + .keyboard-shortcuts-3 = Клавишни комбинации… + .command-aliases-2 = Псевдоними на команди + .command-aliases-3 = Псевдоними на команди… + .file-safety = Безопасност на файловете + .automatic-save = Автоматично записване + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Минути между възстановителните записи във файл .sv$; 0 го изключва (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Запазване на копие .bak при презаписване на чертеж (ISAVEBAK) + .plotting = Чертане + .plot-device-paper-scale-and-plot-styles = Устройство за чертане, хартия, мащаб и стилове на чертане + .plot-and-page-setup = Чертане и настройка на страница… + .fill-truetype-glyphs-textfill = Запълване на глифове TrueType (TEXTFILL) + .command-line = Команден ред + .prompt-lines = Редове с подкана + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Временни редове с подкана над командния прозорец (CLIPROMPTLINES). + .history-fade-time = Време на избледняване на историята + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Колко дълго остават видими редовете от историята; 0 ги пропуска (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Щракването върху припокриващи се обекти отваря избирач + .block-edit = Редактиране на блок + .double-click-to-edit-block-in-place-refedit = Двойно щракване редактира блока на място (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Двойно щракване върху блокове с атрибути редактира атрибутите (ATTEDIT) + .user-preferences = Потребителски предпочитания + .zoom = Мащабиране + .reverse-mouse-wheel-zoom-zoomwheel = Обръщане на мащабирането с колелцето (ZOOMWHEEL) + .zoom-factor = Коефициент на мащабиране + .how-far-one-wheel-notch-zooms-zoomfactor = Колко мащабира едно щракване на колелцето (ZOOMFACTOR). + .text-and-dimensions = Текст и размери + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT редактира един обект и приключва (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Продължените размери наследяват слоя и стила на базовия размер (DIMCONTINUEMODE) + .qdim-origin-priority = Приоритет на началото на QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = От кои точки мери QDIM. Настройва се и в самата команда. + .add-scales-automatically = Автоматично добавяне на мащаби + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Кои анотативни обекти приемат новозададен мащаб на анотация (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Единици за дължина, ъгъл и вмъкване + .drawing-units-2 = Единици на чертежа… + .drafting = Чертане на ръка + .drafting-rotation = Завъртане на чертането + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Завърта мерника и мрежата за прилепване в активната ПКС (SNAPANG). + .polar-tracking-increment = Стъпка на полярно проследяване + .snap-and-grid = Прилепване и мрежа + .snap-modes-grid-spacing-and-object-snap = Режими на прилепване, стъпка на мрежата и прилепване към обекти + .drafting-settings-2 = Настройки на чертането… + .modeling-3d = 3D моделиране + .display-tools = Инструменти за изглед + .show-the-navigation-cube-navvcube = Показвай навигационния куб (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Показвай иконата на ПКС (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Поставяй иконата на ПКС в началото (UCSICON ORigin) + .display-resolution = Разделителна способност на изгледа + .applies-to-the-current-drawing = отнася се за текущия чертеж + .isolines-per-surface = Изолинии на повърхнина + .show-silhouette-edges-on-solids-dispsilh = Показвай силуетни ръбове на телата (DISPSILH) + .surface-density-u = Плътност на повърхнината U + .surface-density-v = Плътност на повърхнината V + .surface-type = Тип повърхнина + .record-the-history-of-composite-solids-solidhist = Записвай историята на съставните тела (SOLIDHIST) + .show-solid-history = Показвай историята на телата + .not-available = Не е налично + .open-folder = Отвори папката + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Къде приложението държи собствените си файлове. Тези места са фиксирани. + .configuration = Конфигурация + .plot-styles = Стилове на чертане + .autosave-files = Файлове за автоматично записване .selection-modes = Режими на избор .use-shift-to-add-to-selection-pickadd = Използвай Shift за добавяне към избора (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Натискане и влачене чертае правоъгълник вместо ласо (PICKDRAG) diff --git a/locales/cs-CZ/opencadstudio.ftl b/locales/cs-CZ/opencadstudio.ftl index 1c4332caa..16f1737ec 100644 --- a/locales/cs-CZ/opencadstudio.ftl +++ b/locales/cs-CZ/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Ovládá viditelný výběrový rámeček i oblast kliknutí. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Aplikace + .installed-plugins-and-their-sources = Nainstalované zásuvné moduly a jejich zdroje + .plugins-2 = Zásuvné moduly… + .keyboard-shortcuts-2 = Klávesové zkratky + .keyboard-shortcuts-3 = Klávesové zkratky… + .command-aliases-2 = Aliasy příkazů + .command-aliases-3 = Aliasy příkazů… + .file-safety = Bezpečnost souborů + .automatic-save = Automatické ukládání + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minuty mezi obnovovacími uloženími do souboru .sv$; 0 je vypne (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Při přepsání výkresu ponechat kopii .bak (ISAVEBAK) + .plotting = Vykreslování + .plot-device-paper-scale-and-plot-styles = Vykreslovací zařízení, papír, měřítko a styly vykreslení + .plot-and-page-setup = Vykreslit a nastavení stránky… + .fill-truetype-glyphs-textfill = Vyplňovat glyfy TrueType (TEXTFILL) + .command-line = Příkazový řádek + .prompt-lines = Řádky výzvy + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Dočasné řádky výzvy nad příkazovým oknem (CLIPROMPTLINES). + .history-fade-time = Doba mizení historie + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Jak dlouho zůstávají řádky historie viditelné; 0 je přeskočí (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Kliknutí na překrývající se objekty otevře výběr + .block-edit = Úprava bloku + .double-click-to-edit-block-in-place-refedit = Dvojklik upraví blok na místě (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Dvojklik na bloky s atributy upraví atributy (ATTEDIT) + .user-preferences = Předvolby uživatele + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Obrátit zoom kolečkem myši (ZOOMWHEEL) + .zoom-factor = Faktor zoomu + .how-far-one-wheel-notch-zooms-zoomfactor = O kolik přiblíží jeden zub kolečka (ZOOMFACTOR). + .text-and-dimensions = Text a kóty + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT upraví jeden objekt a skončí (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Navazující kóty dědí hladinu a styl základní kóty (DIMCONTINUEMODE) + .qdim-origin-priority = Priorita počátku QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = Ze kterých bodů QDIM měří. Nastavitelné i uvnitř příkazu. + .add-scales-automatically = Přidávat měřítka automaticky + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Které anotativní objekty převezmou nově nastavené měřítko anotace (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Jednotky délky, úhlu a vložení + .drawing-units-2 = Jednotky výkresu… + .drafting = Kreslení + .drafting-rotation = Otočení kreslení + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Otáčí nitkový kříž a rastr uchopení v aktivním USS (SNAPANG). + .polar-tracking-increment = Krok polárního sledování + .snap-and-grid = Uchopení a rastr + .snap-modes-grid-spacing-and-object-snap = Režimy uchopení, rozteč rastru a uchopení objektů + .drafting-settings-2 = Nastavení kreslení… + .modeling-3d = 3D modelování + .display-tools = Nástroje zobrazení + .show-the-navigation-cube-navvcube = Zobrazit navigační kostku (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Zobrazit ikonu USS (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Umístit ikonu USS do počátku (UCSICON ORigin) + .display-resolution = Rozlišení zobrazení + .applies-to-the-current-drawing = platí pro aktuální výkres + .isolines-per-surface = Izočáry na plochu + .show-silhouette-edges-on-solids-dispsilh = Zobrazit obrysové hrany těles (DISPSILH) + .surface-density-u = Hustota plochy U + .surface-density-v = Hustota plochy V + .surface-type = Typ plochy + .record-the-history-of-composite-solids-solidhist = Zaznamenávat historii složených těles (SOLIDHIST) + .show-solid-history = Zobrazit historii těles + .not-available = Není k dispozici + .open-folder = Otevřít složku + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Kde aplikace uchovává vlastní soubory. Tato umístění jsou pevná. + .configuration = Konfigurace + .plot-styles = Styly vykreslení + .autosave-files = Soubory automatického ukládání .selection-modes = Režimy výběru .use-shift-to-add-to-selection-pickadd = Použít Shift pro přidání do výběru (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Tažení kreslí obdélník místo lasa (PICKDRAG) diff --git a/locales/de-DE/opencadstudio.ftl b/locales/de-DE/opencadstudio.ftl index 42781eee3..6560a0558 100644 --- a/locales/de-DE/opencadstudio.ftl +++ b/locales/de-DE/opencadstudio.ftl @@ -1376,6 +1376,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Steuert sowohl das sichtbare Auswahlkästchen als auch den Klickbereich. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Anwendungen + .installed-plugins-and-their-sources = Installierte Plug-ins und ihre Quellen + .plugins-2 = Plug-ins… + .keyboard-shortcuts-2 = Tastenkürzel + .keyboard-shortcuts-3 = Tastenkürzel… + .command-aliases-2 = Befehlsaliase + .command-aliases-3 = Befehlsaliase… + .file-safety = Dateisicherheit + .automatic-save = Automatisches Speichern + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minuten zwischen Wiederherstellungsspeicherungen in eine .sv$-Datei; 0 schaltet es aus (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Beim Überschreiben eine .bak-Kopie behalten (ISAVEBAK) + .plotting = Plotten + .plot-device-paper-scale-and-plot-styles = Plotgerät, Papier, Maßstab und Plotstile + .plot-and-page-setup = Plotten und Seiteneinrichtung… + .fill-truetype-glyphs-textfill = TrueType-Glyphen füllen (TEXTFILL) + .command-line = Befehlszeile + .prompt-lines = Eingabeaufforderungszeilen + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Temporäre Eingabeaufforderungszeilen über dem Befehlsfenster (CLIPROMPTLINES). + .history-fade-time = Ausblendzeit des Verlaufs + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Wie lange Verlaufszeilen sichtbar bleiben; 0 überspringt sie (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Klick auf überlappende Objekte öffnet eine Auswahl + .block-edit = Blockbearbeitung + .double-click-to-edit-block-in-place-refedit = Doppelklick bearbeitet den Block an Ort und Stelle (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Doppelklick auf Blöcke mit Attributen bearbeitet diese (ATTEDIT) + .user-preferences = Benutzereinstellungen + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Mausradzoom umkehren (ZOOMWHEEL) + .zoom-factor = Zoomfaktor + .how-far-one-wheel-notch-zooms-zoomfactor = Wie weit eine Radrastung zoomt (ZOOMFACTOR). + .text-and-dimensions = Text und Bemaßung + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT bearbeitet ein Objekt und endet (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Fortgesetzte Bemaßungen erben Layer und Stil der Basisbemaßung (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM-Ursprungspriorität + .which-points-qdim-measures-from-also-settable-inside-the-command = Von welchen Punkten QDIM misst. Auch im Befehl einstellbar. + .add-scales-automatically = Maßstäbe automatisch hinzufügen + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Welche annotativen Objekte einen neu gesetzten Beschriftungsmaßstab übernehmen (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Längen-, Winkel- und Einfügeeinheiten + .drawing-units-2 = Zeichnungseinheiten… + .drafting = Entwurf + .drafting-rotation = Entwurfsdrehung + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Dreht Fadenkreuz und Fangraster im aktiven BKS (SNAPANG). + .polar-tracking-increment = Polarer Verfolgungsschritt + .snap-and-grid = Fang und Raster + .snap-modes-grid-spacing-and-object-snap = Fangmodi, Rasterabstand und Objektfang + .drafting-settings-2 = Entwurfseinstellungen… + .modeling-3d = 3D-Modellierung + .display-tools = Anzeigewerkzeuge + .show-the-navigation-cube-navvcube = Navigationswürfel anzeigen (NAVVCUBE) + .show-the-ucs-icon-ucsicon = BKS-Symbol anzeigen (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = BKS-Symbol am Ursprung platzieren (UCSICON ORigin) + .display-resolution = Anzeigeauflösung + .applies-to-the-current-drawing = gilt für die aktuelle Zeichnung + .isolines-per-surface = Isolinien pro Fläche + .show-silhouette-edges-on-solids-dispsilh = Silhouettenkanten an Volumenkörpern anzeigen (DISPSILH) + .surface-density-u = Flächendichte U + .surface-density-v = Flächendichte V + .surface-type = Flächentyp + .record-the-history-of-composite-solids-solidhist = Verlauf zusammengesetzter Volumenkörper aufzeichnen (SOLIDHIST) + .show-solid-history = Volumenkörperverlauf anzeigen + .not-available = Nicht verfügbar + .open-folder = Ordner öffnen + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Wo die Anwendung ihre eigenen Dateien ablegt. Diese Orte sind fest. + .configuration = Konfiguration + .plot-styles = Plotstile + .autosave-files = Dateien für automatisches Speichern .selection-modes = Auswahlmodi .use-shift-to-add-to-selection-pickadd = Umschalt zum Hinzufügen zur Auswahl verwenden (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Ziehen mit gedrückter Maustaste zeichnet ein Rechteck statt eines Lassos (PICKDRAG) diff --git a/locales/el-GR/opencadstudio.ftl b/locales/el-GR/opencadstudio.ftl index 96d170fd6..4adf40ce0 100644 --- a/locales/el-GR/opencadstudio.ftl +++ b/locales/el-GR/opencadstudio.ftl @@ -1377,6 +1377,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Ελέγχει τόσο το ορατό πλαίσιο επιλογής όσο και την περιοχή κλικ. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Εφαρμογές + .installed-plugins-and-their-sources = Εγκατεστημένα πρόσθετα και οι πηγές τους + .plugins-2 = Πρόσθετα… + .keyboard-shortcuts-2 = Συντομεύσεις πληκτρολογίου + .keyboard-shortcuts-3 = Συντομεύσεις πληκτρολογίου… + .command-aliases-2 = Ψευδώνυμα εντολών + .command-aliases-3 = Ψευδώνυμα εντολών… + .file-safety = Ασφάλεια αρχείων + .automatic-save = Αυτόματη αποθήκευση + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Λεπτά μεταξύ αποθηκεύσεων ανάκτησης σε αρχείο .sv$· το 0 την απενεργοποιεί (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Διατήρηση αντιγράφου .bak κατά την αντικατάσταση σχεδίου (ISAVEBAK) + .plotting = Εκτύπωση + .plot-device-paper-scale-and-plot-styles = Συσκευή εκτύπωσης, χαρτί, κλίμακα και στυλ εκτύπωσης + .plot-and-page-setup = Εκτύπωση και διαμόρφωση σελίδας… + .fill-truetype-glyphs-textfill = Γέμισμα γραμματοσειρών TrueType (TEXTFILL) + .command-line = Γραμμή εντολών + .prompt-lines = Γραμμές προτροπής + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Προσωρινές γραμμές προτροπής πάνω από το παράθυρο εντολών (CLIPROMPTLINES). + .history-fade-time = Χρόνος εξασθένισης ιστορικού + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Πόσο μένουν ορατές οι γραμμές ιστορικού· το 0 τις παραλείπει (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Το κλικ σε επικαλυπτόμενα αντικείμενα ανοίγει επιλογέα + .block-edit = Επεξεργασία μπλοκ + .double-click-to-edit-block-in-place-refedit = Διπλό κλικ για επεξεργασία μπλοκ επί τόπου (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Διπλό κλικ σε μπλοκ με χαρακτηριστικά για επεξεργασία τους (ATTEDIT) + .user-preferences = Προτιμήσεις χρήστη + .zoom = Ζουμ + .reverse-mouse-wheel-zoom-zoomwheel = Αντιστροφή ζουμ με τον τροχό (ZOOMWHEEL) + .zoom-factor = Συντελεστής ζουμ + .how-far-one-wheel-notch-zooms-zoomfactor = Πόσο ζουμάρει ένα σκαλί του τροχού (ZOOMFACTOR). + .text-and-dimensions = Κείμενο και διαστάσεις + .textedit-edits-one-object-and-ends-texteditmode = Το TEXTEDIT επεξεργάζεται ένα αντικείμενο και τερματίζει (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Οι συνεχόμενες διαστάσεις κληρονομούν επίπεδο και στυλ από τη βασική (DIMCONTINUEMODE) + .qdim-origin-priority = Προτεραιότητα αρχής QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = Από ποια σημεία μετρά το QDIM. Ρυθμίζεται και μέσα στην εντολή. + .add-scales-automatically = Αυτόματη προσθήκη κλιμάκων + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Ποια επισημειωματικά αντικείμενα παίρνουν μια νέα κλίμακα επισημείωσης (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Μονάδες μήκους, γωνίας και εισαγωγής + .drawing-units-2 = Μονάδες σχεδίου… + .drafting = Σχεδίαση + .drafting-rotation = Περιστροφή σχεδίασης + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Περιστρέφει το σταυρόνημα και το πλέγμα έλξης στο ενεργό UCS (SNAPANG). + .polar-tracking-increment = Βήμα πολικής παρακολούθησης + .snap-and-grid = Έλξη και πλέγμα + .snap-modes-grid-spacing-and-object-snap = Λειτουργίες έλξης, βήμα πλέγματος και έλξη αντικειμένων + .drafting-settings-2 = Ρυθμίσεις σχεδίασης… + .modeling-3d = Μοντελοποίηση 3D + .display-tools = Εργαλεία προβολής + .show-the-navigation-cube-navvcube = Εμφάνιση του κύβου πλοήγησης (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Εμφάνιση του εικονιδίου UCS (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Τοποθέτηση του εικονιδίου UCS στην αρχή των αξόνων (UCSICON ORigin) + .display-resolution = Ανάλυση εμφάνισης + .applies-to-the-current-drawing = ισχύει για το τρέχον σχέδιο + .isolines-per-surface = Ισοϋψείς ανά επιφάνεια + .show-silhouette-edges-on-solids-dispsilh = Εμφάνιση ακμών περιγράμματος σε στερεά (DISPSILH) + .surface-density-u = Πυκνότητα επιφάνειας U + .surface-density-v = Πυκνότητα επιφάνειας V + .surface-type = Τύπος επιφάνειας + .record-the-history-of-composite-solids-solidhist = Καταγραφή ιστορικού σύνθετων στερεών (SOLIDHIST) + .show-solid-history = Εμφάνιση ιστορικού στερεών + .not-available = Μη διαθέσιμο + .open-folder = Άνοιγμα φακέλου + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Πού κρατά η εφαρμογή τα δικά της αρχεία. Οι θέσεις αυτές είναι σταθερές. + .configuration = Ρυθμίσεις + .plot-styles = Στυλ εκτύπωσης + .autosave-files = Αρχεία αυτόματης αποθήκευσης .selection-modes = Τρόποι επιλογής .use-shift-to-add-to-selection-pickadd = Χρήση Shift για προσθήκη στην επιλογή (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Το πάτημα-και-σύρσιμο σχεδιάζει ορθογώνιο αντί για λάσο (PICKDRAG) diff --git a/locales/en-US/opencadstudio.ftl b/locales/en-US/opencadstudio.ftl index 0a4d99304..01541f940 100644 --- a/locales/en-US/opencadstudio.ftl +++ b/locales/en-US/opencadstudio.ftl @@ -1377,6 +1377,71 @@ common = .pick-box-size = Pick box size .controls-both-the-visible-selection-box-and-the-click-aperture = Controls both the visible selection box and the click aperture. .visual-effect-settings = Visual Effect Settings + .applications = Applications + .installed-plugins-and-their-sources = Installed plugins and their sources + .plugins-2 = Plugins… + .keyboard-shortcuts-2 = Keyboard shortcuts + .keyboard-shortcuts-3 = Keyboard Shortcuts… + .command-aliases-2 = Command aliases + .command-aliases-3 = Command Aliases… + .file-safety = File Safety + .automatic-save = Automatic save + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minutes between recovery saves to a .sv$ file; 0 turns it off (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Keep a .bak copy when overwriting a drawing (ISAVEBAK) + .plotting = Plotting + .plot-device-paper-scale-and-plot-styles = Plot device, paper, scale and plot styles + .plot-and-page-setup = Plot and Page Setup… + .fill-truetype-glyphs-textfill = Fill TrueType glyphs (TEXTFILL) + .command-line = Command Line + .prompt-lines = Prompt lines + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Temporary prompt lines shown above the command window (CLIPROMPTLINES). + .history-fade-time = History fade time + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = How long overlay history lines stay visible; 0 skips them (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Clicking overlapping objects opens a picker + .block-edit = Block Edit + .double-click-to-edit-block-in-place-refedit = Double-click to edit block in-place (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Double-click attributed blocks to edit attributes (ATTEDIT) + .user-preferences = User Preferences + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Reverse mouse wheel zoom (ZOOMWHEEL) + .zoom-factor = Zoom factor + .how-far-one-wheel-notch-zooms-zoomfactor = How far one wheel notch zooms (ZOOMFACTOR). + .text-and-dimensions = Text and Dimensions + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT edits one object and ends (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Continued dimensions inherit the base dimension's layer and style (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM origin priority + .which-points-qdim-measures-from-also-settable-inside-the-command = Which points QDIM measures from. Also settable inside the command. + .add-scales-automatically = Add scales automatically + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Which annotative objects pick up a newly set annotation scale (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Length, angle and insertion units + .drawing-units-2 = Drawing Units… + .drafting = Drafting + .drafting-rotation = Drafting rotation + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Rotates the crosshair and the snap grid in the active UCS (SNAPANG). + .polar-tracking-increment = Polar tracking increment + .snap-and-grid = Snap and Grid + .snap-modes-grid-spacing-and-object-snap = Snap modes, grid spacing and object snap + .drafting-settings-2 = Drafting Settings… + .modeling-3d = 3D Modeling + .display-tools = Display Tools + .show-the-navigation-cube-navvcube = Show the navigation cube (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Show the UCS icon (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Place the UCS icon at the origin (UCSICON ORigin) + .display-resolution = Display Resolution + .applies-to-the-current-drawing = applies to the current drawing + .isolines-per-surface = Isolines per surface + .show-silhouette-edges-on-solids-dispsilh = Show silhouette edges on solids (DISPSILH) + .surface-density-u = Surface density U + .surface-density-v = Surface density V + .surface-type = Surface type + .record-the-history-of-composite-solids-solidhist = Record the history of composite solids (SOLIDHIST) + .show-solid-history = Show solid history + .not-available = Not available + .open-folder = Open folder + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Where the application keeps its own files. These locations are fixed. + .configuration = Configuration + .plot-styles = Plot styles + .autosave-files = Autosave files .selection-modes = Selection Modes .use-shift-to-add-to-selection-pickadd = Use Shift to add to selection (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Press and drag draws a rectangle instead of a lasso (PICKDRAG) diff --git a/locales/es-ES/opencadstudio.ftl b/locales/es-ES/opencadstudio.ftl index 6941fa1f2..c53101c47 100644 --- a/locales/es-ES/opencadstudio.ftl +++ b/locales/es-ES/opencadstudio.ftl @@ -1376,6 +1376,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Controla tanto el cuadro de selección visible como el área de clic. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Aplicaciones + .installed-plugins-and-their-sources = Complementos instalados y sus orígenes + .plugins-2 = Complementos… + .keyboard-shortcuts-2 = Atajos de teclado + .keyboard-shortcuts-3 = Atajos de teclado… + .command-aliases-2 = Alias de comandos + .command-aliases-3 = Alias de comandos… + .file-safety = Seguridad de archivos + .automatic-save = Guardado automático + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minutos entre guardados de recuperación en un archivo .sv$; 0 lo desactiva (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Conservar una copia .bak al sobrescribir un dibujo (ISAVEBAK) + .plotting = Trazado + .plot-device-paper-scale-and-plot-styles = Dispositivo de trazado, papel, escala y estilos de trazado + .plot-and-page-setup = Trazar y configurar página… + .fill-truetype-glyphs-textfill = Rellenar glifos TrueType (TEXTFILL) + .command-line = Línea de comandos + .prompt-lines = Líneas de solicitud + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Líneas de solicitud temporales sobre la ventana de comandos (CLIPROMPTLINES). + .history-fade-time = Tiempo de desvanecimiento del historial + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Cuánto permanecen visibles las líneas del historial; 0 las omite (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Al pulsar sobre objetos superpuestos se abre un selector + .block-edit = Edición de bloque + .double-click-to-edit-block-in-place-refedit = Doble clic para editar el bloque in situ (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Doble clic en bloques con atributos para editarlos (ATTEDIT) + .user-preferences = Preferencias de usuario + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Invertir el zoom de la rueda del ratón (ZOOMWHEEL) + .zoom-factor = Factor de zoom + .how-far-one-wheel-notch-zooms-zoomfactor = Cuánto amplía un paso de la rueda (ZOOMFACTOR). + .text-and-dimensions = Texto y acotación + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT edita un objeto y termina (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Las cotas continuadas heredan la capa y el estilo de la cota base (DIMCONTINUEMODE) + .qdim-origin-priority = Prioridad de origen de QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = Desde qué puntos mide QDIM. También se ajusta dentro del comando. + .add-scales-automatically = Añadir escalas automáticamente + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Qué objetos anotativos adoptan una escala de anotación recién definida (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Unidades de longitud, ángulo e inserción + .drawing-units-2 = Unidades del dibujo… + .drafting = Dibujo + .drafting-rotation = Rotación de dibujo + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Gira la mira y la rejilla de forzado en el SCP activo (SNAPANG). + .polar-tracking-increment = Incremento de rastreo polar + .snap-and-grid = Forzado y rejilla + .snap-modes-grid-spacing-and-object-snap = Modos de forzado, espaciado de rejilla y referencia a objetos + .drafting-settings-2 = Parámetros de dibujo… + .modeling-3d = Modelado 3D + .display-tools = Herramientas de visualización + .show-the-navigation-cube-navvcube = Mostrar el cubo de navegación (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Mostrar el icono SCP (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Situar el icono SCP en el origen (UCSICON ORigin) + .display-resolution = Resolución de visualización + .applies-to-the-current-drawing = se aplica al dibujo actual + .isolines-per-surface = Isolíneas por superficie + .show-silhouette-edges-on-solids-dispsilh = Mostrar aristas de silueta en sólidos (DISPSILH) + .surface-density-u = Densidad de superficie U + .surface-density-v = Densidad de superficie V + .surface-type = Tipo de superficie + .record-the-history-of-composite-solids-solidhist = Registrar el historial de sólidos compuestos (SOLIDHIST) + .show-solid-history = Mostrar el historial de sólidos + .not-available = No disponible + .open-folder = Abrir carpeta + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Dónde guarda la aplicación sus propios archivos. Estas ubicaciones son fijas. + .configuration = Configuración + .plot-styles = Estilos de trazado + .autosave-files = Archivos de guardado automático .selection-modes = Modos de selección .use-shift-to-add-to-selection-pickadd = Usar Mayús para añadir a la selección (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Arrastrar dibuja un rectángulo en lugar de un lazo (PICKDRAG) diff --git a/locales/fi-FI/opencadstudio.ftl b/locales/fi-FI/opencadstudio.ftl index f251e2663..cc2df4dd5 100644 --- a/locales/fi-FI/opencadstudio.ftl +++ b/locales/fi-FI/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Säätää sekä näkyvää valintaruutua että napsautusaluetta. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Sovellukset + .installed-plugins-and-their-sources = Asennetut laajennukset ja niiden lähteet + .plugins-2 = Laajennukset… + .keyboard-shortcuts-2 = Pikanäppäimet + .keyboard-shortcuts-3 = Pikanäppäimet… + .command-aliases-2 = Komentojen aliakset + .command-aliases-3 = Komentojen aliakset… + .file-safety = Tiedostoturvallisuus + .automatic-save = Automaattinen tallennus + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minuutit palautustallennusten välillä .sv$-tiedostoon; 0 poistaa käytöstä (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Säilytä .bak-kopio piirustusta korvattaessa (ISAVEBAK) + .plotting = Tulostus + .plot-device-paper-scale-and-plot-styles = Tulostuslaite, paperi, mittakaava ja tulostustyylit + .plot-and-page-setup = Tulosta ja sivun asetukset… + .fill-truetype-glyphs-textfill = Täytä TrueType-merkit (TEXTFILL) + .command-line = Komentorivi + .prompt-lines = Kehoterivit + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Väliaikaiset kehoterivit komentoikkunan yläpuolella (CLIPROMPTLINES). + .history-fade-time = Historian häivytysaika + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Kuinka kauan historiarivit pysyvät näkyvissä; 0 ohittaa ne (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Päällekkäisten objektien napsauttaminen avaa valitsimen + .block-edit = Lohkon muokkaus + .double-click-to-edit-block-in-place-refedit = Kaksoisnapsautus muokkaa lohkoa paikallaan (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Kaksoisnapsautus määritteellisiin lohkoihin muokkaa määritteitä (ATTEDIT) + .user-preferences = Käyttäjäasetukset + .zoom = Zoomaus + .reverse-mouse-wheel-zoom-zoomwheel = Käännä hiiren rullan zoomaus (ZOOMWHEEL) + .zoom-factor = Zoomauskerroin + .how-far-one-wheel-notch-zooms-zoomfactor = Kuinka paljon yksi rullan pykälä zoomaa (ZOOMFACTOR). + .text-and-dimensions = Teksti ja mitoitus + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT muokkaa yhden objektin ja päättyy (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Jatketut mitat perivät perusmitan tason ja tyylin (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM-lähtöpisteen prioriteetti + .which-points-qdim-measures-from-also-settable-inside-the-command = Mistä pisteistä QDIM mittaa. Asetettavissa myös komennon sisällä. + .add-scales-automatically = Lisää mittakaavat automaattisesti + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Mitkä selittävät objektit omaksuvat juuri asetetun selitemittakaavan (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Pituus-, kulma- ja lisäysyksiköt + .drawing-units-2 = Piirustuksen yksiköt… + .drafting = Piirto + .drafting-rotation = Piirron kierto + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Kiertää hiusristikkoa ja tarttumaruudukkoa aktiivisessa UCS:ssä (SNAPANG). + .polar-tracking-increment = Polaarisen seurannan askel + .snap-and-grid = Tartunta ja ruudukko + .snap-modes-grid-spacing-and-object-snap = Tarttumatilat, ruudukkoväli ja objektitartunta + .drafting-settings-2 = Piirtoasetukset… + .modeling-3d = 3D-mallinnus + .display-tools = Näyttötyökalut + .show-the-navigation-cube-navvcube = Näytä navigointikuutio (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Näytä UCS-kuvake (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Sijoita UCS-kuvake origoon (UCSICON ORigin) + .display-resolution = Näytön tarkkuus + .applies-to-the-current-drawing = koskee nykyistä piirustusta + .isolines-per-surface = Isoviivoja pintaa kohti + .show-silhouette-edges-on-solids-dispsilh = Näytä siluettireunat kappaleissa (DISPSILH) + .surface-density-u = Pinnan tiheys U + .surface-density-v = Pinnan tiheys V + .surface-type = Pinnan tyyppi + .record-the-history-of-composite-solids-solidhist = Tallenna koostekappaleiden historia (SOLIDHIST) + .show-solid-history = Näytä kappalehistoria + .not-available = Ei käytettävissä + .open-folder = Avaa kansio + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Missä sovellus säilyttää omat tiedostonsa. Nämä sijainnit ovat kiinteät. + .configuration = Määritykset + .plot-styles = Tulostustyylit + .autosave-files = Automaattitallennuksen tiedostot .selection-modes = Valintatilat .use-shift-to-add-to-selection-pickadd = Käytä Vaihto-näppäintä valintaan lisäämiseen (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Painallus ja veto piirtää suorakulmion lasson sijaan (PICKDRAG) diff --git a/locales/fr-FR/opencadstudio.ftl b/locales/fr-FR/opencadstudio.ftl index b04978ac3..34b31d280 100644 --- a/locales/fr-FR/opencadstudio.ftl +++ b/locales/fr-FR/opencadstudio.ftl @@ -1376,6 +1376,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Contrôle à la fois la case de sélection visible et la zone de clic. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Applications + .installed-plugins-and-their-sources = Plug-ins installés et leurs sources + .plugins-2 = Plug-ins… + .keyboard-shortcuts-2 = Raccourcis clavier + .keyboard-shortcuts-3 = Raccourcis clavier… + .command-aliases-2 = Alias de commandes + .command-aliases-3 = Alias de commandes… + .file-safety = Sécurité des fichiers + .automatic-save = Enregistrement automatique + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minutes entre les enregistrements de récupération dans un fichier .sv$ ; 0 le désactive (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Conserver une copie .bak lors de l'écrasement d'un dessin (ISAVEBAK) + .plotting = Traçage + .plot-device-paper-scale-and-plot-styles = Périphérique de traçage, papier, échelle et styles de tracé + .plot-and-page-setup = Tracer et mise en page… + .fill-truetype-glyphs-textfill = Remplir les glyphes TrueType (TEXTFILL) + .command-line = Ligne de commande + .prompt-lines = Lignes d'invite + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Lignes d'invite temporaires au-dessus de la fenêtre de commande (CLIPROMPTLINES). + .history-fade-time = Durée d'estompage de l'historique + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Combien de temps les lignes d'historique restent visibles ; 0 les ignore (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Cliquer sur des objets superposés ouvre un sélecteur + .block-edit = Édition de bloc + .double-click-to-edit-block-in-place-refedit = Double-clic pour modifier le bloc sur place (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Double-clic sur les blocs avec attributs pour les modifier (ATTEDIT) + .user-preferences = Préférences utilisateur + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Inverser le zoom à la molette (ZOOMWHEEL) + .zoom-factor = Facteur de zoom + .how-far-one-wheel-notch-zooms-zoomfactor = De combien zoome un cran de molette (ZOOMFACTOR). + .text-and-dimensions = Texte et cotation + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT modifie un objet puis se termine (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Les cotes continues héritent du calque et du style de la cote de base (DIMCONTINUEMODE) + .qdim-origin-priority = Priorité d'origine QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = Depuis quels points QDIM mesure. Réglable aussi dans la commande. + .add-scales-automatically = Ajouter les échelles automatiquement + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Quels objets annotatifs adoptent une nouvelle échelle d'annotation (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Unités de longueur, d'angle et d'insertion + .drawing-units-2 = Unités du dessin… + .drafting = Dessin + .drafting-rotation = Rotation du dessin + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Fait pivoter le réticule et la grille d'accrochage dans le SCU actif (SNAPANG). + .polar-tracking-increment = Incrément de repérage polaire + .snap-and-grid = Accrochage et grille + .snap-modes-grid-spacing-and-object-snap = Modes d'accrochage, pas de la grille et accrochage aux objets + .drafting-settings-2 = Paramètres de dessin… + .modeling-3d = Modélisation 3D + .display-tools = Outils d'affichage + .show-the-navigation-cube-navvcube = Afficher le cube de navigation (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Afficher l'icône SCU (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Placer l'icône SCU à l'origine (UCSICON ORigin) + .display-resolution = Résolution d'affichage + .applies-to-the-current-drawing = s'applique au dessin en cours + .isolines-per-surface = Isolignes par surface + .show-silhouette-edges-on-solids-dispsilh = Afficher les arêtes de silhouette sur les solides (DISPSILH) + .surface-density-u = Densité de surface U + .surface-density-v = Densité de surface V + .surface-type = Type de surface + .record-the-history-of-composite-solids-solidhist = Enregistrer l'historique des solides composés (SOLIDHIST) + .show-solid-history = Afficher l'historique des solides + .not-available = Non disponible + .open-folder = Ouvrir le dossier + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Où l'application range ses propres fichiers. Ces emplacements sont fixes. + .configuration = Configuration + .plot-styles = Styles de tracé + .autosave-files = Fichiers d'enregistrement automatique .selection-modes = Modes de sélection .use-shift-to-add-to-selection-pickadd = Utiliser Maj pour ajouter à la sélection (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Le cliquer-glisser trace un rectangle au lieu d'un lasso (PICKDRAG) diff --git a/locales/hi-IN/opencadstudio.ftl b/locales/hi-IN/opencadstudio.ftl index a2a6224b3..6f6f276e0 100644 --- a/locales/hi-IN/opencadstudio.ftl +++ b/locales/hi-IN/opencadstudio.ftl @@ -1364,6 +1364,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = दिखने वाले चयन बॉक्स और क्लिक क्षेत्र दोनों को नियंत्रित करता है। .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = अनुप्रयोग + .installed-plugins-and-their-sources = स्थापित प्लगइन और उनके स्रोत + .plugins-2 = प्लगइन… + .keyboard-shortcuts-2 = कीबोर्ड शॉर्टकट + .keyboard-shortcuts-3 = कीबोर्ड शॉर्टकट… + .command-aliases-2 = कमांड उपनाम + .command-aliases-3 = कमांड उपनाम… + .file-safety = फ़ाइल सुरक्षा + .automatic-save = स्वतः सहेजना + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = .sv$ फ़ाइल में पुनर्प्राप्ति सहेजने के बीच मिनट; 0 इसे बंद करता है (SAVETIME)। + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = ड्रॉइंग को अधिलेखित करते समय .bak प्रति रखें (ISAVEBAK) + .plotting = प्लॉटिंग + .plot-device-paper-scale-and-plot-styles = प्लॉट डिवाइस, कागज़, स्केल और प्लॉट शैलियाँ + .plot-and-page-setup = प्लॉट और पेज सेटअप… + .fill-truetype-glyphs-textfill = TrueType ग्लिफ़ भरें (TEXTFILL) + .command-line = कमांड लाइन + .prompt-lines = प्रॉम्प्ट पंक्तियाँ + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = कमांड विंडो के ऊपर अस्थायी प्रॉम्प्ट पंक्तियाँ (CLIPROMPTLINES)। + .history-fade-time = इतिहास फ़ेड समय + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = इतिहास पंक्तियाँ कितनी देर दिखती हैं; 0 उन्हें छोड़ देता है (COMMANDLINEFADETIME)। + .clicking-overlapping-objects-opens-a-picker = अतिव्यापी ऑब्जेक्ट पर क्लिक करने से चयनकर्ता खुलता है + .block-edit = ब्लॉक संपादन + .double-click-to-edit-block-in-place-refedit = ब्लॉक को यथास्थान संपादित करने के लिए डबल-क्लिक करें (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = विशेषता वाले ब्लॉक पर डबल-क्लिक कर विशेषताएँ संपादित करें (ATTEDIT) + .user-preferences = उपयोगकर्ता प्राथमिकताएँ + .zoom = ज़ूम + .reverse-mouse-wheel-zoom-zoomwheel = माउस व्हील ज़ूम उलटें (ZOOMWHEEL) + .zoom-factor = ज़ूम गुणक + .how-far-one-wheel-notch-zooms-zoomfactor = व्हील का एक पायदान कितना ज़ूम करता है (ZOOMFACTOR)। + .text-and-dimensions = पाठ और आयाम + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT एक ऑब्जेक्ट संपादित कर समाप्त होता है (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = निरंतर आयाम आधार आयाम की लेयर और शैली प्राप्त करते हैं (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM मूल प्राथमिकता + .which-points-qdim-measures-from-also-settable-inside-the-command = QDIM किन बिंदुओं से मापता है। कमांड के भीतर भी सेट किया जा सकता है। + .add-scales-automatically = स्केल स्वतः जोड़ें + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = कौन-से एनोटेटिव ऑब्जेक्ट नया एनोटेशन स्केल लेते हैं (ANNOAUTOSCALE)। + .length-angle-and-insertion-units = लंबाई, कोण और सम्मिलन इकाइयाँ + .drawing-units-2 = ड्रॉइंग इकाइयाँ… + .drafting = ड्राफ्टिंग + .drafting-rotation = ड्राफ्टिंग घूर्णन + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = सक्रिय UCS में क्रॉसहेयर और स्नैप ग्रिड घुमाता है (SNAPANG)। + .polar-tracking-increment = ध्रुवीय ट्रैकिंग वृद्धि + .snap-and-grid = स्नैप और ग्रिड + .snap-modes-grid-spacing-and-object-snap = स्नैप मोड, ग्रिड अंतराल और ऑब्जेक्ट स्नैप + .drafting-settings-2 = ड्राफ्टिंग सेटिंग्स… + .modeling-3d = 3D मॉडलिंग + .display-tools = प्रदर्शन उपकरण + .show-the-navigation-cube-navvcube = नेविगेशन क्यूब दिखाएँ (NAVVCUBE) + .show-the-ucs-icon-ucsicon = UCS आइकन दिखाएँ (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = UCS आइकन मूल बिंदु पर रखें (UCSICON ORigin) + .display-resolution = प्रदर्शन विभेदन + .applies-to-the-current-drawing = वर्तमान ड्रॉइंग पर लागू + .isolines-per-surface = प्रति सतह आइसोलाइन + .show-silhouette-edges-on-solids-dispsilh = ठोसों पर सिल्हूट किनारे दिखाएँ (DISPSILH) + .surface-density-u = सतह घनत्व U + .surface-density-v = सतह घनत्व V + .surface-type = सतह प्रकार + .record-the-history-of-composite-solids-solidhist = संयुक्त ठोसों का इतिहास रिकॉर्ड करें (SOLIDHIST) + .show-solid-history = ठोस इतिहास दिखाएँ + .not-available = उपलब्ध नहीं + .open-folder = फ़ोल्डर खोलें + .where-the-application-keeps-its-own-files-these-locations-are-fixed = अनुप्रयोग अपनी फ़ाइलें कहाँ रखता है। ये स्थान निश्चित हैं। + .configuration = विन्यास + .plot-styles = प्लॉट शैलियाँ + .autosave-files = स्वतः सहेजी फ़ाइलें .selection-modes = चयन मोड .use-shift-to-add-to-selection-pickadd = चयन में जोड़ने के लिए Shift का उपयोग करें (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = दबाकर खींचने पर लैस्सो के बजाय आयत बनता है (PICKDRAG) diff --git a/locales/hu-HU/opencadstudio.ftl b/locales/hu-HU/opencadstudio.ftl index 373ac32e8..9f8e66a81 100644 --- a/locales/hu-HU/opencadstudio.ftl +++ b/locales/hu-HU/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = A látható kijelölőnégyzetet és a kattintási területet is szabályozza. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Alkalmazások + .installed-plugins-and-their-sources = Telepített bővítmények és forrásaik + .plugins-2 = Bővítmények… + .keyboard-shortcuts-2 = Billentyűparancsok + .keyboard-shortcuts-3 = Billentyűparancsok… + .command-aliases-2 = Parancs-álnevek + .command-aliases-3 = Parancs-álnevek… + .file-safety = Fájlbiztonság + .automatic-save = Automatikus mentés + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Percek a .sv$ helyreállítási mentések között; a 0 kikapcsolja (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Rajz felülírásakor .bak másolat megőrzése (ISAVEBAK) + .plotting = Nyomtatás + .plot-device-paper-scale-and-plot-styles = Nyomtatóeszköz, papír, méretarány és nyomtatási stílusok + .plot-and-page-setup = Nyomtatás és oldalbeállítás… + .fill-truetype-glyphs-textfill = TrueType karakterek kitöltése (TEXTFILL) + .command-line = Parancssor + .prompt-lines = Kérdéssorok + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Ideiglenes kérdéssorok a parancsablak fölött (CLIPROMPTLINES). + .history-fade-time = Előzmények elhalványulási ideje + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Meddig maradnak láthatók az előzménysorok; a 0 kihagyja őket (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Átfedő objektumokra kattintva választó nyílik + .block-edit = Blokkszerkesztés + .double-click-to-edit-block-in-place-refedit = Dupla kattintás a blokk helyben szerkesztéséhez (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Dupla kattintás az attribútumos blokkok attribútumainak szerkesztéséhez (ATTEDIT) + .user-preferences = Felhasználói beállítások + .zoom = Nagyítás + .reverse-mouse-wheel-zoom-zoomwheel = Egérgörgős nagyítás megfordítása (ZOOMWHEEL) + .zoom-factor = Nagyítási tényező + .how-far-one-wheel-notch-zooms-zoomfactor = Mennyit nagyít egy görgőkattanás (ZOOMFACTOR). + .text-and-dimensions = Szöveg és méretezés + .textedit-edits-one-object-and-ends-texteditmode = A TEXTEDIT egy objektumot szerkeszt, majd befejezi (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = A folytatott méretek öröklik az alapméret fóliáját és stílusát (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM kiindulási prioritás + .which-points-qdim-measures-from-also-settable-inside-the-command = Mely pontoktól mér a QDIM. A parancson belül is beállítható. + .add-scales-automatically = Méretarányok automatikus hozzáadása + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Mely annotatív objektumok veszik át az újonnan beállított feliratozási méretarányt (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Hossz-, szög- és beszúrási egységek + .drawing-units-2 = Rajzegységek… + .drafting = Rajzolás + .drafting-rotation = Rajzolási elforgatás + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Elforgatja a szálkeresztet és az illesztőrácsot az aktív FKR-ben (SNAPANG). + .polar-tracking-increment = Poláris követési lépés + .snap-and-grid = Illesztés és rács + .snap-modes-grid-spacing-and-object-snap = Illesztési módok, rácstávolság és tárgyraszter + .drafting-settings-2 = Rajzolási beállítások… + .modeling-3d = 3D modellezés + .display-tools = Megjelenítési eszközök + .show-the-navigation-cube-navvcube = Navigációs kocka megjelenítése (NAVVCUBE) + .show-the-ucs-icon-ucsicon = FKR ikon megjelenítése (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = FKR ikon elhelyezése az origóban (UCSICON ORigin) + .display-resolution = Megjelenítési felbontás + .applies-to-the-current-drawing = az aktuális rajzra vonatkozik + .isolines-per-surface = Izovonalak felületenként + .show-silhouette-edges-on-solids-dispsilh = Sziluettélek megjelenítése testeken (DISPSILH) + .surface-density-u = Felületsűrűség U + .surface-density-v = Felületsűrűség V + .surface-type = Felülettípus + .record-the-history-of-composite-solids-solidhist = Összetett testek előzményeinek rögzítése (SOLIDHIST) + .show-solid-history = Testelőzmények megjelenítése + .not-available = Nem érhető el + .open-folder = Mappa megnyitása + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Hol tárolja az alkalmazás a saját fájljait. Ezek a helyek rögzítettek. + .configuration = Konfiguráció + .plot-styles = Nyomtatási stílusok + .autosave-files = Automatikus mentés fájljai .selection-modes = Kijelölési módok .use-shift-to-add-to-selection-pickadd = Shift használata a kijelöléshez adáshoz (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = A lenyomva húzás téglalapot rajzol lasszó helyett (PICKDRAG) diff --git a/locales/it-IT/opencadstudio.ftl b/locales/it-IT/opencadstudio.ftl index f2fb32860..264c68dc2 100644 --- a/locales/it-IT/opencadstudio.ftl +++ b/locales/it-IT/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Controlla sia il riquadro di selezione visibile sia l’area di clic. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Applicazioni + .installed-plugins-and-their-sources = Plug-in installati e relative origini + .plugins-2 = Plug-in… + .keyboard-shortcuts-2 = Scorciatoie da tastiera + .keyboard-shortcuts-3 = Scorciatoie da tastiera… + .command-aliases-2 = Alias dei comandi + .command-aliases-3 = Alias dei comandi… + .file-safety = Sicurezza dei file + .automatic-save = Salvataggio automatico + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minuti tra i salvataggi di ripristino in un file .sv$; 0 lo disattiva (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Conserva una copia .bak quando si sovrascrive un disegno (ISAVEBAK) + .plotting = Stampa + .plot-device-paper-scale-and-plot-styles = Dispositivo di stampa, foglio, scala e stili di stampa + .plot-and-page-setup = Stampa e imposta pagina… + .fill-truetype-glyphs-textfill = Riempi i glifi TrueType (TEXTFILL) + .command-line = Riga di comando + .prompt-lines = Righe di richiesta + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Righe di richiesta temporanee sopra la finestra dei comandi (CLIPROMPTLINES). + .history-fade-time = Tempo di dissolvenza della cronologia + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Per quanto restano visibili le righe di cronologia; 0 le salta (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Fare clic su oggetti sovrapposti apre un selettore + .block-edit = Modifica blocco + .double-click-to-edit-block-in-place-refedit = Doppio clic per modificare il blocco sul posto (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Doppio clic sui blocchi con attributi per modificarli (ATTEDIT) + .user-preferences = Preferenze utente + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Inverti lo zoom con la rotellina (ZOOMWHEEL) + .zoom-factor = Fattore di zoom + .how-far-one-wheel-notch-zooms-zoomfactor = Di quanto ingrandisce uno scatto della rotellina (ZOOMFACTOR). + .text-and-dimensions = Testo e quote + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT modifica un oggetto e termina (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Le quote continue ereditano layer e stile dalla quota di base (DIMCONTINUEMODE) + .qdim-origin-priority = Priorità di origine QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = Da quali punti misura QDIM. Impostabile anche dentro il comando. + .add-scales-automatically = Aggiungi scale automaticamente + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Quali oggetti annotativi adottano una scala di annotazione appena impostata (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Unità di lunghezza, angolo e inserimento + .drawing-units-2 = Unità del disegno… + .drafting = Disegno + .drafting-rotation = Rotazione di disegno + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Ruota il mirino e la griglia di snap nell'UCS attivo (SNAPANG). + .polar-tracking-increment = Incremento di puntamento polare + .snap-and-grid = Snap e griglia + .snap-modes-grid-spacing-and-object-snap = Modalità di snap, passo della griglia e snap agli oggetti + .drafting-settings-2 = Impostazioni disegno… + .modeling-3d = Modellazione 3D + .display-tools = Strumenti di visualizzazione + .show-the-navigation-cube-navvcube = Mostra il cubo di navigazione (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Mostra l'icona UCS (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Colloca l'icona UCS nell'origine (UCSICON ORigin) + .display-resolution = Risoluzione di visualizzazione + .applies-to-the-current-drawing = si applica al disegno corrente + .isolines-per-surface = Isolinee per superficie + .show-silhouette-edges-on-solids-dispsilh = Mostra i bordi di silhouette sui solidi (DISPSILH) + .surface-density-u = Densità superficie U + .surface-density-v = Densità superficie V + .surface-type = Tipo di superficie + .record-the-history-of-composite-solids-solidhist = Registra la cronologia dei solidi composti (SOLIDHIST) + .show-solid-history = Mostra la cronologia dei solidi + .not-available = Non disponibile + .open-folder = Apri cartella + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Dove l'applicazione tiene i propri file. Queste posizioni sono fisse. + .configuration = Configurazione + .plot-styles = Stili di stampa + .autosave-files = File di salvataggio automatico .selection-modes = Modalità di selezione .use-shift-to-add-to-selection-pickadd = Usa Maiusc per aggiungere alla selezione (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Premi e trascina disegna un rettangolo invece di un lazo (PICKDRAG) diff --git a/locales/ja-JP/opencadstudio.ftl b/locales/ja-JP/opencadstudio.ftl index d6d37b14a..a1e8ace50 100644 --- a/locales/ja-JP/opencadstudio.ftl +++ b/locales/ja-JP/opencadstudio.ftl @@ -1366,6 +1366,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = 表示される選択ボックスとクリック範囲の両方を制御します。 .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = アプリケーション + .installed-plugins-and-their-sources = インストール済みプラグインとその提供元 + .plugins-2 = プラグイン… + .keyboard-shortcuts-2 = キーボード ショートカット + .keyboard-shortcuts-3 = キーボード ショートカット… + .command-aliases-2 = コマンド エイリアス + .command-aliases-3 = コマンド エイリアス… + .file-safety = ファイルの安全性 + .automatic-save = 自動保存 + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = .sv$ ファイルへの復旧保存の間隔 (分)。0 で無効 (SAVETIME)。 + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = 図面を上書きするとき .bak のコピーを残す (ISAVEBAK) + .plotting = 印刷 + .plot-device-paper-scale-and-plot-styles = 印刷デバイス、用紙、尺度、印刷スタイル + .plot-and-page-setup = 印刷とページ設定… + .fill-truetype-glyphs-textfill = TrueType グリフを塗りつぶす (TEXTFILL) + .command-line = コマンド ライン + .prompt-lines = プロンプト行 + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = コマンド ウィンドウの上に表示する一時プロンプト行 (CLIPROMPTLINES)。 + .history-fade-time = 履歴のフェード時間 + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = 履歴行が表示され続ける時間。0 で表示しない (COMMANDLINEFADETIME)。 + .clicking-overlapping-objects-opens-a-picker = 重なったオブジェクトをクリックすると選択リストが開く + .block-edit = ブロック編集 + .double-click-to-edit-block-in-place-refedit = ダブルクリックでブロックをその場で編集 (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = 属性付きブロックをダブルクリックして属性を編集 (ATTEDIT) + .user-preferences = ユーザー設定 + .zoom = ズーム + .reverse-mouse-wheel-zoom-zoomwheel = マウス ホイールのズーム方向を反転 (ZOOMWHEEL) + .zoom-factor = ズーム倍率 + .how-far-one-wheel-notch-zooms-zoomfactor = ホイール 1 ノッチのズーム量 (ZOOMFACTOR)。 + .text-and-dimensions = 文字と寸法 + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT は 1 つのオブジェクトを編集して終了 (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = 連続寸法は基準寸法の画層とスタイルを引き継ぐ (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM の起点優先 + .which-points-qdim-measures-from-also-settable-inside-the-command = QDIM が測定する点。コマンド内でも設定できます。 + .add-scales-automatically = 尺度を自動的に追加 + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = 新しく設定した注釈尺度を受け取る注釈オブジェクト (ANNOAUTOSCALE)。 + .length-angle-and-insertion-units = 長さ、角度、挿入の単位 + .drawing-units-2 = 図面単位… + .drafting = 作図 + .drafting-rotation = 作図の回転 + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = アクティブな UCS でクロスヘアとスナップ グリッドを回転します (SNAPANG)。 + .polar-tracking-increment = 極トラッキングの増分 + .snap-and-grid = スナップとグリッド + .snap-modes-grid-spacing-and-object-snap = スナップ モード、グリッド間隔、オブジェクト スナップ + .drafting-settings-2 = 作図設定… + .modeling-3d = 3D モデリング + .display-tools = 表示ツール + .show-the-navigation-cube-navvcube = ナビゲーション キューブを表示 (NAVVCUBE) + .show-the-ucs-icon-ucsicon = UCS アイコンを表示 (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = UCS アイコンを原点に配置 (UCSICON ORigin) + .display-resolution = 表示解像度 + .applies-to-the-current-drawing = 現在の図面に適用されます + .isolines-per-surface = 面あたりのアイソライン + .show-silhouette-edges-on-solids-dispsilh = ソリッドのシルエット エッジを表示 (DISPSILH) + .surface-density-u = サーフェス密度 U + .surface-density-v = サーフェス密度 V + .surface-type = サーフェス タイプ + .record-the-history-of-composite-solids-solidhist = 複合ソリッドの履歴を記録 (SOLIDHIST) + .show-solid-history = ソリッドの履歴を表示 + .not-available = 利用できません + .open-folder = フォルダーを開く + .where-the-application-keeps-its-own-files-these-locations-are-fixed = アプリケーションが自身のファイルを置く場所です。これらの場所は固定です。 + .configuration = 構成 + .plot-styles = 印刷スタイル + .autosave-files = 自動保存ファイル .selection-modes = 選択モード .use-shift-to-add-to-selection-pickadd = Shift キーで選択に追加する (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = ドラッグで投げ縄ではなく矩形を描く (PICKDRAG) diff --git a/locales/ko-KR/opencadstudio.ftl b/locales/ko-KR/opencadstudio.ftl index c4423adb6..2a1c41d76 100644 --- a/locales/ko-KR/opencadstudio.ftl +++ b/locales/ko-KR/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = 표시되는 선택 상자와 클릭 영역을 모두 제어합니다. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = 응용 프로그램 + .installed-plugins-and-their-sources = 설치된 플러그인 및 해당 소스 + .plugins-2 = 플러그인… + .keyboard-shortcuts-2 = 키보드 단축키 + .keyboard-shortcuts-3 = 키보드 단축키… + .command-aliases-2 = 명령 별칭 + .command-aliases-3 = 명령 별칭… + .file-safety = 파일 안전 + .automatic-save = 자동 저장 + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = .sv$ 파일로 복구 저장하는 간격(분). 0이면 해제 (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = 도면을 덮어쓸 때 .bak 사본 유지 (ISAVEBAK) + .plotting = 플롯 + .plot-device-paper-scale-and-plot-styles = 플롯 장치, 용지, 축척 및 플롯 스타일 + .plot-and-page-setup = 플롯 및 페이지 설정… + .fill-truetype-glyphs-textfill = TrueType 글리프 채우기 (TEXTFILL) + .command-line = 명령행 + .prompt-lines = 프롬프트 행 + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = 명령 창 위에 표시할 임시 프롬프트 행 (CLIPROMPTLINES). + .history-fade-time = 히스토리 페이드 시간 + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = 히스토리 행이 표시되는 시간. 0이면 건너뜀 (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = 겹친 객체를 클릭하면 선택기가 열림 + .block-edit = 블록 편집 + .double-click-to-edit-block-in-place-refedit = 두 번 클릭하여 블록을 제자리에서 편집 (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = 속성이 있는 블록을 두 번 클릭하여 속성 편집 (ATTEDIT) + .user-preferences = 사용자 환경설정 + .zoom = 줌 + .reverse-mouse-wheel-zoom-zoomwheel = 마우스 휠 줌 방향 반전 (ZOOMWHEEL) + .zoom-factor = 줌 배율 + .how-far-one-wheel-notch-zooms-zoomfactor = 휠 한 칸이 확대하는 정도 (ZOOMFACTOR). + .text-and-dimensions = 문자 및 치수 + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT는 객체 하나를 편집하고 종료 (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = 연속 치수가 기준 치수의 도면층과 스타일을 상속 (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM 원점 우선순위 + .which-points-qdim-measures-from-also-settable-inside-the-command = QDIM이 측정하는 점. 명령 안에서도 설정할 수 있습니다. + .add-scales-automatically = 축척 자동 추가 + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = 새로 설정한 주석 축척을 적용받을 주석 객체 (ANNOAUTOSCALE). + .length-angle-and-insertion-units = 길이, 각도 및 삽입 단위 + .drawing-units-2 = 도면 단위… + .drafting = 제도 + .drafting-rotation = 제도 회전 + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = 활성 UCS에서 십자선과 스냅 그리드를 회전합니다 (SNAPANG). + .polar-tracking-increment = 극좌표 추적 증분 + .snap-and-grid = 스냅 및 그리드 + .snap-modes-grid-spacing-and-object-snap = 스냅 모드, 그리드 간격 및 객체 스냅 + .drafting-settings-2 = 제도 설정… + .modeling-3d = 3D 모델링 + .display-tools = 표시 도구 + .show-the-navigation-cube-navvcube = 탐색 큐브 표시 (NAVVCUBE) + .show-the-ucs-icon-ucsicon = UCS 아이콘 표시 (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = UCS 아이콘을 원점에 배치 (UCSICON ORigin) + .display-resolution = 표시 해상도 + .applies-to-the-current-drawing = 현재 도면에 적용됩니다 + .isolines-per-surface = 곡면당 아이소라인 + .show-silhouette-edges-on-solids-dispsilh = 솔리드의 실루엣 모서리 표시 (DISPSILH) + .surface-density-u = 곡면 밀도 U + .surface-density-v = 곡면 밀도 V + .surface-type = 곡면 유형 + .record-the-history-of-composite-solids-solidhist = 복합 솔리드의 히스토리 기록 (SOLIDHIST) + .show-solid-history = 솔리드 히스토리 표시 + .not-available = 사용할 수 없음 + .open-folder = 폴더 열기 + .where-the-application-keeps-its-own-files-these-locations-are-fixed = 응용 프로그램이 자체 파일을 두는 위치입니다. 이 위치는 고정입니다. + .configuration = 구성 + .plot-styles = 플롯 스타일 + .autosave-files = 자동 저장 파일 .selection-modes = 선택 모드 .use-shift-to-add-to-selection-pickadd = Shift 키로 선택에 추가 (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = 누른 채 끌면 올가미 대신 사각형을 그림 (PICKDRAG) diff --git a/locales/nl-NL/opencadstudio.ftl b/locales/nl-NL/opencadstudio.ftl index 1d9c99d55..9f7b7c1fe 100644 --- a/locales/nl-NL/opencadstudio.ftl +++ b/locales/nl-NL/opencadstudio.ftl @@ -1374,6 +1374,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Bepaalt zowel het zichtbare selectievak als het klikgebied. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Toepassingen + .installed-plugins-and-their-sources = Geïnstalleerde plug-ins en hun bronnen + .plugins-2 = Plug-ins… + .keyboard-shortcuts-2 = Sneltoetsen + .keyboard-shortcuts-3 = Sneltoetsen… + .command-aliases-2 = Opdrachtaliassen + .command-aliases-3 = Opdrachtaliassen… + .file-safety = Bestandsveiligheid + .automatic-save = Automatisch opslaan + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minuten tussen herstelopslagen naar een .sv$-bestand; 0 schakelt het uit (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Een .bak-kopie bewaren bij het overschrijven van een tekening (ISAVEBAK) + .plotting = Plotten + .plot-device-paper-scale-and-plot-styles = Plotapparaat, papier, schaal en plotstijlen + .plot-and-page-setup = Plotten en pagina-instelling… + .fill-truetype-glyphs-textfill = TrueType-glyphs vullen (TEXTFILL) + .command-line = Opdrachtregel + .prompt-lines = Promptregels + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Tijdelijke promptregels boven het opdrachtvenster (CLIPROMPTLINES). + .history-fade-time = Vervaagtijd van geschiedenis + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Hoe lang geschiedenisregels zichtbaar blijven; 0 slaat ze over (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Klikken op overlappende objecten opent een kiezer + .block-edit = Blok bewerken + .double-click-to-edit-block-in-place-refedit = Dubbelklik om het blok ter plaatse te bewerken (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Dubbelklik op blokken met attributen om die te bewerken (ATTEDIT) + .user-preferences = Gebruikersvoorkeuren + .zoom = Zoomen + .reverse-mouse-wheel-zoom-zoomwheel = Muiswielzoom omkeren (ZOOMWHEEL) + .zoom-factor = Zoomfactor + .how-far-one-wheel-notch-zooms-zoomfactor = Hoeveel één wielklik zoomt (ZOOMFACTOR). + .text-and-dimensions = Tekst en maatvoering + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT bewerkt één object en stopt (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Doorlopende maten erven laag en stijl van de basismaat (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM-oorsprongprioriteit + .which-points-qdim-measures-from-also-settable-inside-the-command = Vanaf welke punten QDIM meet. Ook in te stellen binnen de opdracht. + .add-scales-automatically = Schalen automatisch toevoegen + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Welke annotatieve objecten een nieuw ingestelde annotatieschaal overnemen (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Lengte-, hoek- en invoegeenheden + .drawing-units-2 = Tekeneenheden… + .drafting = Tekenen + .drafting-rotation = Tekenrotatie + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Draait het draadkruis en het vangraster in het actieve BCS (SNAPANG). + .polar-tracking-increment = Polaire volgstap + .snap-and-grid = Vang en raster + .snap-modes-grid-spacing-and-object-snap = Vangmodi, rasterafstand en objectvang + .drafting-settings-2 = Tekeninstellingen… + .modeling-3d = 3D-modelleren + .display-tools = Weergavegereedschappen + .show-the-navigation-cube-navvcube = Navigatiekubus tonen (NAVVCUBE) + .show-the-ucs-icon-ucsicon = BCS-pictogram tonen (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = BCS-pictogram op de oorsprong plaatsen (UCSICON ORigin) + .display-resolution = Weergaveresolutie + .applies-to-the-current-drawing = geldt voor de huidige tekening + .isolines-per-surface = Isolijnen per oppervlak + .show-silhouette-edges-on-solids-dispsilh = Silhouetranden op vaste lichamen tonen (DISPSILH) + .surface-density-u = Oppervlakdichtheid U + .surface-density-v = Oppervlakdichtheid V + .surface-type = Oppervlaktype + .record-the-history-of-composite-solids-solidhist = Geschiedenis van samengestelde vaste lichamen vastleggen (SOLIDHIST) + .show-solid-history = Geschiedenis van vaste lichamen tonen + .not-available = Niet beschikbaar + .open-folder = Map openen + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Waar de toepassing haar eigen bestanden bewaart. Deze locaties liggen vast. + .configuration = Configuratie + .plot-styles = Plotstijlen + .autosave-files = Bestanden voor automatisch opslaan .selection-modes = Selectiemodi .use-shift-to-add-to-selection-pickadd = Shift gebruiken om aan de selectie toe te voegen (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Slepen tekent een rechthoek in plaats van een lasso (PICKDRAG) diff --git a/locales/pl-PL/opencadstudio.ftl b/locales/pl-PL/opencadstudio.ftl index 13bad04bc..03d2eeddd 100644 --- a/locales/pl-PL/opencadstudio.ftl +++ b/locales/pl-PL/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Steruje widocznym polem wyboru oraz obszarem kliknięcia. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Aplikacje + .installed-plugins-and-their-sources = Zainstalowane wtyczki i ich źródła + .plugins-2 = Wtyczki… + .keyboard-shortcuts-2 = Skróty klawiszowe + .keyboard-shortcuts-3 = Skróty klawiszowe… + .command-aliases-2 = Aliasy poleceń + .command-aliases-3 = Aliasy poleceń… + .file-safety = Bezpieczeństwo plików + .automatic-save = Automatyczny zapis + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minuty między zapisami odzyskiwania do pliku .sv$; 0 wyłącza (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Zachowaj kopię .bak przy nadpisywaniu rysunku (ISAVEBAK) + .plotting = Kreślenie + .plot-device-paper-scale-and-plot-styles = Urządzenie kreślące, papier, skala i style wydruku + .plot-and-page-setup = Kreśl i ustawienia strony… + .fill-truetype-glyphs-textfill = Wypełniaj glify TrueType (TEXTFILL) + .command-line = Wiersz poleceń + .prompt-lines = Wiersze zachęty + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Tymczasowe wiersze zachęty nad oknem poleceń (CLIPROMPTLINES). + .history-fade-time = Czas zanikania historii + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Jak długo wiersze historii pozostają widoczne; 0 je pomija (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Kliknięcie nakładających się obiektów otwiera selektor + .block-edit = Edycja bloku + .double-click-to-edit-block-in-place-refedit = Dwukrotne kliknięcie edytuje blok w miejscu (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Dwukrotne kliknięcie bloków z atrybutami edytuje atrybuty (ATTEDIT) + .user-preferences = Preferencje użytkownika + .zoom = Powiększenie + .reverse-mouse-wheel-zoom-zoomwheel = Odwróć powiększanie kółkiem myszy (ZOOMWHEEL) + .zoom-factor = Współczynnik powiększenia + .how-far-one-wheel-notch-zooms-zoomfactor = O ile powiększa jedno kliknięcie kółka (ZOOMFACTOR). + .text-and-dimensions = Tekst i wymiary + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT edytuje jeden obiekt i kończy (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Wymiary kontynuowane dziedziczą warstwę i styl wymiaru bazowego (DIMCONTINUEMODE) + .qdim-origin-priority = Priorytet początku QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = Od których punktów mierzy QDIM. Ustawiane też wewnątrz polecenia. + .add-scales-automatically = Dodawaj skale automatycznie + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Które obiekty adnotacyjne przyjmują nowo ustawioną skalę adnotacji (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Jednostki długości, kąta i wstawiania + .drawing-units-2 = Jednostki rysunku… + .drafting = Kreślenie ręczne + .drafting-rotation = Obrót rysowania + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Obraca celownik i siatkę przyciągania w aktywnym LUW (SNAPANG). + .polar-tracking-increment = Przyrost śledzenia biegunowego + .snap-and-grid = Przyciąganie i siatka + .snap-modes-grid-spacing-and-object-snap = Tryby przyciągania, odstęp siatki i przyciąganie do obiektów + .drafting-settings-2 = Ustawienia rysowania… + .modeling-3d = Modelowanie 3D + .display-tools = Narzędzia wyświetlania + .show-the-navigation-cube-navvcube = Pokaż kostkę nawigacji (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Pokaż ikonę LUW (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Umieść ikonę LUW w początku układu (UCSICON ORigin) + .display-resolution = Rozdzielczość wyświetlania + .applies-to-the-current-drawing = dotyczy bieżącego rysunku + .isolines-per-surface = Izolinie na powierzchnię + .show-silhouette-edges-on-solids-dispsilh = Pokaż krawędzie sylwetki na bryłach (DISPSILH) + .surface-density-u = Gęstość powierzchni U + .surface-density-v = Gęstość powierzchni V + .surface-type = Typ powierzchni + .record-the-history-of-composite-solids-solidhist = Zapisuj historię brył złożonych (SOLIDHIST) + .show-solid-history = Pokaż historię brył + .not-available = Niedostępne + .open-folder = Otwórz folder + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Gdzie aplikacja przechowuje własne pliki. Te lokalizacje są stałe. + .configuration = Konfiguracja + .plot-styles = Style wydruku + .autosave-files = Pliki automatycznego zapisu .selection-modes = Tryby zaznaczania .use-shift-to-add-to-selection-pickadd = Użyj klawisza Shift, aby dodać do zaznaczenia (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Przeciąganie rysuje prostokąt zamiast lassa (PICKDRAG) diff --git a/locales/pt-BR/opencadstudio.ftl b/locales/pt-BR/opencadstudio.ftl index 58cf1b3d3..fefe16cea 100644 --- a/locales/pt-BR/opencadstudio.ftl +++ b/locales/pt-BR/opencadstudio.ftl @@ -1376,6 +1376,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Controla tanto a caixa de seleção visível quanto a área de clique. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Aplicativos + .installed-plugins-and-their-sources = Plug-ins instalados e suas origens + .plugins-2 = Plug-ins… + .keyboard-shortcuts-2 = Atalhos de teclado + .keyboard-shortcuts-3 = Atalhos de teclado… + .command-aliases-2 = Apelidos de comandos + .command-aliases-3 = Apelidos de comandos… + .file-safety = Segurança de arquivos + .automatic-save = Salvamento automático + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Minutos entre salvamentos de recuperação em um arquivo .sv$; 0 desativa (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Manter uma cópia .bak ao sobrescrever um desenho (ISAVEBAK) + .plotting = Plotagem + .plot-device-paper-scale-and-plot-styles = Dispositivo de plotagem, papel, escala e estilos de plotagem + .plot-and-page-setup = Plotar e configurar página… + .fill-truetype-glyphs-textfill = Preencher glifos TrueType (TEXTFILL) + .command-line = Linha de comando + .prompt-lines = Linhas de solicitação + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Linhas de solicitação temporárias acima da janela de comandos (CLIPROMPTLINES). + .history-fade-time = Tempo de esmaecimento do histórico + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Quanto tempo as linhas de histórico ficam visíveis; 0 as ignora (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Clicar em objetos sobrepostos abre um seletor + .block-edit = Edição de bloco + .double-click-to-edit-block-in-place-refedit = Duplo clique para editar o bloco no local (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Duplo clique em blocos com atributos para editá-los (ATTEDIT) + .user-preferences = Preferências do usuário + .zoom = Zoom + .reverse-mouse-wheel-zoom-zoomwheel = Inverter o zoom da roda do mouse (ZOOMWHEEL) + .zoom-factor = Fator de zoom + .how-far-one-wheel-notch-zooms-zoomfactor = Quanto um passo da roda amplia (ZOOMFACTOR). + .text-and-dimensions = Texto e cotas + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT edita um objeto e encerra (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Cotas continuadas herdam camada e estilo da cota base (DIMCONTINUEMODE) + .qdim-origin-priority = Prioridade de origem do QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = De quais pontos o QDIM mede. Também ajustável dentro do comando. + .add-scales-automatically = Adicionar escalas automaticamente + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Quais objetos anotativos recebem uma escala de anotação recém-definida (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Unidades de comprimento, ângulo e inserção + .drawing-units-2 = Unidades do desenho… + .drafting = Desenho + .drafting-rotation = Rotação de desenho + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Gira a mira e a grade de precisão no UCS ativo (SNAPANG). + .polar-tracking-increment = Incremento de rastreamento polar + .snap-and-grid = Precisão e grade + .snap-modes-grid-spacing-and-object-snap = Modos de precisão, espaçamento da grade e osnap + .drafting-settings-2 = Configurações de desenho… + .modeling-3d = Modelagem 3D + .display-tools = Ferramentas de exibição + .show-the-navigation-cube-navvcube = Mostrar o cubo de navegação (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Mostrar o ícone UCS (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Colocar o ícone UCS na origem (UCSICON ORigin) + .display-resolution = Resolução de exibição + .applies-to-the-current-drawing = aplica-se ao desenho atual + .isolines-per-surface = Isolinhas por superfície + .show-silhouette-edges-on-solids-dispsilh = Mostrar arestas de silhueta em sólidos (DISPSILH) + .surface-density-u = Densidade de superfície U + .surface-density-v = Densidade de superfície V + .surface-type = Tipo de superfície + .record-the-history-of-composite-solids-solidhist = Registrar o histórico de sólidos compostos (SOLIDHIST) + .show-solid-history = Mostrar o histórico de sólidos + .not-available = Não disponível + .open-folder = Abrir pasta + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Onde o aplicativo guarda seus próprios arquivos. Esses locais são fixos. + .configuration = Configuração + .plot-styles = Estilos de plotagem + .autosave-files = Arquivos de salvamento automático .selection-modes = Modos de seleção .use-shift-to-add-to-selection-pickadd = Usar Shift para adicionar à seleção (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Pressionar e arrastar desenha um retângulo em vez de um laço (PICKDRAG) diff --git a/locales/ru-RU/opencadstudio.ftl b/locales/ru-RU/opencadstudio.ftl index 13ba008b2..8c0d1656f 100644 --- a/locales/ru-RU/opencadstudio.ftl +++ b/locales/ru-RU/opencadstudio.ftl @@ -1379,6 +1379,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Управляет видимым прицелом выбора и областью щелчка. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Приложения + .installed-plugins-and-their-sources = Установленные плагины и их источники + .plugins-2 = Плагины… + .keyboard-shortcuts-2 = Сочетания клавиш + .keyboard-shortcuts-3 = Сочетания клавиш… + .command-aliases-2 = Псевдонимы команд + .command-aliases-3 = Псевдонимы команд… + .file-safety = Безопасность файлов + .automatic-save = Автосохранение + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Минуты между сохранениями восстановления в файл .sv$; 0 отключает (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Сохранять копию .bak при перезаписи чертежа (ISAVEBAK) + .plotting = Печать + .plot-device-paper-scale-and-plot-styles = Устройство печати, бумага, масштаб и стили печати + .plot-and-page-setup = Печать и параметры листа… + .fill-truetype-glyphs-textfill = Заливать глифы TrueType (TEXTFILL) + .command-line = Командная строка + .prompt-lines = Строки запроса + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Временные строки запроса над окном команд (CLIPROMPTLINES). + .history-fade-time = Время затухания журнала + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Как долго строки журнала остаются видимыми; 0 их пропускает (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Щелчок по перекрывающимся объектам открывает список выбора + .block-edit = Редактирование блока + .double-click-to-edit-block-in-place-refedit = Двойной щелчок редактирует блок на месте (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Двойной щелчок по блокам с атрибутами редактирует атрибуты (ATTEDIT) + .user-preferences = Пользовательские настройки + .zoom = Зумирование + .reverse-mouse-wheel-zoom-zoomwheel = Обратить зумирование колесом мыши (ZOOMWHEEL) + .zoom-factor = Коэффициент зумирования + .how-far-one-wheel-notch-zooms-zoomfactor = Насколько приближает один щелчок колеса (ZOOMFACTOR). + .text-and-dimensions = Текст и размеры + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT редактирует один объект и завершается (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Продолженные размеры наследуют слой и стиль базового размера (DIMCONTINUEMODE) + .qdim-origin-priority = Приоритет начала QDIM + .which-points-qdim-measures-from-also-settable-inside-the-command = От каких точек измеряет QDIM. Настраивается и внутри команды. + .add-scales-automatically = Добавлять масштабы автоматически + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Какие аннотативные объекты принимают вновь заданный масштаб аннотаций (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Единицы длины, угла и вставки + .drawing-units-2 = Единицы чертежа… + .drafting = Черчение + .drafting-rotation = Поворот черчения + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Поворачивает перекрестье и сетку привязки в активной ПСК (SNAPANG). + .polar-tracking-increment = Шаг полярного отслеживания + .snap-and-grid = Привязка и сетка + .snap-modes-grid-spacing-and-object-snap = Режимы привязки, шаг сетки и объектная привязка + .drafting-settings-2 = Параметры черчения… + .modeling-3d = 3D-моделирование + .display-tools = Инструменты отображения + .show-the-navigation-cube-navvcube = Показывать куб навигации (NAVVCUBE) + .show-the-ucs-icon-ucsicon = Показывать значок ПСК (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = Размещать значок ПСК в начале координат (UCSICON ORigin) + .display-resolution = Разрешение отображения + .applies-to-the-current-drawing = применяется к текущему чертежу + .isolines-per-surface = Изолиний на поверхность + .show-silhouette-edges-on-solids-dispsilh = Показывать силуэтные рёбра тел (DISPSILH) + .surface-density-u = Плотность поверхности U + .surface-density-v = Плотность поверхности V + .surface-type = Тип поверхности + .record-the-history-of-composite-solids-solidhist = Записывать историю составных тел (SOLIDHIST) + .show-solid-history = Показывать историю тел + .not-available = Недоступно + .open-folder = Открыть папку + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Где приложение хранит собственные файлы. Эти расположения фиксированы. + .configuration = Конфигурация + .plot-styles = Стили печати + .autosave-files = Файлы автосохранения .selection-modes = Режимы выбора .use-shift-to-add-to-selection-pickadd = Использовать Shift для добавления к выбору (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Нажатие и перетаскивание рисует прямоугольник вместо лассо (PICKDRAG) diff --git a/locales/tr-TR/opencadstudio.ftl b/locales/tr-TR/opencadstudio.ftl index 0ffa766d1..c1e06f91a 100644 --- a/locales/tr-TR/opencadstudio.ftl +++ b/locales/tr-TR/opencadstudio.ftl @@ -1362,6 +1362,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = Hem görünür seçim kutusunu hem de tıklama alanını denetler. .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = Uygulamalar + .installed-plugins-and-their-sources = Yüklü eklentiler ve kaynakları + .plugins-2 = Eklentiler… + .keyboard-shortcuts-2 = Klavye kısayolları + .keyboard-shortcuts-3 = Klavye kısayolları… + .command-aliases-2 = Komut takma adları + .command-aliases-3 = Komut takma adları… + .file-safety = Dosya güvenliği + .automatic-save = Otomatik kaydetme + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = Bir .sv$ dosyasına kurtarma kayıtları arasındaki dakika; 0 kapatır (SAVETIME). + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = Bir çizimin üzerine yazarken .bak kopyası tut (ISAVEBAK) + .plotting = Çizdirme + .plot-device-paper-scale-and-plot-styles = Çizim aygıtı, kâğıt, ölçek ve çizim stilleri + .plot-and-page-setup = Çizdir ve sayfa düzeni… + .fill-truetype-glyphs-textfill = TrueType karakterlerini doldur (TEXTFILL) + .command-line = Komut satırı + .prompt-lines = İstem satırları + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = Komut penceresinin üstündeki geçici istem satırları (CLIPROMPTLINES). + .history-fade-time = Geçmiş solma süresi + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = Geçmiş satırlarının ne kadar görünür kalacağı; 0 atlar (COMMANDLINEFADETIME). + .clicking-overlapping-objects-opens-a-picker = Üst üste binen nesnelere tıklamak bir seçici açar + .block-edit = Blok düzenleme + .double-click-to-edit-block-in-place-refedit = Bloğu yerinde düzenlemek için çift tıklayın (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = Öznitelikli bloklara çift tıklayarak özniteliklerini düzenleyin (ATTEDIT) + .user-preferences = Kullanıcı tercihleri + .zoom = Yakınlaştırma + .reverse-mouse-wheel-zoom-zoomwheel = Fare tekerleği yakınlaştırmasını ters çevir (ZOOMWHEEL) + .zoom-factor = Yakınlaştırma çarpanı + .how-far-one-wheel-notch-zooms-zoomfactor = Bir tekerlek adımının ne kadar yakınlaştıracağı (ZOOMFACTOR). + .text-and-dimensions = Metin ve ölçülendirme + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT bir nesneyi düzenler ve biter (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = Devam eden ölçüler temel ölçünün katmanını ve stilini devralır (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM başlangıç önceliği + .which-points-qdim-measures-from-also-settable-inside-the-command = QDIM'in hangi noktalardan ölçtüğü. Komutun içinden de ayarlanır. + .add-scales-automatically = Ölçekleri otomatik ekle + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = Yeni ayarlanan bir açıklama ölçeğini hangi açıklamalı nesnelerin alacağı (ANNOAUTOSCALE). + .length-angle-and-insertion-units = Uzunluk, açı ve ekleme birimleri + .drawing-units-2 = Çizim birimleri… + .drafting = Taslak + .drafting-rotation = Taslak dönüşü + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = Etkin UCS'de artı imleci ve yakalama ızgarasını döndürür (SNAPANG). + .polar-tracking-increment = Kutupsal izleme artışı + .snap-and-grid = Yakalama ve ızgara + .snap-modes-grid-spacing-and-object-snap = Yakalama modları, ızgara aralığı ve nesne yakalama + .drafting-settings-2 = Taslak ayarları… + .modeling-3d = 3B modelleme + .display-tools = Görüntüleme araçları + .show-the-navigation-cube-navvcube = Gezinme küpünü göster (NAVVCUBE) + .show-the-ucs-icon-ucsicon = UCS simgesini göster (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = UCS simgesini başlangıç noktasına yerleştir (UCSICON ORigin) + .display-resolution = Görüntüleme çözünürlüğü + .applies-to-the-current-drawing = geçerli çizim için geçerlidir + .isolines-per-surface = Yüzey başına eş çizgiler + .show-silhouette-edges-on-solids-dispsilh = Katılarda siluet kenarlarını göster (DISPSILH) + .surface-density-u = Yüzey yoğunluğu U + .surface-density-v = Yüzey yoğunluğu V + .surface-type = Yüzey türü + .record-the-history-of-composite-solids-solidhist = Bileşik katıların geçmişini kaydet (SOLIDHIST) + .show-solid-history = Katı geçmişini göster + .not-available = Kullanılamıyor + .open-folder = Klasörü aç + .where-the-application-keeps-its-own-files-these-locations-are-fixed = Uygulamanın kendi dosyalarını tuttuğu yer. Bu konumlar sabittir. + .configuration = Yapılandırma + .plot-styles = Çizim stilleri + .autosave-files = Otomatik kaydetme dosyaları .selection-modes = Seçim modları .use-shift-to-add-to-selection-pickadd = Seçime eklemek için Shift kullan (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = Basılı tutup sürükleme kement yerine dikdörtgen çizer (PICKDRAG) diff --git a/locales/zh-CN/opencadstudio.ftl b/locales/zh-CN/opencadstudio.ftl index b737e29f0..e7a4a81a2 100644 --- a/locales/zh-CN/opencadstudio.ftl +++ b/locales/zh-CN/opencadstudio.ftl @@ -1363,6 +1363,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = 同时控制可见选择框和单击范围。 .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = 应用程序 + .installed-plugins-and-their-sources = 已安装的插件及其来源 + .plugins-2 = 插件… + .keyboard-shortcuts-2 = 键盘快捷键 + .keyboard-shortcuts-3 = 键盘快捷键… + .command-aliases-2 = 命令别名 + .command-aliases-3 = 命令别名… + .file-safety = 文件安全 + .automatic-save = 自动保存 + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = 两次保存到 .sv$ 恢复文件之间的分钟数;0 表示关闭 (SAVETIME)。 + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = 覆盖图形时保留 .bak 副本 (ISAVEBAK) + .plotting = 打印 + .plot-device-paper-scale-and-plot-styles = 打印设备、图纸、比例和打印样式 + .plot-and-page-setup = 打印和页面设置… + .fill-truetype-glyphs-textfill = 填充 TrueType 字形 (TEXTFILL) + .command-line = 命令行 + .prompt-lines = 提示行 + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = 命令窗口上方显示的临时提示行 (CLIPROMPTLINES)。 + .history-fade-time = 历史淡出时间 + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = 历史行保持可见的时长;0 表示跳过 (COMMANDLINEFADETIME)。 + .clicking-overlapping-objects-opens-a-picker = 单击重叠对象时打开选择器 + .block-edit = 块编辑 + .double-click-to-edit-block-in-place-refedit = 双击就地编辑块 (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = 双击带属性的块以编辑属性 (ATTEDIT) + .user-preferences = 用户首选项 + .zoom = 缩放 + .reverse-mouse-wheel-zoom-zoomwheel = 反转鼠标滚轮缩放方向 (ZOOMWHEEL) + .zoom-factor = 缩放系数 + .how-far-one-wheel-notch-zooms-zoomfactor = 滚轮每格的缩放幅度 (ZOOMFACTOR)。 + .text-and-dimensions = 文字和标注 + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT 编辑一个对象后结束 (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = 连续标注继承基准标注的图层和样式 (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM 原点优先级 + .which-points-qdim-measures-from-also-settable-inside-the-command = QDIM 从哪些点测量。也可在命令内设置。 + .add-scales-automatically = 自动添加比例 + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = 哪些注释性对象接受新设置的注释比例 (ANNOAUTOSCALE)。 + .length-angle-and-insertion-units = 长度、角度和插入单位 + .drawing-units-2 = 图形单位… + .drafting = 草图 + .drafting-rotation = 草图旋转 + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = 在当前 UCS 中旋转十字光标和捕捉栅格 (SNAPANG)。 + .polar-tracking-increment = 极轴追踪增量 + .snap-and-grid = 捕捉和栅格 + .snap-modes-grid-spacing-and-object-snap = 捕捉模式、栅格间距和对象捕捉 + .drafting-settings-2 = 草图设置… + .modeling-3d = 三维建模 + .display-tools = 显示工具 + .show-the-navigation-cube-navvcube = 显示导航立方体 (NAVVCUBE) + .show-the-ucs-icon-ucsicon = 显示 UCS 图标 (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = 将 UCS 图标置于原点 (UCSICON ORigin) + .display-resolution = 显示分辨率 + .applies-to-the-current-drawing = 应用于当前图形 + .isolines-per-surface = 每个曲面的素线数 + .show-silhouette-edges-on-solids-dispsilh = 在实体上显示轮廓边 (DISPSILH) + .surface-density-u = 曲面密度 U + .surface-density-v = 曲面密度 V + .surface-type = 曲面类型 + .record-the-history-of-composite-solids-solidhist = 记录复合实体的历史 (SOLIDHIST) + .show-solid-history = 显示实体历史 + .not-available = 不可用 + .open-folder = 打开文件夹 + .where-the-application-keeps-its-own-files-these-locations-are-fixed = 应用程序存放自身文件的位置。这些位置是固定的。 + .configuration = 配置 + .plot-styles = 打印样式 + .autosave-files = 自动保存文件 .selection-modes = 选择模式 .use-shift-to-add-to-selection-pickadd = 使用 Shift 添加到选择集 (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = 按住并拖动时绘制矩形而非套索 (PICKDRAG) diff --git a/locales/zh-TW/opencadstudio.ftl b/locales/zh-TW/opencadstudio.ftl index bc7a4f144..446aa9b4f 100644 --- a/locales/zh-TW/opencadstudio.ftl +++ b/locales/zh-TW/opencadstudio.ftl @@ -1375,6 +1375,71 @@ common = .pick-box-size = { common.pickbox }: { common.size } .controls-both-the-visible-selection-box-and-the-click-aperture = 同時控制可見選取框與點選範圍。 .visual-effect-settings = { common.visual-effects } · { properties.settings } + .applications = 應用程式 + .installed-plugins-and-their-sources = 已安裝的外掛程式及其來源 + .plugins-2 = 外掛程式… + .keyboard-shortcuts-2 = 鍵盤快速鍵 + .keyboard-shortcuts-3 = 鍵盤快速鍵… + .command-aliases-2 = 指令別名 + .command-aliases-3 = 指令別名… + .file-safety = 檔案安全 + .automatic-save = 自動儲存 + .minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime = 兩次儲存到 .sv$ 復原檔之間的分鐘數;0 表示關閉 (SAVETIME)。 + .keep-a-bak-copy-when-overwriting-a-drawing-isavebak = 覆寫圖面時保留 .bak 副本 (ISAVEBAK) + .plotting = 出圖 + .plot-device-paper-scale-and-plot-styles = 出圖裝置、紙張、比例與出圖樣式 + .plot-and-page-setup = 出圖與頁面設定… + .fill-truetype-glyphs-textfill = 填滿 TrueType 字符 (TEXTFILL) + .command-line = 指令行 + .prompt-lines = 提示行 + .temporary-prompt-lines-shown-above-the-command-window-clipromptlines = 指令視窗上方顯示的暫時提示行 (CLIPROMPTLINES)。 + .history-fade-time = 歷程淡出時間 + .how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime = 歷程行保持顯示的時間;0 表示略過 (COMMANDLINEFADETIME)。 + .clicking-overlapping-objects-opens-a-picker = 點選重疊的物件時開啟選擇器 + .block-edit = 圖塊編輯 + .double-click-to-edit-block-in-place-refedit = 雙擊以就地編輯圖塊 (REFEDIT) + .double-click-attributed-blocks-to-edit-attributes-attedit = 雙擊具屬性的圖塊以編輯屬性 (ATTEDIT) + .user-preferences = 使用者偏好設定 + .zoom = 縮放 + .reverse-mouse-wheel-zoom-zoomwheel = 反轉滑鼠滾輪縮放方向 (ZOOMWHEEL) + .zoom-factor = 縮放係數 + .how-far-one-wheel-notch-zooms-zoomfactor = 滾輪每一格的縮放幅度 (ZOOMFACTOR)。 + .text-and-dimensions = 文字與標註 + .textedit-edits-one-object-and-ends-texteditmode = TEXTEDIT 編輯一個物件後結束 (TEXTEDITMODE) + .continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode = 連續標註繼承基準標註的圖層與樣式 (DIMCONTINUEMODE) + .qdim-origin-priority = QDIM 原點優先順序 + .which-points-qdim-measures-from-also-settable-inside-the-command = QDIM 從哪些點量測。也可在指令內設定。 + .add-scales-automatically = 自動加入比例 + .which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale = 哪些註解性物件接受新設定的註解比例 (ANNOAUTOSCALE)。 + .length-angle-and-insertion-units = 長度、角度與插入單位 + .drawing-units-2 = 圖面單位… + .drafting = 製圖 + .drafting-rotation = 製圖旋轉 + .rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang = 在使用中的 UCS 內旋轉十字游標與鎖點格線 (SNAPANG)。 + .polar-tracking-increment = 極座標追蹤增量 + .snap-and-grid = 鎖點與格線 + .snap-modes-grid-spacing-and-object-snap = 鎖點模式、格線間距與物件鎖點 + .drafting-settings-2 = 製圖設定… + .modeling-3d = 3D 塑型 + .display-tools = 顯示工具 + .show-the-navigation-cube-navvcube = 顯示導覽方塊 (NAVVCUBE) + .show-the-ucs-icon-ucsicon = 顯示 UCS 圖示 (UCSICON) + .place-the-ucs-icon-at-the-origin-ucsicon-origin = 將 UCS 圖示置於原點 (UCSICON ORigin) + .display-resolution = 顯示解析度 + .applies-to-the-current-drawing = 套用至目前的圖面 + .isolines-per-surface = 每個曲面的等值線 + .show-silhouette-edges-on-solids-dispsilh = 在實體上顯示輪廓邊 (DISPSILH) + .surface-density-u = 曲面密度 U + .surface-density-v = 曲面密度 V + .surface-type = 曲面類型 + .record-the-history-of-composite-solids-solidhist = 記錄複合實體的歷程 (SOLIDHIST) + .show-solid-history = 顯示實體歷程 + .not-available = 無法使用 + .open-folder = 開啟資料夾 + .where-the-application-keeps-its-own-files-these-locations-are-fixed = 應用程式存放自身檔案的位置。這些位置是固定的。 + .configuration = 組態 + .plot-styles = 出圖樣式 + .autosave-files = 自動儲存檔案 .selection-modes = 選取模式 .use-shift-to-add-to-selection-pickadd = 使用 Shift 加入選取集 (PICKADD) .press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag = 按住並拖曳時繪製矩形而非套索 (PICKDRAG) diff --git a/src/app/commands/mod.rs b/src/app/commands/mod.rs index 8efa97d5b..3c6a00624 100644 --- a/src/app/commands/mod.rs +++ b/src/app/commands/mod.rs @@ -554,6 +554,11 @@ inventory::submit!(crate::command::CommandRegistration { "GRIPHOT", "GRIPHOVER", "GRIPOBJLIMIT", + // Dispatched all along, but absent from the registry, so command-line + // completion never offered them. + "ISAVEBAK", + "SAVETIME", + "FILEASSOC", // Reset selected entities' overrides to follow their layer. "SETBYLAYER", // Remove duplicate objects; set drawing base point; audit integrity; diff --git a/src/app/commands/styleprops.rs b/src/app/commands/styleprops.rs index 4efc41f80..b99da19b4 100644 --- a/src/app/commands/styleprops.rs +++ b/src/app/commands/styleprops.rs @@ -1167,24 +1167,37 @@ impl OpenCADStudio { let outcome: Result<(String, bool), String> = { let h = &mut self.tabs[i].scene.document.header; match name.as_str() { + // The standalone LTSCALE and CELTSCALE commands + // require a positive value; reaching the same + // variable through SETVAR used to accept zero or a + // negative one, which degenerates every dash + // pattern in the drawing. "LTSCALE" => match &value { Some(v) => v .parse::() + .ok() + .filter(|x| x.is_finite() && *x > 0.0) .map(|x| { h.linetype_scale = x; (format!("LTSCALE = {x}"), true) }) - .map_err(|_| "SETVAR: numeric value required.".into()), + .ok_or_else(|| { + "SETVAR: positive numeric value required.".into() + }), None => Ok((format!("LTSCALE = {}", h.linetype_scale), false)), }, "CELTSCALE" => match &value { Some(v) => v .parse::() + .ok() + .filter(|x| x.is_finite() && *x > 0.0) .map(|x| { h.current_entity_linetype_scale = x; (format!("CELTSCALE = {x}"), true) }) - .map_err(|_| "SETVAR: numeric value required.".into()), + .ok_or_else(|| { + "SETVAR: positive numeric value required.".into() + }), None => Ok(( format!("CELTSCALE = {}", h.current_entity_linetype_scale), false, @@ -2156,6 +2169,12 @@ impl OpenCADStudio { | "GRIPHOVER" | "GRIPOBJLIMIT" | "DELOBJ" + // App-level, not part of the drawing: + // it lives in a process global and is + // snapshotted into the settings file. + // Without this it marked the drawing + // modified instead of persisting. + | "TEXTFILL" ) { self.persist_settings_if_changed(); } else { @@ -2184,9 +2203,7 @@ impl OpenCADStudio { // TEXTFILL reset the glyph atlas; re-tessellate so text picks // up the re-baked filled / hollow tiles. if name == "TEXTFILL" { - self.tabs[i] - .scene - .invalidate_text_geometry_dependencies(); + self.invalidate_text_everywhere(); } // LTSCALE scales the dash pattern baked into every wire, and // PDMODE / PDSIZE decide the point glyph built at tessellation @@ -3146,3 +3163,36 @@ mod tests { assert_eq!(app.delete_objects, 3); } } + +#[cfg(test)] +mod scale_validation_tests { + use crate::app::OpenCADStudio; + + /// A linetype scale of zero or less degenerates every dash pattern in the + /// drawing, which is why the standalone commands reject it. Reaching the + /// same variable through SETVAR used to accept it, so which door you came + /// through decided whether the drawing could be broken. + #[test] + fn both_doors_to_ltscale_refuse_a_non_positive_value() { + for name in ["LTSCALE", "CELTSCALE"] { + for entry in [format!("{name} -5"), format!("SETVAR {name} -5")] { + let mut app = OpenCADStudio::new_for_test(); + app.automation_op(r#"{"op":"new"}"#); + let i = app.active_tab; + let before = if name == "LTSCALE" { + app.tabs[i].scene.document.header.linetype_scale + } else { + app.tabs[i].scene.document.header.current_entity_linetype_scale + }; + let _ = app.run_command_line(&entry); + let after = if name == "LTSCALE" { + app.tabs[i].scene.document.header.linetype_scale + } else { + app.tabs[i].scene.document.header.current_entity_linetype_scale + }; + assert_eq!(before, after, "{entry} must be refused"); + } + } + } +} + diff --git a/src/app/config.rs b/src/app/config.rs index b22e28e70..6d1c8f0eb 100644 --- a/src/app/config.rs +++ b/src/app/config.rs @@ -460,7 +460,16 @@ impl AppConfig { /// Persist the config as JSON. Best-effort; silent on unavailable or /// read-only storage. + /// + /// Does nothing under `cfg(test)`. The path is the developer's own + /// settings file, and the suite builds whole applications and changes + /// preferences on them — without this, running `cargo test` rewrites the + /// settings of whoever ran it. pub fn save(&self) { + if cfg!(test) { + return; + } + #[cfg(not(target_arch = "wasm32"))] { let Some(path) = config_path() else { return }; diff --git a/src/app/mod.rs b/src/app/mod.rs index 7ecbe186a..eef45d546 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -517,6 +517,9 @@ pub(super) struct OpenCADStudio { crosshair_color: Option<[u8; 3]>, /// Editable Options buffer for the crosshair colour. crosshair_color_input: String, + /// Edit buffer for the SNAPANG field on the Options Drafting page. Kept + /// separate from `snap_angle_deg` so a half-typed angle is not parsed. + snap_angle_input: String, /// Model-space lineweight preview scale, in percent (25..=200). lineweight_display_scale: i32, /// Isometric drafting state and active axis pair. @@ -2007,6 +2010,56 @@ pub enum Message { ShiftToAddToggled(bool), /// Toggle press-and-drag drawing a rectangle instead of a lasso (PICKDRAG). PickDragRectToggled(bool), + /// Change the automatic-save interval in minutes; 0 disables it (SAVETIME). + SaveTimeChanged(i32), + /// Toggle keeping a `.bak` copy when overwriting a drawing (ISAVEBAK). + BackupOnSaveChanged(bool), + /// Toggle filled TrueType glyphs (TEXTFILL). + TextFillChanged(bool), + /// Change how many prompt lines sit above the command window (CLIPROMPTLINES). + ClipromptLinesChanged(i32), + /// Change how long command-line history lines stay visible (COMMANDLINEFADETIME). + CommandLineFadeChanged(i32), + /// Toggle reversing the mouse-wheel zoom direction (ZOOMWHEEL). + ZoomWheelReversedChanged(bool), + /// Change how far one wheel notch zooms (ZOOMFACTOR, 3..=100). + ZoomFactorChanged(i32), + /// Toggle TEXTEDIT ending after one object (TEXTEDITMODE). + TextEditModeChanged(bool), + /// Toggle continued dimensions inheriting the base style (DIMCONTINUEMODE). + DimContinueModeChanged(bool), + /// Change which points QDIM measures from (0 endpoints, 1 intersections). + QdimSnapPriorityChanged(u8), + /// Change which annotative objects pick up a new scale (ANNOAUTOSCALE). + AnnoAutoScaleChanged(i8), + /// Edit the drafting rotation field; parsed when it holds a valid angle (SNAPANG). + SnapAngleInputChanged(String), + /// Change the polar tracking increment in degrees. + PolarIncrementChanged(f32), + /// Toggle the navigation cube (NAVVCUBE). + ShowViewCubeChanged(bool), + /// Toggle the UCS icon (UCSICON). + ShowUcsIconChanged(bool), + /// Toggle drawing the UCS icon at the origin (UCSICON ORigin). + UcsIconAtOriginChanged(bool), + /// Toggle selection cycling from Options; the status-bar pill toggles the same flag. + SelectionCyclingChanged(bool), + /// Reveal one of the application's own folders in the system file manager. + OpenFolder(String), + /// Change isolines per surface in the current drawing (ISOLINES). + IsolinesChanged(i16), + /// Toggle silhouette edges in the current drawing (DISPSILH). + DispSilhChanged(bool), + /// Change surface density U in the current drawing (SURFU). + SurfaceUChanged(i16), + /// Change surface density V in the current drawing (SURFV). + SurfaceVChanged(i16), + /// Change the surface type in the current drawing (SURFTYPE). + SurfaceTypeChanged(i16), + /// Toggle recording composite-solid history in the current drawing (SOLIDHIST). + SolidHistChanged(bool), + /// Change when solid history is shown in the current drawing (SHOWHIST). + ShowHistChanged(i16), /// Restore Model Space display/canvas appearance to defaults. RestoreModelSpaceDisplayDefaults, /// Restore Selection visual effect settings to defaults. @@ -3407,6 +3460,7 @@ impl OpenCADStudio { cursor_type: settings::CursorType::Crosshair, crosshair_color: None, crosshair_color_input: String::new(), + snap_angle_input: "0".to_string(), lineweight_display_scale: 100, isometric_drafting: false, iso_plane: settings::IsoPlane::Left, @@ -3802,7 +3856,16 @@ impl OpenCADStudio { #[cfg(test)] pub(crate) fn new_for_test() -> Self { - Self::new() + let mut app = Self::new(); + // `new` loads the real settings file, so without this every test runs + // against whatever the developer last set in the application — a suite + // that passes on a clean machine and fails on a used one. It surfaced + // when a persisted `GRIPOBJLIMIT` made the grip-limit test see 32767 + // where it expected the default, and the number of persisted settings + // only grows. + app.apply_config(crate::app::config::AppConfig::default()); + app.last_saved_config = Some(app.current_config()); + app } /// Install `cmd` as the active interactive command for tab `tab`. diff --git a/src/app/properties.rs b/src/app/properties.rs index 8fd1faec1..bcbbd5aa3 100644 --- a/src/app/properties.rs +++ b/src/app/properties.rs @@ -4149,6 +4149,29 @@ mod grip_limit_tests { ); } + /// The ViewCube, the UCS icon and selection cycling all have commands and + /// status-bar pills, but their values lived only on the app struct: turn + /// the ViewCube off, restart, and it came straight back. Nothing failed — + /// the setting simply evaporated — which is exactly the kind of thing a + /// round-trip test catches and a person does not. + #[test] + fn the_view_toggles_survive_a_save_and_load() { + let mut app = OpenCADStudio::new_for_test(); + app.show_viewcube = false; + app.show_ucs_icon = false; + app.ucs_icon_at_origin = false; + app.selection_cycling = true; + + let saved = app.current_settings(); + let mut restored = OpenCADStudio::new_for_test(); + restored.apply_settings(&saved); + + assert!(!restored.show_viewcube, "the ViewCube must stay off"); + assert!(!restored.show_ucs_icon); + assert!(!restored.ucs_icon_at_origin); + assert!(restored.selection_cycling); + } + /// The Options card writes these four straight onto the app and relies on /// the snapshot/restore pair to carry them across a restart. Three of them /// had no UI until now and so no reason for anyone to notice if the pair diff --git a/src/app/settings.rs b/src/app/settings.rs index bdfab8ff9..9db2d574c 100644 --- a/src/app/settings.rs +++ b/src/app/settings.rs @@ -145,6 +145,18 @@ pub(crate) fn snaps_from_osmode(osmode: i32) -> (Vec, bool) { (modes, osmode & OSMODE_SUPPRESS == 0) } +/// Render a drafting angle without a trailing `.0`, so `22.5` but `30`. +/// +/// The polar pop-up formats its presets the same way; both are showing the +/// same kind of number to the same person. +pub fn format_snap_angle(deg: f32) -> String { + if (deg - deg.round()).abs() < 1e-4 { + format!("{}", deg.round() as i32) + } else { + format!("{deg}") + } +} + /// GRIPOBJLIMIT default: past this many selected objects, no grips are drawn. pub const DEFAULT_GRIP_OBJECT_LIMIT: i32 = 100; @@ -170,6 +182,17 @@ pub struct UserSettings { /// GRIPOBJLIMIT: past this many selected objects, no grips are drawn at /// all. 0 means no limit. The drawing header carries no slot for it. pub grip_object_limit: i32, + /// Which Options page was showing when the dialog was last closed. + pub options_tab: crate::ui::window::options::OptionsTab, + /// Show the navigation cube (NAVVCUBE). + pub show_viewcube: bool, + /// Show the UCS icon (UCSICON). + pub show_ucs_icon: bool, + /// Draw the UCS icon at the origin rather than in the corner + /// (UCSICON ORigin / NOorigin). + pub ucs_icon_at_origin: bool, + /// Selection cycling: a click where objects overlap opens a picker. + pub selection_cycling: bool, /// CURSORTYPE: crosshair or the platform pointer over the drawing. pub cursor_type: CursorType, /// Explicit crosshair RGB. `None` keeps automatic background contrast. @@ -246,12 +269,6 @@ pub struct UserSettings { pub pick_drag_rect: bool, /// Show the floating Quick Properties panel when objects are selected. pub quick_properties: bool, - /// Persisted viewport background colours (0–255 RGB); `None` = app default - /// (dark grey model / off-white paper). Applied to every drawing tab on - /// launch and to tabs opened later, so a chosen background survives restarts - /// (#188). - pub bg_color: Option<[u8; 3]>, - pub paper_bg_color: Option<[u8; 3]>, /// Interface language preference. `System` negotiates against the /// platform locale on every launch. pub language: crate::i18n::Language, @@ -325,6 +342,11 @@ impl Default for UserSettings { zoom_factor: 60, cursor_size: 5, pick_box: 3, + options_tab: crate::ui::window::options::OptionsTab::General, + show_viewcube: true, + show_ucs_icon: true, + ucs_icon_at_origin: true, + selection_cycling: false, double_click_block_refedit: false, double_click_block_attedit: true, grip_object_limit: DEFAULT_GRIP_OBJECT_LIMIT, @@ -356,8 +378,6 @@ impl Default for UserSettings { pick_add: true, pick_drag_rect: false, quick_properties: false, - bg_color: None, - paper_bg_color: None, language: crate::i18n::Language::default(), cliprompt_lines: 3, commandline_fade_ms: 3000, diff --git a/src/app/update/file.rs b/src/app/update/file.rs index 771b2603b..a98df8247 100644 --- a/src/app/update/file.rs +++ b/src/app/update/file.rs @@ -355,6 +355,35 @@ impl OpenCADStudio { } } + /// Write a tessellation-affecting header variable on the active drawing. + /// + /// These decide how solids and surfaces are tessellated, so the geometry + /// has to be rebuilt for the change to appear — the same reason `LTSCALE` + /// bumps it. Marking the tab modified is what makes the new value reach + /// the file. + pub(in crate::app) fn set_drawing_tessellation_var( + &mut self, + write: impl FnOnce(&mut acadrust::document::HeaderVariables), + ) { + let i = self.active_tab; + if let Some(tab) = self.tabs.get_mut(i) { + write(&mut tab.scene.document.header); + tab.scene.bump_geometry(); + tab.dirty = true; + } + } + + /// Rebuild text geometry in every open drawing. + /// + /// `TEXTFILL` is a process-global, so a change to it invalidates the text + /// in every tab. Doing only the active one leaves the others rendering the + /// previous setting until some unrelated edit happens to rebuild them. + pub(in crate::app) fn invalidate_text_everywhere(&mut self) { + for tab in &mut self.tabs { + tab.scene.invalidate_text_geometry_dependencies(); + } + } + /// Snapshot the persisted UI preferences from live state. pub(in crate::app) fn current_settings(&self) -> crate::app::settings::UserSettings { crate::app::settings::UserSettings { @@ -365,6 +394,11 @@ impl OpenCADStudio { zoom_factor: self.zoom_factor, cursor_size: self.cursor_size, pick_box: self.pick_box, + options_tab: self.options_tab, + show_viewcube: self.show_viewcube, + show_ucs_icon: self.show_ucs_icon, + ucs_icon_at_origin: self.ucs_icon_at_origin, + selection_cycling: self.selection_cycling, double_click_block_refedit: self.double_click_block_refedit, double_click_block_attedit: self.double_click_block_attedit, grip_object_limit: self.grip_object_limit, @@ -401,8 +435,6 @@ impl OpenCADStudio { pick_add: self.pick_add, pick_drag_rect: self.pick_drag_rect, quick_properties: self.quick_properties, - bg_color: None, - paper_bg_color: None, language: self.language, cliprompt_lines: crate::app::settings::clamp_clipromptlines(self.cliprompt_lines), commandline_fade_ms: crate::app::settings::clamp_commandline_fade_ms( @@ -422,6 +454,14 @@ impl OpenCADStudio { self.zoom_factor = s.zoom_factor.clamp(3, 100); self.cursor_size = s.cursor_size.clamp(1, 100); self.pick_box = s.pick_box.clamp(0, 50); + self.options_tab = s.options_tab; + // These four drive real features with commands and status-bar pills, + // but they lived only on the app struct: turning the ViewCube off and + // restarting brought it straight back. + self.show_viewcube = s.show_viewcube; + self.show_ucs_icon = s.show_ucs_icon; + self.ucs_icon_at_origin = s.ucs_icon_at_origin; + self.selection_cycling = s.selection_cycling; self.double_click_block_refedit = s.double_click_block_refedit; self.double_click_block_attedit = s.double_click_block_attedit; self.grip_object_limit = s.grip_object_limit.clamp(0, 32767); @@ -439,6 +479,9 @@ impl OpenCADStudio { } else { 0.0 }; + // The Options field edits a buffer rather than the value, so it has to + // be reseeded whenever the value is restored from behind it. + self.snap_angle_input = crate::app::settings::format_snap_angle(self.snap_angle_deg); // Ortho + running OSNAP are per-drawing (adopted from the header on // open / tab switch), not app-global, so they are not applied here. self.snapper.otrack_enabled = s.otrack; @@ -471,7 +514,6 @@ impl OpenCADStudio { self.pick_add = s.pick_add; self.pick_drag_rect = s.pick_drag_rect; self.quick_properties = s.quick_properties; - // Legacy settings.bg_color / paper_bg_color are superseded by model_space config. if crate::i18n::set_language(s.language).is_ok() { self.language = s.language; } diff --git a/src/app/update/mod.rs b/src/app/update/mod.rs index af5910dde..3b4844fe5 100644 --- a/src/app/update/mod.rs +++ b/src/app/update/mod.rs @@ -6188,6 +6188,183 @@ impl OpenCADStudio { Task::none() } + Message::SaveTimeChanged(minutes) => { + self.savetime_min = minutes.max(0); + self.persist_settings_if_changed(); + Task::none() + } + + Message::BackupOnSaveChanged(enabled) => { + self.backup_on_save = enabled; + self.persist_settings_if_changed(); + Task::none() + } + + Message::TextFillChanged(filled) => { + crate::scene::text::sdf_atlas::set_textfill(filled); + self.invalidate_text_everywhere(); + self.persist_settings_if_changed(); + Task::none() + } + + Message::ClipromptLinesChanged(lines) => { + let lines = crate::app::settings::clamp_clipromptlines(lines); + self.cliprompt_lines = lines; + self.command_line.set_cliprompt_lines(lines.clamp(0, 50) as u8); + self.persist_settings_if_changed(); + Task::none() + } + + Message::CommandLineFadeChanged(ms) => { + let ms = crate::app::settings::clamp_commandline_fade_ms(ms); + self.commandline_fade_ms = ms; + self.command_line.set_commandline_fade_ms(ms.max(0) as u32); + self.persist_settings_if_changed(); + Task::none() + } + + Message::ZoomWheelReversedChanged(reversed) => { + self.zoom_wheel_reversed = reversed; + self.persist_settings_if_changed(); + Task::none() + } + + Message::ZoomFactorChanged(factor) => { + self.zoom_factor = factor.clamp(3, 100); + self.persist_settings_if_changed(); + Task::none() + } + + Message::TextEditModeChanged(single) => { + self.texteditmode = single; + self.persist_settings_if_changed(); + Task::none() + } + + Message::DimContinueModeChanged(inherit) => { + self.dimension_continue_mode = i16::from(inherit); + self.persist_settings_if_changed(); + Task::none() + } + + Message::QdimSnapPriorityChanged(priority) => { + self.quick_dimension_snap_priority = priority.min(1); + self.persist_settings_if_changed(); + Task::none() + } + + // The sign carries on/off and the magnitude the mode, so switching + // off and back on has to return to the mode that was chosen — the + // same convention the status-bar pill uses when it negates. + Message::AnnoAutoScaleChanged(mode) => { + self.annotation_auto_scale = if mode == 0 { + -self.annotation_auto_scale.abs().max(1) + } else { + mode.clamp(1, 4) + }; + self.persist_settings_if_changed(); + Task::none() + } + + // Typed into freely; only committed when it parses, so clearing + // the field to retype does not snap the crosshair back to zero. + Message::SnapAngleInputChanged(value) => { + self.snap_angle_input = value; + if let Ok(angle) = self.snap_angle_input.trim().parse::() { + if angle.is_finite() { + self.snap_angle_deg = angle.rem_euclid(360.0); + self.persist_settings_if_changed(); + } + } + Task::none() + } + + Message::PolarIncrementChanged(deg) => { + if deg.is_finite() && deg > 0.0 { + self.polar_increment_deg = deg; + self.persist_settings_if_changed(); + } + Task::none() + } + + Message::ShowViewCubeChanged(show) => { + self.show_viewcube = show; + self.persist_settings_if_changed(); + Task::none() + } + + Message::ShowUcsIconChanged(show) => { + self.show_ucs_icon = show; + self.persist_settings_if_changed(); + Task::none() + } + + Message::UcsIconAtOriginChanged(at_origin) => { + self.ucs_icon_at_origin = at_origin; + self.persist_settings_if_changed(); + Task::none() + } + + // The five below are drawing variables: they go into the header of + // the active drawing and mark it modified, exactly as SETVAR does. + // The four that feed solid tessellation also bump the geometry, or + // the change is invisible until an unrelated edit rebuilds it. + Message::IsolinesChanged(value) => { + self.set_drawing_tessellation_var(|header| header.isolines = value.max(0)); + Task::none() + } + + Message::DispSilhChanged(on) => { + self.set_drawing_tessellation_var(|header| header.display_silhouette = on); + Task::none() + } + + Message::SurfaceUChanged(value) => { + self.set_drawing_tessellation_var(|header| { + header.surface_u_density = value.clamp(0, 200) + }); + Task::none() + } + + Message::SurfaceVChanged(value) => { + self.set_drawing_tessellation_var(|header| { + header.surface_v_density = value.clamp(0, 200) + }); + Task::none() + } + + Message::SurfaceTypeChanged(value) => { + self.set_drawing_tessellation_var(|header| header.surface_type = value); + Task::none() + } + + Message::SolidHistChanged(record) => { + let i = self.active_tab; + if let Some(tab) = self.tabs.get_mut(i) { + tab.scene.document.header.record_solid_history = record; + tab.dirty = true; + } + Task::none() + } + + Message::ShowHistChanged(mode) => { + let i = self.active_tab; + if let Some(tab) = self.tabs.get_mut(i) { + tab.scene.document.header.show_solid_history = mode.clamp(0, 2); + tab.scene.bump_geometry(); + tab.dirty = true; + } + Task::none() + } + + Message::SelectionCyclingChanged(on) => { + self.selection_cycling = on; + self.persist_settings_if_changed(); + Task::none() + } + + Message::OpenFolder(path) => crate::sys::open_url(&path, None), + Message::PickDragRectToggled(rectangle) => { self.pick_drag_rect = rectangle; self.persist_settings_if_changed(); diff --git a/src/app/view/modal.rs b/src/app/view/modal.rs index 9d116889e..0f59969ed 100644 --- a/src/app/view/modal.rs +++ b/src/app/view/modal.rs @@ -175,8 +175,8 @@ impl OpenCADStudio { } super::super::ModalKind::Options => sized_flow( ex, - 540, - 560, + 880, + 620, |flow| { crate::ui::window::options::view_window( &self.default_save_format, @@ -191,6 +191,55 @@ impl OpenCADStudio { pick_add: self.pick_add, pick_drag_rect: self.pick_drag_rect, grip_object_limit: self.grip_object_limit, + selection_cycling: self.selection_cycling, + }, + crate::ui::window::options::AppPrefs { + savetime_min: self.savetime_min, + backup_on_save: self.backup_on_save, + textfill: crate::scene::text::sdf_atlas::textfill(), + cliprompt_lines: self.cliprompt_lines, + commandline_fade_ms: self.commandline_fade_ms, + zoom_wheel_reversed: self.zoom_wheel_reversed, + zoom_factor: self.zoom_factor, + texteditmode: self.texteditmode, + dimension_continue_mode: self.dimension_continue_mode, + qdim_snap_priority: self.quick_dimension_snap_priority, + annotation_auto_scale: self.annotation_auto_scale, + polar_increment_deg: self.polar_increment_deg, + show_viewcube: self.show_viewcube, + show_ucs_icon: self.show_ucs_icon, + ucs_icon_at_origin: self.ucs_icon_at_origin, + }, + &self.snap_angle_input, + { + let header = self + .tabs + .get(self.active_tab) + .map(|tab| &tab.scene.document.header); + crate::ui::window::options::DrawingPrefs { + available: header.is_some(), + isolines: header.map_or(4, |h| h.isolines), + display_silhouette: header + .is_some_and(|h| h.display_silhouette), + surface_u: header.map_or(6, |h| h.surface_u_density), + surface_v: header.map_or(6, |h| h.surface_v_density), + surface_type: header.map_or(6, |h| h.surface_type), + record_solid_history: header + .is_some_and(|h| h.record_solid_history), + show_solid_history: header + .map_or(1, |h| h.show_solid_history), + } + }, + crate::ui::window::options::Folders { + config: crate::config::config_dir() + .map(|p| p.display().to_string()), + plot_styles: crate::io::plot_style::plot_styles_dir() + .ok() + .map(|p| p.display().to_string()), + plugins: crate::plugin::external::plugins_dir() + .map(|p| p.display().to_string()), + autosave: crate::config::config_dir() + .map(|_| std::env::temp_dir().display().to_string()), }, self.double_click_block_refedit, self.double_click_block_attedit, diff --git a/src/locale_catalog.rs b/src/locale_catalog.rs index 1e09a7e20..700d2f68c 100644 --- a/src/locale_catalog.rs +++ b/src/locale_catalog.rs @@ -4120,6 +4120,71 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static "Pick box size" => Some(("common", "pick-box-size")), "Controls both the visible selection box and the click aperture." => Some(("common", "controls-both-the-visible-selection-box-and-the-click-aperture")), "Visual Effect Settings" => Some(("common", "visual-effect-settings")), + "Applications" => Some(("common", "applications")), + "Installed plugins and their sources" => Some(("common", "installed-plugins-and-their-sources")), + "Plugins…" => Some(("common", "plugins-2")), + "Keyboard shortcuts" => Some(("common", "keyboard-shortcuts-2")), + "Keyboard Shortcuts…" => Some(("common", "keyboard-shortcuts-3")), + "Command aliases" => Some(("common", "command-aliases-2")), + "Command Aliases…" => Some(("common", "command-aliases-3")), + "File Safety" => Some(("common", "file-safety")), + "Automatic save" => Some(("common", "automatic-save")), + "Minutes between recovery saves to a .sv$ file; 0 turns it off (SAVETIME)." => Some(("common", "minutes-between-recovery-saves-to-a-sv-file-0-turns-it-off-savetime")), + "Keep a .bak copy when overwriting a drawing (ISAVEBAK)" => Some(("common", "keep-a-bak-copy-when-overwriting-a-drawing-isavebak")), + "Plotting" => Some(("common", "plotting")), + "Plot device, paper, scale and plot styles" => Some(("common", "plot-device-paper-scale-and-plot-styles")), + "Plot and Page Setup…" => Some(("common", "plot-and-page-setup")), + "Fill TrueType glyphs (TEXTFILL)" => Some(("common", "fill-truetype-glyphs-textfill")), + "Command Line" => Some(("common", "command-line")), + "Prompt lines" => Some(("common", "prompt-lines")), + "Temporary prompt lines shown above the command window (CLIPROMPTLINES)." => Some(("common", "temporary-prompt-lines-shown-above-the-command-window-clipromptlines")), + "History fade time" => Some(("common", "history-fade-time")), + "How long overlay history lines stay visible; 0 skips them (COMMANDLINEFADETIME)." => Some(("common", "how-long-overlay-history-lines-stay-visible-0-skips-them-commandlinefadetime")), + "Clicking overlapping objects opens a picker" => Some(("common", "clicking-overlapping-objects-opens-a-picker")), + "Block Edit" => Some(("common", "block-edit")), + "Double-click to edit block in-place (REFEDIT)" => Some(("common", "double-click-to-edit-block-in-place-refedit")), + "Double-click attributed blocks to edit attributes (ATTEDIT)" => Some(("common", "double-click-attributed-blocks-to-edit-attributes-attedit")), + "User Preferences" => Some(("common", "user-preferences")), + "Zoom" => Some(("common", "zoom")), + "Reverse mouse wheel zoom (ZOOMWHEEL)" => Some(("common", "reverse-mouse-wheel-zoom-zoomwheel")), + "Zoom factor" => Some(("common", "zoom-factor")), + "How far one wheel notch zooms (ZOOMFACTOR)." => Some(("common", "how-far-one-wheel-notch-zooms-zoomfactor")), + "Text and Dimensions" => Some(("common", "text-and-dimensions")), + "TEXTEDIT edits one object and ends (TEXTEDITMODE)" => Some(("common", "textedit-edits-one-object-and-ends-texteditmode")), + "Continued dimensions inherit the base dimension's layer and style (DIMCONTINUEMODE)" => Some(("common", "continued-dimensions-inherit-the-base-dimension-s-layer-and-style-dimcontinuemode")), + "QDIM origin priority" => Some(("common", "qdim-origin-priority")), + "Which points QDIM measures from. Also settable inside the command." => Some(("common", "which-points-qdim-measures-from-also-settable-inside-the-command")), + "Add scales automatically" => Some(("common", "add-scales-automatically")), + "Which annotative objects pick up a newly set annotation scale (ANNOAUTOSCALE)." => Some(("common", "which-annotative-objects-pick-up-a-newly-set-annotation-scale-annoautoscale")), + "Length, angle and insertion units" => Some(("common", "length-angle-and-insertion-units")), + "Drawing Units…" => Some(("common", "drawing-units-2")), + "Drafting" => Some(("common", "drafting")), + "Drafting rotation" => Some(("common", "drafting-rotation")), + "Rotates the crosshair and the snap grid in the active UCS (SNAPANG)." => Some(("common", "rotates-the-crosshair-and-the-snap-grid-in-the-active-ucs-snapang")), + "Polar tracking increment" => Some(("common", "polar-tracking-increment")), + "Snap and Grid" => Some(("common", "snap-and-grid")), + "Snap modes, grid spacing and object snap" => Some(("common", "snap-modes-grid-spacing-and-object-snap")), + "Drafting Settings…" => Some(("common", "drafting-settings-2")), + "3D Modeling" => Some(("common", "modeling-3d")), + "Display Tools" => Some(("common", "display-tools")), + "Show the navigation cube (NAVVCUBE)" => Some(("common", "show-the-navigation-cube-navvcube")), + "Show the UCS icon (UCSICON)" => Some(("common", "show-the-ucs-icon-ucsicon")), + "Place the UCS icon at the origin (UCSICON ORigin)" => Some(("common", "place-the-ucs-icon-at-the-origin-ucsicon-origin")), + "Display Resolution" => Some(("common", "display-resolution")), + "applies to the current drawing" => Some(("common", "applies-to-the-current-drawing")), + "Isolines per surface" => Some(("common", "isolines-per-surface")), + "Show silhouette edges on solids (DISPSILH)" => Some(("common", "show-silhouette-edges-on-solids-dispsilh")), + "Surface density U" => Some(("common", "surface-density-u")), + "Surface density V" => Some(("common", "surface-density-v")), + "Surface type" => Some(("common", "surface-type")), + "Record the history of composite solids (SOLIDHIST)" => Some(("common", "record-the-history-of-composite-solids-solidhist")), + "Show solid history" => Some(("common", "show-solid-history")), + "Not available" => Some(("common", "not-available")), + "Open folder" => Some(("common", "open-folder")), + "Where the application keeps its own files. These locations are fixed." => Some(("common", "where-the-application-keeps-its-own-files-these-locations-are-fixed")), + "Configuration" => Some(("common", "configuration")), + "Plot styles" => Some(("common", "plot-styles")), + "Autosave files" => Some(("common", "autosave-files")), "Selection Modes" => Some(("common", "selection-modes")), "Use Shift to add to selection (PICKADD)" => Some(("common", "use-shift-to-add-to-selection-pickadd")), "Press and drag draws a rectangle instead of a lasso (PICKDRAG)" => Some(("common", "press-and-drag-draws-a-rectangle-instead-of-a-lasso-pickdrag")), diff --git a/src/modules/manage/mod.rs b/src/modules/manage/mod.rs index f1a66e7aa..48fda655e 100644 --- a/src/modules/manage/mod.rs +++ b/src/modules/manage/mod.rs @@ -79,7 +79,13 @@ impl CadModule for ManageModule { // ── Application ─────────────────────────────────────────────────── RibbonGroup { title: "Application", - tools: vec![RibbonItem::LargeTool(about::tool())], + tools: vec![ + // The tool and its icon already existed but were never + // added to a group, so the dialog could only be reached + // by typing OPTIONS or from the start page. + RibbonItem::LargeTool(options::tool()), + RibbonItem::LargeTool(about::tool()), + ], }, ] }) diff --git a/src/modules/manage/options.rs b/src/modules/manage/options.rs index 615f31d0a..75bea9afc 100644 --- a/src/modules/manage/options.rs +++ b/src/modules/manage/options.rs @@ -1,5 +1,4 @@ use crate::modules::{IconKind, ModuleEvent, ToolDef}; -#[allow(dead_code)] pub fn tool() -> ToolDef { ToolDef { id: "OPTIONS", diff --git a/src/ui/window/options.rs b/src/ui/window/options.rs index 7f3aa32d6..0923ebe21 100644 --- a/src/ui/window/options.rs +++ b/src/ui/window/options.rs @@ -7,15 +7,109 @@ use iced::widget::{ use iced::{Background, Border, Element, Fill, Theme}; use std::fmt; -#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] +/// Width of the vertical tab rail. Wide enough for the longest translated +/// page name; German and Russian are the ones that set it. +const TAB_RAIL_WIDTH: f32 = 178.0; +/// The dialog's own size when the modal is laid out intrinsically. +const DIALOG_WIDTH: f32 = 880.0; +const DIALOG_HEIGHT: f32 = 620.0; + +/// Which page of the Options dialog is showing. +/// +/// Persisted: with nine pages, reopening on General every time means hunting +/// for the one you were last in. +#[derive( + Clone, Copy, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize, +)] +#[serde(rename_all = "kebab-case")] pub enum OptionsTab { #[default] General, + Files, + OpenAndSave, Display, + Drafting, + Modeling, Selection, + UserPreferences, Drawing, } +/// Application preferences the dialog reads that are plain scalars on the app. +/// +/// Gathered rather than passed one by one: `view_window` already carries a +/// long positional list, and several of these are adjacent `bool`s that would +/// swap silently at the call site. +#[derive(Clone, Copy)] +pub struct AppPrefs { + /// SAVETIME, minutes between recovery saves; 0 disables. + pub savetime_min: i32, + /// ISAVEBAK: keep a `.bak` when overwriting. + pub backup_on_save: bool, + /// TEXTFILL: fill TrueType glyphs rather than drawing them hollow. + pub textfill: bool, + /// CLIPROMPTLINES: prompt lines shown above the command window. + pub cliprompt_lines: i32, + /// COMMANDLINEFADETIME: how long overlay history lines stay visible, in ms. + pub commandline_fade_ms: i32, + /// ZOOMWHEEL: reverse the mouse-wheel zoom direction. + pub zoom_wheel_reversed: bool, + /// ZOOMFACTOR, 3..=100. + pub zoom_factor: i32, + /// TEXTEDITMODE: TEXTEDIT keeps prompting for the next object. + pub texteditmode: bool, + /// DIMCONTINUEMODE: continued dimensions inherit the base dimension's style. + pub dimension_continue_mode: i16, + /// QDIM extension-origin priority: 0 endpoints, 1 intersections. + pub qdim_snap_priority: u8, + /// ANNOAUTOSCALE, -4..=4. The sign is on/off; the magnitude selects which + /// objects a newly added scale reaches. + pub annotation_auto_scale: i8, + /// Polar tracking increment in degrees. + pub polar_increment_deg: f32, + /// NAVVCUBE: show the navigation cube. + pub show_viewcube: bool, + /// UCSICON: show the UCS icon. + pub show_ucs_icon: bool, + /// UCSICON ORigin: draw it at the origin rather than the corner. + pub ucs_icon_at_origin: bool, +} + +/// The fixed locations the Files page lists. +/// +/// `None` where the platform could not give one — the row then says so and +/// its button is disabled rather than opening nothing. +#[derive(Clone, Default)] +pub struct Folders { + pub config: Option, + pub plot_styles: Option, + pub plugins: Option, + pub autosave: Option, +} + +/// Values read from the current drawing's header rather than from preferences. +/// +/// These are saved in the DWG, so they follow the drawing rather than the +/// application — the page labels them as such. `available` is false when no +/// drawing is open and the controls are not drawn at all. +#[derive(Clone, Copy)] +pub struct DrawingPrefs { + pub available: bool, + /// ISOLINES. + pub isolines: i16, + /// DISPSILH. + pub display_silhouette: bool, + /// SURFU / SURFV. + pub surface_u: i16, + pub surface_v: i16, + /// SURFTYPE: 5, 6 or 8. + pub surface_type: i16, + /// SOLIDHIST. + pub record_solid_history: bool, + /// SHOWHIST, 0..=2. + pub show_solid_history: i16, +} + /// The Selection-card settings that live on `UserSettings` rather than on the /// model-space theme. /// @@ -32,6 +126,8 @@ pub struct SelectionPrefs { pub pick_drag_rect: bool, /// GRIPOBJLIMIT, 0..=32767; 0 = no limit. pub grip_object_limit: i32, + /// Selection cycling: a click where objects overlap opens a picker. + pub selection_cycling: bool, } #[derive(Clone, Debug, PartialEq, Eq)] @@ -56,6 +152,10 @@ pub fn view_window<'a>( active_tab: OptionsTab, cursor_size: i32, selection: SelectionPrefs, + prefs: AppPrefs, + snap_angle_input: &'a str, + drawing_prefs: DrawingPrefs, + folders: Folders, double_click_block_refedit: bool, double_click_block_attedit: bool, cursor_type: CursorType, @@ -173,8 +273,50 @@ pub fn view_window<'a>( ] .spacing(12) .align_y(iced::Center), - Space::new().height(22), - text(crate::tr!("options", "open-save-section")).size(15), + Space::new().height(24), + text(crate::t!("Applications")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Installed plugins and their sources")).size(12).width(Fill), + button(text(crate::t!("Plugins…")).size(11)) + .on_press(Message::PluginManagerOpen) + .padding([4, 10]) + .style(button::secondary), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(10), + row![ + text(crate::t!("Keyboard shortcuts")).size(12).width(Fill), + button(text(crate::t!("Keyboard Shortcuts…")).size(11)) + .on_press(Message::ShortcutsPanelOpen) + .padding([4, 10]) + .style(button::secondary), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(10), + row![ + text(crate::t!("Command aliases")).size(12).width(Fill), + button(text(crate::t!("Command Aliases…")).size(11)) + .on_press(Message::AliasEditorOpen) + .padding([4, 10]) + .style(button::secondary), + ] + .spacing(10) + .align_y(iced::Center), + ] + .spacing(0) + .width(sizing.width); + + + // Saving preferences, gathered onto one page. The format and the file + // association were on General, which had become a page of three unrelated + // controls; the autosave interval and the backup toggle have existed since + // #205 with no control at all. + let open_and_save = column![ + text(crate::t!("Open and Save")).size(15), + Space::new().height(10), Space::new().height(10), row![ text(crate::tr!("options", "default-save-format-label")).size(12).width(150), @@ -208,6 +350,53 @@ pub fn view_window<'a>( )) .size(11) .width(sizing.width), + Space::new().height(22), + text(crate::t!("File Safety")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Automatic save")).size(12).width(150), + slider(0..=120, prefs.savetime_min.clamp(0, 120), Message::SaveTimeChanged) + .step(1) + .width(Fill), + text(if prefs.savetime_min <= 0 { + crate::t!("Off").into_owned() + } else { + format!("{} min", prefs.savetime_min) + }) + .size(11) + .width(52), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(6), + text(crate::t!( + "Minutes between recovery saves to a .sv$ file; 0 turns it off (SAVETIME)." + )) + .size(11) + .width(sizing.width), + Space::new().height(14), + row![ + iced::widget::checkbox(prefs.backup_on_save) + .on_toggle(Message::BackupOnSaveChanged) + .size(15), + text(crate::t!("Keep a .bak copy when overwriting a drawing (ISAVEBAK)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + Space::new().height(22), + text(crate::t!("Plotting")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Plot device, paper, scale and plot styles")) + .size(12) + .width(Fill), + button(text(crate::t!("Plot and Page Setup…")).size(11)) + .on_press(Message::PlotDialogOpen) + .padding([4, 10]) + .style(button::secondary), + ] + .spacing(10) + .align_y(iced::Center), ] .spacing(0) .width(sizing.width); @@ -556,6 +745,75 @@ pub fn view_window<'a>( text(crate::t!("Changes the on-screen width in Model without affecting plotted output.")) .size(11) .width(sizing.width), + ) + .push(Space::new().height(14)) + .push( + row![ + iced::widget::checkbox(prefs.textfill) + .on_toggle(Message::TextFillChanged) + .size(15), + text(crate::t!("Fill TrueType glyphs (TEXTFILL)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + ) + .push(Space::new().height(24)) + .push(text(crate::t!("Command Line")).size(15)) + .push(Space::new().height(10)) + .push( + row![ + text(crate::t!("Prompt lines")).size(12).width(140), + slider( + 0..=50, + prefs.cliprompt_lines.clamp(0, 50), + Message::ClipromptLinesChanged, + ) + .step(1) + .width(Fill), + text(prefs.cliprompt_lines.clamp(0, 50).to_string()) + .size(11) + .width(44), + ] + .spacing(10) + .align_y(iced::Center), + ) + .push(Space::new().height(6)) + .push( + text(crate::t!( + "Temporary prompt lines shown above the command window (CLIPROMPTLINES)." + )) + .size(11) + .width(sizing.width), + ) + .push(Space::new().height(12)) + .push( + row![ + text(crate::t!("History fade time")).size(12).width(140), + slider( + 0..=60000, + prefs.commandline_fade_ms.clamp(0, 60000), + Message::CommandLineFadeChanged, + ) + .step(250) + .width(Fill), + text(if prefs.commandline_fade_ms <= 0 { + crate::t!("Off").into_owned() + } else { + format!("{:.1} s", prefs.commandline_fade_ms as f32 / 1000.0) + }) + .size(11) + .width(44), + ] + .spacing(10) + .align_y(iced::Center), + ) + .push(Space::new().height(6)) + .push( + text(crate::t!( + "How long overlay history lines stay visible; 0 skips them (COMMANDLINEFADETIME)." + )) + .size(11) + .width(sizing.width), ); let display_element = display.spacing(0).width(sizing.width); @@ -604,6 +862,15 @@ pub fn view_window<'a>( ] .spacing(8) .align_y(iced::Center), + Space::new().height(10), + row![ + iced::widget::checkbox(selection.selection_cycling) + .on_toggle(Message::SelectionCyclingChanged) + .size(15), + text(crate::t!("Clicking overlapping objects opens a picker")).size(12), + ] + .spacing(8) + .align_y(iced::Center), Space::new().height(24), row![ text(crate::t!("Visual Effect Settings")).size(15), @@ -834,45 +1101,517 @@ pub fn view_window<'a>( .spacing(0) .width(sizing.width); + + // ANNOAUTOSCALE's magnitude decides which objects a newly added scale + // reaches — 1 skips layers that are off, frozen, locked or frozen in the + // viewport, 2 keeps locked ones, 3 skips only locked, 4 takes everything. + // The sign is the on/off the status-bar pill flips, so the mode survives + // being switched off and back on. + let auto_scale_options = [ + (0i8, "Off"), + (1, "Skip objects on layers that are off, frozen or locked"), + (2, "Skip objects on layers that are off or frozen"), + (3, "Skip objects on locked layers"), + (4, "All annotative objects"), + ] + .into_iter() + .map(|(value, label)| Labelled { + value, + label: crate::t!(label).into_owned(), + }) + .collect::>(); + let selected_auto_scale = auto_scale_options + .iter() + .find(|choice| choice.value == prefs.annotation_auto_scale.max(0)) + .cloned(); + + let qdim_options = [ + (0u8, "Endpoints"), + (1, "Intersections"), + ] + .into_iter() + .map(|(value, label)| Labelled { + value, + label: crate::t!(label).into_owned(), + }) + .collect::>(); + let selected_qdim = qdim_options + .iter() + .find(|choice| choice.value == prefs.qdim_snap_priority) + .cloned(); + + let user_prefs = column![ + text(crate::t!("User Preferences")).size(15), + Space::new().height(10), + text(crate::t!("Zoom")).size(15), + Space::new().height(10), + row![ + iced::widget::checkbox(prefs.zoom_wheel_reversed) + .on_toggle(Message::ZoomWheelReversedChanged) + .size(15), + text(crate::t!("Reverse mouse wheel zoom (ZOOMWHEEL)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + Space::new().height(12), + row![ + text(crate::t!("Zoom factor")).size(12).width(150), + slider(3..=100, prefs.zoom_factor.clamp(3, 100), Message::ZoomFactorChanged) + .step(1) + .width(Fill), + text(prefs.zoom_factor.clamp(3, 100).to_string()).size(11).width(44), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(6), + text(crate::t!("How far one wheel notch zooms (ZOOMFACTOR).")) + .size(11) + .width(sizing.width), + Space::new().height(24), + text(crate::t!("Text and Dimensions")).size(15), + Space::new().height(10), + row![ + iced::widget::checkbox(prefs.texteditmode) + .on_toggle(Message::TextEditModeChanged) + .size(15), + text(crate::t!("TEXTEDIT edits one object and ends (TEXTEDITMODE)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + Space::new().height(12), + row![ + iced::widget::checkbox(prefs.dimension_continue_mode == 1) + .on_toggle(Message::DimContinueModeChanged) + .size(15), + text(crate::t!( + "Continued dimensions inherit the base dimension's layer and style (DIMCONTINUEMODE)" + )) + .size(12), + ] + .spacing(8) + .align_y(iced::Center), + Space::new().height(12), + row![ + text(crate::t!("QDIM origin priority")).size(12).width(150), + iced::widget::pick_list(selected_qdim, qdim_options, |choice| choice.label.clone()) + .on_select(|choice| Message::QdimSnapPriorityChanged(choice.value)) + .width(Fill), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(6), + text(crate::t!( + "Which points QDIM measures from. Also settable inside the command." + )) + .size(11) + .width(sizing.width), + Space::new().height(24), + text(crate::t!("Annotation")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Add scales automatically")).size(12).width(150), + iced::widget::pick_list(selected_auto_scale, auto_scale_options, |choice| { + choice.label.clone() + }) + .on_select(|choice| Message::AnnoAutoScaleChanged(choice.value)) + .width(Fill), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(6), + text(crate::t!( + "Which annotative objects pick up a newly set annotation scale (ANNOAUTOSCALE)." + )) + .size(11) + .width(sizing.width), + Space::new().height(24), + text(crate::t!("Drawing Units")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Length, angle and insertion units")) + .size(12) + .width(Fill), + button(text(crate::t!("Drawing Units…")).size(11)) + .on_press(Message::OpenDrawingUnits) + .padding([4, 10]) + .style(button::secondary), + ] + .spacing(10) + .align_y(iced::Center), + ] + .spacing(0) + .width(sizing.width); + + + // Snap modes, grid and object snap stay in the Drafting Settings dialog. + // These two have no home: Drafting Settings shows the rotation angle but + // offers only Reset, and the polar increment lives solely in a status-bar + // pop-up. + let polar_options = [90.0f32, 45.0, 30.0, 22.5, 18.0, 15.0, 10.0, 5.0, 1.0] + .into_iter() + .map(|value| Labelled { + label: format!("{}°", crate::app::settings::format_snap_angle(value)), + value, + }) + .collect::>(); + let selected_polar = polar_options + .iter() + .find(|choice| (choice.value - prefs.polar_increment_deg).abs() < 1e-4) + .cloned() + .unwrap_or_else(|| Labelled { + value: prefs.polar_increment_deg, + label: format!( + "{}°", + crate::app::settings::format_snap_angle(prefs.polar_increment_deg) + ), + }); + + let drafting = column![ + text(crate::t!("Drafting")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Drafting rotation")).size(12).width(150), + text_input("0", snap_angle_input) + .on_input(Message::SnapAngleInputChanged) + .width(110), + text(crate::t!("degrees")).size(11), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(6), + text(crate::t!( + "Rotates the crosshair and the snap grid in the active UCS (SNAPANG)." + )) + .size(11) + .width(sizing.width), + Space::new().height(14), + row![ + text(crate::t!("Polar tracking increment")).size(12).width(150), + iced::widget::pick_list(Some(selected_polar), polar_options, |choice| { + choice.label.clone() + }) + .on_select(|choice| Message::PolarIncrementChanged(choice.value)) + .width(Fill), + ] + .spacing(10) + .align_y(iced::Center), + Space::new().height(24), + text(crate::t!("Snap and Grid")).size(15), + Space::new().height(10), + row![ + text(crate::t!("Snap modes, grid spacing and object snap")) + .size(12) + .width(Fill), + button(text(crate::t!("Drafting Settings…")).size(11)) + .on_press(Message::ToggleSnapPopup) + .padding([4, 10]) + .style(button::secondary), + ] + .spacing(10) + .align_y(iced::Center), + ] + .spacing(0) + .width(sizing.width); + + + let surface_type_options = [ + (5i16, "Quadratic B-spline"), + (6, "Cubic B-spline"), + (8, "Bezier"), + ] + .into_iter() + .map(|(value, label)| Labelled { + value, + label: format!("{} ({value})", crate::t!(label)), + }) + .collect::>(); + let selected_surface_type = surface_type_options + .iter() + .find(|choice| choice.value == drawing_prefs.surface_type) + .cloned(); + + let show_history_options = [ + (0i16, "Never"), + (1, "As set per solid"), + (2, "Always"), + ] + .into_iter() + .map(|(value, label)| Labelled { + value, + label: crate::t!(label).into_owned(), + }) + .collect::>(); + let selected_show_history = show_history_options + .iter() + .find(|choice| choice.value == drawing_prefs.show_solid_history.clamp(0, 2)) + .cloned(); + + let mut modeling = column![ + text(crate::t!("3D Modeling")).size(15), + Space::new().height(10), + text(crate::t!("Display Tools")).size(15), + Space::new().height(10), + row![ + iced::widget::checkbox(prefs.show_viewcube) + .on_toggle(Message::ShowViewCubeChanged) + .size(15), + text(crate::t!("Show the navigation cube (NAVVCUBE)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + Space::new().height(10), + row![ + iced::widget::checkbox(prefs.show_ucs_icon) + .on_toggle(Message::ShowUcsIconChanged) + .size(15), + text(crate::t!("Show the UCS icon (UCSICON)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + Space::new().height(10), + row![ + iced::widget::checkbox(prefs.ucs_icon_at_origin) + .on_toggle(Message::UcsIconAtOriginChanged) + .size(15), + text(crate::t!("Place the UCS icon at the origin (UCSICON ORigin)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + ]; + + if drawing_prefs.available { + modeling = modeling + .push(Space::new().height(24)) + .push( + row![ + text(crate::t!("Display Resolution")).size(15), + Space::new().width(10), + text(crate::t!("applies to the current drawing")).size(11), + ] + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + text(crate::t!("Isolines per surface")).size(12).width(150), + slider( + 0..=64, + drawing_prefs.isolines.clamp(0, 64), + Message::IsolinesChanged, + ) + .step(1i16) + .width(Fill), + text(drawing_prefs.isolines.clamp(0, 64).to_string()) + .size(11) + .width(44), + ] + .spacing(10) + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + iced::widget::checkbox(drawing_prefs.display_silhouette) + .on_toggle(Message::DispSilhChanged) + .size(15), + text(crate::t!("Show silhouette edges on solids (DISPSILH)")).size(12), + ] + .spacing(8) + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + text(crate::t!("Surface density U")).size(12).width(150), + slider( + 0..=200, + drawing_prefs.surface_u.clamp(0, 200), + Message::SurfaceUChanged, + ) + .step(1i16) + .width(Fill), + text(drawing_prefs.surface_u.clamp(0, 200).to_string()) + .size(11) + .width(44), + ] + .spacing(10) + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + text(crate::t!("Surface density V")).size(12).width(150), + slider( + 0..=200, + drawing_prefs.surface_v.clamp(0, 200), + Message::SurfaceVChanged, + ) + .step(1i16) + .width(Fill), + text(drawing_prefs.surface_v.clamp(0, 200).to_string()) + .size(11) + .width(44), + ] + .spacing(10) + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + text(crate::t!("Surface type")).size(12).width(150), + iced::widget::pick_list( + selected_surface_type, + surface_type_options, + |choice| choice.label.clone(), + ) + .on_select(|choice| Message::SurfaceTypeChanged(choice.value)) + .width(Fill), + ] + .spacing(10) + .align_y(iced::Center), + ) + .push(Space::new().height(24)) + .push( + row![ + text(crate::t!("Solid History")).size(15), + Space::new().width(10), + text(crate::t!("applies to the current drawing")).size(11), + ] + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + iced::widget::checkbox(drawing_prefs.record_solid_history) + .on_toggle(Message::SolidHistChanged) + .size(15), + text(crate::t!("Record the history of composite solids (SOLIDHIST)")) + .size(12), + ] + .spacing(8) + .align_y(iced::Center), + ) + .push(Space::new().height(10)) + .push( + row![ + text(crate::t!("Show solid history")).size(12).width(150), + iced::widget::pick_list( + selected_show_history, + show_history_options, + |choice| choice.label.clone(), + ) + .on_select(|choice| Message::ShowHistChanged(choice.value)) + .width(Fill), + ] + .spacing(10) + .align_y(iced::Center), + ); + } + + let modeling = modeling.spacing(0).width(sizing.width); + + + // The application has no support-file search path, so this page does not + // pretend to offer one. It shows where things actually live and opens the + // folder — which is the question people are really asking when they go + // looking for a Files page. + let folder_row = |label: std::borrow::Cow<'a, str>, path: Option| { + let shown = path.clone().unwrap_or_else(|| crate::t!("Not available").into_owned()); + let mut open = button(text(crate::t!("Open folder")).size(11)) + .padding([4, 10]) + .style(button::secondary); + if let Some(path) = path { + open = open.on_press(Message::OpenFolder(path)); + } + row![ + column![ + text(label).size(12), + text(shown).size(11), + ] + .spacing(2) + .width(Fill), + open, + ] + .spacing(10) + .align_y(iced::Center) + }; + + let files = column![ + text(crate::t!("Files")).size(15), + Space::new().height(6), + text(crate::t!( + "Where the application keeps its own files. These locations are fixed." + )) + .size(11) + .width(sizing.width), + Space::new().height(16), + folder_row(crate::t!("Configuration"), folders.config.clone()), + Space::new().height(12), + folder_row(crate::t!("Plot styles"), folders.plot_styles.clone()), + Space::new().height(12), + folder_row(crate::t!("Plugins"), folders.plugins.clone()), + Space::new().height(12), + folder_row(crate::t!("Autosave files"), folders.autosave.clone()), + ] + .spacing(0) + .width(sizing.width); + let content: Element<'a, Message> = match active_tab { OptionsTab::General => general.into(), OptionsTab::Display => display_element.into(), OptionsTab::Selection => selection.into(), + OptionsTab::Files => files.into(), + OptionsTab::OpenAndSave => open_and_save.into(), + OptionsTab::Drafting => drafting.into(), + OptionsTab::Modeling => modeling.into(), + OptionsTab::UserPreferences => user_prefs.into(), OptionsTab::Drawing => drawing.into(), }; + // A vertical rail rather than a horizontal strip: the tab names are + // translated into 21 languages, and a row of them stops fitting long + // before the list of pages is complete. let tab_button = |label, tab| { let selected = active_tab == tab; - button(text(label).size(12)) + button(text(label).size(12.5)) .on_press(Message::OptionsTabChanged(tab)) - .padding([6, 14]) - .style(if selected { button::primary } else { button::secondary }) + .padding([7, 12]) + .width(Fill) + .style(if selected { button::primary } else { button::text }) }; - let tabs = row![ + let tabs = column![ tab_button(crate::t!("General"), OptionsTab::General), + tab_button(crate::t!("Files"), OptionsTab::Files), + tab_button(crate::t!("Open and Save"), OptionsTab::OpenAndSave), tab_button(crate::t!("Display"), OptionsTab::Display), + tab_button(crate::t!("Drafting"), OptionsTab::Drafting), + tab_button(crate::t!("3D Modeling"), OptionsTab::Modeling), tab_button(crate::t!("Selection"), OptionsTab::Selection), + tab_button(crate::t!("User Preferences"), OptionsTab::UserPreferences), tab_button(crate::t!("Drawing"), OptionsTab::Drawing), ] - .spacing(6); + .spacing(2) + .width(iced::Length::Fixed(TAB_RAIL_WIDTH)); - let body = column![ - tabs, - Space::new().height(12), + let pane = column![ // Keep the scrollbar in its own lane instead of floating over the // controls at the trailing edge of the Options content. - scrollable(content).spacing(8).height(sizing.height), + scrollable(content).spacing(8).height(Fill), Space::new().height(12), - row![Space::new().width(sizing.width), close], + row![Space::new().width(Fill), close], ] - .width(sizing.width) + .width(Fill) .height(sizing.height); + let body = row![tabs, Space::new().width(18), pane] + .width(sizing.width) + .height(sizing.height); + let intrinsic = sizing.width == crate::ui::modal::ModalSizing::INTRINSIC.width; container(body) .style(container::rounded_box) .padding([16, 18]) - .width(if intrinsic { iced::Length::Fixed(540.0) } else { sizing.width }) - .height(if intrinsic { iced::Length::Fixed(560.0) } else { sizing.height }) + .width(if intrinsic { iced::Length::Fixed(DIALOG_WIDTH) } else { sizing.width }) + .height(if intrinsic { iced::Length::Fixed(DIALOG_HEIGHT) } else { sizing.height }) .into() }