From d86f2d5461da049b52e127f3e9d3ebce4042ede5 Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Sun, 4 Oct 2026 19:59:26 +0200 Subject: [PATCH 01/12] Crop a picture directly on the folio Double-clicking a picture, or "Crop on the folio" in its context menu, crops it in place: the whole original is shown, dimmed outside the region kept, and eight handles move the crop's edges; a drag inside the frame moves the crop window over the original. Enter, a double-click or a click elsewhere applies the crop as one undo step, keeping the kept region where it is on the folio; Escape drops it. Rotated and scaled pictures are cropped along their own sides. While cropping, the picture is the folio's keyboardItem (see the Escape commit before this one), so the view hands it Enter and Escape before its own shortcuts: Enter does not repeat the last placing command, and Escape does not clear the selection, which would apply the crop. The context menu gains "Reset crop", which shows the whole original again, and "Properties...", since double-click no longer opens them. The crop dialog stays available. Co-Authored-By: Claude Opus 5.5 --- cmake/qet_compilation_vars.cmake | 1 + sources/qetgraphicsitem/cropgeometry.h | 97 +++++++ sources/qetgraphicsitem/diagramimageitem.cpp | 273 ++++++++++++++++++- sources/qetgraphicsitem/diagramimageitem.h | 24 +- tests/qttest/CMakeLists.txt | 9 + tests/qttest/tst_cropgeometry.cpp | 107 ++++++++ 6 files changed, 500 insertions(+), 11 deletions(-) create mode 100644 sources/qetgraphicsitem/cropgeometry.h create mode 100644 tests/qttest/tst_cropgeometry.cpp diff --git a/cmake/qet_compilation_vars.cmake b/cmake/qet_compilation_vars.cmake index 94d81db28..2a46f4e8e 100644 --- a/cmake/qet_compilation_vars.cmake +++ b/cmake/qet_compilation_vars.cmake @@ -581,6 +581,7 @@ set(QET_SRC_FILES ${QET_DIR}/sources/qetgraphicsitem/crossrefitem.h ${QET_DIR}/sources/qetgraphicsitem/diagramimageitem.cpp ${QET_DIR}/sources/qetgraphicsitem/diagramimageitem.h + ${QET_DIR}/sources/qetgraphicsitem/cropgeometry.h ${QET_DIR}/sources/qetgraphicsitem/diagramtextitem.cpp ${QET_DIR}/sources/qetgraphicsitem/diagramtextitem.h ${QET_DIR}/sources/qetgraphicsitem/dynamicelementtextitem.cpp diff --git a/sources/qetgraphicsitem/cropgeometry.h b/sources/qetgraphicsitem/cropgeometry.h new file mode 100644 index 000000000..b72b46b1b --- /dev/null +++ b/sources/qetgraphicsitem/cropgeometry.h @@ -0,0 +1,97 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CROPGEOMETRY_H +#define CROPGEOMETRY_H + +#include +#include +#include + +#include +#include + +/** + The geometry of cropping a picture directly on the folio, in the + picture's own pixels. Free of any item so that it can be tested on + its own. +*/ +namespace CropGeometry +{ + /// Which edges of the crop frame a handle moves. + struct Edges + { + bool left = false; + bool top = false; + bool right = false; + bool bottom = false; + }; + + /** + Edges moved by the handle at @a handle on a frame of @a size, from + where that handle sits: on the left side it moves the left edge, + in the middle of a side only that side's edge. + */ + inline Edges edgesForHandle(const QPointF &handle, const QSizeF &size) + { + Edges e; + e.left = qFuzzyIsNull(handle.x()); + e.right = qFuzzyCompare(handle.x(), size.width()); + e.top = qFuzzyIsNull(handle.y()); + e.bottom = qFuzzyCompare(handle.y(), size.height()); + return e; + } + + /** + @a crop with the @a edges moved to @a point, kept inside @a bounds + and never smaller than @a minimum on either side: an edge stops + at the opposite one instead of crossing it. + */ + inline QRectF dragEdges(const QRectF &crop, Edges edges, const QPointF &point, + const QRectF &bounds, qreal minimum) + { + const qreal x = std::clamp(point.x(), bounds.left(), bounds.right()); + const qreal y = std::clamp(point.y(), bounds.top(), bounds.bottom()); + QRectF r = crop; + if (edges.left) r.setLeft(std::min(x, crop.right() - minimum)); + if (edges.right) r.setRight(std::max(x, crop.left() + minimum)); + if (edges.top) r.setTop(std::min(y, crop.bottom() - minimum)); + if (edges.bottom) r.setBottom(std::max(y, crop.top() + minimum)); + return r; + } + + /// @a crop moved by @a delta, but no further than @a bounds allow. + inline QRectF moveWithin(const QRectF &crop, const QPointF &delta, const QRectF &bounds) + { + QRectF r = crop.translated(delta); + r.moveLeft(std::clamp(r.left(), bounds.left(), bounds.right() - r.width())); + r.moveTop(std::clamp(r.top(), bounds.top(), bounds.bottom() - r.height())); + return r; + } + + /// The whole-pixel crop rectangle closest to @a crop. + inline QRect toPixels(const QRectF &crop) + { + const int left = int(std::lround(crop.left())); + const int top = int(std::lround(crop.top())); + return QRect(left, top, + int(std::lround(crop.right())) - left, + int(std::lround(crop.bottom())) - top); + } +} + +#endif // CROPGEOMETRY_H diff --git a/sources/qetgraphicsitem/diagramimageitem.cpp b/sources/qetgraphicsitem/diagramimageitem.cpp index ed81b4619..59507b77a 100644 --- a/sources/qetgraphicsitem/diagramimageitem.cpp +++ b/sources/qetgraphicsitem/diagramimageitem.cpp @@ -17,6 +17,7 @@ */ #include "diagramimageitem.h" #include "../darkimagerendering.h" +#include "cropgeometry.h" #include "../shownkinds.h" #include "../PropertiesEditor/propertieseditordialog.h" @@ -99,6 +100,38 @@ DiagramImageItem::~DiagramImageItem() @param widget the QWidget where we draw the pixmap */ void DiagramImageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { + if (isCropping()) + { + // The whole original, dimmed, with the region being kept drawn + // over it at full strength and outlined. In a dark scene this is + // a picture like any other: kept out of the scene's inversion + // unless the picture adapts to the dark theme, as + // DarkImageRendering::paintPixmap() does for the plain picture. + Q_UNUSED(option); Q_UNUSED(widget); + const QPointF origin = -QPointF(m_crop_rect.topLeft()); + const QRectF previewRect(origin, QSizeF(m_crop_preview.size())); + DarkImageRendering::Context *context = DarkImageRendering::current; + const bool boundary = context && context->painter == painter + && m_adapt_to_dark_theme != context->invertScene; + if (boundary) context->flush(context->invertScene, QRect()); + painter -> save(); + painter -> setOpacity(0.3); + painter -> drawPixmap(origin, m_crop_preview); + painter -> setOpacity(1.0); + painter -> drawPixmap(cropFrameLocal(), m_crop_preview, m_pending_crop); + QPen frame(QColor(255, 140, 0)); + frame.setCosmetic(true); + frame.setWidth(2); + painter -> setPen(frame); + painter -> setBrush(Qt::NoBrush); + painter -> drawRect(cropFrameLocal()); + painter -> restore(); + if (boundary) + context->flush(m_adapt_to_dark_theme, painter->worldTransform().mapRect(previewRect) + .toAlignedRect().adjusted(-2, -2, 2, 2)); + return; + } + DarkImageRendering::paintPixmap(painter, pixmap_, m_adapt_to_dark_theme); Q_UNUSED(option); Q_UNUSED(widget); @@ -461,6 +494,11 @@ QPointF DiagramImageItem::handlePosition(int index) const { const qreal w = pixmap_.width(), h = pixmap_.height(); const HandleRole role = m_handleRoles.at(index); + if (role == HandleRole::CropEdge) + { + const QRectF frame = cropFrameLocal(); + return frame.topLeft() + handleNaturalPosition(index, frame.width(), frame.height()); + } if (role == HandleRole::Resize) return handleNaturalPosition(index, w, h); if (role == HandleRole::Rotate) @@ -479,6 +517,24 @@ QPointF DiagramImageItem::handlePosition(int index) const */ void DiagramImageItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { + if (isCropping()) + { + // Inside the crop frame: move it. On the dimmed rest: done. + if (event->button() == Qt::LeftButton) + { + if (cropFrameLocal().contains(event->pos())) + { + m_crop_moving = true; + m_crop_move_start = event->pos(); + m_crop_move_origin = m_pending_crop; + } + else + finishCropMode(true); + } + event->accept(); + return; + } + const bool wasAlreadySelected = isSelected(); event->ignore(); QetGraphicsItem::mousePressEvent(event); @@ -491,12 +547,67 @@ void DiagramImageItem::mousePressEvent(QGraphicsSceneMouseEvent *event) } } +/** + @brief DiagramImageItem::mouseMoveEvent + In crop mode, a drag inside the crop frame moves it over the + original; the picture itself stays where it is. +*/ +void DiagramImageItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + if (isCropping()) + { + if (m_crop_moving) + { + m_pending_crop = CropGeometry::moveWithin(m_crop_move_origin, + event->pos() - m_crop_move_start, QRectF(m_base_pixmap.rect())); + repositionHandles(); + update(); + } + event->accept(); + return; + } + QetGraphicsItem::mouseMoveEvent(event); +} + +void DiagramImageItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + if (isCropping()) + { + m_crop_moving = false; + event->accept(); + return; + } + QetGraphicsItem::mouseReleaseEvent(event); +} + +/** + @brief DiagramImageItem::mouseDoubleClickEvent + Double-click crops the picture directly on the folio, and applies the + crop when it is already being edited. The properties stay in the + context menu. +*/ +void DiagramImageItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + if (event->button() != Qt::LeftButton) + { + QetGraphicsItem::mouseDoubleClickEvent(event); + return; + } + if (isCropping()) + finishCropMode(true); + else + enterCropMode(); + event->accept(); +} + /** @brief DiagramImageItem::toggleHandleMode */ void DiagramImageItem::toggleHandleMode() { prepareGeometryChange(); + if (isCropping()) + return; m_handleMode = (m_handleMode == HandleMode::Size) ? HandleMode::RotateSkew : HandleMode::Size; rebuildHandles(); refreshInteractionHints(); @@ -517,7 +628,13 @@ DiagramImageItem::HandleMode DiagramImageItem::nextHandleMode() const */ QString DiagramImageItem::handleModeLabel(HandleMode mode) { - return (mode == HandleMode::Size) ? tr("resize") : tr("rotate/skew"); + switch (mode) + { + case HandleMode::Size: return tr("resize"); + case HandleMode::RotateSkew: return tr("rotate/skew"); + case HandleMode::Crop: return tr("crop"); + } + return QString(); } /** @@ -570,6 +687,8 @@ void DiagramImageItem::refreshInteractionHints() */ QString DiagramImageItem::currentModeStatusHint() const { + if (isCropping()) + return tr("Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel"); QString hint = (m_handleMode == HandleMode::Size) ? tr("Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions)") : tr("Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center"); @@ -636,6 +755,7 @@ QColor DiagramImageItem::colorForHandleRole(HandleRole role) case HandleRole::Rotate: return Qt::darkGreen; case HandleRole::SkewEdge: return QColor(255, 140, 0); case HandleRole::Pivot: return Qt::red; + case HandleRole::CropEdge: return QColor(255, 140, 0); } return Qt::blue; } @@ -648,6 +768,7 @@ QString DiagramImageItem::hintForHandleRole(HandleRole role) case HandleRole::Rotate: return tr("Drag: rotate (Shift = 15° steps)"); case HandleRole::SkewEdge: return tr("Drag: skew (Shift = 15° steps)"); case HandleRole::Pivot: return tr("Drag: move the rotation center"); + case HandleRole::CropEdge: return tr("Drag: crop (Enter = apply, Escape = cancel)"); } return QString(); } @@ -656,7 +777,12 @@ void DiagramImageItem::rebuildHandles() { clearHandles(); - if (m_handleMode == HandleMode::Size) + if (m_handleMode == HandleMode::Crop) + { + for (int i = 0; i < 8; ++i) + m_handleRoles << HandleRole::CropEdge; + } + else if (m_handleMode == HandleMode::Size) { for (int i = 0; i < 8; ++i) m_handleRoles << HandleRole::Resize; @@ -849,7 +975,9 @@ void DiagramImageItem::handlerMouseMoveEvent(int index, QGraphicsSceneMouseEvent { const HandleRole role = m_handleRoles.at(index); - if (role == HandleRole::Resize) + if (role == HandleRole::CropEdge) + dragCropHandle(index, event->scenePos()); + else if (role == HandleRole::Resize) dragResize(index, mapFromScene(event->scenePos()), event->modifiers()); else if (role == HandleRole::Rotate) dragRotateHandle(index, event->scenePos(), event->modifiers()); // index IS the corner slot (0-3): Rotate handles are always first @@ -945,6 +1073,9 @@ void DiagramImageItem::handlerMouseReleaseEvent(int index) else m_pivotIsCustom = m_original_pivotIsCustom; // dragged back to where it was: nothing to undo break; + + case HandleRole::CropEdge: + break; // nothing is undone until the crop is applied } if (undo) @@ -981,11 +1112,25 @@ void DiagramImageItem::handlerMouseReleaseEvent(int index) /** @brief DiagramImageItem::keyPressEvent The view sends keys here only while one of the picture's handles is - dragged (see handlerMousePressEvent()): Escape cancels that drag. Any - other key is left to the view. + dragged (see handlerMousePressEvent()) or while it is cropped (see + enterCropMode()). While cropping, Enter applies the crop and Escape + drops it; otherwise Escape cancels the drag. Any other key is left to + the view. */ void DiagramImageItem::keyPressEvent(QKeyEvent *event) { + if (isCropping()) + { + const int key = event->key(); + if (key == Qt::Key_Escape || key == Qt::Key_Return || key == Qt::Key_Enter) + { + if (m_vector_index != -1) + m_drag_cancelled = true; // swallow the rest of a handle drag + finishCropMode(key != Qt::Key_Escape); + event->accept(); + return; + } + } if (event->key() == Qt::Key_Escape && m_vector_index != -1) { cancelHandleDrag(); @@ -1003,6 +1148,16 @@ void DiagramImageItem::keyPressEvent(QKeyEvent *event) void DiagramImageItem::endHandleDrag() { m_vector_index = -1; + if (!isCropping()) // crop mode keeps the keys until it ends + releaseKeyboardItem(); +} + +/** + @brief DiagramImageItem::releaseKeyboardItem + The view's shortcuts get the keys again. +*/ +void DiagramImageItem::releaseKeyboardItem() +{ if (diagram() && diagram()->keyboardItem() == this) diagram()->setKeyboardItem(nullptr); } @@ -1410,6 +1565,9 @@ QVariant DiagramImageItem::itemChange(GraphicsItemChange change, const QVariant rebuildHandles(); else { + // Clicking elsewhere on the folio applies a crop in progress. + if (isCropping()) + finishCropMode(true); prepareGeometryChange(); clearHandles(); m_handleMode = HandleMode::Size; @@ -1467,6 +1625,8 @@ QPixmap DiagramImageItem::computeDisplayPixmap(const QPixmap &base, const QRect */ QRectF DiagramImageItem::boundingRect() const { + if (isCropping()) + return imageRect().united(QRectF(-QPointF(m_crop_rect.topLeft()), m_base_pixmap.size())); if (m_label.isEmpty()) return imageRect(); return imageRect().united(labelRect()); @@ -1872,10 +2032,18 @@ void DiagramImageItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) transparentColor->setIcon(QET::Icons::EditOpacity); connect(transparentColor, &QAction::triggered, this, &DiagramImageItem::setTransparentColor); + QAction *cropHere = menu.data()->addAction(tr("Crop on the folio")); + cropHere->setIcon(QET::Icons::TransformCrop); + connect(cropHere, &QAction::triggered, this, &DiagramImageItem::enterCropMode); + QAction *cropAction = menu.data()->addAction(tr("Crop...")); cropAction->setIcon(QET::Icons::TransformCrop); connect(cropAction, &QAction::triggered, this, &DiagramImageItem::crop); + QAction *resetCropAction = menu.data()->addAction(tr("Reset crop")); + resetCropAction->setEnabled(m_crop_rect != m_base_pixmap.rect()); + connect(resetCropAction, &QAction::triggered, this, &DiagramImageItem::resetCrop); + QAction *mirrorH = menu.data()->addAction(tr("Horizontal mirror")); mirrorH->setIcon(QET::Icons::ImageFlipHorizontal); QAction *mirrorV = menu.data()->addAction(tr("Vertical mirror")); @@ -1886,9 +2054,10 @@ void DiagramImageItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) QAction *restoreRatio = menu.data()->addAction(tr("Restore proportions")); connect(restoreRatio, &QAction::triggered, this, &DiagramImageItem::restoreAspectRatio); - // menu.data()->addSeparator(); - // QAction *properties = menu.data()->addAction(tr("Propriétés...")); - // connect(properties, &QAction::triggered, this, &DiagramImageItem::editProperty); + // Double-click crops now, so the properties are opened from here. + menu.data()->addSeparator(); + QAction *properties = menu.data()->addAction(tr("Properties...")); + connect(properties, &QAction::triggered, this, &DiagramImageItem::editProperty); menu.data()->addSeparator(); menu.data()->addActions(d_view->contextMenuActions()); @@ -2058,6 +2227,94 @@ void DiagramImageItem::crop() applyCrop(dialog.cropRect()); } +/** + @brief DiagramImageItem::enterCropMode + Crop the picture directly on the folio: the whole original is shown, + dimmed outside the region kept, and handles move the crop's edges. + Nothing changes until finishCropMode() applies it. +*/ +void DiagramImageItem::enterCropMode() +{ + if (!diagram() || diagram()->isReadOnly() || m_base_pixmap.isNull() || isCropping()) + return; + setSelected(true); + prepareGeometryChange(); + m_pending_crop = QRectF(m_crop_rect); + m_crop_preview = computeDisplayPixmap(m_base_pixmap, m_base_pixmap.rect(), m_transparent_colors); + m_handleMode = HandleMode::Crop; + rebuildHandles(); + // Enter and Escape end the crop: the view sends keys here first, before + // its own Enter (repeat the last command) and Escape (clear the + // selection, which would apply the crop). + diagram()->setKeyboardItem(this); + refreshInteractionHints(); + showStatusHint(currentModeStatusHint()); + update(); +} + +/** + @brief DiagramImageItem::finishCropMode + Leave crop mode, applying the crop when @a apply is true -- one undo + step, see applyCrop() -- and dropping it otherwise. +*/ +void DiagramImageItem::finishCropMode(bool apply) +{ + if (!isCropping()) + return; + prepareGeometryChange(); + const QRect crop = CropGeometry::toPixels(m_pending_crop); + m_handleMode = HandleMode::Size; + releaseKeyboardItem(); + m_crop_moving = false; + m_crop_preview = QPixmap(); + if (isSelected()) + rebuildHandles(); + else + clearHandles(); + clearStatusHint(); + refreshInteractionHints(); + update(); + if (apply) + applyCrop(crop); +} + +/** + @brief DiagramImageItem::resetCrop + Show the whole original again, as one undoable step. +*/ +void DiagramImageItem::resetCrop() +{ + finishCropMode(false); + applyCrop(m_base_pixmap.rect()); +} + +/** + @brief DiagramImageItem::cropFrameLocal + @return the crop being edited, in the item's own coordinates, where + the current crop's top-left corner is (0, 0). +*/ +QRectF DiagramImageItem::cropFrameLocal() const +{ + return m_pending_crop.translated(-QPointF(m_crop_rect.topLeft())); +} + +/** + @brief DiagramImageItem::dragCropHandle + Move the crop edges held by handle @a index to @a scenePos, mapped + through the picture's transform, so a rotated or scaled picture is + cropped along its own sides. +*/ +void DiagramImageItem::dragCropHandle(int index, const QPointF &scenePos) +{ + const QPointF basePoint = mapFromScene(scenePos) + QPointF(m_crop_rect.topLeft()); + const CropGeometry::Edges edges = CropGeometry::edgesForHandle( + handleNaturalPosition(index, 2, 2), QSizeF(2, 2)); + m_pending_crop = CropGeometry::dragEdges(m_pending_crop, edges, basePoint, + QRectF(m_base_pixmap.rect()), 4.0); + repositionHandles(); + update(); +} + /** @brief DiagramImageItem::applyCrop Show @a cropRect of the original (in the original's own pixels), diff --git a/sources/qetgraphicsitem/diagramimageitem.h b/sources/qetgraphicsitem/diagramimageitem.h index 61ede8ccb..a5fb12aa6 100644 --- a/sources/qetgraphicsitem/diagramimageitem.h +++ b/sources/qetgraphicsitem/diagramimageitem.h @@ -88,6 +88,10 @@ class DiagramImageItem : public QetGraphicsItem { void setImageSourceVariant(const QVariant &source); QRect cropRect() const { return m_crop_rect; } bool applyCrop(const QRect &cropRect); + bool isCropping() const { return m_handleMode == HandleMode::Crop; } + void enterCropMode(); + void finishCropMode(bool apply); + void resetCrop(); // attributes public: @@ -103,8 +107,8 @@ class DiagramImageItem : public QetGraphicsItem { // not shared code, since the two classes' broader handle roles // differ too much (no path/polygon/arc concepts here) for sharing // the dispatcher itself to be worth an indirect abstraction. - enum class HandleMode { Size, RotateSkew }; - enum class HandleRole { Resize, Rotate, SkewEdge, Pivot }; + enum class HandleMode { Size, RotateSkew, Crop }; + enum class HandleRole { Resize, Rotate, SkewEdge, Pivot, CropEdge }; // methods public: @@ -171,6 +175,9 @@ class DiagramImageItem : public QetGraphicsItem { void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *) override; void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override; void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override; void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override; bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) override; @@ -206,6 +213,7 @@ class DiagramImageItem : public QetGraphicsItem { void handlerMouseReleaseEvent(int index); void cancelHandleDrag(); void endHandleDrag(); + void releaseKeyboardItem(); void dragResize(int index, const QPointF &localPos, Qt::KeyboardModifiers mods); void dragRotateHandle(int cornerIndex, const QPointF &scenePos, Qt::KeyboardModifiers mods); void dragSkewHandle(int edgeIndex, const QPointF &scenePos, Qt::KeyboardModifiers mods); @@ -267,7 +275,17 @@ class DiagramImageItem : public QetGraphicsItem { QVector m_handleRoles; int m_vector_index = -1; QPointF m_original_pos; // scene position at the start of a resize/rotate/pivot drag, for Escape-to-cancel - bool m_drag_cancelled = false; // Escape pressed: ignore the rest of this mouse gesture + bool m_drag_cancelled = false; + // Crop mode: the crop being edited, in the original's pixels; the + // whole original, colour-keyed, shown dimmed around it; and the + // state of a drag that moves the crop window. + QRectF m_pending_crop; + QPixmap m_crop_preview; + bool m_crop_moving = false; + QPointF m_crop_move_start; + QRectF m_crop_move_origin; + QRectF cropFrameLocal() const; + void dragCropHandle(int index, const QPointF &scenePos); // Escape pressed: ignore the rest of this mouse gesture ShapeTransform m_original_transform; bool m_original_pivotIsCustom = false; bool m_deferHandleReposition = false; // see setPivot()'s comment diff --git a/tests/qttest/CMakeLists.txt b/tests/qttest/CMakeLists.txt index 8653c86a4..4dc696228 100644 --- a/tests/qttest/CMakeLists.txt +++ b/tests/qttest/CMakeLists.txt @@ -1092,6 +1092,15 @@ add_test(NAME tst_diagramcontext COMMAND tst_diagramcontext) target_include_directories(tst_diagramcontext PRIVATE ${QET_DIR}/sources) target_link_libraries(tst_diagramcontext PRIVATE Qt::Test Qt::Widgets Qt::Xml pugixml::pugixml) +# Cropping a picture on the folio: which edges a handle moves, how far, +# and moving the crop window over the original (CropGeometry). +add_executable( + tst_cropgeometry + tst_cropgeometry.cpp) +add_test(NAME tst_cropgeometry COMMAND tst_cropgeometry) +target_include_directories(tst_cropgeometry PRIVATE ${QET_DIR}/sources) +target_link_libraries(tst_cropgeometry PRIVATE Qt::Test Qt::Core) + # XRefProperties: an empty or unknown cross-reference position, as older # versions saved it, reads as the default instead of drawing the # cross-reference over the element's label (issue #1238). diff --git a/tests/qttest/tst_cropgeometry.cpp b/tests/qttest/tst_cropgeometry.cpp new file mode 100644 index 000000000..3ee7217fa --- /dev/null +++ b/tests/qttest/tst_cropgeometry.cpp @@ -0,0 +1,107 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "qetgraphicsitem/cropgeometry.h" + +#include + +/** + Cropping a picture on the folio: which edges a handle moves, how far + they may go, and moving the crop window over the original. +*/ +class tst_cropgeometry : public QObject +{ + Q_OBJECT + + const QRectF m_bounds{0, 0, 400, 300}; // the original, in its pixels + const QRectF m_crop{100, 50, 200, 100}; + +private slots: + void handlesMoveTheEdgesTheySitOn_data() + { + QTest::addColumn("handle"); + QTest::addColumn("left"); + QTest::addColumn("top"); + QTest::addColumn("right"); + QTest::addColumn("bottom"); + QTest::newRow("top-left corner") << QPointF(0, 0) << true << true << false << false; + QTest::newRow("top edge") << QPointF(1, 0) << false << true << false << false; + QTest::newRow("right edge") << QPointF(2, 1) << false << false << true << false; + QTest::newRow("bottom-right corner") << QPointF(2, 2) << false << false << true << true; + } + + void handlesMoveTheEdgesTheySitOn() + { + QFETCH(QPointF, handle); + QFETCH(bool, left); + QFETCH(bool, top); + QFETCH(bool, right); + QFETCH(bool, bottom); + const CropGeometry::Edges e = CropGeometry::edgesForHandle(handle, QSizeF(2, 2)); + QCOMPARE(e.left, left); + QCOMPARE(e.top, top); + QCOMPARE(e.right, right); + QCOMPARE(e.bottom, bottom); + } + + void aCornerMovesTwoEdges() + { + CropGeometry::Edges e; + e.left = e.top = true; + QCOMPARE(CropGeometry::dragEdges(m_crop, e, QPointF(120, 60), m_bounds, 4), + QRectF(QPointF(120, 60), m_crop.bottomRight())); + } + + void edgesStayOnTheOriginal() + { + CropGeometry::Edges e; + e.right = e.bottom = true; + QCOMPARE(CropGeometry::dragEdges(m_crop, e, QPointF(900, 900), m_bounds, 4), + QRectF(m_crop.topLeft(), m_bounds.bottomRight())); + CropGeometry::Edges l; + l.left = true; + QCOMPARE(CropGeometry::dragEdges(m_crop, l, QPointF(-50, 0), m_bounds, 4).left(), 0.0); + } + + // Dragged past the opposite edge, an edge stops a minimum away + // instead of turning the frame inside out. + void edgesNeverCross() + { + CropGeometry::Edges e; + e.left = true; + const QRectF r = CropGeometry::dragEdges(m_crop, e, QPointF(380, 80), m_bounds, 4); + QCOMPARE(r.left(), m_crop.right() - 4); + QCOMPARE(r.width(), 4.0); + } + + void theWindowMovesWithinTheOriginal() + { + QCOMPARE(CropGeometry::moveWithin(m_crop, QPointF(30, -20), m_bounds), + m_crop.translated(30, -20)); + QCOMPARE(CropGeometry::moveWithin(m_crop, QPointF(500, -500), m_bounds), + QRectF(QPointF(200, 0), m_crop.size())); + } + + void cropsLandOnWholePixels() + { + QCOMPARE(CropGeometry::toPixels(QRectF(10.4, 9.6, 20.2, 30.3)), QRect(10, 10, 21, 30)); + QCOMPARE(CropGeometry::toPixels(m_bounds), m_bounds.toRect()); + } +}; + +QTEST_GUILESS_MAIN(tst_cropgeometry) +#include "tst_cropgeometry.moc" From 05131d12389c0d5c1307a297b3c2580ff7c5a50b Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Sun, 4 Oct 2026 22:29:47 +0200 Subject: [PATCH 02/12] Show crop bars instead of handle points while cropping Black bars on a white outline, an L at each corner and a short bar in the middle of each side, at the same size on screen at any zoom, with the matching resize cursor over each. The handles underneath still take the drags but are no longer drawn. Co-Authored-By: Claude Opus 5.5 --- sources/qetgraphicsitem/diagramimageitem.cpp | 64 ++++++++++++++++++-- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/sources/qetgraphicsitem/diagramimageitem.cpp b/sources/qetgraphicsitem/diagramimageitem.cpp index 59507b77a..8e840e368 100644 --- a/sources/qetgraphicsitem/diagramimageitem.cpp +++ b/sources/qetgraphicsitem/diagramimageitem.cpp @@ -42,6 +42,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -119,12 +122,44 @@ void DiagramImageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * painter -> drawPixmap(origin, m_crop_preview); painter -> setOpacity(1.0); painter -> drawPixmap(cropFrameLocal(), m_crop_preview, m_pending_crop); - QPen frame(QColor(255, 140, 0)); + const QRectF f = cropFrameLocal(); + QPen frame(Qt::black); frame.setCosmetic(true); - frame.setWidth(2); + frame.setWidth(1); painter -> setPen(frame); painter -> setBrush(Qt::NoBrush); - painter -> drawRect(cropFrameLocal()); + painter -> drawRect(f); + + // Crop bars, as photo editors draw them: an L at each corner and a + // short bar in the middle of each side, black on a white outline + // so they show on dark pictures too, and the same size on screen + // whatever the zoom or the picture's own scale. + const QTransform t = painter -> worldTransform(); + const qreal px = 1.0 / qMax(1e-6, qSqrt(qAbs(t.m11() * t.m22() - t.m12() * t.m21()))); + const qreal corner = qMin(18 * px, qMin(f.width(), f.height()) / 2); + const qreal side = qMin(10 * px, qMin(f.width(), f.height()) / 4); + QPainterPath bars; + auto l = [&bars](QPointF a, QPointF b, QPointF c) { + bars.moveTo(a); bars.lineTo(b); bars.lineTo(c); + }; + l(f.topLeft() + QPointF(0, corner), f.topLeft(), f.topLeft() + QPointF(corner, 0)); + l(f.topRight() - QPointF(corner, 0), f.topRight(), f.topRight() + QPointF(0, corner)); + l(f.bottomRight() - QPointF(0, corner), f.bottomRight(), f.bottomRight() - QPointF(corner, 0)); + l(f.bottomLeft() + QPointF(corner, 0), f.bottomLeft(), f.bottomLeft() - QPointF(0, corner)); + const QPointF c = f.center(); + bars.moveTo(c.x() - side, f.top()); bars.lineTo(c.x() + side, f.top()); + bars.moveTo(c.x() - side, f.bottom()); bars.lineTo(c.x() + side, f.bottom()); + bars.moveTo(f.left(), c.y() - side); bars.lineTo(f.left(), c.y() + side); + bars.moveTo(f.right(), c.y() - side); bars.lineTo(f.right(), c.y() + side); + painter -> setRenderHint(QPainter::Antialiasing, true); + QPen outline(Qt::white, 7, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin); + outline.setCosmetic(true); + painter -> setPen(outline); + painter -> drawPath(bars); + QPen bar(Qt::black, 4, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin); + bar.setCosmetic(true); + painter -> setPen(bar); + painter -> drawPath(bars); painter -> restore(); if (boundary) context->flush(m_adapt_to_dark_theme, painter->worldTransform().mapRect(previewRect) @@ -755,7 +790,7 @@ QColor DiagramImageItem::colorForHandleRole(HandleRole role) case HandleRole::Rotate: return Qt::darkGreen; case HandleRole::SkewEdge: return QColor(255, 140, 0); case HandleRole::Pivot: return Qt::red; - case HandleRole::CropEdge: return QColor(255, 140, 0); + case HandleRole::CropEdge: return Qt::transparent; // paint() draws crop bars instead } return Qt::blue; } @@ -810,6 +845,13 @@ void DiagramImageItem::rebuildHandles() h->setColor(colorForHandleRole(m_handleRoles.at(i))); h->setToolTip(hintForHandleRole(m_handleRoles.at(i))); h->setAcceptHoverEvents(true); + if (m_handleRoles.at(i) == HandleRole::CropEdge) + { + static const Qt::CursorShape cursors[8] = { + Qt::SizeFDiagCursor, Qt::SizeVerCursor, Qt::SizeBDiagCursor, Qt::SizeHorCursor, + Qt::SizeHorCursor, Qt::SizeBDiagCursor, Qt::SizeVerCursor, Qt::SizeFDiagCursor}; + h->setCursor(cursors[i]); + } scene()->addItem(h); h->installSceneEventFilter(this); } @@ -1626,7 +1668,19 @@ QPixmap DiagramImageItem::computeDisplayPixmap(const QPixmap &base, const QRect QRectF DiagramImageItem::boundingRect() const { if (isCropping()) - return imageRect().united(QRectF(-QPointF(m_crop_rect.topLeft()), m_base_pixmap.size())); + { + // Room for the crop bars, which are drawn a few screen pixels + // wide over the edge of the original. + qreal zoom = 1.0; + if (scene() && !scene()->views().isEmpty()) + { + const QTransform t = scene()->views().first()->transform() * sceneTransform(); + zoom = qSqrt(qAbs(t.m11() * t.m22() - t.m12() * t.m21())); + } + const qreal m = 8.0 / qMax(1e-6, zoom); + return imageRect().united(QRectF(-QPointF(m_crop_rect.topLeft()), m_base_pixmap.size())) + .adjusted(-m, -m, m, m); + } if (m_label.isEmpty()) return imageRect(); return imageRect().united(labelRect()); From d996426e8ac6aecba2942021b36934d79b4e1fab Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Fri, 9 Oct 2026 13:18:54 +0200 Subject: [PATCH 03/12] Translate the texts of cropping a picture on the folio The French of the six new texts (the crop mode's name and hints, "Crop on the folio", "Reset crop", "Properties..."), as lupdate's own entries, inserted where lupdate places them. Co-Authored-By: Claude Opus 5.5 --- lang/qet_fr.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lang/qet_fr.ts b/lang/qet_fr.ts index 666cb10eb..e84e2c49e 100644 --- a/lang/qet_fr.ts +++ b/lang/qet_fr.ts @@ -2212,11 +2212,21 @@ Continuer ? rotate/skew pivoter/incliner + + + crop + rogner + Click: mode %1 Cliquer : mode %1 + + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + Rogner : glisser les poignées ou le cadre -- Entrée, double-clic ou clic à côté : appliquer ; Échap : annuler + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) @@ -2257,6 +2267,11 @@ Continuer ? Drag: move the rotation center Glisser : déplacer le centre de rotation + + + Drag: crop (Enter = apply, Escape = cancel) + Glisser : rogner (Entrée = appliquer, Échap = annuler) + Resize an image @@ -2359,11 +2374,21 @@ Continuer ? Transparent color... Couleur transparente... + + + Crop on the folio + Rogner sur le folio + Crop... Rogner... + + + Reset crop + Réinitialiser le rognage + Horizontal mirror @@ -2379,6 +2404,11 @@ Continuer ? Restore proportions Restaurer les proportions + + + Properties... + Propriétés... + Select an image ... From 82615242089a867717a3622c9acd1f138bcaa4f3 Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Sat, 10 Oct 2026 10:54:42 +0200 Subject: [PATCH 04/12] Put the Escape comment back on m_drag_cancelled The comment "Escape pressed: ignore the rest of this mouse gesture" explains m_drag_cancelled. The crop commit moved it onto the declaration of dragCropHandle(), added below it. No code changes. Co-Authored-By: Claude Opus 5.5 --- sources/qetgraphicsitem/diagramimageitem.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/qetgraphicsitem/diagramimageitem.h b/sources/qetgraphicsitem/diagramimageitem.h index a5fb12aa6..6e0f308f8 100644 --- a/sources/qetgraphicsitem/diagramimageitem.h +++ b/sources/qetgraphicsitem/diagramimageitem.h @@ -275,7 +275,7 @@ class DiagramImageItem : public QetGraphicsItem { QVector m_handleRoles; int m_vector_index = -1; QPointF m_original_pos; // scene position at the start of a resize/rotate/pivot drag, for Escape-to-cancel - bool m_drag_cancelled = false; + bool m_drag_cancelled = false; // Escape pressed: ignore the rest of this mouse gesture // Crop mode: the crop being edited, in the original's pixels; the // whole original, colour-keyed, shown dimmed around it; and the // state of a drag that moves the crop window. @@ -285,7 +285,7 @@ class DiagramImageItem : public QetGraphicsItem { QPointF m_crop_move_start; QRectF m_crop_move_origin; QRectF cropFrameLocal() const; - void dragCropHandle(int index, const QPointF &scenePos); // Escape pressed: ignore the rest of this mouse gesture + void dragCropHandle(int index, const QPointF &scenePos); ShapeTransform m_original_transform; bool m_original_pivotIsCustom = false; bool m_deferHandleReposition = false; // see setPivot()'s comment From 446479e8d2751ced264bf0a331ba229dd44048aa Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Sat, 10 Oct 2026 10:55:13 +0200 Subject: [PATCH 05/12] Fix a crop in progress outliving an undo or the picture's removal While a picture was being cropped on the folio: - Ctrl+Z or Ctrl+Y of an earlier crop of the same picture left the crop handles where they were, 10 px beside the frame for a crop that starts at (10, 10). - undoing the picture's insertion dropped the crop but left the picture as the folio's keyboard item, also after a redo put it back. setImageSource() and leaving the scene now end the crop without applying it. Nothing is pushed on the undo stack from there, since both can run inside an undo command. Delete and cut are unchanged: they deselect the picture first, which applies the crop as its own undo step before theirs. No file-format change. Not covered by an automated test: crop mode needs a folio and its view, which a test can only get from the application object library of #1431. Checked with a throw-away test on a local merge of both branches. Co-Authored-By: Claude Opus 5.5 --- sources/qetgraphicsitem/diagramimageitem.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sources/qetgraphicsitem/diagramimageitem.cpp b/sources/qetgraphicsitem/diagramimageitem.cpp index 8e840e368..bc09d16a2 100644 --- a/sources/qetgraphicsitem/diagramimageitem.cpp +++ b/sources/qetgraphicsitem/diagramimageitem.cpp @@ -281,6 +281,11 @@ void DiagramImageItem::setPixmap(const QPixmap &pixmap) { */ void DiagramImageItem::setImageSource(const ImageSource &source) { + // An undo or redo that changes the picture under a crop being edited + // ends that crop: its frame and its preview were made for the source + // that is replaced here. Nothing is applied, since this may run + // inside an undo command. + finishCropMode(false); m_base_pixmap = source.base; m_crop_rect = source.crop; m_transparent_colors = source.colors; @@ -1626,6 +1631,13 @@ QVariant DiagramImageItem::itemChange(GraphicsItemChange change, const QVariant if (!m_deferHandleReposition) repositionHandles(); } + else if (change == ItemSceneChange) + { + // Leaving the folio (undoing the picture's insertion, for one) + // drops a crop in progress while diagram() is still there to + // give the keys back to the view. + finishCropMode(false); + } else if (change == ItemSceneHasChanged) { if (!scene()) From ec5246f6dbfc8ddd7090dbc0bd5d58bf6632c2ce Mon Sep 17 00:00:00 2001 From: Beat Hangartner Date: Sat, 10 Oct 2026 10:56:10 +0200 Subject: [PATCH 06/12] Use relative paths for the crop texts' locations in qet_fr.ts The six lines the crop translation added pointed into the folder the branch was built in. They are relative to lang/ now, like the others in the file, with the current line numbers. No text or translation changes. Co-Authored-By: Claude Opus 5.5 --- lang/qet_fr.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/qet_fr.ts b/lang/qet_fr.ts index e84e2c49e..33c5514f8 100644 --- a/lang/qet_fr.ts +++ b/lang/qet_fr.ts @@ -2213,7 +2213,7 @@ Continuer ? pivoter/incliner - + crop rogner @@ -2223,7 +2223,7 @@ Continuer ? Cliquer : mode %1 - + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel Rogner : glisser les poignées ou le cadre -- Entrée, double-clic ou clic à côté : appliquer ; Échap : annuler @@ -2268,7 +2268,7 @@ Continuer ? Glisser : déplacer le centre de rotation - + Drag: crop (Enter = apply, Escape = cancel) Glisser : rogner (Entrée = appliquer, Échap = annuler) @@ -2375,7 +2375,7 @@ Continuer ? Couleur transparente... - + Crop on the folio Rogner sur le folio @@ -2385,7 +2385,7 @@ Continuer ? Rogner... - + Reset crop Réinitialiser le rognage @@ -2405,7 +2405,7 @@ Continuer ? Restaurer les proportions - + Properties... Propriétés... From 1cd8fadbc4f3aa3ebbc1a46b34a22368c2351c81 Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sun, 11 Oct 2026 05:00:01 +0200 Subject: [PATCH 07/12] Reapply "Add cable management: drawing, cores, numbering, cross-references and cable list" This reverts commit 2bb3343d2d2d4c9517b757b96fc1c6a90c34b458. --- CMakeLists.txt | 1 + cmake/qet_compilation_vars.cmake | 42 + ico/icon-themes.qrc | 36 + ico/qet/traced/16/cable.svg | 6 + ico/qet/traced/22/cable.svg | 6 + ico/qet/traced/large16/cable.svg | 6 + ico/qet/traced/large22/cable.svg | 6 + ico/themes/generated/traced-24/cable.svg | 8 + .../generated/traced-large-24/cable.svg | 8 + ico/themes/qet-dark/traced-24/cable.svg | 8 + ico/themes/qet-dark/traced-large-24/cable.svg | 8 + ico/themes/qet-dark/traced/16/cable.svg | 6 + ico/themes/qet-dark/traced/22/cable.svg | 6 + ico/themes/qet-dark/traced/large16/cable.svg | 6 + ico/themes/qet-dark/traced/large22/cable.svg | 6 + sources/autoNum/assignvariables.cpp | 68 + sources/autoNum/assignvariables.h | 25 + sources/autoNum/ui/numparteditorw.cpp | 23 +- sources/autoNum/ui/numparteditorw.h | 8 + sources/autoNum/ui/pastenumberingimport.cpp | 28 +- sources/autoNum/ui/pastenumberingimport.h | 9 +- sources/autoNum/ui/selectautonumw.cpp | 122 +- sources/autoNum/ui/selectautonumw.h | 59 +- sources/bomexport.cpp | 5 +- sources/bomexport.h | 5 + sources/cable/addcablecommand.cpp | 221 ++ sources/cable/addcablecommand.h | 95 + sources/cable/cable.cpp | 921 +++++ sources/cable/cable.h | 376 ++ sources/cable/cablecopy.cpp | 454 +++ sources/cable/cablecopy.h | 126 + sources/cable/cablecreatedialog.cpp | 1407 +++++++ sources/cable/cablecreatedialog.h | 236 ++ sources/cable/cablemanager.cpp | 635 ++++ sources/cable/cablemanager.h | 113 + sources/cable/cablepart.cpp | 3377 +++++++++++++++++ sources/cable/cablepart.h | 513 +++ sources/cable/cablepropertiesdialog.cpp | 279 ++ sources/cable/cablepropertiesdialog.h | 99 + sources/cable/cablepropertieseditorwidget.cpp | 389 ++ sources/cable/cablepropertieseditorwidget.h | 115 + sources/cable/cablepropertieswidget.cpp | 409 ++ sources/cable/cablepropertieswidget.h | 158 + sources/cable/cablerenumber.cpp | 292 ++ sources/cable/cablerenumber.h | 102 + sources/cable/cabletextformatdialog.cpp | 278 ++ sources/cable/cabletextformatdialog.h | 83 + sources/cable/editcablecommand.cpp | 494 +++ sources/cable/editcablecommand.h | 285 ++ sources/cablelist/cableexportdialog.cpp | 155 + sources/cablelist/cableexportdialog.h | 58 + sources/cablelist/cablelistmodel.cpp | 421 ++ sources/cablelist/cablelistmodel.h | 107 + .../cablelistmodelpropertieswidget.cpp | 100 + .../cablelistmodelpropertieswidget.h | 55 + sources/cablelist/cablelistrows.cpp | 468 +++ sources/cablelist/cablelistrows.h | 101 + sources/cablelist/cablequerywidget.cpp | 319 ++ sources/cablelist/cablequerywidget.h | 71 + sources/cablelist/cabletypelist.cpp | 824 ++++ sources/cablelist/cabletypelist.h | 134 + sources/conductorproperties.cpp | 13 + sources/conductorproperties.h | 9 + sources/diagram.cpp | 40 +- sources/diagram.h | 13 +- sources/diagramevent/diagrameventaddcable.cpp | 463 +++ sources/diagramevent/diagrameventaddcable.h | 78 + sources/diagramevent/diagrameventaddpaste.cpp | 83 +- sources/diagramevent/diagrameventaddpaste.h | 21 + sources/diagramtoolbarsettings.cpp | 5 + sources/diagramview.cpp | 258 +- sources/diagramview.h | 14 + sources/elementsmover.cpp | 200 +- sources/elementsmover.h | 35 + sources/factory/propertieseditorfactory.cpp | 38 +- sources/factory/qetgraphicstablefactory.cpp | 53 +- sources/factory/qetgraphicstablefactory.h | 1 + sources/pdf_links.cpp | 58 +- sources/properties/xrefproperties.cpp | 32 +- sources/properties/xrefproperties.h | 9 + sources/qetapp.cpp | 91 + sources/qetapp.h | 18 + sources/qetdiagrameditor.cpp | 242 +- sources/qetdiagrameditor.h | 17 + .../ViewItem/qetgraphicstableitem.cpp | 51 +- sources/qetgraphicsitem/conductor.cpp | 26 + sources/qetgraphicsitem/conductor.h | 9 + sources/qeticons.cpp | 2 + sources/qeticons.h | 1 + sources/qetproject.cpp | 418 +- sources/qetproject.h | 68 + sources/scripting/qetscriptapi.cpp | 64 +- sources/scripting/qetscriptapi.h | 10 +- sources/ui/cablenumberingdialog.cpp | 383 ++ sources/ui/cablenumberingdialog.h | 86 + sources/ui/configpage/configpages.cpp | 97 +- sources/ui/configpage/configpages.h | 6 + .../configpage/generalconfigurationpage.cpp | 180 + .../ui/configpage/generalconfigurationpage.h | 4 + .../ui/configpage/generalconfigurationpage.ui | 148 + sources/ui/configpage/projectconfigpages.cpp | 124 +- sources/ui/configpage/projectconfigpages.h | 6 + sources/ui/projectpropertiesdialog.cpp | 14 + sources/ui/projectpropertiesdialog.h | 2 + sources/ui/xrefpropertieswidget.cpp | 110 +- sources/ui/xrefpropertieswidget.h | 6 + sources/ui/xrefpropertieswidget.ui | 178 +- .../deleteqgraphicsitemcommand.cpp | 21 + sources/undocommand/linkelementcommand.cpp | 20 + tests/qttest/CMakeLists.txt | 26 + tests/qttest/cable_undo_probe.cpp | 105 + tests/qttest/run_cable_undo_probe.py | 60 + tests/qttest/tst_cabletypelist.cpp | 205 + 113 files changed, 18793 insertions(+), 209 deletions(-) create mode 100644 ico/qet/traced/16/cable.svg create mode 100644 ico/qet/traced/22/cable.svg create mode 100644 ico/qet/traced/large16/cable.svg create mode 100644 ico/qet/traced/large22/cable.svg create mode 100644 ico/themes/generated/traced-24/cable.svg create mode 100644 ico/themes/generated/traced-large-24/cable.svg create mode 100644 ico/themes/qet-dark/traced-24/cable.svg create mode 100644 ico/themes/qet-dark/traced-large-24/cable.svg create mode 100644 ico/themes/qet-dark/traced/16/cable.svg create mode 100644 ico/themes/qet-dark/traced/22/cable.svg create mode 100644 ico/themes/qet-dark/traced/large16/cable.svg create mode 100644 ico/themes/qet-dark/traced/large22/cable.svg create mode 100644 sources/cable/addcablecommand.cpp create mode 100644 sources/cable/addcablecommand.h create mode 100644 sources/cable/cable.cpp create mode 100644 sources/cable/cable.h create mode 100644 sources/cable/cablecopy.cpp create mode 100644 sources/cable/cablecopy.h create mode 100644 sources/cable/cablecreatedialog.cpp create mode 100644 sources/cable/cablecreatedialog.h create mode 100644 sources/cable/cablemanager.cpp create mode 100644 sources/cable/cablemanager.h create mode 100644 sources/cable/cablepart.cpp create mode 100644 sources/cable/cablepart.h create mode 100644 sources/cable/cablepropertiesdialog.cpp create mode 100644 sources/cable/cablepropertiesdialog.h create mode 100644 sources/cable/cablepropertieseditorwidget.cpp create mode 100644 sources/cable/cablepropertieseditorwidget.h create mode 100644 sources/cable/cablepropertieswidget.cpp create mode 100644 sources/cable/cablepropertieswidget.h create mode 100644 sources/cable/cablerenumber.cpp create mode 100644 sources/cable/cablerenumber.h create mode 100644 sources/cable/cabletextformatdialog.cpp create mode 100644 sources/cable/cabletextformatdialog.h create mode 100644 sources/cable/editcablecommand.cpp create mode 100644 sources/cable/editcablecommand.h create mode 100644 sources/cablelist/cableexportdialog.cpp create mode 100644 sources/cablelist/cableexportdialog.h create mode 100644 sources/cablelist/cablelistmodel.cpp create mode 100644 sources/cablelist/cablelistmodel.h create mode 100644 sources/cablelist/cablelistmodelpropertieswidget.cpp create mode 100644 sources/cablelist/cablelistmodelpropertieswidget.h create mode 100644 sources/cablelist/cablelistrows.cpp create mode 100644 sources/cablelist/cablelistrows.h create mode 100644 sources/cablelist/cablequerywidget.cpp create mode 100644 sources/cablelist/cablequerywidget.h create mode 100644 sources/cablelist/cabletypelist.cpp create mode 100644 sources/cablelist/cabletypelist.h create mode 100644 sources/diagramevent/diagrameventaddcable.cpp create mode 100644 sources/diagramevent/diagrameventaddcable.h create mode 100644 sources/ui/cablenumberingdialog.cpp create mode 100644 sources/ui/cablenumberingdialog.h create mode 100644 tests/qttest/cable_undo_probe.cpp create mode 100755 tests/qttest/run_cable_undo_probe.py create mode 100644 tests/qttest/tst_cabletypelist.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 99973095d..bd685a45d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -345,6 +345,7 @@ target_include_directories( ${QET_DIR}/sources/print ${QET_DIR}/sources/svg ${QET_DIR}/sources/materiallist + ${QET_DIR}/sources/cablelist ) if(NOT BUILD_WITH_KF) diff --git a/cmake/qet_compilation_vars.cmake b/cmake/qet_compilation_vars.cmake index 94d81db28..61f2f9286 100644 --- a/cmake/qet_compilation_vars.cmake +++ b/cmake/qet_compilation_vars.cmake @@ -387,6 +387,8 @@ set(QET_SRC_FILES ${QET_DIR}/sources/diagramevent/diagrameventfillet.h ${QET_DIR}/sources/diagramevent/diagrameventaddpath.cpp ${QET_DIR}/sources/diagramevent/diagrameventaddpath.h + ${QET_DIR}/sources/diagramevent/diagrameventaddcable.cpp + ${QET_DIR}/sources/diagramevent/diagrameventaddcable.h ${QET_DIR}/sources/diagramevent/diagrameventaddtext.cpp ${QET_DIR}/sources/diagramevent/diagrameventaddtext.h ${QET_DIR}/sources/diagramevent/diagrameventinterface.cpp @@ -811,6 +813,8 @@ set(QET_SRC_FILES ${QET_DIR}/sources/ui/elementinfowidget.h ${QET_DIR}/sources/ui/terminalnumberingdialog.cpp ${QET_DIR}/sources/ui/terminalnumberingdialog.h + ${QET_DIR}/sources/ui/cablenumberingdialog.cpp + ${QET_DIR}/sources/ui/cablenumberingdialog.h ${QET_DIR}/sources/ui/elementpropertieswidget.cpp ${QET_DIR}/sources/ui/elementpropertieswidget.h ${QET_DIR}/sources/ui/formulaassistantdialog.cpp @@ -936,6 +940,44 @@ set(QET_SRC_FILES ${QET_DIR}/sources/materiallist/materialselectiondialog.cpp ${QET_DIR}/sources/materiallist/materialselectiondialog.h + ${QET_DIR}/sources/cablelist/cabletypelist.cpp + ${QET_DIR}/sources/cablelist/cabletypelist.h + ${QET_DIR}/sources/cablelist/cableexportdialog.cpp + ${QET_DIR}/sources/cablelist/cableexportdialog.h + ${QET_DIR}/sources/cablelist/cablelistmodel.cpp + ${QET_DIR}/sources/cablelist/cablelistmodel.h + ${QET_DIR}/sources/cablelist/cablelistmodelpropertieswidget.cpp + ${QET_DIR}/sources/cablelist/cablelistmodelpropertieswidget.h + ${QET_DIR}/sources/cablelist/cablelistrows.cpp + ${QET_DIR}/sources/cablelist/cablelistrows.h + ${QET_DIR}/sources/cablelist/cablequerywidget.cpp + ${QET_DIR}/sources/cablelist/cablequerywidget.h + + ${QET_DIR}/sources/cable/addcablecommand.cpp + ${QET_DIR}/sources/cable/addcablecommand.h + ${QET_DIR}/sources/cable/cable.cpp + ${QET_DIR}/sources/cable/cable.h + ${QET_DIR}/sources/cable/cablecopy.cpp + ${QET_DIR}/sources/cable/cablecopy.h + ${QET_DIR}/sources/cable/cablecreatedialog.cpp + ${QET_DIR}/sources/cable/cablecreatedialog.h + ${QET_DIR}/sources/cable/cablemanager.cpp + ${QET_DIR}/sources/cable/cablemanager.h + ${QET_DIR}/sources/cable/cablepart.cpp + ${QET_DIR}/sources/cable/cablepart.h + ${QET_DIR}/sources/cable/cablepropertiesdialog.cpp + ${QET_DIR}/sources/cable/cablepropertiesdialog.h + ${QET_DIR}/sources/cable/cablepropertieseditorwidget.cpp + ${QET_DIR}/sources/cable/cablepropertieseditorwidget.h + ${QET_DIR}/sources/cable/cablepropertieswidget.cpp + ${QET_DIR}/sources/cable/cablepropertieswidget.h + ${QET_DIR}/sources/cable/cablerenumber.cpp + ${QET_DIR}/sources/cable/cablerenumber.h + ${QET_DIR}/sources/cable/cabletextformatdialog.cpp + ${QET_DIR}/sources/cable/cabletextformatdialog.h + ${QET_DIR}/sources/cable/editcablecommand.cpp + ${QET_DIR}/sources/cable/editcablecommand.h + ${QET_DIR}/sources/xml/terminalstripitemxml.cpp ${QET_DIR}/sources/xml/terminalstripitemxml.h ${QET_DIR}/sources/xml/terminalstriplayoutpatternxml.cpp diff --git a/ico/icon-themes.qrc b/ico/icon-themes.qrc index 30d2b9de1..47e98b7c6 100644 --- a/ico/icon-themes.qrc +++ b/ico/icon-themes.qrc @@ -257,6 +257,21 @@ themes/generated/traced-24/bring_forward.svg themes/generated/traced-large-24/bring_forward.svg qet/traced/large22/bring_forward.svg + qet/traced/16/cable.svg + qet/traced/large16/cable.svg + qet/traced/22/cable.svg + qet/traced/large22/cable.svg + qet/traced/large16/cable.svg + qet/traced/large16/cable.svg + themes/generated/traced-large-24/cable.svg + themes/generated/traced-large-24/cable.svg + qet/traced/large16/cable.svg + qet/traced/large16/cable.svg + qet/traced/large16/cable.svg + qet/traced/large16/cable.svg + themes/generated/traced-24/cable.svg + themes/generated/traced-large-24/cable.svg + qet/traced/large22/cable.svg qet/traced/16/circle.svg qet/traced/large16/circle.svg qet/traced/22/circle.svg @@ -2699,6 +2714,12 @@ themes/qet-dark/traced/large22/bring_forward.svg themes/qet-dark/traced-large-24/bring_forward.svg themes/qet-dark/traced-24/bring_forward.svg + themes/qet-dark/traced/16/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced/22/cable.svg + themes/qet-dark/traced/large22/cable.svg + themes/qet-dark/traced-large-24/cable.svg + themes/qet-dark/traced-24/cable.svg themes/qet-dark/traced/16/circle.svg themes/qet-dark/traced/large16/circle.svg themes/qet-dark/traced/22/circle.svg @@ -3516,6 +3537,21 @@ themes/qet-dark/traced-24/bring_forward.svg themes/qet-dark/traced-large-24/bring_forward.svg themes/qet-dark/traced/large22/bring_forward.svg + themes/qet-dark/traced/16/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced/22/cable.svg + themes/qet-dark/traced/large22/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced-large-24/cable.svg + themes/qet-dark/traced-large-24/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced/large16/cable.svg + themes/qet-dark/traced-24/cable.svg + themes/qet-dark/traced-large-24/cable.svg + themes/qet-dark/traced/large22/cable.svg themes/qet-dark/traced/16/circle.svg themes/qet-dark/traced/large16/circle.svg themes/qet-dark/traced/22/circle.svg diff --git a/ico/qet/traced/16/cable.svg b/ico/qet/traced/16/cable.svg new file mode 100644 index 000000000..7c619123c --- /dev/null +++ b/ico/qet/traced/16/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/qet/traced/22/cable.svg b/ico/qet/traced/22/cable.svg new file mode 100644 index 000000000..e0a389dea --- /dev/null +++ b/ico/qet/traced/22/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/qet/traced/large16/cable.svg b/ico/qet/traced/large16/cable.svg new file mode 100644 index 000000000..623488647 --- /dev/null +++ b/ico/qet/traced/large16/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/qet/traced/large22/cable.svg b/ico/qet/traced/large22/cable.svg new file mode 100644 index 000000000..97f52785c --- /dev/null +++ b/ico/qet/traced/large22/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/themes/generated/traced-24/cable.svg b/ico/themes/generated/traced-24/cable.svg new file mode 100644 index 000000000..ff2411462 --- /dev/null +++ b/ico/themes/generated/traced-24/cable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ico/themes/generated/traced-large-24/cable.svg b/ico/themes/generated/traced-large-24/cable.svg new file mode 100644 index 000000000..778188781 --- /dev/null +++ b/ico/themes/generated/traced-large-24/cable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ico/themes/qet-dark/traced-24/cable.svg b/ico/themes/qet-dark/traced-24/cable.svg new file mode 100644 index 000000000..6cf88f6c5 --- /dev/null +++ b/ico/themes/qet-dark/traced-24/cable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ico/themes/qet-dark/traced-large-24/cable.svg b/ico/themes/qet-dark/traced-large-24/cable.svg new file mode 100644 index 000000000..3aae9ea45 --- /dev/null +++ b/ico/themes/qet-dark/traced-large-24/cable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ico/themes/qet-dark/traced/16/cable.svg b/ico/themes/qet-dark/traced/16/cable.svg new file mode 100644 index 000000000..b21070f7f --- /dev/null +++ b/ico/themes/qet-dark/traced/16/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/themes/qet-dark/traced/22/cable.svg b/ico/themes/qet-dark/traced/22/cable.svg new file mode 100644 index 000000000..608b450e4 --- /dev/null +++ b/ico/themes/qet-dark/traced/22/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/themes/qet-dark/traced/large16/cable.svg b/ico/themes/qet-dark/traced/large16/cable.svg new file mode 100644 index 000000000..8c9386972 --- /dev/null +++ b/ico/themes/qet-dark/traced/large16/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ico/themes/qet-dark/traced/large22/cable.svg b/ico/themes/qet-dark/traced/large22/cable.svg new file mode 100644 index 000000000..104596625 --- /dev/null +++ b/ico/themes/qet-dark/traced/large22/cable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/sources/autoNum/assignvariables.cpp b/sources/autoNum/assignvariables.cpp index 633fe7da3..40563956c 100644 --- a/sources/autoNum/assignvariables.cpp +++ b/sources/autoNum/assignvariables.cpp @@ -649,6 +649,74 @@ namespace autonum } } + /** + @brief resetFolioCounters + @param nc the rule to read + @return the same rule, with the parts whose counter belongs to a + single folio put back to the beginning that folio is numbered + from -- the initial value the rule carries for it -- while the + parts counting over the whole project are left alone + */ + NumerotationContext resetFolioCounters(const NumerotationContext &nc) + { + NumerotationContext out = nc; + for (int i = 0; i < out.size(); ++i) + { + const QStringList parts = out.itemAt(i); + if (parts.isEmpty()) continue; + + const QString &type = parts.at(0); + if (type == QLatin1String("unitfolio") + || type == QLatin1String("tenfolio") + || type == QLatin1String("hundredfolio")) + { + //The beginning a folio is numbered from is the one + //written into the rule, never a hard 1: a counter + //starting at 5 starts every folio at 5. + const bool has_start = parts.size() > 3 + && !parts.at(3).isEmpty(); + out.replaceValue(i, has_start ? parts.at(3) + : QStringLiteral("1")); + } + } + return out; + } + + /** + @brief resetContextCounters + @param nc the rule to read + @return the same rule, with every part which counts set back to + the value it started from + */ + NumerotationContext resetContextCounters(const NumerotationContext &nc) + { + NumerotationContext out = resetFolioCounters(nc); + for (int i = 0; i < out.size(); ++i) + { + const QStringList parts = out.itemAt(i); + if (parts.isEmpty()) continue; + + const QString &type = parts.at(0); + if (type == QLatin1String("unit") + || type == QLatin1String("ten") + || type == QLatin1String("hundred")) + { + out.replaceValue(i, QStringLiteral("1")); + } + else if (type == QLatin1String("wrap")) + { + //A cyclic part walks over [0, modulus), so it goes + //back to 0 rather than to 1 + out.replaceValue(i, QStringLiteral("0")); + } + else if (type == QLatin1String("alpha")) + { + out.replaceValue(i, QStringLiteral("a")); + } + } + return out; + } + /** @brief numerotationContextToFormula @param nc diff --git a/sources/autoNum/assignvariables.h b/sources/autoNum/assignvariables.h index 255ad6003..04e353274 100644 --- a/sources/autoNum/assignvariables.h +++ b/sources/autoNum/assignvariables.h @@ -117,6 +117,31 @@ namespace autonum void setFolioSequentialToHash(QStringList &list, QHash &hash, const QString& autoNumName); void setSequential(const QString& label, autonum::sequentialNumbers &seqStruct, NumerotationContext &context, Diagram *diagram, const QString& hashKey); QString numerotationContextToFormula(const NumerotationContext &nc); + /** + Put back every part of a numbering rule whose counter belongs to + one single folio -- "Chiffre 1 - Folio" and its two longer forms + -- to the beginning that folio is numbered from, which is the + initial value written into the rule itself. The parts which count + over the whole project are left exactly as they are: a folio + starts again, the project does not. + @param nc the rule to read + @return the same rule, with its folio-bound counters restarted + */ + NumerotationContext resetFolioCounters(const NumerotationContext &nc); + /** + Set every part of a numbering rule which counts back to its very + first value, so that numbering starts at the beginning again -- + which is what numbering a whole project over has to do, whatever + the last number handed out happened to be. A part which counts + from an initial value of its own goes back to that value, a plain + number goes back to 1, a cyclic one to 0 and an alphabetic one to + "a". The parts which do not count -- a fixed text, the number of + the folio, the plant -- are left exactly as they are: they say + what a number is made of, they are not the part which goes on. + @param nc the rule to read + @return the same rule, with its counters at their beginning + */ + NumerotationContext resetContextCounters(const NumerotationContext &nc); QString elementPrefixForLocation(const ElementsLocation &location); } diff --git a/sources/autoNum/ui/numparteditorw.cpp b/sources/autoNum/ui/numparteditorw.cpp index 9f45289ad..7b1d25908 100644 --- a/sources/autoNum/ui/numparteditorw.cpp +++ b/sources/autoNum/ui/numparteditorw.cpp @@ -105,6 +105,16 @@ NumPartEditorW::NumPartEditorW (NumerotationContext &context, if (strl.at(0)=="wrap" && strl.size() > 4) ui -> modulus_spinBox -> setValue(strl.at(4).toInt()); ui -> format_le -> setText(NumerotationContext::formatOf(strl)); + //A counter bound to the folio keeps the start it was + //configured with: value_field shows the live counter, and + //writing that back as the start would make every folio + //begin at the last number the previous numbering gave out + if ((strl.at(0)==QLatin1String("unitfolio") + || strl.at(0)==QLatin1String("tenfolio") + || strl.at(0)==QLatin1String("hundredfolio")) + && strl.size() > 3 && !strl.at(3).isEmpty()) { + m_initial_value = strl.at(3).toInt(); + } } } @@ -131,8 +141,12 @@ void NumPartEditorW::setVisibleItems() << tr("Alphabetical") << tr("Text"); } - else if (m_edited_type == 1) + else if (m_edited_type == 1 || m_edited_type == 3) { + //Type 3 is a cable: it is drawn along a folio just like a + //conductor is, so it takes the same kinds of variable and + //none of the ones an element has and a cable has not (its + //line, its column, its prefix). items << tr("number format 1") << tr("number format 1 - Sheet") << tr("number format 01") @@ -232,7 +246,8 @@ NumerotationContext NumPartEditorW::toNumContext() nc.addValue(type_str, ui -> value_field -> displayText(), ui -> increase_spinBox -> value(), - ui->value_field->displayText().toInt(), + m_initial_value >= 0 ? m_initial_value + : ui->value_field->displayText().toInt(), 0, number_format); else if (type_str == "wrap") @@ -315,6 +330,10 @@ void NumPartEditorW::on_type_cb_activated(int) { */ void NumPartEditorW::on_value_field_textEdited() { + //What the user types in is a deliberate start for a counter + //bound to the folio; merely showing the live counter (as + //setContext() does) never changes the start. + m_initial_value = ui -> value_field -> text().toInt(); emit changed(); } diff --git a/sources/autoNum/ui/numparteditorw.h b/sources/autoNum/ui/numparteditorw.h index ce7d3ffae..b9ee8aafb 100644 --- a/sources/autoNum/ui/numparteditorw.h +++ b/sources/autoNum/ui/numparteditorw.h @@ -77,6 +77,14 @@ class NumPartEditorW : public QWidget QValidator *intValidator; QValidator *alphaValidator; int m_edited_type = -1; ///<0 == element : 1 == conductor : 2 == folio + /** + The value a counter bound to the folio counts each folio + from (-1 while the row carries none): value_field shows + the live counter, which numbering a project over leaves + at the last number given out, so the start has to be + kept apart from what is on show. + */ + int m_initial_value = -1; diff --git a/sources/autoNum/ui/pastenumberingimport.cpp b/sources/autoNum/ui/pastenumberingimport.cpp index 0e4ca0476..3a1bc9f2f 100644 --- a/sources/autoNum/ui/pastenumberingimport.cpp +++ b/sources/autoNum/ui/pastenumberingimport.cpp @@ -37,22 +37,41 @@ QList PasteNumberingImport::copiedBy(const elements follow and the project does not have. @param parent : parent of the question @param copied : the numberings the copy carries + @param extra : commands the copy brings beside the paste itself + (the cable lines of a fragment, for example); they are pushed inside + the same macro, so one Ctrl+Z undoes all of it at once. */ void PasteNumberingImport::push(QWidget *parent, Diagram *diagram, const DiagramContent &content, - const QList &copied) + const QList &copied, + const QList &extra) { QETProject *project = diagram->project(); auto *paste = new PasteDiagramCommand(diagram, content); + //The paste and the commands beside it are one step: only the + //macros really need more than the single push. + const auto push_all = [&]() { + if (extra.isEmpty()) { + diagram->undoStack().push(paste); + return; + } + diagram->undoStack().beginMacro(paste->text()); + diagram->undoStack().push(paste); + for (QUndoCommand *cmd : extra) { + diagram->undoStack().push(cmd); + } + diagram->undoStack().endMacro(); + }; + QList missing; if (project && !copied.isEmpty() && QSettings().value("diagramcommands/autonumber-pasted-elements", true).toBool()) { missing = ElementAutoNumSchemeCommand::missingForPaste(project, copied, content.m_elements); } if (missing.isEmpty()) { - diagram->undoStack().push(paste); + push_all(); return; } @@ -71,7 +90,7 @@ void PasteNumberingImport::push(QWidget *parent, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); if (answer != QMessageBox::Yes) { - diagram->undoStack().push(paste); + push_all(); return; } @@ -91,5 +110,8 @@ void PasteNumberingImport::push(QWidget *parent, } } diagram->undoStack().push(paste); + for (QUndoCommand *cmd : extra) { + diagram->undoStack().push(cmd); + } diagram->undoStack().endMacro(); } diff --git a/sources/autoNum/ui/pastenumberingimport.h b/sources/autoNum/ui/pastenumberingimport.h index 0889ad813..8e03c3b0d 100644 --- a/sources/autoNum/ui/pastenumberingimport.h +++ b/sources/autoNum/ui/pastenumberingimport.h @@ -23,6 +23,7 @@ #include #include +#include class Diagram; class QWidget; @@ -40,6 +41,11 @@ class QWidget; without a numbering. The import and the paste are one undo step. + + A paste which brings more than itself (the cable lines of the copy, + for instance, which are no part of a DiagramContent) hands those + commands over through @p extra: they are pushed inside the very + same macro, so one Ctrl+Z still takes the whole of it back. */ class PasteNumberingImport { @@ -49,7 +55,8 @@ class PasteNumberingImport static void push(QWidget *parent, Diagram *diagram, const DiagramContent &content, - const QList &copied); + const QList &copied, + const QList &extra = QList()); static QList copiedBy(const QDomDocument &clipboard); }; diff --git a/sources/autoNum/ui/selectautonumw.cpp b/sources/autoNum/ui/selectautonumw.cpp index ff32c7b31..dc215651e 100644 --- a/sources/autoNum/ui/selectautonumw.cpp +++ b/sources/autoNum/ui/selectautonumw.cpp @@ -138,6 +138,9 @@ void SelectAutonumW::setContext(const NumerotationContext &context) updatePartButtons(); applyEnable(false); + //Everything the rule held before is read now, so nothing of it + //is left to write: what is on show is what there is. + m_dirty = false; } /** @@ -147,7 +150,11 @@ void SelectAutonumW::setContext(const NumerotationContext &context) */ void SelectAutonumW::insertPartRow(NumPartEditorW *part) { - connect(part, &NumPartEditorW::changed, this, [this]() { applyEnable(); }); + connect(part, &NumPartEditorW::changed, this, [this]() { + m_dirty = true; + applyEnable(); + emit contextEdited(); + }); PartRow r; r.part = part; @@ -263,7 +270,10 @@ NumerotationContext SelectAutonumW::toNumContext() const void SelectAutonumW::on_add_button_clicked() { insertPartRow(new NumPartEditorW(m_edited_type, this)); + m_dirty = true; + ui -> remove_button -> setEnabled(true); applyEnable(); + emit contextEdited(); } /** @@ -272,9 +282,16 @@ void SelectAutonumW::on_add_button_clicked() */ void SelectAutonumW::on_remove_button_clicked() { - if (!m_rows.isEmpty()) { + //remove if @num_part_list contains more than one item + if (num_part_list_.size() > 1) { + m_dirty = true; removePartRow(m_rows.last().row); + if (num_part_list_.size() == 1) { + ui -> remove_button -> setDisabled(true); + } } + applyEnable(); + emit contextEdited(); } /** @@ -296,6 +313,78 @@ QComboBox *SelectAutonumW::contextComboBox() const return ui->m_comboBox; } +/** + @brief SelectAutonumW::setSingleRuleMode + @param single true to show this editor as the one and only rule of + its kind. + + The row which lists the available numberings -- its label, its combo + box and the button which deletes one -- is hidden, so there is + nothing to name a rule with and nothing to choose between: the rule + being edited is all there is. The combo box itself stays where it is + and keeps holding the rule's name, so everything which reads or + writes the rule through contextComboBox() carries on untouched; he + just cannot see it. +*/ +void SelectAutonumW::setSingleRuleMode(bool single) +{ + m_single_rule = single; + ui->label->setVisible(!single); + ui->m_comboBox->setVisible(!single); + ui->m_remove_pb->setVisible(!single); + + //A single rule has no list to be deleted from, so it needs a + //button of its own to get out of the numbering again. It is + //only shown when there is really a rule to take away -- see + //setRuleRemovable. + if (single && !m_rule_remove_pb) { + m_rule_remove_pb = new QPushButton(tr("Delete the rule"), this); + m_rule_remove_pb->setToolTip(tr( + "Delete the cable numbering rule: cables are " + "numbered again as before, and the question of " + "defining one comes back on the next drawing.")); + m_rule_remove_pb->setObjectName(QStringLiteral("m_rule_remove_pb")); + if (ui->m_definition_groupe && ui->m_definition_groupe->layout()) { + ui->m_definition_groupe->layout()->addWidget(m_rule_remove_pb); + } + connect(m_rule_remove_pb, &QPushButton::clicked, + this, &SelectAutonumW::removeClicked); + } + if (m_rule_remove_pb) { + m_rule_remove_pb->setVisible(m_single_rule && m_rule_removable); + } +} + +/** + @brief SelectAutonumW::setRuleRemovable + Whether the button which takes the whole rule away is worth showing: + it has nothing to do while this editor holds no rule at all, and it + would only be a button which does nothing. + @param can_remove true when a rule is there to be taken away +*/ +void SelectAutonumW::setRuleRemovable(bool can_remove) +{ + m_rule_removable = can_remove; + if (m_rule_remove_pb) { + m_rule_remove_pb->setVisible(m_single_rule && can_remove); + } +} + +/** + @brief SelectAutonumW::isValid + @return true when there is at least one variable in the editor and + every one of them holds what it needs. An editor which has only just + been opened holds an empty rule, and an empty rule is not one. +*/ +bool SelectAutonumW::isValid() +{ + if (num_part_list_.isEmpty()) return false; + for (NumPartEditorW *npe : num_part_list_) { + if (!npe || !npe->isValid()) return false; + } + return true; +} + /** @brief SelectAutonumW::on_buttonBox_clicked Action on button clicked @@ -364,6 +453,32 @@ void SelectAutonumW::on_buttonBox_clicked(QAbstractButton *button) )); break; } + else if (m_edited_type == 3) + { + QMessageBox::information ( + this, + tr("Cable Auto Numbering", + "title window"), + tr("This is where you can define how new cables will be numbered.\n" + "-A numbering is composed of a minimum variable.\n" + "-You can add or delete a dialing variable through the - and + buttons.\n" + "-A numbering variable includes: a type, a value and an increment.\n" + + "\n-the \"Digit 1\", \"Digit 01\" and \"Digit 001\" types represent a numeric type defined in the \"Value\" field, " + "which is incremented to each new cable by the value of the \"Increment\" field.\n" + "-\"Digit 01\" and \"Digit 001\", are respectively represented on the diagram by two and three digits minimum.\n" + "If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in " + "order to respect its type.\n" + + "\n-Type \"Text\", represents a fixed text.\nThe \"Increment\" field is not used.\n" + + "\n-The \"Sheet no.\" type represents the number of the current sheet.\nThe other fields are not used.\n" + + "\n-The \"Sheet\" type represents the name of the current sheet.\nThe other fields are not used.", + "help dialog about the cable autonumerotation" + )); + break; + } else { QMessageBox::information ( @@ -397,6 +512,9 @@ void SelectAutonumW::on_buttonBox_clicked(QAbstractButton *button) case QDialogButtonBox::ApplyRole: applyEnable(false); emit applyPressed(); + //Whatever was edited is written now, so there is + //nothing of it left for a later save to write again. + m_dirty = false; break; }; } diff --git a/sources/autoNum/ui/selectautonumw.h b/sources/autoNum/ui/selectautonumw.h index 77055b764..b43c47fa2 100644 --- a/sources/autoNum/ui/selectautonumw.h +++ b/sources/autoNum/ui/selectautonumw.h @@ -27,6 +27,7 @@ class NumPartEditorW; class QAbstractButton; class FormulaAutonumberingW; class QComboBox; +class QPushButton; class QToolButton; class QHBoxLayout; @@ -54,11 +55,55 @@ class SelectAutonumW : public QWidget void contextToFormula (); QString formula(); QComboBox *contextComboBox() const; + /** + Show this editor as the only numbering rule there is: the + row which lets several named numberings be kept and chosen + between is hidden, so the rule being edited is the one and + only. Everything else -- the definition itself, the buttons + around it -- stays exactly as it is for the other kinds. + */ + void setSingleRuleMode(bool single); + bool isSingleRuleMode() const { return m_single_rule; } + /** + True while everything the editor holds is filled in well + enough to be a rule -- no variable left with nothing in it. + The Apply button says the same thing; this is so that a page + which saves on its own way knows it too, rather than writing + a rule nobody has finished filling in. + */ + bool isValid(); + /** + True while the rule on show has been touched since it was + read or since it was last applied: a page which saves on + its own way (the cable rule does) writes it only when there + is something to write, so that confirming a window with + nothing changed in it leaves the project alone. + */ + bool isModified() const { return m_dirty; } + /** + Show the button which takes the rule itself away, which is + the only way to stop numbering cables automatically again: + the row the other numberings delete from is hidden here, so + a single rule would have no way out at all. The page behind + the editor says whether there is a rule to take away at the + moment -- without one the button has nothing to do and is + kept out of sight. + @param can_remove true when a rule is really there + */ + void setRuleRemovable(bool can_remove); void setExplicitNaming(); signals: void applyPressed(); void removeClicked(); + /** + Sent whenever what the rule holds is edited -- a + field of a part changed, a part added, a part taken + away -- so that a window holding this editor can let + its own buttons say whether there is something to + write now. + */ + void contextEdited(); /// Only with setExplicitNaming() void newClicked(); void renameClicked(); @@ -96,7 +141,19 @@ class SelectAutonumW : public QWidget NumerotationContext m_context; FormulaAutonumberingW *m_feaw; FormulaAutonumberingW *m_fcaw; - int m_edited_type = -1; ///<0 == element : 1 == conductor : 2 == folio + int m_edited_type = -1; ///<0 == element : 1 == conductor : 2 == folio : 3 == cable + ///< when true, the row of available numberings is hidden and + ///< this editor holds the one rule there is (see setSingleRuleMode) + bool m_single_rule = false; + ///< true from the moment the rule on show is touched until + ///< it is read again or applied (see isModified) + bool m_dirty = false; + ///< the button which takes the whole rule away, built for + ///< the one kind of numbering which has no list to delete + ///< it from (see setRuleRemovable) + QPushButton *m_rule_remove_pb = nullptr; + ///< whether such a rule is there to be taken away + bool m_rule_removable = false; }; #endif // SELECTAUTONUMW_H diff --git a/sources/bomexport.cpp b/sources/bomexport.cpp index 97ecdff61..768dd78c0 100644 --- a/sources/bomexport.cpp +++ b/sources/bomexport.cpp @@ -29,7 +29,9 @@ QString csvField(QString value) return QLatin1Char('"') + value + QLatin1Char('"'); } -QByteArray csvRecord(const QStringList &values) +} + +QByteArray BomExport::csvRecord(const QStringList &values) { QStringList escaped; for (const auto &value : values) { @@ -37,7 +39,6 @@ QByteArray csvRecord(const QStringList &values) } return (escaped.join(QLatin1Char(';')) + QLatin1Char('\n')).toUtf8(); } -} QStringList BomExport::defaultColumns() { diff --git a/sources/bomexport.h b/sources/bomexport.h index 5305d378e..a12ba5789 100644 --- a/sources/bomexport.h +++ b/sources/bomexport.h @@ -30,6 +30,11 @@ namespace BomExport QString defaultQuery(bool include_slaves = true, bool include_junctions = true); QString junctionFilter(); + /// One CSV record: every field quoted, ';' between them, '\n' + /// after -- the format every CSV export of this program writes. + /// Public so a list which is not read from the project database + /// (the cable list) writes the same bytes. + QByteArray csvRecord(const QStringList &values); QByteArray toCsv(QSqlQuery &query, const QStringList &headers, bool include_headers = true, int *row_count = nullptr); bool writeCsv(const QString &file_path, const QByteArray &csv, diff --git a/sources/cable/addcablecommand.cpp b/sources/cable/addcablecommand.cpp new file mode 100644 index 000000000..d3d81b41b --- /dev/null +++ b/sources/cable/addcablecommand.cpp @@ -0,0 +1,221 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "addcablecommand.h" + +#include "cablemanager.h" +#include "cablepart.h" +#include "../autoNum/numerotationcontextcommands.h" +#include "../diagram.h" +#include "../qetproject.h" + +#include + +/** + @brief AddCableCommand::AddCableCommand + @param cable the cable the line was just given to + @param part the line which was just drawn + @param diagram the folio it was drawn on + @param own_cable true when the cable was created by this very action + @param taken the cores this line took away from other cables, so + undo can give them back +*/ +AddCableCommand::AddCableCommand(Cable *cable, + CablePart *part, + Diagram *diagram, + bool own_cable, + const QList &taken) : + m_cable(cable), + m_part(part), + m_diagram(diagram), + m_taken(taken), + m_own_cable(own_cable) +{ + if (!m_cable || !m_part) return; + + m_part_data.uuid = m_part->partUuid(); + m_part_data.diagram = m_diagram ? m_diagram->uuid() : QUuid(); + m_part_data.p1 = m_part->firstPoint(); + m_part_data.p2 = m_part->secondPoint(); + + for (const CableCore &core : m_cable->usedCores()) { + if (core.part == m_part_data.uuid) { + m_cores.append(core); + } + } + + //A cable this action brought into being takes the next number + //the project's numbering rule hands out. The number itself was + //worked out before this command existed; what has to happen here + //is moving the rule on, and moving it is undoable just like the + //cable is -- so undoing gives the number back and the cable + //drawn after that takes it again instead of skipping over it. + // + //Only the rule as it stands now is taken down. Where the rule + //stands after this cable is worked out when the cable really + //comes into being, because several cables pasted together are + //all made before any of them is added, and each of them has to + //move the rule on from wherever the one before it left it. + if (m_own_cable && m_diagram && project() && project()->hasCableAutoNum()) + { + const QString key = project()->cableCurrentAutoNum(); + const NumerotationContext current = project()->cableAutoNum(key); + if (!current.isEmpty()) + { + m_num_key = key; + m_num_before = current; + } + } +} + +/** + @brief AddCableCommand::~AddCableCommand + Whatever the stack leaves behind has to be cleaned up here: a cable + which is not held by the project any more belongs to this command, + and so does a line which never made it onto a folio. + + The cable is a QPointer, so if another command took it away first it + is already null here and there is nothing left to do -- which is + exactly the point, since following a raw pointer here meant freeing + the same cable a second time. +*/ +AddCableCommand::~AddCableCommand() +{ + if (m_cable && m_own_cable) { + QETProject *proj = project(); + if (!proj || !proj->cables().contains(m_cable.data())) { + delete m_cable.data(); + } + } + if (m_part && !m_part->scene()) { + delete m_part; + } +} + +/** + @brief AddCableCommand::project + @return the project this command works in, or nullptr +*/ +QETProject *AddCableCommand::project() const +{ + return m_diagram ? m_diagram->project() : nullptr; +} + +/** + @brief AddCableCommand::redo + Put the line on the folio, together with everything the cable holds + for it. +*/ +void AddCableCommand::redo() +{ + QETProject *proj = project(); + if (!proj || !m_cable || !m_part || !m_diagram) return; + + if (m_own_cable) { + proj->addCable(m_cable); + } else { + if (!m_cable->hasPart(m_part_data.uuid)) { + m_cable->addPart(m_part_data); + } + for (const CableCore &core : m_cores) { + m_cable->setCore(core); + } + } + + if (m_part->scene() != m_diagram) { + m_diagram->addItem(m_part); + } + + //Take the cores away from the cables which held them before this + //line claimed those conductors. On the very first run they are + //already gone, so nothing happens then; redoing after an undo + //has to take them again. + for (const CableCoreTaken &taken : std::as_const(m_taken)) + { + if (taken.cable && taken.cable != m_cable) { + taken.cable->removeCore(taken.core.core); + } + } + //The cable field of every conductor is worked out again either + //way: redoing after an undo puts the cable back into the project + //without it having said anything, and the wires it feeds would go + //on showing a blank cable field although the cable which + //generates that field is right there again. + // + //And the number this cable was given is spent now: the rule + //moves on to the one the next cable will be handed. Worked out + //here rather than when the command was made, because a run of + //cables pasted together is made from end to end before any of + //it is added -- each of them has to move the rule on from where + //the one before it left it. + if (!m_num_key.isEmpty()) { + NumerotationContextCommands ncc(proj->cableAutoNum(m_num_key), + m_diagram.data()); + proj->addCableAutoNum(m_num_key, ncc.next()); + proj->setCurrentCableAutoNum(m_num_key); + } + CableManager::refreshLabels(proj); +} + +/** + @brief AddCableCommand::undo + Take the line back off the folio. An existing cable loses the + section and the cores it was carrying on it -- and with them the + cable field of the conductors, which CableManager works out again as + soon as the cable says it changed. + + The cores this line had taken away from other cables go back to + those cables afterwards: without them the conductors they belong to + would be left with a blank cable field although the cable which + generates that field is still there. +*/ +void AddCableCommand::undo() +{ + QETProject *proj = project(); + if (!proj || !m_cable || !m_part || !m_diagram) return; + + if (m_part->scene()) { + m_diagram->removeItem(m_part); + } + + if (m_own_cable) { + //The cable keeps everything it knows: it is only taken out of + //the project, so redo finds it exactly as it was. + proj->removeCable(m_cable); + } else { + m_cable->removePart(m_part_data.uuid); + } + + for (const CableCoreTaken &taken : std::as_const(m_taken)) + { + if (taken.cable && taken.cable != m_cable) { + taken.cable->setCore(taken.core); + } + } + //The number this cable was given goes back into the rule, so + //the cable drawn after an undo takes that number rather than + //the one after it: nothing of it is left spent. + if (!m_num_key.isEmpty()) { + proj->addCableAutoNum(m_num_key, m_num_before); + proj->setCurrentCableAutoNum(m_num_key); + } + + //Same as in redo(): worked out again whatever happened above, + //so a cable section or a whole cable taken away never leaves + //the wires it used to feed with a cable field it still writes. + CableManager::refreshLabels(proj); +} diff --git a/sources/cable/addcablecommand.h b/sources/cable/addcablecommand.h new file mode 100644 index 000000000..2980ece12 --- /dev/null +++ b/sources/cable/addcablecommand.h @@ -0,0 +1,95 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef ADDCABLECOMMAND_H +#define ADDCABLECOMMAND_H + +#include "cable.h" + +#include "../autoNum/numerotationcontext.h" + +#include +#include +#include + +class CablePart; +class Diagram; +class QETProject; + +/** + @brief Puts a drawn cable line on the folio, or takes it back off. + + Both halves are one single step, because a cable line without its + cable is of no use to anybody: undoing has to take the line away and + leave nothing behind, and redoing has to put both back exactly as + they were. +*/ +class AddCableCommand : public QUndoCommand +{ + public: + AddCableCommand(Cable *cable, + CablePart *part, + Diagram *diagram, + bool own_cable, + const QList &taken = QList()); + ~AddCableCommand() override; + + void undo() override; + void redo() override; + + private: + QETProject *project() const; + + private: + /** + The cable the line belongs to. + + A pointer, not a raw one: RemoveCableCommand deletes the + cable when it goes, and both of them are torn down together + when the stack takes a new command. Whoever of the two runs + first frees the cable, so the other one must not follow it + into the freed memory -- QPointer goes null instead, and + this command then simply has nothing left to clean up. + */ + QPointer m_cable; + ///The line itself, owned by the folio once it is drawn + QPointer m_part; + QPointer m_diagram; + ///Which section of the cable this line is + CablePartData m_part_data; + ///The cores the line was giving to the cable, put back by redo + QList m_cores; + ///The cores this line took away from other cables: redo takes + ///them again, undo gives them back + QList m_taken; + ///True when this command brought the cable into existence, so it + ///is the one which has to take it away again + bool m_own_cable = false; + /** + When this cable took a number out of the project's numbering + rule, the rule as it was before it did and as it was after: + an empty key means the project numbers its cables by no rule + and nothing here applies. Handing the number out is part of + bringing the cable into being, so undo has to hand it back -- + otherwise undoing a cable and drawing it once more would + leave a gap in the numbering for good. + */ + QString m_num_key; + NumerotationContext m_num_before; +}; + +#endif // ADDCABLECOMMAND_H diff --git a/sources/cable/cable.cpp b/sources/cable/cable.cpp new file mode 100644 index 000000000..79810c5e7 --- /dev/null +++ b/sources/cable/cable.cpp @@ -0,0 +1,921 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cable.h" + +#include +#include + +#include + +namespace { + /** + @brief The name an alignment is written under in the file, an + empty string when the alignment is the plain default (the text + ends where it always did, before the line). + @param alignment Qt::AlignLeft, Qt::AlignHCenter or Qt::AlignRight + @return left, center or right + */ + QString alignmentName(int alignment) + { + switch (alignment) + { + case int(Qt::AlignLeft): return QStringLiteral("left"); + case int(Qt::AlignHCenter): return QStringLiteral("center"); + case int(Qt::AlignRight): return QStringLiteral("right"); + default: return QString(); + } + } + + /** + @brief The alignment a name written in the file stands for. + @param name left, center or right + @return the Qt flags, 0 when the name says nothing + */ + int alignmentFromName(const QString &name) + { + if (name == QLatin1String("left")) return int(Qt::AlignLeft); + if (name == QLatin1String("center")) return int(Qt::AlignHCenter); + if (name == QLatin1String("right")) return int(Qt::AlignRight); + return 0; + } +} + +/** + @brief Cable::Cable + @param parent +*/ +Cable::Cable(QObject *parent) : + QObject(parent), + m_uuid(QUuid::createUuid()) +{ +} + +/** + @brief Cable::uuid + @return the identity of the cable, never empty once constructed +*/ +QUuid Cable::uuid() const +{ + return m_uuid; +} + +/** + @brief Cable::setUuid + Only used while reading a project: a cable keeps the identity it was + saved with, so the conductors it feeds stay bound to it. + @param uuid +*/ +void Cable::setUuid(const QUuid &uuid) +{ + if (uuid.isNull() || uuid == m_uuid) { + return; + } + m_uuid = uuid; + emit changed(); +} + +/** + @brief Cable::designation + @return the cable number, e.g. 15W1, which heads the label drawn next + to the trunk line and opens every core label +*/ +QString Cable::designation() const +{ + return m_designation; +} + +/** + @brief Cable::setDesignation + @param designation +*/ +void Cable::setDesignation(const QString &designation) +{ + if (m_designation == designation) return; + m_designation = designation; + emit changed(); +} + +/** + @brief Cable::designationByHand + @return true when the name of this cable was typed in rather than + worked out of the numbering rule +*/ +bool Cable::designationByHand() const +{ + return m_designation_by_hand; +} + +/** + @brief Cable::setDesignationByHand + Says where the name of this cable comes from. Nothing of it is + drawn, so it changes no label and asks for no redraw. + @param by_hand +*/ +void Cable::setDesignationByHand(bool by_hand) +{ + m_designation_by_hand = by_hand; +} + +/** + @brief Cable::bmk + @return the BMK of the cable +*/ +QString Cable::bmk() const +{ + return m_bmk; +} + +/** + @brief Cable::setBmk + @param bmk +*/ +void Cable::setBmk(const QString &bmk) +{ + if (m_bmk == bmk) return; + m_bmk = bmk; + emit changed(); +} + +/** + @brief Cable::installation + @return the installation (Anlage) the cable belongs to +*/ +QString Cable::installation() const +{ + return m_installation; +} + +/** + @brief Cable::setInstallation + @param installation +*/ +void Cable::setInstallation(const QString &installation) +{ + if (m_installation == installation) return; + m_installation = installation; + emit changed(); +} + +/** + @brief Cable::location + @return the location (Ort) the cable runs through +*/ +QString Cable::location() const +{ + return m_location; +} + +/** + @brief Cable::setLocation + @param location +*/ +void Cable::setLocation(const QString &location) +{ + if (m_location == location) return; + m_location = location; + emit changed(); +} + +/** + @brief Cable::length + @return the length of the cable as it is written down: a free text, + because it may come from the drawing or be typed in by hand +*/ +QString Cable::length() const +{ + return m_length; +} + +/** + @brief Cable::setLength + @param length +*/ +void Cable::setLength(const QString &length) +{ + if (m_length == length) return; + m_length = length; + emit changed(); +} + +/** + @brief Cable::properties + @return every field the user fills in, together with what of it he + want to see drawn next to the trunk line +*/ +CableProperties Cable::properties() const +{ + CableProperties properties; + properties.designation = m_designation; + properties.designation_by_hand = m_designation_by_hand; + properties.type = m_type; + properties.installation = m_installation; + properties.location = m_location; + properties.length = m_length; + properties.show_designation = m_show_designation; + properties.show_type = m_show_type; + properties.show_installation = m_show_installation; + properties.show_location = m_show_location; + properties.show_length = m_show_length; + properties.texts = m_texts; + properties.text_offset = m_text_offset; + properties.core_offset = m_core_offset; + return properties; +} + +/** + @brief Cable::setProperties + Write a whole set of fields at once -- one undo step covers it, and + the label next to the trunk line and the conductors it feeds are + worked out again once, not ten times. + @param properties +*/ +void Cable::setProperties(const CableProperties &properties) +{ + if (properties == this->properties()) return; + + m_designation = properties.designation; + m_designation_by_hand = properties.designation_by_hand; + m_type = properties.type; + m_installation = properties.installation; + m_location = properties.location; + m_length = properties.length; + m_show_designation = properties.show_designation; + m_show_type = properties.show_type; + m_show_installation = properties.show_installation; + m_show_location = properties.show_location; + m_show_length = properties.show_length; + m_texts = properties.texts; + m_text_offset = properties.text_offset; + m_core_offset = properties.core_offset; + emit changed(); +} + +/** + @brief Cable::type + @return the type of the cable, e.g. H07RN-F 4G1,5. The type is copied + from the cable type file when the cable is created, so a project + opens even when that file is gone or has changed since. +*/ +QString Cable::type() const +{ + return m_type; +} + +/** + @brief Cable::setType + @param type +*/ +void Cable::setType(const QString &type) +{ + if (m_type == type) return; + m_type = type; + emit changed(); +} + +/** + @brief Cable::coreCount + @return how many cores the type of this cable has. This is only the + size of the type, not the number of cores actually wired: see + usedCoreCount(). +*/ +int Cable::coreCount() const +{ + return m_core_count; +} + +/** + @brief Cable::setCoreCount + @param count +*/ +void Cable::setCoreCount(int count) +{ + count = qMax(0, count); + if (m_core_count == count) return; + m_core_count = count; + + //A type with fewer cores takes the cores it no longer has away + //from the conductors which showed them: the label of a core the + //cable doesn't own would be a lie. + for (int i = m_cores.size() - 1; i >= 0; --i) { + if (m_cores.at(i).core >= m_core_count) { + m_cores.removeAt(i); + } + } + emit changed(); +} + +/** + @brief Cable::coreColors + @return the colour of each core, in the order of the cable type file +*/ +QStringList Cable::coreColors() const +{ + return m_core_colors; +} + +/** + @brief Cable::setCoreColors + @param colors +*/ +void Cable::setCoreColors(const QStringList &colors) +{ + if (m_core_colors == colors) return; + m_core_colors = colors; + emit changed(); +} + +/** + @brief Cable::typeState + @return everything the type of this cable decides, taken in one + block: changing the type works on that block, and undo puts the very + same block back -- name, size, colours and the cores which go with + them, so no mark can be left standing on a core the cable lost. +*/ +CableTypeState Cable::typeState() const +{ + CableTypeState state; + state.type = m_type; + state.core_count = m_core_count; + state.core_colors = m_core_colors; + state.cores = m_cores; + return state; +} + +/** + @brief Cable::applyTypeState + Put back a state taken with typeState(). + + The count comes before the cores: a cable which has fewer cores than + it had cannot hold the others, and setCores() drops what stands + beyond the count -- which is exactly what a type with fewer cores + means, and exactly what undo has to take back. + @param state +*/ +void Cable::applyTypeState(const CableTypeState &state) +{ + setType(state.type); + setCoreColors(state.core_colors); + setCoreCount(state.core_count); + setCores(state.cores); +} + +/** + @brief Cable::usedCores + @return every core wired to a conductor, ordered by core number +*/ +QList Cable::usedCores() const +{ + QList cores = m_cores; + std::sort(cores.begin(), cores.end(), + [](const CableCore &a, const CableCore &b) {return a.core < b.core;}); + return cores; +} + +/** + @brief Cable::hasCore + @param core + @return true when that core is wired to a conductor +*/ +bool Cable::hasCore(int core) const +{ + for (const CableCore &c : m_cores) { + if (c.core == core) return true; + } + return false; +} + +/** + @brief Cable::core + @param core + @return the assignment of that core, an empty one when it is free +*/ +CableCore Cable::core(int core) const +{ + for (const CableCore &c : m_cores) { + if (c.core == core) return c; + } + return CableCore(); +} + +/** + @brief Cable::setCore + Wire a core to a conductor, or move the slash of an already wired + core. A core number may only appear once, so the previous holder of + that number, if any, is replaced. + @param core +*/ +void Cable::setCore(const CableCore &core) +{ + if (core.core < 0 || core.core >= m_core_count) return; + + for (int i = 0; i < m_cores.size(); ++i) { + if (m_cores.at(i).core == core.core) { + if (m_cores.at(i).conductor == core.conductor + && m_cores.at(i).part == core.part + && m_cores.at(i).position == core.position) { + return; + } + m_cores[i] = core; + emit changed(); + return; + } + } + m_cores.append(core); + emit changed(); +} + +/** + @brief Cable::setCores + Write a whole set of assignments in place of the current one, the way + undoing a dragged slash has to: every core which was moved, swapped + or dropped comes back at once. + @param cores +*/ +void Cable::setCores(const QList &cores) +{ + m_cores = cores; + for (int i = m_cores.size() - 1; i >= 0; --i) { + if (m_cores.at(i).core < 0 || m_cores.at(i).core >= m_core_count) { + m_cores.removeAt(i); + } + } + emit changed(); +} + +/** + @brief Cable::removeCore + Wire a core back to nothing: its conductor stops showing the label + this cable gave it. + @param core +*/ +void Cable::removeCore(int core) +{ + for (int i = 0; i < m_cores.size(); ++i) { + if (m_cores.at(i).core == core) { + m_cores.removeAt(i); + emit changed(); + return; + } + } +} + +/** + @brief Cable::usedCoreCount + @return how many cores of this cable are wired to a conductor +*/ +int Cable::usedCoreCount() const +{ + return m_cores.size(); +} + +/** + @brief Cable::freeCoreCount + @return how many cores the type offers and no conductor shows yet +*/ +int Cable::freeCoreCount() const +{ + return qMax(0, m_core_count - m_cores.size()); +} + +/** + @brief Cable::firstFreeCore + @return the lowest core number which is free, -1 when every core of + the type is already wired +*/ +int Cable::firstFreeCore() const +{ + for (int i = 0; i < m_core_count; ++i) { + if (!hasCore(i)) return i; + } + return -1; +} + +/** + @brief Cable::colorOfCore + @param core + @return the colour this core has in the cable type file, an empty + string when the type doesn't describe that many cores +*/ +QString Cable::colorOfCore(int core) const +{ + return m_core_colors.value(core); +} + +/** + @brief Cable::labelOfCore + The text written into the cable field of the conductor this core is + wired to. It is never typed by hand: it is worked out here, from the + cable and the core, so renaming the cable or changing its type + updates every conductor at once. + @param core + @return e.g. "15W1:br" +*/ +QString Cable::labelOfCore(int core) const +{ + if (m_designation.isEmpty()) { + return QString(); + } + const QString color = colorOfCore(core); + if (color.isEmpty()) { + return m_designation; + } + return m_designation + QLatin1Char(':') + color; +} + +/** + @brief Cable::parts + @return every drawn section of this cable, whatever folio it sits on +*/ +QList Cable::parts() const +{ + return m_parts; +} + +/** + @brief Cable::hasPart + @param part + @return true when the cable has a section with that identity +*/ +bool Cable::hasPart(const QUuid &part) const +{ + if (part.isNull()) return false; + for (const CablePartData &p : m_parts) { + if (p.uuid == part) return true; + } + return false; +} + +/** + @brief Cable::part + @param part + @return the section with that identity, an invalid one when there is none +*/ +CablePartData Cable::part(const QUuid &part) const +{ + for (const CablePartData &p : m_parts) { + if (p.uuid == part) return p; + } + return CablePartData(); +} + +/** + @brief Cable::addPart + @param part +*/ +void Cable::addPart(const CablePartData &part) +{ + if (part.uuid.isNull() || hasPart(part.uuid)) return; + m_parts.append(part); + emit changed(); +} + +/** + @brief Cable::removePart + Also drops the cores drawn on that section, since their slash and + their colour label live with it. + @param part +*/ +void Cable::removePart(const QUuid &part) +{ + bool touched = false; + for (int i = m_parts.size() - 1; i >= 0; --i) { + if (m_parts.at(i).uuid == part) { + m_parts.removeAt(i); + touched = true; + } + } + for (int i = m_cores.size() - 1; i >= 0; --i) { + if (m_cores.at(i).part == part) { + m_cores.removeAt(i); + touched = true; + } + } + if (touched) { + emit changed(); + } +} + +/** + @brief Cable::setPartGeometry + Moving or lengthening the trunk line is a purely optical change: no + core is added, none is removed, nothing is reassigned. Only the line + itself moves -- which is why this never emits changed(): the labels + the cable writes into the conductors do not depend on it. + @param part + @param p1 + @param p2 +*/ +void Cable::setPartGeometry(const QUuid &part, const QPointF &p1, const QPointF &p2) +{ + for (int i = 0; i < m_parts.size(); ++i) { + if (m_parts.at(i).uuid != part) continue; + if (m_parts.at(i).p1 == p1 && m_parts.at(i).p2 == p2) return; + m_parts[i].p1 = p1; + m_parts[i].p2 = p2; + return; + } +} + +/** + @brief Cable::setPartDiagram + @param part + @param diagram +*/ +void Cable::setPartDiagram(const QUuid &part, const QUuid &diagram) +{ + for (int i = 0; i < m_parts.size(); ++i) { + if (m_parts.at(i).uuid != part) continue; + if (m_parts.at(i).diagram == diagram) return; + m_parts[i].diagram = diagram; + emit changed(); + return; + } +} + +/** + @brief Cable::movePartCores + Carry the colour labels of one section along when that section is + moved as a whole: when a copy is put down, when it is stamped a grid + way beside the original, and when the line travels with the rest of + a selection rather than on its own. + + Quiet on purpose. Where a slash stands says nothing about the text + a conductor shows, so there is nothing to work out again -- and this + runs while items travel under the mouse, where one full pass over + every wire of the project would cost more than the movement itself. + @param part the section which moved + @param delta how far it came, in scene coordinates +*/ +void Cable::movePartCores(const QUuid &part, const QPointF &delta) +{ + if (part.isNull() || delta.isNull()) return; + + for (CableCore &core : m_cores) + { + if (core.part == part) { + core.position += delta; + } + } +} + +/** + @brief Cable::toXml + @param document + @return the <cable> element holding every part and every wired core +*/ +QDomElement Cable::toXml(QDomDocument &document) const +{ + QDomElement root = document.createElement(QLatin1String("cable")); + root.setAttribute(QLatin1String("uuid"), m_uuid.toString()); + if (!m_designation.isEmpty()) { + root.setAttribute(QLatin1String("designation"), m_designation); + } + //Only a name which was typed in says so: the ones the numbering + //rule handed out are the ordinary case and need no marking + if (m_designation_by_hand) { + root.setAttribute(QLatin1String("designation_by_hand"), QLatin1String("1")); + } + if (!m_bmk.isEmpty()) { + root.setAttribute(QLatin1String("bmk"), m_bmk); + } + if (!m_installation.isEmpty()) { + root.setAttribute(QLatin1String("installation"), m_installation); + } + if (!m_location.isEmpty()) { + root.setAttribute(QLatin1String("location"), m_location); + } + if (!m_length.isEmpty()) { + root.setAttribute(QLatin1String("length"), m_length); + } + //Only what was switched off is written: a cable written before + //these existed shows everything, like the ones written from now + if (!m_show_designation) { + root.setAttribute(QLatin1String("show_designation"), QLatin1String("0")); + } + if (!m_show_type) { + root.setAttribute(QLatin1String("show_type"), QLatin1String("0")); + } + if (!m_show_installation) { + root.setAttribute(QLatin1String("show_installation"), QLatin1String("0")); + } + if (!m_show_location) { + root.setAttribute(QLatin1String("show_location"), QLatin1String("0")); + } + if (!m_show_length) { + root.setAttribute(QLatin1String("show_length"), QLatin1String("0")); + } + if (!m_type.isEmpty()) { + root.setAttribute(QLatin1String("type"), m_type); + } + if (m_core_count > 0) { + root.setAttribute(QLatin1String("cores"), QString::number(m_core_count)); + } + + if (!m_core_colors.isEmpty()) + { + QDomElement colors = document.createElement(QLatin1String("colors")); + for (const QString &color : m_core_colors) { + QDomElement e = document.createElement(QLatin1String("color")); + e.appendChild(document.createTextNode(color)); + colors.appendChild(e); + } + root.appendChild(colors); + } + + //Only the texts this cable does not write the way the preferences + //say are stored, so a cable stays silent as long as it merely + //follows the default -- and a later change of that default still + //reaches it. The nudges are kept in the same element: they say + //where those texts stand rather than what the cable is. + if (!m_texts.isEmpty() || !m_text_offset.isNull() || !m_core_offset.isNull()) + { + QDomElement texts = document.createElement(QLatin1String("texts")); + bool stored = false; + for (auto it = m_texts.cbegin(); it != m_texts.cend(); ++it) + { + const CableTextFormat &format = it.value(); + if (format.font.isEmpty() && format.alignment == 0) { + continue; + } + QDomElement e = document.createElement(QLatin1String("text")); + e.setAttribute(QLatin1String("key"), it.key()); + if (!format.font.isEmpty()) { + e.setAttribute(QLatin1String("font"), format.font); + } + const QString align = alignmentName(format.alignment); + if (!align.isEmpty()) { + e.setAttribute(QLatin1String("align"), align); + } + texts.appendChild(e); + stored = true; + } + if (!m_text_offset.isNull()) + { + texts.setAttribute(QLatin1String("text_dx"), + QString::number(m_text_offset.x(), 'f', 2)); + texts.setAttribute(QLatin1String("text_dy"), + QString::number(m_text_offset.y(), 'f', 2)); + stored = true; + } + if (!m_core_offset.isNull()) + { + texts.setAttribute(QLatin1String("core_dx"), + QString::number(m_core_offset.x(), 'f', 2)); + texts.setAttribute(QLatin1String("core_dy"), + QString::number(m_core_offset.y(), 'f', 2)); + stored = true; + } + if (stored) { + root.appendChild(texts); + } + } + + for (const CablePartData &part : m_parts) + { + QDomElement e = document.createElement(QLatin1String("part")); + e.setAttribute(QLatin1String("uuid"), part.uuid.toString()); + e.setAttribute(QLatin1String("diagram"), part.diagram.toString()); + e.setAttribute(QLatin1String("x1"), QString::number(part.p1.x(), 'f', 2)); + e.setAttribute(QLatin1String("y1"), QString::number(part.p1.y(), 'f', 2)); + e.setAttribute(QLatin1String("x2"), QString::number(part.p2.x(), 'f', 2)); + e.setAttribute(QLatin1String("y2"), QString::number(part.p2.y(), 'f', 2)); + root.appendChild(e); + } + + for (const CableCore &core : usedCores()) + { + QDomElement e = document.createElement(QLatin1String("core")); + e.setAttribute(QLatin1String("index"), QString::number(core.core)); + if (!core.part.isNull()) { + e.setAttribute(QLatin1String("part"), core.part.toString()); + } + if (!core.conductor.isNull()) { + e.setAttribute(QLatin1String("conductor"), core.conductor.toString()); + } + e.setAttribute(QLatin1String("x"), QString::number(core.position.x(), 'f', 2)); + e.setAttribute(QLatin1String("y"), QString::number(core.position.y(), 'f', 2)); + root.appendChild(e); + } + + return root; +} + +/** + @brief Cable::fromXml + @param element a <cable> element +*/ +void Cable::fromXml(const QDomElement &element) +{ + m_uuid = QUuid(element.attribute(QLatin1String("uuid"))); + if (m_uuid.isNull()) { + m_uuid = QUuid::createUuid(); + } + m_designation = element.attribute(QLatin1String("designation")); + //A file written before this existed holds names the program + //gave, which is what not marking them means + m_designation_by_hand = element.attribute( + QLatin1String("designation_by_hand")) == QLatin1String("1"); + m_bmk = element.attribute(QLatin1String("bmk")); + m_installation = element.attribute(QLatin1String("installation")); + m_location = element.attribute(QLatin1String("location")); + m_length = element.attribute(QLatin1String("length")); + m_show_designation = element.attribute( + QLatin1String("show_designation"), QLatin1String("1")).toInt() != 0; + m_show_type = element.attribute( + QLatin1String("show_type"), QLatin1String("1")).toInt() != 0; + m_show_installation = element.attribute( + QLatin1String("show_installation"), QLatin1String("1")).toInt() != 0; + m_show_location = element.attribute( + QLatin1String("show_location"), QLatin1String("1")).toInt() != 0; + m_show_length = element.attribute( + QLatin1String("show_length"), QLatin1String("1")).toInt() != 0; + m_type = element.attribute(QLatin1String("type")); + m_core_count = qMax(0, element.attribute(QLatin1String("cores"), QLatin1String("0")).toInt()); + + m_core_colors.clear(); + const QDomElement colors = element.firstChildElement(QLatin1String("colors")); + for (QDomElement e = colors.firstChildElement(QLatin1String("color")); + !e.isNull(); + e = e.nextSiblingElement(QLatin1String("color"))) { + m_core_colors.append(e.text()); + } + + //The texts this cable writes its own way; everything not in here + //keeps following what the preferences say. + m_texts.clear(); + m_text_offset = QPointF(); + m_core_offset = QPointF(); + const QDomElement texts = element.firstChildElement(QLatin1String("texts")); + for (QDomElement e = texts.firstChildElement(QLatin1String("text")); + !e.isNull(); + e = e.nextSiblingElement(QLatin1String("text"))) + { + const QString key = e.attribute(QLatin1String("key")); + if (key.isEmpty()) continue; + CableTextFormat format; + format.font = e.attribute(QLatin1String("font")); + format.alignment = alignmentFromName(e.attribute(QLatin1String("align"))); + if (format.font.isEmpty() && format.alignment == 0) continue; + m_texts.insert(key, format); + } + if (!texts.isNull()) + { + m_text_offset.setX(texts.attribute(QLatin1String("text_dx")).toDouble()); + m_text_offset.setY(texts.attribute(QLatin1String("text_dy")).toDouble()); + m_core_offset.setX(texts.attribute(QLatin1String("core_dx")).toDouble()); + m_core_offset.setY(texts.attribute(QLatin1String("core_dy")).toDouble()); + } + + m_parts.clear(); + for (QDomElement e = element.firstChildElement(QLatin1String("part")); + !e.isNull(); + e = e.nextSiblingElement(QLatin1String("part"))) + { + CablePartData part; + part.uuid = QUuid(e.attribute(QLatin1String("uuid"))); + if (part.uuid.isNull()) { + continue; + } + part.diagram = QUuid(e.attribute(QLatin1String("diagram"))); + part.p1 = QPointF(e.attribute(QLatin1String("x1")).toDouble(), + e.attribute(QLatin1String("y1")).toDouble()); + part.p2 = QPointF(e.attribute(QLatin1String("x2")).toDouble(), + e.attribute(QLatin1String("y2")).toDouble()); + m_parts.append(part); + } + + m_cores.clear(); + for (QDomElement e = element.firstChildElement(QLatin1String("core")); + !e.isNull(); + e = e.nextSiblingElement(QLatin1String("core"))) + { + CableCore core; + core.core = e.attribute(QLatin1String("index"), QLatin1String("-1")).toInt(); + if (core.core < 0) { + continue; + } + core.part = QUuid(e.attribute(QLatin1String("part"))); + core.conductor = QUuid(e.attribute(QLatin1String("conductor"))); + core.position = QPointF(e.attribute(QLatin1String("x")).toDouble(), + e.attribute(QLatin1String("y")).toDouble()); + if (hasCore(core.core)) { + continue; + } + m_cores.append(core); + } +} diff --git a/sources/cable/cable.h b/sources/cable/cable.h new file mode 100644 index 000000000..29a0c9d55 --- /dev/null +++ b/sources/cable/cable.h @@ -0,0 +1,376 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLE_H +#define CABLE_H + +#include +#include +#include +#include +#include +#include +#include + +class QDomDocument; +class QDomElement; + +/** + @brief One core of a cable which is wired to a conductor of the drawing. + + A cable owns its assignment: this is the only place in QElectroTech + which knows that core number 3 of cable 15W1 lands on such a + conductor. The conductor itself only carries the text the assignment + generates (15W1:br), written back by CableManager::refreshLabels(), + so the text can never drift away from the cable it comes from. +*/ +struct CableCore +{ + /// Core number inside the cable, 0 based, from 0 to coreCount()-1 + int core = -1; + /// The part carrying the slash drawn for this core + QUuid part; + /// The conductor this core lands on, null when the core is free + QUuid conductor; + /// Where the slash sits, in the coordinates of its own part + QPointF position; + + ///Two assignments are the same when they say the same thing, so + ///undo can tell a gesture which changed something from one which + ///merely put the slash back where it already was + friend bool operator==(const CableCore &a, const CableCore &b) + { + return a.core == b.core && a.part == b.part + && a.conductor == b.conductor && a.position == b.position; + } + friend bool operator!=(const CableCore &a, const CableCore &b) + { + return !(a == b); + } +}; + +/** + @brief One drawn section of a cable: the trunk line of one folio. + + The geometry is kept as plain data rather than as a pointer to the + graphics item, because the folio owns the item and deletes it when the + folio is deleted, while the cable outlives it (it may have another + part on another folio). +*/ +struct CablePartData +{ + QUuid uuid; + QUuid diagram; + QPointF p1; + QPointF p2; + + bool isHorizontal() const {return qFuzzyCompare(p1.y(), p2.y());} +}; + +/** + @brief How one of the texts of a cable is written. + + Both fields may say nothing at all, and that is the normal case: + the cable then writes that text the way the preferences offer it + (QETApp::cableTextsFont() and QETApp::cableCoreFont()), so picking + another default in the preferences reaches every cable which has + not been given a font of its own. + + The texts of a cable are kept in one hash rather than one pair of + members each, so that a new text can be added without dragging a + new field through the whole code. They are named the way the file + writes them: + "designation", "type", "installation", "location", "length" for the + five texts written next to the trunk line, and "cores" for the + colour labels of the cores -- which have no alignment, being turned + by a quarter along their own line. +*/ +struct CableTextFormat +{ + ///The font, in the stable description QETUtils::fontToString() + ///writes; empty when this cable follows the preferences + QString font; + ///Qt::AlignLeft, Qt::AlignHCenter or Qt::AlignRight; 0 when the + ///text goes on ending where it always did, before the line + int alignment = 0; + + bool operator==(const CableTextFormat &other) const + { + return font == other.font && alignment == other.alignment; + } + bool operator!=(const CableTextFormat &other) const + { + return !(*this == other); + } +}; + +/** + @brief Everything about a cable the user may type in or tick, and + whether what he typed is written on the sheet at all. + + It is kept as a whole so that one undo step can put a whole edit + back, and so the selection panel and the dialog always offer exactly + the same fields in the same order. +*/ +struct CableProperties +{ + ///Name of the cable, e.g. 15W1 -- the head of the label + QString designation; + /** + Where that name comes from: false while the program worked + it out of the numbering rule, true from the moment it was + typed in. Nothing shows it and no field edits it -- it + travels with the fields so that undo puts it back with them, + and so that numbering the whole project over again knows + which names were never the rule's to begin with and may be + left alone. + */ + bool designation_by_hand = false; + ///Kind of cable, e.g. H07RN-F 4G1,5 + QString type; + ///Installation the cable belongs to + QString installation; + ///Place the cable runs through + QString location; + ///Length, typed in by hand + QString length; + + ///What of that is written next to the trunk line of the drawing + bool show_designation = true; + bool show_type = true; + bool show_installation = true; + bool show_location = true; + bool show_length = true; + + ///How each text is written -- font and alignment, keyed by the + ///names listed on CableTextFormat. A text which is not in here + ///follows what the preferences say, which is where a cable + ///freshly drawn stands for all of them. + QHash texts; + + ///How far the label at the left of the trunk line is nudged from + ///where it has always stood. It is a nudge on the drawing only, + ///and it moves the whole label as one thing: installation, place + ///and designation over the line, the type and the length under + ///it -- while the line, the slashes and the wiring keep standing + ///exactly where they were. + QPointF text_offset; + ///How far the row of colours is nudged from the slashes it names. + ///Again on the drawing only: the slashes, the entries they mark + ///and every wire behind them stay where they are, and so does the + ///row itself when the trunk line is moved. + QPointF core_offset; + + bool operator==(const CableProperties &other) const + { + return designation == other.designation + && designation_by_hand == other.designation_by_hand + && type == other.type + && installation == other.installation + && location == other.location + && length == other.length + && show_designation == other.show_designation + && show_type == other.show_type + && show_installation == other.show_installation + && show_location == other.show_location + && show_length == other.show_length + && texts == other.texts + && text_offset == other.text_offset + && core_offset == other.core_offset; + } + bool operator!=(const CableProperties &other) const + { + return !(*this == other); + } +}; + +/** + @brief Everything about a cable which its type decides, taken as one + block so that changing the type is one single step. + + The cores go with the type rather than with the text fields: taking a + type with fewer cores takes those cores off the drawing, and undoing + has to bring their marks back along with the name and the colours. +*/ +struct CableTypeState +{ + ///Kind of cable, e.g. H07RN-F 4G1,5 + QString type; + ///How many cores that type has + int core_count = 0; + ///The colour of each of them, in core order + QStringList core_colors; + ///The cores the cable really holds at this moment + QList cores; + + bool operator==(const CableTypeState &other) const + { + return type == other.type + && core_count == other.core_count + && core_colors == other.core_colors + && cores == other.cores; + } + bool operator!=(const CableTypeState &other) const + { + return !(*this == other); + } +}; + +/** + @brief The Cable class is the project wide object a drawn cable line + stands for. + + It carries what the user fills in -- the type, the number, BMK, + installation, location -- together with what QElectroTech works out: + how many cores the type has, which colour each core has, which cores + are wired to which conductor, and which folios the cable runs on. + + Properties belong to the cable, never to one of its parts: editing + the type or the number anywhere changes it for every part. +*/ +class Cable : public QObject +{ + Q_OBJECT + + public: + explicit Cable(QObject *parent = nullptr); + + //Identity + QUuid uuid() const; + void setUuid(const QUuid &uuid); + + //Properties the user fills in + QString designation() const; + void setDesignation(const QString &designation); + /** + True when the name of this cable was typed in rather + than worked out of the numbering rule: numbering the + whole project over asks before it takes such a name. + */ + bool designationByHand() const; + void setDesignationByHand(bool by_hand); + QString bmk() const; + void setBmk(const QString &bmk); + QString installation() const; + void setInstallation(const QString &installation); + QString location() const; + void setLocation(const QString &location); + QString length() const; + void setLength(const QString &length); + + ///Every field of the cable, and what of it is drawn on the sheet + CableProperties properties() const; + void setProperties(const CableProperties &properties); + + //Type, copied from the cable type file when the cable is created + QString type() const; + void setType(const QString &type); + int coreCount() const; + void setCoreCount(int count); + QStringList coreColors() const; + void setCoreColors(const QStringList &colors); + ///Everything the type of this cable decides, taken as one block + CableTypeState typeState() const; + ///Put back a state taken with typeState(), in one single pass + void applyTypeState(const CableTypeState &state); + + //Cores + QList usedCores() const; + bool hasCore(int core) const; + CableCore core(int core) const; + void setCore(const CableCore &core); + ///Write a whole set of assignments in place of another + void setCores(const QList &cores); + void removeCore(int core); + int usedCoreCount() const; + int freeCoreCount() const; + ///The lowest core number which is free, -1 when none is + int firstFreeCore() const; + ///The colour of a core, as written in the cable type file + QString colorOfCore(int core) const; + ///The text a conductor of this core shows, e.g. "15W1:br" + QString labelOfCore(int core) const; + + //Parts + QList parts() const; + bool hasPart(const QUuid &part) const; + CablePartData part(const QUuid &part) const; + void addPart(const CablePartData &part); + void removePart(const QUuid &part); + void setPartGeometry(const QUuid &part, const QPointF &p1, const QPointF &p2); + void setPartDiagram(const QUuid &part, const QUuid &diagram); + ///Carry the colour labels of one section along when that + ///section is moved as a whole (paste, duplicate, a selection + ///being moved with everything else on it) + void movePartCores(const QUuid &part, const QPointF &delta); + + //Serialisation + QDomElement toXml(QDomDocument &document) const; + void fromXml(const QDomElement &element); + + signals: + void changed(); + + private: + QUuid m_uuid; + QString m_designation; + ///< where that name comes from (see designationByHand) + bool m_designation_by_hand = false; + QString m_bmk; + QString m_installation; + QString m_location; + QString m_length; + QString m_type; + int m_core_count = 0; + QStringList m_core_colors; + QList m_cores; + QList m_parts; + ///What the label next to the trunk line is allowed to show + bool m_show_designation = true; + bool m_show_type = true; + bool m_show_installation = true; + bool m_show_location = true; + bool m_show_length = true; + ///The texts this cable writes its own way, by the names + ///listed on CableTextFormat; everything not in here follows + ///what the preferences say + QHash m_texts; + ///How far the label at the left of the line and the row of + ///colours are nudged on the drawing: distances nothing else + ///in the project ever looks at + QPointF m_text_offset; + QPointF m_core_offset; +}; + +/** + @brief One core which was taken away from another cable. + + A conductor belongs to one cable only, so drawing a second cable + across wires a first one already holds takes those cores away from + it. That has to be remembered where it is decided, so that undoing + the second cable gives the first one its cores back instead of + leaving those conductors with a blank cable field forever. +*/ +struct CableCoreTaken +{ + ///The cable the core was taken from; null when it is gone + QPointer cable; + ///The core exactly as the other cable held it + CableCore core; +}; + +#endif // CABLE_H diff --git a/sources/cable/cablecopy.cpp b/sources/cable/cablecopy.cpp new file mode 100644 index 000000000..2ac97c893 --- /dev/null +++ b/sources/cable/cablecopy.cpp @@ -0,0 +1,454 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablecopy.h" + +#include "cablemanager.h" +#include "cablepart.h" + +#include "../autoNum/assignvariables.h" +#include "../autoNum/numerotationcontext.h" +#include "../diagram.h" +#include "../qetgraphicsitem/conductor.h" +#include "../qetproject.h" + +#include +#include + +#include + +/** + @brief CableCopy::write + Puts the cable lines selected on @a diagram into @a document, so a + copy carries them the way it carries the elements and the texts of + the same selection. + + Only the line which was picked is written, together with the whole + cable it belongs to: the copy needs everything the cable knows, but + only the one section it is standing on. + @param diagram the folio being copied + @param document the fragment the clipboard is about to hold +*/ +void CableCopy::write(Diagram *diagram, QDomDocument &document) +{ + if (!diagram) return; + QDomElement root = document.documentElement(); + if (root.isNull()) return; + + QList parts; + for (QGraphicsItem *item : diagram->selectedItems()) { + if (auto *part = qgraphicsitem_cast(item)) { + parts << part; + } + } + if (parts.isEmpty()) return; + + QDomElement block = document.createElement(QStringLiteral("cables")); + bool anything = false; + for (CablePart *part : std::as_const(parts)) + { + Cable *cable = part->cable(); + if (!cable) continue; + + QDomElement element = cable->toXml(document); + const QPointF p1 = part->firstPoint(); + const QPointF p2 = part->secondPoint(); + element.setAttribute(QStringLiteral("line"), part->partUuid().toString()); + element.setAttribute(QStringLiteral("x1"), QString::number(p1.x(), 'f', 2)); + element.setAttribute(QStringLiteral("y1"), QString::number(p1.y(), 'f', 2)); + element.setAttribute(QStringLiteral("x2"), QString::number(p2.x(), 'f', 2)); + element.setAttribute(QStringLiteral("y2"), QString::number(p2.y(), 'f', 2)); + block.appendChild(element); + anything = true; + } + if (anything) root.appendChild(block); +} + +/** + @brief CableCopy::read + Builds a cable of its own for every line @a root carries, each of + them standing exactly where the fragment says it stood. + + The cable keeps everything the source cable knows -- type, + installation, place, length, how many cores, which colours -- and it + also keeps where the colour labels of the copied section stand, so a + copy arrives as a whole: onto a folio which holds no wire at all, + into an empty part of a sheet, wherever. What it does not keep is + any wire: a copy may not take a wire away from the cable it was + copied from, not even for as long as it is being built, so every + core is let go while the cable still answers to the source's + identity -- no conductor of the source is ever repointed, not even + for the length of one signal. + + Which wire each carried core belongs to is worked out later, in + CableCopy::wire(), because that depends on where the line has + finally been put -- and a copy put where there is no wire simply + keeps its labels, to be wired when the line is pulled into place. + @param diagram the folio which is about to hold those lines + @param root the <diagram> element of a copy fragment + @return the lines built, not yet wired +*/ +QList CableCopy::read(Diagram *diagram, const QDomElement &root) +{ + QList built; + if (!diagram || !diagram->project()) return built; + + const QDomElement block = root.firstChildElement(QStringLiteral("cables")); + if (block.isNull()) return built; + + QETProject *project = diagram->project(); + //One rule for the whole run. Every cable of a paste takes a + //number from it and steps it on, so several cables pasted at + //once do not all end up under the same number -- although the + //project's own rule does not move until those cables really + //exist, which is where the commands which add them take over. + //A counter bound to the folio starts the folio the copies are + //pasted onto at its own beginning, once for the whole run. + NumerotationContext rule = autonum::resetFolioCounters( + project->cableAutoNum(project->cableCurrentAutoNum())); + for (QDomElement element = block.firstChildElement(QStringLiteral("cable")); + !element.isNull(); + element = element.nextSiblingElement(QStringLiteral("cable"))) + { + if (element.attribute(QStringLiteral("x1")).isEmpty()) continue; + + Cable *cable = project->newCable(); + cable->fromXml(element); + + //The section of the copy, standing where the section it was + //copied from stood: the caller moves it to its final place, + //and the colour labels come with it (CablePart::itemChange) + CablePartData own; + own.uuid = QUuid::createUuid(); + own.diagram = diagram->uuid(); + own.p1 = QPointF(element.attribute(QStringLiteral("x1")).toDouble(), + element.attribute(QStringLiteral("y1")).toDouble()); + own.p2 = QPointF(element.attribute(QStringLiteral("x2")).toDouble(), + element.attribute(QStringLiteral("y2")).toDouble()); + + //The colour labels of that one section, carried over whole + //and with every wire taken away + const QUuid source_part(element.attribute(QStringLiteral("line"))); + QList carried; + for (const CableCore &core : cable->usedCores()) + { + if (core.part != source_part) continue; + + CableCore copy = core; + copy.conductor = QUuid(); + copy.part = own.uuid; + carried.append(copy); + } + //Goes first, while the copy still answers to the source's + //identity: that way nothing of the source is left pointing + //at a cable which is about to become somebody else + cable->setCores(carried); + + //The copy is a cable of its own: nothing of the source's + //identity, nothing of its sections and nothing of the wires + //it wires may be taken over, only what the user filled in + for (const CablePartData &other : cable->parts()) { + cable->removePart(other.uuid); + } + cable->setUuid(QUuid::createUuid()); + //The copy is numbered by the rule like every other cable. + //A project which has no rule gets no number invented for it, + //and then what the copy was copied from keeps standing there + //rather than being wiped out by an empty one. + const QString designation = + CableManager::nextDesignation(project, diagram, rule); + if (!designation.isEmpty()) { + cable->setDesignation(designation); + //The copy is numbered by the rule, so whatever the + //source was called by hand is not carried over + cable->setDesignationByHand(false); + } + cable->addPart(own); + + auto *item = new CablePart(own); + item->setCable(cable); + diagram->addItem(item); + built << item; + } + return built; +} + +/** + @brief CableCopy::wire + Give the cores of every line in @a parts the wire each of them + stands on now that the line is where it is going to stay. + + A copy arrives whole: it carries the colour labels it was copied + with, and this is the moment they are matched against the wires of + the new place. Matching never moves a label: each one goes on + standing exactly where it was carried, and the wire it stands on -- + within reach, as everywhere else -- is the one which takes the cable + field. A label standing on no wire at all simply goes on + standing there -- that is what makes a copy useful onto a folio + which holds no wire yet: the line is there, with its colours, ready + to be pulled into place, and pulling it there wires it + (CablePart::settleCores). + + A piece of wire belongs to one cable only, and a copy never takes + one away: the wires of the folio it lands on which another cable + already describes are left to that cable, nothing is asked about + them and nothing is written for them. The wires which came along + with the copy itself are different -- they are new wires on this + folio, carrying the cable field they had back on the folio they + come from, where they used to be one of that cable's own wires. If + that were still believed here, every one of them would look like a + wire another cable holds and the copy would be refused all of them, + arriving without a single entry although it is standing on wires of + its own. So they are let go of first, exactly like read() lets go + of the wires the cores used to name. + @param diagram the folio the lines are on + @param parts the lines built by CableCopy::read() + @param fresh the wires which came with this copy + @return one entry per line which is going to stay, with what it + had to give back to other cables, ready to be put on the undo stack +*/ +QList CableCopy::wire(Diagram *diagram, + const QList &parts, + const QList &fresh) +{ + QList wired; + if (!diagram || !diagram->project()) { + for (CablePart *part : parts) discard(diagram, part); + return wired; + } + QETProject *project = diagram->project(); + + //A wire which came with this copy is a new wire here: what it + //says about a cable describes the folio it was copied from. + //Done by identity rather than by position, because the wire it + //was copied from may well stand in this very place -- and that + //one goes on belonging to its own cable. + for (Conductor *conductor : fresh) + { + if (!conductor) continue; + if (conductor->properties().m_cable_uuid.isNull()) continue; + + + conductor->setCableReference(QString(), QUuid(), -1); + } + + for (CablePart *part : parts) + { + Cable *cable = part ? part->cable() : nullptr; + if (!cable) { + discard(diagram, part); + continue; + } + + //One wire a colour label is dropped on. Two labels may + //not be given the same wire, so each one is handed out + //once. + struct Offered + { + int core; + Conductor *conductor; + }; + QList offered; + QSet wires; + + const QLineF line(part->firstPoint(), part->secondPoint()); + const QList crossings = CableManager::crossedConductors(diagram, line); + for (const CableCore &core : cable->usedCores()) + { + if (core.part != part->partUuid()) continue; + if (!core.conductor.isNull()) continue; + + //The wire this label stands on, worked out the way it + //is worked out everywhere else (CablePart::wireFor): + //the nearest place this line runs across a wire, close + //enough for the slash and the wire to read as one + //thing. The label itself is not moved to reach it -- + //a copy arrives with its colours where they were + //carried, and no gesture moves one of them, so here + //too the entry follows the label rather than the + //label being sent off to find a wire. When that wire + //has already been handed to another label of the same + //copy, the next nearest one this label stands on wins, + //rather than leaving it with no wire although one is + //under it. + QList open = crossings; + Conductor *conductor = nullptr; + while (true) + { + Conductor *nearest = part->wireFor(open, core, core.position); + if (!nearest) break; + if (!wires.contains(nearest->uuid())) { + conductor = nearest; + break; + } + for (int i = open.size() - 1; i >= 0; --i) { + if (open.at(i).conductor == nearest) open.removeAt(i); + } + } + + if (!conductor) continue; + + //A wire another cable already describes stays with that + //cable. Taking it away would empty a cable behind the + //user's back, and asking about it on every paste turned + //putting a copy into an existing drawing into a question + //to answer first -- so a copy simply takes the wires + //nobody holds, and its colour labels standing on the + //others name nothing at all. An entry follows its label, + //and here it comes to a stop. He can give such a label + //one of those wires himself afterwards, by dragging it + //there, which is where the question is still asked. + const QUuid holder_uuid = conductor->properties().m_cable_uuid; + if (!holder_uuid.isNull() && holder_uuid != cable->uuid()) + { + const Cable *previous = CableManager::cableByUuid(project, holder_uuid); + if (previous + && previous->hasCore(conductor->properties().m_cable_slot)) + { + continue; + } + } + + wires.insert(conductor->uuid()); + Offered item; + item.core = core.core; + item.conductor = conductor; + offered.append(item); + } + + QList bound; + for (const Offered &item : std::as_const(offered)) + { + //A wire is one piece of wire: whichever cable held it + //before has to let it go. + CableManager::claimConductor(project, item.conductor, cable); + + //A cable binds a conductor by its identity, so a + //conductor read back from a file written before it had a + //persistent one is given one to keep from now on. + item.conductor->setUuid(item.conductor->uuid()); + + CableCore core = cable->core(item.core); + core.conductor = item.conductor->uuid(); + cable->setCore(core); + + Bound bind; + bind.core = item.core; + bind.conductor = item.conductor; + bound.append(bind); + } + + Wired wired_line; + wired_line.part = part; + wired_line.bound = bound; + wired.append(wired_line); + } + return wired; +} + +/** + @brief CableCopy::repoint + Work out again which wire each core of @a wired is on, using the + identity the wire has right now. + + A copy is put on the undo stack just after it was wired, and the + first run of that stack renews the identity of every conductor it + pasted (PasteDiagramCommand::redo): a copy must not keep the + identity of the conductor it was copied from. The cores of the copy + would then go on naming an identity which no longer exists, and the + next working out of the labels (CableManager::refreshLabels) would + find nothing there and take the cable field away from those wires. + + So the cores are pointed at the very same wires again, with their + new identity, and the cable fields are written out from the cables + one more time afterwards: what the copy was given as it was put + down still names the identity its wires had a moment earlier, and + on a folio where those wires have their own new identity that + leaves them without an entry although the copy is standing on them. + Nothing moves and nothing is asked: an untouched copy is not + changed by any of this at all. + @param wired the lines CableCopy::wire() just gave wires to +*/ +void CableCopy::repoint(const QList &wired) +{ + for (const Wired &line : wired) + { + Cable *cable = line.part ? line.part->cable() : nullptr; + if (!cable) continue; + + for (const Bound &bind : line.bound) + { + if (!bind.conductor) continue; + + const QUuid now = bind.conductor->uuid(); + const CableCore core = cable->core(bind.core); + if (core.core != bind.core || core.conductor == now) continue; + + + CableCore updated = core; + updated.conductor = now; + cable->setCore(updated); + } + } + + //With every core naming the identity its wire really has now, + //the cable fields are written out from the cables once more: + //this is what puts the entries a copy was given as it was put + //down onto the wires it has actually landed on. + Diagram *folio = nullptr; + for (const Wired &line : wired) { + if (line.part && line.part->diagram()) { + folio = line.part->diagram(); + break; + } + } + if (folio && folio->project()) { + CableManager::refreshLabels(folio->project()); + } +} + +/** + @brief CableCopy::discard + Take a line away again whole -- off the folio, out of the project, + and deleted -- without putting anything on the undo stack, because + nothing really happened: the user said no to the question above. + + Whatever the cable said while it was being built must not be left + behind either: the project has to go on claiming exactly what it + claimed before, or it would ask to be saved although nothing was + changed at all. + @param diagram the folio it was built on + @param part the line to take away, may be null +*/ +void CableCopy::discard(Diagram *diagram, CablePart *part) +{ + if (!part) return; + Cable *cable = part->cable(); + QETProject *project = diagram ? diagram->project() : nullptr; + + if (part->scene()) part->scene()->removeItem(part); + + if (cable && project && project->cables().contains(cable)) + { + const bool options_modified = project->projectOptionsWereModified(); + project->removeCable(cable); + project->setModified(options_modified); + } + + delete part; + delete cable; +} diff --git a/sources/cable/cablecopy.h b/sources/cable/cablecopy.h new file mode 100644 index 000000000..040e7c402 --- /dev/null +++ b/sources/cable/cablecopy.h @@ -0,0 +1,126 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLECOPY_H +#define CABLECOPY_H + +#include "cable.h" + +#include +#include + +class CablePart; +class Conductor; +class Diagram; +class QDomDocument; +class QDomElement; +class QUndoCommand; + +/** + @brief Carrying a drawn cable line over into a copy -- through the + clipboard (Ctrl+C then Ctrl+V) or as a duplicate (Ctrl+D). + + What travels is the line and everything which made the cable what it + was: its type, its installation, the place it runs through, its + length, how many cores it has, which colours those have -- and where + the colour labels of the copied section stand, so a copy arrives as + a whole even onto a folio which holds no wire at all. What does not + travel is which wire each core is on: a copy is a cable of its own + with a number of its own, and it takes the wire each colour label + happens to stand on at the place it is put -- those of the folio it + lands on which no other cable describes. A wire another cable + already holds is left to that cable, and a label put where there is + no wire goes on standing there, to be wired when the line is pulled + into place. + + A cable line is not one of the folio's items (the cable owns it), + so Diagram::toXml() never writes it: the block travels beside the + folio's own XML rather than inside it, and Diagram::fromXml() reads + it back only when its caller asks to be handed the lines it built. +*/ +namespace CableCopy +{ + ///Put the cable lines selected on @a diagram into @a document + void write(Diagram *diagram, QDomDocument &document); + + ///Build new cables of their own for the lines @a root holds, + ///at the coordinates the fragment carries, with the colour + ///labels of the copied section carried over as they were. + ///Nothing is asked and no wire is taken yet: that needs the + ///place the lines have really been put at, which only the + ///caller knows + QList read(Diagram *diagram, const QDomElement &root); + + ///One core of a line, and the wire it was given + struct Bound + { + int core = -1; + Conductor *conductor = nullptr; + }; + + ///One line which was built, with what it had to take away + struct Wired + { + QPointer part; + QList taken; + ///The wires the colour labels of this line were given, + ///so they can be pointed at them again afterwards + QList bound; + }; + + ///Give each colour label of a line the wire it stands on now + ///that the line is where it will stay. + /// + ///@a fresh lists the wires which came along with the copy + ///itself. They are new wires on this folio: the cable field + ///they carry describes the folio they were copied from, where + ///they used to be one of that cable's own wires -- and carried + ///over, that reference would make every one of them look like + ///a wire some other cable holds, so the copy would be refused + ///all of them and arrive without a single entry although it is + ///standing on wires of its own. They are let go of first, the + ///same way read() lets go of the wires the cores used to name. + /// + ///A wire the folio already held, which another cable + ///describes, is never taken away from that cable: nothing is + ///asked and nothing is written for it, and the colour label + ///standing on it simply names nothing until the user drags it + ///onto a free wire himself, which is where the question is + ///still asked. A label standing on no wire at all goes on + ///standing where it is, to be wired when the line is pulled + ///into place. + QList wire(Diagram *diagram, + const QList &parts, + const QList &fresh); + + ///Point the cores @a wired lists at the wires they were given, + ///again: putting the copy on the undo stack may have renewed + ///the identity of a pasted conductor (PasteDiagramCommand::redo), + ///and a cable binds a wire by its identity. Nothing is asked and + ///nothing moves here. The cable fields are written out once more + ///afterwards, from the cables themselves, so the entries a copy + ///was given as it was put down are on the wires it really + ///landed on rather than on the identity they had one moment + ///earlier. + void repoint(const QList &wired); + + ///Take a built line back off the folio without leaving a trace + ///in the undo history, for a copy which was refused + void discard(Diagram *diagram, CablePart *part); +} + +#endif // CABLECOPY_H diff --git a/sources/cable/cablecreatedialog.cpp b/sources/cable/cablecreatedialog.cpp new file mode 100644 index 000000000..5b098ff68 --- /dev/null +++ b/sources/cable/cablecreatedialog.cpp @@ -0,0 +1,1407 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablecreatedialog.h" + +#include "editcablecommand.h" +#include "../diagram.h" +#include "../qetgraphicsitem/conductor.h" +#include "../qetproject.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/** + @brief CableFilterProxy::CableFilterProxy + @param parent +*/ +CableFilterProxy::CableFilterProxy(QObject *parent) : + QSortFilterProxyModel(parent) +{ +} + +/** + @brief CableFilterProxy::setTokens + @param tokens every word the user typed, all of which have to be found +*/ +void CableFilterProxy::setTokens(const QStringList &tokens) +{ + if (m_tokens == tokens) return; + m_tokens = tokens; + beginFilterChange(); + endFilterChange(QSortFilterProxyModel::Direction::Rows); +} + +/** + @brief CableFilterProxy::setHideUnsuitable + @param hide true to keep the rows which are of no use out of sight, + false to show them -- struck through while a line was just drawn, + plain while a type is being changed, where the loss was explained + instead of being refused +*/ +void CableFilterProxy::setHideUnsuitable(bool hide) +{ + if (m_hide_unsuitable == hide) return; + m_hide_unsuitable = hide; + beginFilterChange(); + endFilterChange(QSortFilterProxyModel::Direction::Rows); +} + +/** + @brief CableFilterProxy::filterAcceptsRow + @param source_row + @param source_parent + @return +*/ +bool CableFilterProxy::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const +{ + const QModelIndex first = sourceModel()->index(source_row, 0, source_parent); + + if (m_hide_unsuitable && first.data(UnsuitableRole).toBool()) { + return false; + } + if (m_tokens.isEmpty()) { + return true; + } + + const int columns = sourceModel()->columnCount(); + for (const QString &token : m_tokens) + { + bool found = false; + for (int column = 0; column < columns; ++column) + { + const QString value = sourceModel()->index(source_row, column, source_parent) + .data(Qt::DisplayRole).toString(); + if (value.contains(token, Qt::CaseInsensitive)) + { + found = true; + break; + } + } + if (!found) { + return false; + } + } + return true; +} + +/** + @brief CableCreateDialog::CableCreateDialog + @param diagram the folio the line was drawn on + @param crossings the conductors that line runs across, in drawing order + @param part the section which will carry the trunk line and its slashes + @param parent +*/ +CableCreateDialog::CableCreateDialog(Diagram *diagram, + const QList &crossings, + const CablePartData &part, + QWidget *parent) : + QDialog(parent), + m_diagram(diagram), + m_crossings(crossings), + m_part(part) +{ + build(); +} + +/** + @brief CableCreateDialog::CableCreateDialog + @param diagram the folio whose undo stack takes the change + @param cable the cable whose type is being changed + @param parent +*/ +CableCreateDialog::CableCreateDialog(Diagram *diagram, + Cable *cable, + QWidget *parent) : + QDialog(parent), + m_diagram(diagram), + m_cable(cable), + m_change(cable) +{ + build(); +} + +/** + @brief CableCreateDialog::build + Everything the two modes share: the header saying what this window + is about, the tabs, the property fields and the buttons. What the + header says and which tabs are built is where they part company -- + a window which settles a line just drawn knows how many conductors + that line crossed, one which changes a cable knows how many cores + that cable has. +*/ +void CableCreateDialog::build() +{ + setWindowTitle(tr("Cable")); + + auto *layout = new QVBoxLayout(this); + + if (changeMode()) + { + //What this window is for, and how many cores the cable has + //right now: the type he picks is measured against that number. + const QString name = m_change->type().isEmpty() + ? tr("(no type)") : m_change->type(); + m_header = new QLabel(tr("Change the type: %1, %n core(s)", + "which type this window changes, and how many cores that cable has now", + m_change->coreCount()).arg(name), this); + } + else + { + m_header = new QLabel(tr("%n recognized core(s)", + "how many cores the line just crossed", + m_crossings.size()), this); + } + QFont header_font = m_header->font(); + header_font.setBold(true); + m_header->setFont(header_font); + layout->addWidget(m_header); + + m_tabs = new QTabWidget(this); + layout->addWidget(m_tabs); + + buildNewTab(); + //A window changing an existing cable has no line just drawn, so + //there is no other cable to hand that line over to: the second + //tab would only offer cables this one is to be replaced by, + //which is not what changing a type means. + if (!changeMode()) { + buildExistingTab(); + } + buildPropertyRow(); + layout->addWidget(m_property_row); + + m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + connect(m_buttons, &QDialogButtonBox::accepted, this, &CableCreateDialog::accept); + connect(m_buttons, &QDialogButtonBox::rejected, this, &CableCreateDialog::reject); + layout->addWidget(m_buttons); + + connect(m_tabs, &QTabWidget::currentChanged, this, [this]() {selectionChanged();}); + + loadTypeFile(); + refreshExisting(); + selectionChanged(); + + resize(780, 540); +} + +/** + @brief CableCreateDialog::cell + One read only cell of one of the two tables. A row which cannot be + used is drawn struck through and greyed out, so the checkbox which + keeps such rows visible never leaves the user to guess why they are + there. + @param value + @param unsuitable + @return +*/ +QStandardItem *CableCreateDialog::cell(const QString &value, bool unsuitable) const +{ + auto *item = new QStandardItem(value); + item->setEditable(false); + if (unsuitable) + { + QFont font = item->font(); + font.setStrikeOut(true); + item->setFont(font); + item->setForeground(QBrush(palette().color(QPalette::Disabled, QPalette::Text))); + } + return item; +} + +/** + @brief CableCreateDialog::buildNewTab + The tab choosing the type of a brand new cable, read from the cable + type file. +*/ +void CableCreateDialog::buildNewTab() +{ + auto *page = new QWidget(m_tabs); + auto *layout = new QVBoxLayout(page); + layout->setContentsMargins(4, 4, 4, 4); + + auto *search_row = new QHBoxLayout; + search_row->addWidget(new QLabel(tr("Search:"), page)); + m_new_search = new QLineEdit(page); + m_new_search->setClearButtonEnabled(true); + m_new_search->setPlaceholderText(tr("Filter cable types")); + search_row->addWidget(m_new_search, 1); + layout->addLayout(search_row); + + //What the checkbox hides is what cannot be taken: too few cores + //to carry the line which was just drawn, and -- when a type is + //being changed rather than drawn -- too few cores to keep this + //cable as it stands, since taking such a type takes cores off it. + m_new_hide = new QCheckBox(changeMode() + ? tr("Hide types which have fewer cores " + "than this cable") + : tr("Hide types which have fewer cores " + "than recognized conductors"), page); + m_new_hide->setChecked(true); + layout->addWidget(m_new_hide); + + //Said up front rather than only when a struck through row is + //picked: the user sees the lines crossed out the moment the + //checkbox shows them, and asks why straight away. + auto *why = new QLabel(changeMode() + ? tr("Uncheck to also see the types which have " + "fewer cores: taking them makes the cores " + "beyond their number leave the cable.") + : tr("A struck through line is a type which has " + "fewer cores than recognized conductors: it " + "cannot carry this cable."), page); + why->setWordWrap(true); + layout->addWidget(why); + + m_new_model = new QStandardItemModel(this); + m_new_proxy = new CableFilterProxy(this); + m_new_proxy->setSourceModel(m_new_model); + + m_new_table = new QTableView(page); + m_new_table->setModel(m_new_proxy); + m_new_table->setSelectionBehavior(QAbstractItemView::SelectRows); + m_new_table->setSelectionMode(QAbstractItemView::SingleSelection); + m_new_table->setEditTriggers(QAbstractItemView::NoEditTriggers); + m_new_table->setAlternatingRowColors(true); + m_new_table->setSortingEnabled(true); + m_new_table->horizontalHeader()->setStretchLastSection(true); + m_new_table->verticalHeader()->setVisible(false); + layout->addWidget(m_new_table, 1); + + m_new_note = new QLabel(page); + m_new_note->setWordWrap(true); + m_new_note->setVisible(false); + layout->addWidget(m_new_note); + + //A new line for the cable type file, filled in the way the + //material window fills in one of its own articles: he adds the + //type right here rather than leaving the window to find out how. + //Beside it, the button rewriting the line he picked -- which + //stays out of reach until a line really is picked, since there + //would then be nothing to rewrite. + auto *add_row = new QHBoxLayout; + add_row->addStretch(1); + auto *add_button = new QPushButton(tr("New entry"), page); + add_button->setToolTip(tr("Add a new cable type to the list")); + connect(add_button, &QPushButton::clicked, + this, &CableCreateDialog::addTypeRecord); + add_row->addWidget(add_button); + + m_edit_button = new QPushButton(tr("Edit entry"), page); + m_edit_button->setToolTip(tr("Edit the cable type selected in " + "the list.")); + m_edit_button->setEnabled(false); + connect(m_edit_button, &QPushButton::clicked, + this, &CableCreateDialog::editTypeRecord); + add_row->addWidget(m_edit_button); + + layout->addLayout(add_row); + + m_tabs->addTab(page, tr("New cable")); + + connect(m_new_search, &QLineEdit::textChanged, this, [this](const QString &text) { + m_new_proxy->setTokens(text.split(QLatin1Char(' '), Qt::SkipEmptyParts)); + }); + connect(m_new_hide, &QCheckBox::toggled, m_new_proxy, &CableFilterProxy::setHideUnsuitable); + connect(m_new_table->selectionModel(), &QItemSelectionModel::currentChanged, + this, [this]() {selectionChanged();}); + //A double click settles the choice, exactly the way clicking + //OK would: he has come to pick that cable, and making him press + //OK after every pick is one click too many. A row which cannot + //carry this cable goes on being refused the same way it is + //refused by that button, greyed out as it is. + connect(m_new_table, &QTableView::doubleClicked, this, [this]() { + if (m_buttons->button(QDialogButtonBox::Ok)->isEnabled()) { + accept(); + } + }); +} + +/** + @brief CableCreateDialog::buildExistingTab + The tab giving more cores to a cable the project already holds. That + cable keeps its type, its designation, its installation and its + location: choosing it is what inherits them. +*/ +void CableCreateDialog::buildExistingTab() +{ + auto *page = new QWidget(m_tabs); + auto *layout = new QVBoxLayout(page); + layout->setContentsMargins(4, 4, 4, 4); + + auto *search_row = new QHBoxLayout; + search_row->addWidget(new QLabel(tr("Search:"), page)); + m_existing_search = new QLineEdit(page); + m_existing_search->setClearButtonEnabled(true); + m_existing_search->setPlaceholderText(tr("Filter existing cables")); + search_row->addWidget(m_existing_search, 1); + layout->addLayout(search_row); + + m_existing_hide = new QCheckBox(tr("Hide cables which have fewer " + "free cores than recognized conductors"), page); + m_existing_hide->setChecked(true); + layout->addWidget(m_existing_hide); + + //Same as on the first tab: the reason a line is crossed out is + //said where the crossed out lines appear, not only afterwards. + auto *why = new QLabel(tr("A struck through line is a cable which has " + "fewer free cores than recognized " + "conductors: it cannot receive them."), page); + why->setWordWrap(true); + layout->addWidget(why); + + m_existing_model = new QStandardItemModel(this); + m_existing_proxy = new CableFilterProxy(this); + m_existing_proxy->setSourceModel(m_existing_model); + + m_existing_table = new QTableView(page); + m_existing_table->setModel(m_existing_proxy); + m_existing_table->setSelectionBehavior(QAbstractItemView::SelectRows); + m_existing_table->setSelectionMode(QAbstractItemView::SingleSelection); + m_existing_table->setEditTriggers(QAbstractItemView::NoEditTriggers); + m_existing_table->setAlternatingRowColors(true); + m_existing_table->setSortingEnabled(true); + m_existing_table->horizontalHeader()->setStretchLastSection(true); + m_existing_table->verticalHeader()->setVisible(false); + layout->addWidget(m_existing_table, 1); + + m_existing_note = new QLabel(page); + m_existing_note->setWordWrap(true); + m_existing_note->setVisible(false); + layout->addWidget(m_existing_note); + + m_tabs->addTab(page, tr("Existing cables")); + + connect(m_existing_search, &QLineEdit::textChanged, this, [this](const QString &text) { + m_existing_proxy->setTokens(text.split(QLatin1Char(' '), Qt::SkipEmptyParts)); + }); + connect(m_existing_hide, &QCheckBox::toggled, m_existing_proxy, &CableFilterProxy::setHideUnsuitable); + connect(m_existing_table->selectionModel(), &QItemSelectionModel::currentChanged, + this, [this]() {selectionChanged();}); + //A double click settles the choice here too: the cable goes + //straight onto the line he has just drawn, without a stop at + //the OK button on the way -- and a cable with no room left for + //these cores goes on being refused, since that button is greyed + //out for it. + connect(m_existing_table, &QTableView::doubleClicked, this, [this]() { + if (m_buttons->button(QDialogButtonBox::Ok)->isEnabled()) { + accept(); + } + }); +} + +/** + @brief CableCreateDialog::buildPropertyRow + The properties of the cable itself, which belong to it rather than to + one of its parts: whatever is typed here applies to the whole cable. + + There is one single field for the number of the cable, not one per + name it goes by: the Désignation is the tag of the cable -- the thing + one is tempted to call its BMK -- and it is what gets drawn next to + the line and written into the conductors. +*/ +void CableCreateDialog::buildPropertyRow() +{ + m_property_row = new QWidget(this); + auto *form = new QFormLayout(m_property_row); + form->setContentsMargins(0, 0, 0, 0); + + m_designation = new QLineEdit(m_property_row); + m_installation = new QLineEdit(m_property_row); + m_location = new QLineEdit(m_property_row); + + form->addRow(tr("Designation"), m_designation); + form->addRow(tr("Plant (=)"), m_installation); + form->addRow(tr("Location (+)"), m_location); +} + +/** + @brief CableCreateDialog::loadTypeFile + Read the cable type file the same way the material file is read, and + fill the first tab with it. A file which is not there yet simply + leaves the tab empty and says so. +*/ +void CableCreateDialog::loadTypeFile() +{ + m_new_model->clear(); + + QString path = CableTypeList::configuredPath(); + if (path.isEmpty()) { + path = CableTypeList::defaultPath(); + } + m_types = CableTypeListData(); + CableTypeList::load(path, &m_types); + + m_new_model->setHorizontalHeaderLabels(CableTypeList::translatedHeader(m_types.columns)); + + const int needed = neededCores(); + int current_row = -1; + for (const CableTypeRecord &record : std::as_const(m_types.records)) + { + const int cores = CableTypeList::coreCount(record); + //A type saying how many cores it has, but fewer than the line + //crosses, cannot carry the cable: too few cores were chosen. + //When a type is being changed, such a row is not refused -- + //he may well want a cable with fewer cores -- but it is the + //one the checkbox hides, and the one which has something to + //say about what it takes off the cable. + const bool fewer = cores > 0 && cores < needed; + const bool unsuitable = fewer && !changeMode(); + if (changeMode() && !m_change->type().isEmpty() + && CableTypeList::designation(record) == m_change->type()) { + current_row = m_types.records.indexOf(record); + } + + QList items; + items.reserve(m_types.columns.size()); + for (const QString &column : std::as_const(m_types.columns)) + { + items.append(cell(record.value(column), unsuitable)); + } + if (!items.isEmpty()) + { + items.first()->setData(fewer, CableFilterProxy::UnsuitableRole); + m_new_model->appendRow(items); + } + } + + //The type the cable already has is the one he came here to + //change, so it is the one standing under his finger from the + //start -- and OK is enabled with something to say yes to. + if (current_row >= 0 && m_new_proxy) + { + const QModelIndex source = m_new_model->index(current_row, 0); + m_new_table->setCurrentIndex(m_new_proxy->mapFromSource(source)); + m_new_table->scrollTo(m_new_table->currentIndex()); + } +} + +/** + @brief CableCreateDialog::refreshExisting + Fill the second tab with the cables the project already holds, + saying how many of their cores are wired and how many are left. +*/ +void CableCreateDialog::refreshExisting() +{ + //No second tab when a type is being changed, so nothing to fill + //-- and nothing was built which could be filled either. + if (changeMode()) return; + + m_existing_model->clear(); + m_existing.clear(); + + if (!m_diagram || !m_diagram->project()) return; + + m_existing_model->setHorizontalHeaderLabels({ + tr("Designation"), + tr("Type"), + tr("Cores"), + tr("Plant"), + tr("Location") + }); + + const int needed = m_crossings.size(); + for (Cable *cable : m_diagram->project()->cables()) + { + if (!cable) continue; + + const bool unsuitable = cable->freeCoreCount() < needed; + QList items; + items << cell(cable->designation(), unsuitable) + << cell(cable->type(), unsuitable) + << cell(tr("%1 / %2") + .arg(cable->usedCoreCount()) + .arg(cable->coreCount()), unsuitable) + << cell(cable->installation(), unsuitable) + << cell(cable->location(), unsuitable); + items.first()->setData(unsuitable, CableFilterProxy::UnsuitableRole); + + m_existing_model->appendRow(items); + m_existing.append(cable); + } +} + +/** + @brief CableCreateDialog::currentSourceIndex + @return the row currently chosen on whichever tab is in front, in the + coordinates of the model behind the filter +*/ +QModelIndex CableCreateDialog::currentSourceIndex() const +{ + const bool on_new_tab = m_tabs->currentIndex() == 0; + QTableView *table = on_new_tab ? m_new_table : m_existing_table; + CableFilterProxy *proxy = on_new_tab ? m_new_proxy : m_existing_proxy; + + const QModelIndex proxy_index = table->currentIndex(); + if (!proxy_index.isValid()) return QModelIndex(); + return proxy->mapToSource(proxy_index); +} + +/** + @brief CableCreateDialog::currentSelectionIsUnsuitable + @return true when the chosen row is one the filter only shows when + the checkbox is off, that is one which cannot carry this cable +*/ +bool CableCreateDialog::currentSelectionIsUnsuitable() const +{ + const QModelIndex index = currentSourceIndex(); + if (!index.isValid()) return false; + + const bool on_new_tab = m_tabs->currentIndex() == 0; + CableFilterProxy *proxy = on_new_tab ? m_new_proxy : m_existing_proxy; + return proxy->index(index.row(), 0).data(CableFilterProxy::UnsuitableRole).toBool(); +} + +/** + @brief CableCreateDialog::unsuitableNote + @return what has to be said about the struck through row which was + chosen, so the user learns why it cannot be taken +*/ +QString CableCreateDialog::unsuitableNote() const +{ + const int needed = neededCores(); + const QModelIndex index = currentSourceIndex(); + if (!index.isValid()) return QString(); + + if (m_tabs->currentIndex() == 0) + { + const int cores = CableTypeList::coreCount(m_types.records.at(index.row())); + //Changing a type may well take a cable with fewer cores: + //nothing is refused, but what that costs has to be said out + //loud before he says yes to it. + if (changeMode()) + { + return tr("This type has fewer cores than this cable: %1 instead of %2. " + "The cores beyond %1 leave the cable and their marks " + "disappear from the drawing.") + .arg(cores) + .arg(needed); + } + + return tr("Too many cores selected: the type offers only %1, " + "%2 conductors are recognized") + .arg(cores) + .arg(needed); + } + + const Cable *cable = m_existing.value(index.row()); + return tr("Only %1 free cores, %2 requested") + .arg(cable ? cable->freeCoreCount() : 0) + .arg(needed); +} + +/** + @brief CableCreateDialog::selectionChanged + Show the reason a struck through row cannot be taken, keep the OK + button in step with it, and fill the property fields from whatever is + chosen -- an existing cable hands its properties over, a new one gets + its number worked out. +*/ +void CableCreateDialog::selectionChanged() +{ + for (QLabel *note : {m_new_note, m_existing_note}) + { + if (!note) continue; + note->clear(); + note->hide(); + } + + const bool on_new_tab = m_tabs->currentIndex() == 0; + QLabel *note = on_new_tab ? m_new_note : m_existing_note; + const QModelIndex index = currentSourceIndex(); + + bool acceptable = index.isValid(); + + if (on_new_tab && m_types.columns.isEmpty()) + { + note->setText(tr("No cable type available: configure the cable " + "type file in the preferences.")); + note->show(); + acceptable = false; + } + else if (acceptable && currentSelectionIsUnsuitable()) + { + note->setText(unsuitableNote()); + note->show(); + //Changing a type may well take one with fewer cores: what + //that costs is said out loud here, and he may still take it. + acceptable = !changeMode(); + } + else if (!acceptable) + { + note->setText(on_new_tab ? tr("Choose a cable type.") + : tr("Choose an existing cable.")); + note->show(); + } + + //A type with more cores than this cable holds now loses nothing: + //the extra ones wait in the list of cores which are not placed + //yet, and he brings them in one by one. + if (acceptable && on_new_tab && changeMode() && index.isValid() + && index.row() < m_types.records.size()) + { + const int cores = CableTypeList::coreCount(m_types.records.at(index.row())); + if (cores > m_change->coreCount()) + { + note->setText(tr("%1 cores instead of %2: the extra cores " + "stay unplaced.") + .arg(cores) + .arg(m_change->coreCount())); + note->show(); + } + } + + m_buttons->button(QDialogButtonBox::Ok)->setEnabled(acceptable); + + //The button rewriting a line of the file works on the line he + //picked and on nothing else: greyed out while his finger has + //chosen no line yet, and greyed out on the tab holding the + //cables of the project, which are not lines of that file. + if (m_edit_button) + { + m_edit_button->setEnabled(on_new_tab && index.isValid() + && index.row() < m_types.records.size()); + } + + if (!acceptable) return; + + if (on_new_tab) + { + if (changeMode()) + { + //The cable already has its number, its installation and + //its place: those are what it holds, not something this + //window works out again. + fillDesignation(m_change->designation(), + m_change->designationByHand()); + m_installation->setText(m_change->installation()); + m_location->setText(m_change->location()); + return; + } + + fillDesignation(m_diagram + ? CableManager::nextDesignation(m_diagram->project(), m_diagram.data()) + : QString(), + false); + m_installation->clear(); + m_location->clear(); + return; + } + + if (const Cable *cable = m_existing.value(index.row())) + { + fillDesignation(cable->designation(), cable->designationByHand()); + m_installation->setText(cable->installation()); + m_location->setText(cable->location()); + } +} + +/** + @brief CableCreateDialog::fillDesignation + Put a name into the field and keep hold of what this window put + there: whatever he types over it is a name he chose rather than one + the program handed out. + @param text the name to show + @param by_hand whether that name was typed in by him +*/ +void CableCreateDialog::fillDesignation(const QString &text, bool by_hand) +{ + m_designation->setText(text); + m_designation_prefill = text; + m_designation_prefill_by_hand = by_hand; +} + +/** + @brief CableCreateDialog::nextFreeSlots + @param count how many cores are needed + @return the lowest core numbers no conductor shows yet +*/ +QList CableCreateDialog::nextFreeSlots(int count) const +{ + QList core_slots; + if (!m_cable) return core_slots; + + const int total = m_cable->coreCount(); + for (int core = 0; core < total && core_slots.size() < count; ++core) + { + if (!m_cable->hasCore(core)) { + core_slots.append(core); + } + } + return core_slots; +} + +/** + @brief CableCreateDialog::assignCrossings + Give the recognised conductors to the cable, one after the other + along the line, so each core takes the colour the type lists at its + place. A conductor another cable was holding is taken away from it: + a piece of wire belongs to one cable only. + @param slots the core numbers being handed out, in drawing order +*/ +void CableCreateDialog::assignCrossings(const QList &core_slots) +{ + if (!m_cable || !m_diagram || !m_diagram->project()) return; + QETProject *project = m_diagram->project(); + + int position = 0; + for (const CableCrossing &crossing : std::as_const(m_crossings)) + { + if (position >= core_slots.size()) break; + + Conductor *conductor = crossing.conductor; + if (!conductor) continue; + + //Already one of this cable's cores: it keeps the core it has, + //drawing the same cable twice must not give it two. + if (conductor->properties().m_cable_uuid == m_cable->uuid()) + { + ++position; + continue; + } + + CableManager::claimConductor(project, conductor, m_cable); + + //A cable binds a conductor by its identity, so a conductor + //read back from a file written before it had a persistent one + //is given one to keep from now on. + conductor->setUuid(conductor->uuid()); + + CableCore core; + core.core = core_slots.at(position); + core.part = m_part.uuid; + core.conductor = conductor->uuid(); + core.position = crossing.position; + m_cable->setCore(core); + ++position; + } +} + +/** + @brief CableCreateDialog::coresTakenFromOthers + Which cores of other cables the wires this line crosses already + belong to. + + A conductor is one piece of wire, so handing it to the cable being + drawn takes that core away from whichever cable held it before. The + list is worked out before anything is changed, both to be able to + ask the user first and to be able to give those cores back when he + undoes the line. + @param target the cable about to claim those conductors; a null one + is a cable which does not exist yet, and then every core another + cable holds is one which would be taken away + @return one entry per core which is about to change hands +*/ +QList CableCreateDialog::coresTakenFromOthers(const QUuid &target) const +{ + QList taken; + if (!m_diagram || !m_diagram->project()) return taken; + + QETProject *project = m_diagram->project(); + for (const CableCrossing &crossing : std::as_const(m_crossings)) + { + Conductor *conductor = crossing.conductor; + if (!conductor) continue; + + const auto properties = conductor->properties(); + if (properties.m_cable_uuid.isNull() + || properties.m_cable_uuid == target) { + continue; + } + + Cable *previous = CableManager::cableByUuid(project, properties.m_cable_uuid); + if (!previous || !previous->hasCore(properties.m_cable_slot)) continue; + + CableCoreTaken item; + item.cable = previous; + item.core = previous->core(properties.m_cable_slot); + taken.append(item); + } + return taken; +} + +/** + @brief CableCreateDialog::accept + Settle the cable the drawing gets: a new one from the chosen type, or + the chosen existing one, filled with the recognised conductors. + + Nothing is written before the user has been asked about the cores + other cables are about to lose: saying yes to that question has to be + the last thing he does before the change really happens, so that + saying no leaves the project exactly as it was. +*/ +void CableCreateDialog::accept() +{ + //Changing the type of a cable which already exists has nothing + //to do with conductors a line crosses: it takes the chosen type + //onto that cable, and that alone. + if (changeMode()) + { + acceptTypeChange(); + return; + } + + if (!m_diagram || !m_diagram->project()) { + QDialog::reject(); + return; + } + QETProject *project = m_diagram->project(); + const int needed = m_crossings.size(); + QList core_slots; + + const QModelIndex index = currentSourceIndex(); + if (!index.isValid() || currentSelectionIsUnsuitable()) return; + + Cable *chosen = nullptr; + if (m_tabs->currentIndex() == 0) + { + if (index.row() >= m_types.records.size()) return; + const CableTypeRecord record = m_types.records.at(index.row()); + const int cores = CableTypeList::coreCount(record); + if (cores > 0 && cores < needed) return; + } + else + { + chosen = m_existing.value(index.row()); + if (!chosen) return; + if (chosen->freeCoreCount() < needed) return; + } + + //The wires this line crosses which another cable already holds + //are about to change hands, and the drawing already shows that + //as the label of the first cable vanishing: better to say so + //here than to let the user discover it afterwards. + m_taken = coresTakenFromOthers(chosen ? chosen->uuid() : QUuid()); + if (!m_taken.isEmpty()) + { + const QString text = tr( + "%n crossed conductor(s) already bound to another cable\n\n" + "If you confirm, the other cable will lose these cores. Do you want to continue?", + "ask before taking cores away from another cable", + m_taken.size()); + + if (QMessageBox::warning(this, tr("Cable"), text, + QMessageBox::Yes | QMessageBox::No, + QMessageBox::No) != QMessageBox::Yes) { + m_taken.clear(); + return; + } + } + + if (m_tabs->currentIndex() == 0) + { + const CableTypeRecord record = m_types.records.at(index.row()); + const int cores = CableTypeList::coreCount(record); + + m_cable = project->newCable(); + m_cable->setType(CableTypeList::designation(record)); + //A type saying how many cores it has keeps its own count, so + //"5 of 8" stays true; a type saying nothing gets the number of + //conductors which were recognised, since that is all we know. + m_cable->setCoreCount(qMax(cores, needed)); + m_cable->setCoreColors(CableTypeList::coreColors(record)); + m_cable->setDesignation(CableManager::nextDesignation(project, m_diagram.data())); + m_cable->addPart(m_part); + core_slots = nextFreeSlots(needed); + } + else + { + m_cable = chosen; + if (!m_cable->hasPart(m_part.uuid)) { + m_cable->addPart(m_part); + } + core_slots = nextFreeSlots(needed); + } + + m_cable->setDesignation(m_designation->text().trimmed()); + //A name this window filled in is the program's, a name he typed + //over it is his own -- and it stays his own when he puts the + //very same name back into the field + m_cable->setDesignationByHand( + m_designation->text().trimmed() != m_designation_prefill + || m_designation_prefill_by_hand); + m_cable->setInstallation(m_installation->text().trimmed()); + m_cable->setLocation(m_location->text().trimmed()); + + assignCrossings(core_slots); + + QDialog::accept(); +} + +/** + @brief CableCreateDialog::neededCores + @return how many cores whatever he picks has to hold at least: the + conductors the line just crossed, or -- when a type is being changed + -- the cores this cable holds right now +*/ +int CableCreateDialog::neededCores() const +{ + return changeMode() ? m_change->coreCount() : m_crossings.size(); +} + +/** + @brief CableCreateDialog::typeFilePath + @return where the cable type file stands, read the same way the type + tab reads it +*/ +QString CableCreateDialog::typeFilePath() const +{ + QString path = CableTypeList::configuredPath(); + if (path.isEmpty()) { + path = CableTypeList::defaultPath(); + } + return path; +} + +/** + @brief CableCreateDialog::addTypeRecord + Fill in a new line of the cable type file, the way the material + window adds one of its own articles: the form is appended to the + file, the search is cleared so nothing hides what was just written, + and the file is read again so the new line comes back from where it + really stands -- and it is the one under his finger. +*/ +void CableCreateDialog::addTypeRecord() +{ + QStringList columns = m_types.columns; + if (columns.isEmpty()) { + columns = CableTypeList::defaultColumns(); + } + + CableTypeEntryDialog entry(columns, this); + if (entry.exec() != QDialog::Accepted) { + return; + } + + const QString path = typeFilePath(); + QString error; + if (!CableTypeList::appendRecord(path, entry.record(), &error)) + { + QMessageBox::critical(this, + tr("Cannot be written"), + tr("Cannot write to the file:\n%1\n%2") + .arg(path, error)); + return; + } + + //A search hiding the line he just filled in would leave him + //with a form he completed and no line to see. + m_new_search->clear(); + loadTypeFile(); + + const CableTypeRecord written = entry.record(); + for (int row = 0; row < m_types.records.size(); ++row) + { + if (!(m_types.records.at(row) == written)) continue; + + const QModelIndex source = m_new_model->index(row, 0); + m_new_table->setCurrentIndex(m_new_proxy->mapFromSource(source)); + m_new_table->scrollTo(m_new_table->currentIndex()); + break; + } + + selectionChanged(); +} + +/** + @brief CableCreateDialog::editTypeRecord + Rewrite the line of the cable type file he picked: the very window + which adds a line opens, already filled in with what that line says, + and only his yes writes it back -- saying no leaves the file exactly + as it was. + + What he writes replaces the line he started from and nothing else. + The other lines of the file are read again first, so whatever he + saved from his spreadsheet in the meantime is written back too + rather than being thrown away. +*/ +void CableCreateDialog::editTypeRecord() +{ + const QModelIndex index = currentSourceIndex(); + if (!index.isValid() || index.row() >= m_types.records.size()) return; + + const CableTypeRecord before = m_types.records.at(index.row()); + + QStringList columns = m_types.columns; + if (columns.isEmpty()) { + columns = CableTypeList::defaultColumns(); + } + + CableTypeEntryDialog entry(columns, this); + entry.setValues(before); + if (entry.exec() != QDialog::Accepted) { + return; + } + + CableTypeRecord after = entry.record(); + //Cells standing beyond the header belong to the user, and the + //form knows nothing about them: they must not vanish from the + //line just because they could not be shown. + after.extra = before.extra; + + const QString path = typeFilePath(); + QString error; + if (!CableTypeList::updateRecord(path, before, after, &error)) + { + QMessageBox::critical(this, + tr("Cannot be written"), + tr("Cannot write to the file:\n%1\n%2") + .arg(path, error)); + return; + } + + //A search hiding the line he just wrote would leave him with a + //form he filled in and no line to see. + m_new_search->clear(); + loadTypeFile(); + + for (int row = 0; row < m_types.records.size(); ++row) + { + if (!(m_types.records.at(row) == after)) continue; + + const QModelIndex source = m_new_model->index(row, 0); + m_new_table->setCurrentIndex(m_new_proxy->mapFromSource(source)); + m_new_table->scrollTo(m_new_table->currentIndex()); + break; + } + + selectionChanged(); +} + +/** + @brief CableCreateDialog::acceptTypeChange + Take the chosen type onto the cable whose type is being changed: + its name, how many cores it has and the colour of each of them, + together with the cores that cable holds -- the ones beyond the new + count leave it, the ones which stay keep their place and their wire, + and the added ones wait in the list of cores not placed yet. + + Everything lands as one single undo step, together with whatever he + typed into the property fields: the type, the cores and the fields + all come back together or not at all. +*/ +void CableCreateDialog::acceptTypeChange() +{ + if (!m_change) { + QDialog::reject(); + return; + } + + const QModelIndex index = currentSourceIndex(); + if (!index.isValid() || index.row() >= m_types.records.size()) return; + + const CableTypeRecord record = m_types.records.at(index.row()); + + const QString type = CableTypeList::designation(record); + int count = CableTypeList::coreCount(record); + //A type saying how many cores it has takes that count; one + //saying nothing leaves this cable the size it already is. + if (count <= 0) count = m_change->coreCount(); + const QStringList colors = CableTypeList::coreColors(record); + + const CableTypeState before = m_change->typeState(); + CableTypeState after = before; + after.type = type; + after.core_count = count; + after.core_colors = colors; + after.cores.clear(); + for (const CableCore &core : std::as_const(before.cores)) + { + if (core.core < count) { + after.cores.append(core); + } + } + + //Cores beyond the new count take their mark off the drawing. + //He is only asked about that when a wire really loses its + //label: a core which stood nowhere was not on the drawing at + //all, and nothing he can see goes away with it. + int wired = 0; + for (const CableCore &core : std::as_const(before.cores)) + { + if (core.core >= count && !core.conductor.isNull()) { + ++wired; + } + } + if (wired > 0) + { + const QString text = tr( + "%n core(s) of this cable bound to a conductor. " + "With the chosen type, they leave this cable and their mark " + "disappears from the drawing. Continue?", + "ask before cores lose the mark they show on the drawing", + wired); + + if (QMessageBox::warning(this, tr("Cable"), text, + QMessageBox::Yes | QMessageBox::No, + QMessageBox::Yes) != QMessageBox::Yes) { + return; + } + } + + //The type itself is written by the type step rather than by the + //fields, so the two cannot write it twice and undo cannot leave + //half of it standing. + const CableProperties properties_before = m_change->properties(); + CableProperties properties_after = properties_before; + properties_after.designation = m_designation->text().trimmed(); + //A name this window filled in is the one the cable already had; + //anything he typed over it is a name of his own + properties_after.designation_by_hand = + properties_after.designation != m_designation_prefill + || m_designation_prefill_by_hand; + properties_after.installation = m_installation->text().trimmed(); + properties_after.location = m_location->text().trimmed(); + + QList steps; + if (properties_after != properties_before) { + steps.append(new ChangeCablePropertiesCommand(m_change, + properties_before, + properties_after)); + } + if (before != after) { + steps.append(new ChangeCableTypeCommand(m_change, before, after)); + } + + //Nothing changed at all: saying yes to an unchanged form is + //still saying yes, but it is not a step which has to be kept. + if (steps.isEmpty()) + { + QDialog::accept(); + return; + } + + QUndoCommand *step = steps.size() == 1 + ? steps.takeFirst() + : new BatchCommand(steps, QCoreApplication::translate("ChangeCableTypeCommand", + "Change the cable type")); + + //The folio is the usual place this step is taken back from. When + //no folio is known -- a cable picked without a line -- the + //project keeps them all anyway, and only when there is neither + //does the change stand without a way back. + QUndoStack *stack = m_diagram ? &m_diagram->undoStack() : nullptr; + if (!stack) + { + auto *project = qobject_cast(m_change->parent()); + if (project && project->undoStack()) { + stack = project->undoStack(); + } + } + + if (stack) { + stack->push(step); + } else { + if (properties_after != properties_before) { + m_change->setProperties(properties_after); + } + m_change->applyTypeState(after); + delete step; + } + + QDialog::accept(); +} + +/** + @brief CableTypeEntryDialog::CableTypeEntryDialog + Build one field per column of the cable type file. Two columns get + the shape they need -- a number which counts, and colours written + the way the file separates them -- and every other column is a plain + field, since it may be one the user invented rather than one + QElectroTech knows. + @param columns the columns of the file, in file order + @param parent +*/ +CableTypeEntryDialog::CableTypeEntryDialog(const QStringList &columns, QWidget *parent) : + QDialog(parent), + m_columns(columns) +{ + setWindowTitle(tr("New entry")); + + auto *main_layout = new QVBoxLayout(this); + + auto *intro = new QLabel(tr("Enter the cable type to add. Fields " + "left empty stay empty in the file."), this); + intro->setWordWrap(true); + m_intro = intro; + main_layout->addWidget(intro); + + auto *grid = new QGridLayout; + for (int i = 0; i < m_columns.size(); ++i) + { + const QString column = m_columns.at(i); + + auto *label = new QLabel(CableTypeList::translatedColumn(column), this); + label->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + + QWidget *field = nullptr; + if (column == QLatin1String("cores")) + { + auto *spin = new QSpinBox(this); + spin->setRange(0, 99); + spin->setSpecialValueText(QStringLiteral("—")); + spin->setToolTip(tr("How many cores this type has. The dash means " + "the file does not specify.")); + field = spin; + } + else + { + auto *edit = new QLineEdit(this); + edit->setClearButtonEnabled(true); + if (column == QLatin1String("core_colors")) + { + edit->setPlaceholderText(QStringLiteral("br,sw,gr,bl,gnge")); + edit->setToolTip(tr("The color of each core, separated by a " + "comma and in the order of the cores.")); + } + field = edit; + } + + label->setBuddy(field); + grid->addWidget(label, i, 0, Qt::AlignRight | Qt::AlignVCenter); + grid->addWidget(field, i, 1); + m_fields.append(field); + } + grid->setColumnStretch(1, 1); + main_layout->addLayout(grid); + + auto *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + buttons->button(QDialogButtonBox::Ok)->setText(tr("Save")); + buttons->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); + connect(buttons, &QDialogButtonBox::accepted, this, &CableTypeEntryDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, this, &CableTypeEntryDialog::reject); + main_layout->addWidget(buttons); + + if (!m_fields.isEmpty()) { + m_fields.first()->setFocus(); + } + + setMinimumWidth(420); +} + +/** + @brief CableTypeEntryDialog::record + @return the line the form describes. Empty fields are left out: an + empty column never means anything for a type being created. +*/ +CableTypeRecord CableTypeEntryDialog::record() const +{ + CableTypeRecord record; + + for (int i = 0; i < m_columns.size() && i < m_fields.size(); ++i) + { + const QString column = m_columns.at(i); + + QString value; + if (auto *spin = qobject_cast(m_fields.at(i))) + { + //Zero means "not said": a type may leave its size to the + //drawing, and an empty cell says exactly that. + if (spin->value() > 0) { + value = QString::number(spin->value()); + } + } + else if (auto *edit = qobject_cast(m_fields.at(i))) + { + value = edit->text(); + value.remove(QLatin1Char('\r')); + value.remove(QLatin1Char('\n')); + value = value.trimmed(); + } + + if (!value.isEmpty()) { + record.setValue(column, value); + } + } + + return record; +} + +/** + @brief CableTypeEntryDialog::setValues + Fill the form with a line which is already in the file. The window + then says it edits rather than adds, so the two can never be told + apart by mistake: what he writes is only written when he says yes to + it, and only about the line he started from. + @param values the line as it stands in the file +*/ +void CableTypeEntryDialog::setValues(const CableTypeRecord &values) +{ + setWindowTitle(tr("Edit entry")); + if (m_intro) + { + m_intro->setText(tr("Edit the cable type selected in the list. " + "Fields left empty stay empty in the file.")); + } + + for (int i = 0; i < m_columns.size() && i < m_fields.size(); ++i) + { + const QString value = values.value(m_columns.at(i)); + + if (auto *spin = qobject_cast(m_fields.at(i))) + { + bool ok = false; + const int count = value.toInt(&ok); + spin->setValue(ok ? qBound(spin->minimum(), count, spin->maximum()) + : spin->minimum()); + } + else if (auto *edit = qobject_cast(m_fields.at(i))) + { + edit->setText(value); + } + } +} + +/** + @brief CableTypeEntryDialog::accept + Refuse an empty form: a type with nothing said about it is not worth + a line in the file. +*/ +void CableTypeEntryDialog::accept() +{ + if (record().values.isEmpty()) + { + QMessageBox::warning(this, + tr("No details"), + tr("Enter at least one detail " + "to create an entry.")); + return; + } + + QDialog::accept(); +} diff --git a/sources/cable/cablecreatedialog.h b/sources/cable/cablecreatedialog.h new file mode 100644 index 000000000..a18dd3094 --- /dev/null +++ b/sources/cable/cablecreatedialog.h @@ -0,0 +1,236 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLECREATEDIALOG_H +#define CABLECREATEDIALOG_H + +#include "../cablelist/cabletypelist.h" +#include "cable.h" +#include "cablemanager.h" + +#include +#include +#include +#include + +class Diagram; +class QCheckBox; +class QDialogButtonBox; +class QLabel; +class QLineEdit; +class QStandardItem; +class QStandardItemModel; +class QTableView; +class QTabWidget; +class QWidget; +class QPushButton; + +/** + @brief Filter keeping the rows the user is looking for. + + Every word he types has to be found somewhere in the row, whatever + the column it sits in, the same way the material file is searched. + On top of that it can hide the rows which are of no use to the cable + being drawn -- the checkbox each of the two tabs carries. +*/ +class CableFilterProxy : public QSortFilterProxyModel +{ + Q_OBJECT + + public: + static constexpr int UnsuitableRole = Qt::UserRole + 1; + + explicit CableFilterProxy(QObject *parent = nullptr); + + void setTokens(const QStringList &tokens); + void setHideUnsuitable(bool hide); + + protected: + bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; + + private: + QStringList m_tokens; + bool m_hide_unsuitable = true; +}; + +/** + @brief The small window filling in one line of the cable type file. + + It is the cable counterpart of the window the material list opens to + add one of its own articles: one field per column of the file, in + file order, and a column the program doesn't know still gets its + field since it belongs to the user rather than to QElectroTech. The + two columns a cable type is read by get the shape they need -- a + number which counts, and colours written the way the file separates + them. +*/ +class CableTypeEntryDialog : public QDialog +{ + Q_OBJECT + + public: + /** + @param columns the columns of the cable type file, in file + order + @param parent + */ + explicit CableTypeEntryDialog(const QStringList &columns, QWidget *parent = nullptr); + + ///The line the form describes, empty fields left out + CableTypeRecord record() const; + /** + Fill the form with a line which is already in the file, + for the window where that line is edited rather than + added: the window then says so, and every field carries + what the file holds about that column. + @param values the line as it stands in the file + */ + void setValues(const CableTypeRecord &values); + + void accept() override; + + private: + QStringList m_columns; + ///One field per column, in file order, for the tab key + QList m_fields; + ///What the window says it is about, changed when editing + QLabel *m_intro = nullptr; +}; + +/** + @brief The dialog which opens as soon as a cable line has been drawn. + + It says how many cores were recognised, then lets the user either + pick a type from the cable type file -- a brand new cable -- or pick + one of the cables the project already holds and give it more cores. + Both tabs carry a search field and the checkbox hiding what cannot be + used, exactly like the material selection does. + + The very same window opens to change the type of a cable which + already exists: it then shows the type tab alone, filled in with what + that cable holds, and takes the chosen type onto the cable -- cores + reworked, marks redrawn -- as one single undo step. It carries the + button filling in a new line of the cable type file, the way the + material window carries its own. +*/ +class CableCreateDialog : public QDialog +{ + Q_OBJECT + + public: + CableCreateDialog(Diagram *diagram, + const QList &crossings, + const CablePartData &part, + QWidget *parent = nullptr); + + /** + The same window, opened to change the type of a cable which + already exists rather than to settle a line just drawn. + @param diagram the folio whose undo stack takes the change + @param cable the cable whose type is being changed + @param parent + */ + CableCreateDialog(Diagram *diagram, + Cable *cable, + QWidget *parent = nullptr); + + ///The cable the user settled on, null when he cancelled + Cable *cable() const {return m_cable;} + ///The cores this cable took away from cables the project + ///already held, so that undo gives them back + QList takenCores() const {return m_taken;} + + void accept() override; + + private: + void build(); + void buildNewTab(); + void buildExistingTab(); + void buildPropertyRow(); + void loadTypeFile(); + void refreshExisting(); + void selectionChanged(); + ///Fill the name field in and remember what this window put there + void fillDesignation(const QString &text, bool by_hand); + void assignCrossings(const QList &core_slots); + QList coresTakenFromOthers(const QUuid &target) const; + QList nextFreeSlots(int count) const; + QModelIndex currentSourceIndex() const; + bool currentSelectionIsUnsuitable() const; + QString unsuitableNote() const; + QStandardItem *cell(const QString &value, bool unsuitable) const; + ///True while this window changes the type of an existing cable + bool changeMode() const {return m_change != nullptr;} + ///How many cores whatever he picks has to hold at least + int neededCores() const; + ///Where the cable type file stands + QString typeFilePath() const; + ///The button filling in a new line of the cable type file + void addTypeRecord(); + ///The button rewriting the line of the cable type file he picked + void editTypeRecord(); + ///Take the chosen type onto the cable being changed + void acceptTypeChange(); + + //ATTRIBUTES + private: + QPointer m_diagram; + QList m_crossings; + CablePartData m_part; + Cable *m_cable = nullptr; + ///The cable whose type is changed, null while a line is drawn + QPointer m_change; + ///The cores other cables lost to this one, given back by undo + QList m_taken; + + QLabel *m_header = nullptr; + QTabWidget *m_tabs = nullptr; + QDialogButtonBox *m_buttons = nullptr; + + QLineEdit *m_new_search = nullptr; + QCheckBox *m_new_hide = nullptr; + QTableView *m_new_table = nullptr; + QStandardItemModel *m_new_model = nullptr; + CableFilterProxy *m_new_proxy = nullptr; + QLabel *m_new_note = nullptr; + ///The button rewriting the chosen line of the file, which + ///can only work on a line which was picked + QPushButton *m_edit_button = nullptr; + CableTypeListData m_types; + + QLineEdit *m_existing_search = nullptr; + QCheckBox *m_existing_hide = nullptr; + QTableView *m_existing_table = nullptr; + QStandardItemModel *m_existing_model = nullptr; + CableFilterProxy *m_existing_proxy = nullptr; + QLabel *m_existing_note = nullptr; + QList m_existing; + + QWidget *m_property_row = nullptr; + QLineEdit *m_designation = nullptr; + /** + The name exactly as this window filled it in, and where + that name came from: whatever he types over it from then + on is a name of his own (see accept()) + */ + QString m_designation_prefill; + bool m_designation_prefill_by_hand = false; + QLineEdit *m_installation = nullptr; + QLineEdit *m_location = nullptr; +}; + +#endif // CABLECREATEDIALOG_H diff --git a/sources/cable/cablemanager.cpp b/sources/cable/cablemanager.cpp new file mode 100644 index 000000000..e3728d5af --- /dev/null +++ b/sources/cable/cablemanager.cpp @@ -0,0 +1,635 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablemanager.h" + +#include "cable.h" +#include "../autoNum/assignvariables.h" +#include "../autoNum/numerotationcontextcommands.h" +#include "../diagram.h" +#include "../qetgraphicsitem/conductor.h" +#include "../qetgraphicsitem/element.h" +#include "../qetgraphicsitem/terminal.h" +#include "../qetproject.h" + +#include +#include + +#include +#include + +namespace { + +/** + @brief Where two segments cross, if they do at all. + + Done by hand rather than with QLineF::intersects() because the + collinear case has to be a miss: a cable drawn exactly on top of a + conductor follows it, it does not cross it, and counting it would + claim a core the cable never reaches. + @param a1 start of the first segment + @param a2 end of the first segment + @param b1 start of the second segment + @param b2 end of the second segment + @param result receives the crossing point when there is one + @return true when the two segments cross within their own length +*/ +bool segmentIntersection(const QPointF &a1, const QPointF &a2, + const QPointF &b1, const QPointF &b2, + QPointF *result) +{ + const QPointF r = a2 - a1; + const QPointF s = b2 - b1; + const QPointF u = b1 - a1; + + const qreal denominator = r.x() * s.y() - r.y() * s.x(); + if (qFuzzyIsNull(denominator)) { + return false; + } + + const qreal t = (u.x() * s.y() - u.y() * s.x()) / denominator; + const qreal v = (u.x() * r.y() - u.y() * r.x()) / denominator; + if (t < 0.0 || t > 1.0 || v < 0.0 || v > 1.0) { + return false; + } + + if (result) { + *result = a1 + t * r; + } + return true; +} + +/** + @brief How far a point stands from a segment, in scene units +*/ +qreal distanceToSegment(const QPointF &point, const QPointF &a, const QPointF &b) +{ + const QPointF ab = b - a; + const qreal length_squared = ab.x() * ab.x() + ab.y() * ab.y(); + if (qFuzzyIsNull(length_squared)) { + return QLineF(point, a).length(); + } + + const QPointF ap = point - a; + qreal t = (ap.x() * ab.x() + ap.y() * ab.y()) / length_squared; + t = qBound(0.0, t, 1.0); + return QLineF(point, a + t * ab).length(); +} + +/** + @brief Whether some cable of the project already stands under this + number. + + A number which is taken must not be handed out twice. That happens + while a whole run of cables is numbered one after the other -- none + of them has been added to the project by anything but its own + creation yet -- and it happens when a rule has simply been given a + value which some cable carries already. + @param project + @param designation the number to look for + @return true when a cable of that project stands under it +*/ +bool designationIsTaken(QETProject *project, const QString &designation) +{ + if (!project || designation.isEmpty()) return false; + + for (Cable *cable : project->cables()) + { + if (cable && cable->designation() == designation) { + return true; + } + } + return false; +} + +} // namespace + +/** + @brief CableManager::crossedConductors + Tell which conductors a line about to become a cable runs across, in + the order they are met along the line. That order is what gives each + core its place, and therefore its colour, so it has to be the order + of the drawing and not the order the conductors happen to be stored + in. + @param diagram the folio the line is drawn on + @param line the line, in scene coordinates + @return the crossings, ordered from the start of the line +*/ +QList CableManager::crossedConductors(Diagram *diagram, const QLineF &line) +{ + QList crossings; + if (!diagram) { + return crossings; + } + + const QPointF start = line.p1(); + if (qFuzzyCompare(start, line.p2())) { + return crossings; + } + + const QPointF direction = line.p2() - start; + for (Conductor *conductor : diagram->conductors()) + { + QPointF where; + if (!crossingOf(diagram, line, conductor, &where)) continue; + + CableCrossing crossing; + crossing.conductor = conductor; + crossing.position = where; + crossings.append(crossing); + } + + std::sort(crossings.begin(), crossings.end(), + [&start, &direction](const CableCrossing &a_, const CableCrossing &b_) { + const QPointF da = a_.position - start; + const QPointF db = b_.position - start; + const qreal ta = da.x() * direction.x() + da.y() * direction.y(); + const qreal tb = db.x() * direction.x() + db.y() * direction.y(); + return ta < tb; + }); + + return crossings; +} + +/** + @brief CableManager::crossingOf + Where one line runs across one conductor, if it does at all. + + Done by hand rather than with QLineF::intersects() because the + collinear case has to be a miss: a cable drawn exactly on top of a + conductor follows it, it does not cross it, and counting it would + claim a core the cable never reaches. + @param diagram the folio the line is drawn on + @param line the line, in scene coordinates + @param conductor the wire being asked about + @param result receives the crossing point, in scene coordinates + @return true when the line really runs across that wire +*/ +bool CableManager::crossingOf(Diagram *diagram, + const QLineF &line, + Conductor *conductor, + QPointF *result) +{ + if (!conductor || !diagram) return false; + + const QPointF start = line.p1(); + const QPointF end = line.p2(); + if (qFuzzyCompare(start, end)) return false; + + //Work in the conductor's own coordinates: its path is stored + //there, and a conductor is never where it was when it was + //created once the whole drawing has been moved about. + const QPointF a = conductor->mapFromScene(start); + const QPointF b = conductor->mapFromScene(end); + + const QPainterPath path = conductor->path(); + for (int i = 0; i + 1 < path.elementCount(); ++i) + { + const QPainterPath::Element &e1 = path.elementAt(i); + const QPainterPath::Element &e2 = path.elementAt(i + 1); + //A MoveTo ends the segment before it: the jump to the new + //subpath is not drawn, so nothing can cross it. + if (e2.type == QPainterPath::MoveToElement) { + continue; + } + QPointF where; + if (segmentIntersection(a, b, + QPointF(e1.x, e1.y), + QPointF(e2.x, e2.y), + &where)) + { + if (result) { + *result = conductor->mapToScene(where); + } + return true; + } + } + return false; +} + +/** + @brief CableManager::distanceTo + How far a point of the sheet stands from a wire, in scene units. + @param conductor + @param scene_pos + @return that distance, which is where the wire passes when the point + is beside it rather than in front of one of its ends +*/ +qreal CableManager::distanceTo(Conductor *conductor, const QPointF &scene_pos) +{ + if (!conductor) { + return std::numeric_limits::max(); + } + + qreal best = std::numeric_limits::max(); + const QPainterPath path = conductor->path(); + for (int i = 0; i + 1 < path.elementCount(); ++i) + { + const QPainterPath::Element &e1 = path.elementAt(i); + const QPainterPath::Element &e2 = path.elementAt(i + 1); + if (e2.type == QPainterPath::MoveToElement) continue; + + const qreal d = distanceToSegment( + scene_pos, + conductor->mapToScene(QPointF(e1.x, e1.y)), + conductor->mapToScene(QPointF(e2.x, e2.y))); + if (d < best) { + best = d; + } + } + return best; +} + +namespace { + +/** + @brief The end of @a conductor which does not touch @a element. + + Which end that is tells where the wire goes on its own sheet: a wire + ending on a report arrow points away from it, and that is the end + which says something about where it comes from or where it runs to. + @param conductor the wire to look at + @param element the report arrow it ends on (may be nullptr) + @return the scene position of the other end, (0, 0) when there is none +*/ +QPointF farEndPosition(const Conductor *conductor, Element *element) +{ + const Terminal *far = nullptr; + if (conductor->terminal1 + && conductor->terminal1->parentElement() != element) { + far = conductor->terminal1; + } else { + far = conductor->terminal2 ? conductor->terminal2 : conductor->terminal1; + } + return far ? far->scenePos() : QPointF(); +} + +/** + @brief Whether wire @a a runs before wire @a b on its own sheet. + + Both are looked at from @a element: what tells them apart is where + their other end goes. Putting the wires which come in to a report + and the wires which go out of its partner in this order is what + pairs a continuation up with the core it belongs to when several + cores run through one and the same report. + @param a @param b the two wires to compare + @param element the report arrow both end on (may be nullptr) + @return true when @a a comes first +*/ +bool farBefore(const Conductor *a, const Conductor *b, Element *element) +{ + const QPointF pa = farEndPosition(a, element); + const QPointF pb = farEndPosition(b, element); + if (pa.y() != pb.y()) return pa.y() < pb.y(); + if (pa.x() != pb.x()) return pa.x() < pb.x(); + return a->uuid() < b->uuid(); +} + +} // namespace + +/** + @brief CableManager::refreshLabels + Rewrite the cable field of every conductor of the project from the + cables themselves. + + The rule is one-directional and therefore cannot drift: a conductor + which some cable claims gets the label that cable generates, a + conductor which no cable claims any more -- because the cable was + delete, the core was dragged away or the type lost that core -- has + the generated label taken away. A conductor which never belonged to + a cable keeps whatever it had, since only one with a reference is + touched. + + A core which ends on a folio report goes on over there: the wire + coming out of the linked arrow shows the same piece of copper, so + it belongs to the same core and carries the same cable field. What + the links say is worked out from scratch on every pass, and a wire + which some cable already claims is never taken away from it, so the + reference appears wherever a report carries a core and disappears + again by itself as soon as the cable, the core or the link itself + is gone. Chains of reports are followed as far as they go, so a + cable may run over any number of sheets. + @param project +*/ +void CableManager::refreshLabels(QETProject *project) +{ + if (!project) return; + + struct Binding { + QUuid cable; + int slot = -1; + QString label; + }; + + QHash bindings; + for (Cable *cable : project->cables()) + { + if (!cable) continue; + for (const CableCore &core : cable->usedCores()) + { + if (core.conductor.isNull()) continue; + Binding binding; + binding.cable = cable->uuid(); + binding.slot = core.core; + binding.label = cable->labelOfCore(core.core); + bindings.insert(core.conductor, binding); + } + } + + //A core which ends on a folio report continues on the wire which + //leaves the linked arrow on the other sheet. That wire shows the + //same piece of copper, so it gets the same reference as the core + //it continues. The walk repeats while it finds new wires, so a + //chain of reports is followed across any number of sheets, and + //it only ever fills a wire no cable has claimed yet: two cores + //can never fight over the same wire, and a reference worked out + //here is taken away again by the same pass as soon as the cable, + //the core or the link does. + QHash conductors_by_uuid; + QHash> endings_on_report; + for (Diagram *diagram : project->diagrams()) + { + if (!diagram) continue; + for (Conductor *conductor : diagram->conductors()) + { + if (conductor) conductors_by_uuid.insert(conductor->uuid(), conductor); + } + } + + //Where a wire goes on its own sheet (farBefore, above): putting the + //wires which come in and the wires which go out in the same order + //is what pairs a continuation up with its core when several cores + //run through one and the same report. + + bool grew = true; + while (grew) + { + grew = false; + endings_on_report.clear(); + for (const QUuid &source_uuid : bindings.keys()) + { + Conductor *source = conductors_by_uuid.value(source_uuid); + if (!source) continue; + + Terminal *ends[2] = {source->terminal1, source->terminal2}; + for (Terminal *end : ends) + { + if (!end) continue; + Element *element = end->parentElement(); + //An arrow taken off the sheet carries nothing over + //any more, whatever still links it + if (!element || !element->scene()) continue; + if (!(element->linkType() & Element::AllReport)) continue; + + QList &in = endings_on_report[element]; + if (!in.contains(source)) in.append(source); + } + } + + for (auto it = endings_on_report.constBegin(); + it != endings_on_report.constEnd(); ++it) + { + Element *element = it.key(); + QList in = it.value(); + std::sort(in.begin(), in.end(), + [&](const Conductor *a, const Conductor *b) { + return farBefore(a, b, element); + }); + + for (Element *partner : element->linkedElements()) + { + if (!partner || partner == element || !partner->scene()) continue; + + QList out = partner->conductors(); + std::sort(out.begin(), out.end(), + [&](const Conductor *a, const Conductor *b) { + return farBefore(a, b, partner); + }); + + //One core coming in may branch out into several wires + //over there -- they all show the same piece of copper. + //Several cores coming in take one wire each, in the + //order they run on their own sheet. + const int count = (in.size() == 1) + ? out.size() + : qMin(in.size(), out.size()); + for (int i = 0; i < count; ++i) + { + Conductor *continued = out.at(i); + if (!continued || bindings.contains(continued->uuid())) continue; + const int from = qMin(i, in.size() - 1); + bindings.insert(continued->uuid(), + bindings.value(in.at(from)->uuid())); + grew = true; + } + } + } + } + + for (Diagram *diagram : project->diagrams()) + { + if (!diagram) continue; + for (Conductor *conductor : diagram->conductors()) + { + if (!conductor) continue; + + const auto it = bindings.constFind(conductor->uuid()); + if (it != bindings.constEnd()) + { + const ConductorProperties &properties = conductor->properties(); + conductor->setCableReference(it->label, it->cable, it->slot); + } + else if (!conductor->properties().m_cable_uuid.isNull()) + { + conductor->setCableReference(QString(), QUuid(), -1); + } + } + } +} + +/** + @brief CableManager::claimConductor + Make a conductor a core of @a new_owner, taking it away from whichever + cable held it before. A conductor is a single piece of wire: two + cables cannot both claim it, and the one that loses it must not go + on drawing a label for it. + @param project + @param conductor + @param new_owner the cable which is about to use the conductor +*/ +void CableManager::claimConductor(QETProject *project, Conductor *conductor, Cable *new_owner) +{ + if (!project || !conductor) return; + + const QUuid owner_uuid = conductor->properties().m_cable_uuid; + if (owner_uuid.isNull() || (new_owner && owner_uuid == new_owner->uuid())) { + return; + } + + if (Cable *previous = cableByUuid(project, owner_uuid)) { + previous->removeCore(conductor->properties().m_cable_slot); + } +} + +/** + @brief CableManager::cableByUuid + @param project + @param uuid + @return the cable with that identity, or nullptr +*/ +Cable *CableManager::cableByUuid(QETProject *project, const QUuid &uuid) +{ + if (!project || uuid.isNull()) return nullptr; + for (Cable *cable : project->cables()) { + if (cable && cable->uuid() == uuid) return cable; + } + return nullptr; +} + +/** + @brief CableManager::conductorByUuid + @param project + @param uuid + @return the conductor with that identity, or nullptr. Needed because + a cable remembers its cores by identity: only the drawing knows where + they ended up. +*/ +Conductor *CableManager::conductorByUuid(QETProject *project, const QUuid &uuid) +{ + if (!project || uuid.isNull()) return nullptr; + for (Diagram *diagram : project->diagrams()) { + if (!diagram) continue; + for (Conductor *conductor : diagram->conductors()) { + if (conductor && conductor->uuid() == uuid) return conductor; + } + } + return nullptr; +} + +/** + @brief CableManager::nextDesignation + Work out the number of the next cable drawn on a folio. + + When the project has a numbering rule for cables, that rule decides: + whatever it holds at this moment is the number, read by the very + same machinery the element numbering reads its own. When it has + none, the plain letter W is handed out: a project which numbers its + cables by no rule gets no numbers invented for it, and W -- the one + part of the old numbers which was never a number -- is all such a + cable is called until a rule is defined. + + A rule whose counter belongs to one folio is read from the beginning + of the folio the cable is drawn on, so that the number this cable + gets is the first free one of its own folio rather than whatever the + project's rule happens to hold after numbering other folios. + + Nothing here moves the project's own rule on: that belongs to the + moment the cable really comes into being. + @param project + @param diagram the folio the cable is being drawn on + @return the number +*/ +QString CableManager::nextDesignation(QETProject *project, Diagram *diagram) +{ + NumerotationContext context; + if (project) { + context = project->cableAutoNum(project->cableCurrentAutoNum()); + } + //The folio-bound parts are put back to the start of that folio; + //the stepping of the overload below then walks past every + //number of this folio which is already taken + context = autonum::resetFolioCounters(context); + return nextDesignation(project, diagram, context); +} + +/** + @brief CableManager::nextDesignation + Work the number of a cable out of a rule which the caller keeps in + @p context -- the project's own rule as it stands, or a copy of it + which the caller is numbering a whole run of cables with. + + Whatever the rule holds is the number, unless some cable already + stands under it: then @p context is stepped on and the rule is read + once more, so that a paste which brings in several cables at once + numbers each of them differently although the project's own rule + does not move until those cables really exist. A rule which cannot + step -- one with nothing in it which counts -- hands out what it + says and says no more, for what it says is all it knows. + + A project which numbers its cables by no rule is not read at all + and is handed the plain letter W instead: no numbers are invented + where none have been defined. + @param project + @param diagram the folio the cable is being drawn on, which every + folio-bound part of a rule is read from + @param context the rule to read; stepped on when what it says is + already taken + @return the number +*/ +QString CableManager::nextDesignation(QETProject *project, + Diagram *diagram, + NumerotationContext &context) +{ + if (!project || !diagram) return QString(); + + const QString key = project->cableCurrentAutoNum(); + //Whether there was a rule to read at all, taken down before the + //loop: stepping the rule on empties it, and that must not look + //like a project which never had one. + const bool ruled = !key.isEmpty() && !context.isEmpty(); + QString previous; + + for (int attempt = 0; ruled && attempt < 1000 && !context.isEmpty(); ++attempt) + { + //The rule is read on a copy: reading it fills in what its + //folio-bound parts are worth here and now, and that must + //not creep into the rule itself. + NumerotationContext evaluated = context; + const QString formula = autonum::numerotationContextToFormula(evaluated); + autonum::sequentialNumbers seq; + autonum::setSequential(formula, seq, evaluated, diagram, key); + const QString candidate = + autonum::AssignVariables::formulaToLabel(formula, seq, diagram); + + if (candidate.isEmpty()) break; + if (!designationIsTaken(project, candidate)) return candidate; + + //Taken already: step the rule on and read it once more. + if (candidate == previous) return candidate; + previous = candidate; + + NumerotationContextCommands ncc(context, diagram); + const NumerotationContext following = ncc.next(); + if (following.size() != context.size()) break; + context = following; + } + + //No rule at all: the plain letter W, and nothing more. The old + //numbers read folio + W + index, and W is the only part of them + //which was never a number -- so it is what a project which has + //defined no numbering rule calls its cables, until it defines + //one. + if (!ruled) { + return QStringLiteral("W"); + } + + //A rule which says nothing usable here: no number at all. The + //number is what the rule says, and a rule which says nothing + //leaves the field to the user rather than having it filled in + //with something it never held. + return QString(); +} diff --git a/sources/cable/cablemanager.h b/sources/cable/cablemanager.h new file mode 100644 index 000000000..00055f6dc --- /dev/null +++ b/sources/cable/cablemanager.h @@ -0,0 +1,113 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEMANAGER_H +#define CABLEMANAGER_H + +#include +#include +#include +#include + +class Cable; +class Conductor; +class Diagram; +class NumerotationContext; +class QETProject; + +/** + @brief One place where a drawn cable line crosses a conductor. +*/ +struct CableCrossing +{ + Conductor *conductor = nullptr; + /// Scene coordinates of the crossing, where the slash is drawn + QPointF position; +}; + +/** + @brief The CableManager works out everything which follows from the + cables of a project, so nothing has to be maintained by hand. + + It detects which conductors a line about to be drawn crosses, and it + turns the cables back into the cable field of every conductor they + own -- both directions of one single rule: the cable is the only + source of truth. +*/ +class CableManager +{ + public: + ///How far a colour label may stand from where a line crosses + ///a wire for that wire to count as the one the label stands + ///on: one scene unit, and that is already generous. The grid + ///is there to put a label exactly on the crossing, and it + ///does: a label drawn on a wire, slid along its own line or + ///carried there by a paste lands on that crossing to the + ///last decimal. The single unit only soaks up the rounding + ///which comes of projecting a label onto its line, and a + ///terminal which is a hair off the grid. Anything beyond it + ///is beside the wire rather than on it, so a label one + ///whole grid step away -- however the grid is set -- gives + ///up its entry. One number for every place a label is given + ///to a wire: drawing one, dragging one and wiring a copy + ///must not disagree about it. + static constexpr qreal bind_tolerance = 1.0; + + //Drawing + static QList crossedConductors(Diagram *diagram, const QLineF &line); + static bool crossingOf(Diagram *diagram, + const QLineF &line, + Conductor *conductor, + QPointF *result); + static qreal distanceTo(Conductor *conductor, const QPointF &scene_pos); + + //Keeping the drawing in step with the cables + static void refreshLabels(QETProject *project); + static void claimConductor(QETProject *project, Conductor *conductor, Cable *new_owner); + + //Lookup + static Cable *cableByUuid(QETProject *project, const QUuid &uuid); + static Conductor *conductorByUuid(QETProject *project, const QUuid &uuid); + static QString nextDesignation(QETProject *project, Diagram *diagram); + /** + Work the number of a next cable out of a rule which is + @em not the project's own state but the one @p context + holds: the rule is read as it stands there and what it + hands out is the number, unless some cable already + stands under that number -- which is what happens while + a whole run of cables is numbered one after the other + before any of them has really been added. Then @p + context is stepped on and the rule is read once more. + + When the project numbers its cables by no rule at all, + @p context is not read and the plain letter W is handed + out instead: no numbers are invented where none have + been defined. + + A caller numbering a run of cables keeps the same @p + context for all of them, so each of them gets a number + of its own; a caller numbering one cable lets it go + again afterwards. The project's own rule is never + moved on here -- that belongs to the moment the cable + comes into being. + */ + static QString nextDesignation(QETProject *project, + Diagram *diagram, + NumerotationContext &context); +}; + +#endif // CABLEMANAGER_H diff --git a/sources/cable/cablepart.cpp b/sources/cable/cablepart.cpp new file mode 100644 index 000000000..ef1b7401d --- /dev/null +++ b/sources/cable/cablepart.cpp @@ -0,0 +1,3377 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablepart.h" + +#include "cable.h" +#include "cablemanager.h" +#include "cablepropertiesdialog.h" +#include "editcablecommand.h" +#include "../autoNum/assignvariables.h" +#include "../diagram.h" +#include "../properties/xrefproperties.h" +#include "../qetapp.h" +#include "../qetproject.h" +#include "../qetgraphicsitem/conductor.h" +#include "../utils/qetutils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +namespace { + + ///Half size of the slash drawn where a core crosses a conductor +const qreal slash_half = 3.5; + ///How far from a slash or its colour the mouse still counts as holding it +const qreal slash_grab = 6.0; + ///How far the colour of a core may stand from the wire it names: + ///close enough to read as one thing, far enough away that the tail of + ///a letter like "g" does not run into the wire. The text is turned by + ///a quarter, so that tail is its right hand side, which is the side + ///facing the wire. +const qreal core_label_side = 2.5; + ///How far above the line the colour of a core is written, so + ///the line passes beside the letters instead of through them +const qreal core_label_gap = 4.0; + ///Radius of the blue point drawn at each end of a picked line, and + ///how far from such a point the mouse still counts as holding it. + ///Ten across, which is the size QET's own handles use. +const qreal grip_radius = 5.0; +const qreal grip_grab = 6.0; + ///How far from the trunk line the mouse still counts as aiming at + ///it while a core waits to be put down there: the core follows the + ///line only while the mouse is near enough for the click to read as + ///belonging to it, and the slash itself is drawn on the line, at a + ///grid step, so what is shown is always what would be kept. +const qreal place_grab = 30.0; + +} // namespace + + ///The one line which waits for the click putting a core down, if any +QPointer CablePart::s_placing; + +/** + @brief CablePart::CablePart + @param data the section as the cable holds it + @param parent +*/ +CablePart::CablePart(const CablePartData &data, QGraphicsItem *parent) : + CablePart(parent) +{ + setLine(data.p1, data.p2); + m_part_uuid = data.uuid; + m_pending_cable = QUuid(); +} + +/** + @brief CablePart::CablePart + An empty part, waiting for its geometry: used while reading a project. + @param parent +*/ +CablePart::CablePart(QGraphicsItem *parent) : + QetGraphicsItem(parent) +{ + //ItemSendsGeometryChanges is what makes itemChange() hear about + //position changes at all -- without it Qt silently never calls + //it for a setPos(), and then this item is moved only in the + //screen's opinion: the line and its colour labels are drawn at + //the new place because the whole item is transformed, while + //m_p1/m_p2 and CableCore::position go on naming the old one. + //A paste would therefore wire its labels against the coordinates + //the line was copied from, and the next copy would write those + //stale coordinates into the clipboard -- which is exactly the + //paste landing away from the group it belongs to. + setFlags(ItemIsMovable | ItemIsSelectable | ItemSendsGeometryChanges); + setAcceptHoverEvents(true); + m_part_uuid = QUuid::createUuid(); +} + +CablePart::~CablePart() +{ +} + +/** + @brief CablePart::setCable + Bind this section to its cable. The item follows every change of the + cable, because the number and the type it draws live there. + @param cable +*/ +void CablePart::setCable(Cable *cable) +{ + if (m_cable == cable) { + return; + } + if (m_cable) { + disconnect(m_cable, nullptr, this, nullptr); + } + m_cable = cable; + m_pending_cable = QUuid(); + if (m_cable) + { + connect(m_cable, &Cable::changed, this, [this]() { + prepareGeometryChange(); + update(); + }); + } + setUpXrefHooks(); + prepareGeometryChange(); + update(); +} + +/** + @brief CablePart::cable + @return the cable this section belongs to, or nullptr +*/ +Cable *CablePart::cable() const +{ + return m_cable.data(); +} + +/** + @brief CablePart::partUuid + @return which section of the cable this item draws +*/ +QUuid CablePart::partUuid() const +{ + return m_part_uuid; +} + +/** + @brief CablePart::refreshPending + Bind the item to its cable once the whole project is read: a folio is + loaded before the cables it holds sections of, so at that moment the + cable is only known by its identity. +*/ +void CablePart::refreshPending() +{ + if (m_cable) return; + if (!diagram() || !diagram()->project()) return; + + if (Cable *cable = CableManager::cableByUuid(diagram()->project(), m_pending_cable)) { + setCable(cable); + } +} + +/** + @brief CablePart::setLine + Change where the trunk line runs. Purely optical: no core is added, + none is dropped, nothing is reassigned -- a cable keeps its cores + wherever its line happens to run. + @param p1 scene coordinates of one end + @param p2 scene coordinates of the other end +*/ +void CablePart::setLine(const QPointF &p1, const QPointF &p2) +{ + if (m_p1 == p1 && m_p2 == p2) return; + prepareGeometryChange(); + m_p1 = p1; + m_p2 = p2; + syncGeometry(); + update(); +} + +/** + @brief CablePart::line + @return the trunk line, in scene coordinates +*/ +QLineF CablePart::line() const +{ + return QLineF(m_p1, m_p2); +} + +/** + @brief CablePart::textFont + @return the font a text of the cable is written with when the cable + itself asks for none: what the preferences offer on the "Textes" + page, and -- until he has picked something there -- the font the + folio writes its own texts with, a shade smaller: the way every + cable has always been drawn, so that merely opening the + preferences changes nothing. +*/ +QFont CablePart::textFont() const +{ + return QETApp::cableTextsFont(); +} + +/** + @brief CablePart::coreFont + @return the font the colours of the cores are written with when the + cable itself asks for none -- all of them together, since the + colours of one cable are read as one and are never set apart. +*/ +QFont CablePart::coreFont() const +{ + return fontOf(QStringLiteral("cores")); +} + +/** + @brief CablePart::fontOf + @param key the name of a text of the cable: "designation", "type", + "installation", "location", "length" or "cores" + @return the font that text is really written with: the one this + cable asks for, or -- when it asks for none -- the one the + preferences offer +*/ +QFont CablePart::fontOf(const QString &key) const +{ + if (m_cable) + { + const CableTextFormat format = m_cable->properties().texts.value(key); + if (!format.font.isEmpty()) + { + QFont font; + if (QETUtils::fontFromString(font, format.font)) { + return font; + } + } + } + + //The reference to the other folios this cable runs on has a + //font of its own, set with the button next to its text under + //Cross-references -- he sets it there and not in the cable itself. + //When he has left that alone, the reference follows the texts + //of the cable like every other line of the label does. + if (key == QLatin1String("xref") && m_cable && diagram() && diagram()->project()) + { + const QString description = diagram()->project() + ->defaultXRefProperties(QStringLiteral("cable")).font(); + if (!description.isEmpty()) + { + QFont font; + if (QETUtils::fontFromString(font, description)) { + return font; + } + } + } + + return key == QLatin1String("cores") ? QETApp::cableCoreFont() : textFont(); +} + +/** + @brief CablePart::alignOf + How one text lines up at the left end of the trunk line. A cable + which says nothing about it follows the preferences, which is where + -- until he has said otherwise there either -- every text ends where + the line begins, the way it always did. + @param key the name of a text of the cable + @return Qt::AlignLeft, Qt::AlignHCenter or Qt::AlignRight +*/ +Qt::Alignment CablePart::alignOf(const QString &key) const +{ + int alignment = 0; + if (m_cable) { + alignment = m_cable->properties().texts.value(key).alignment; + } + if (!alignment) { + return QETApp::cableTextAlignment(); + } + switch (alignment) + { + case int(Qt::AlignLeft): return Qt::AlignLeft; + case int(Qt::AlignHCenter): return Qt::AlignHCenter; + case int(Qt::AlignRight): return Qt::AlignRight; + default: return Qt::AlignRight; + } +} + +/** + @brief CablePart::textOffset + @return how far the whole label at the left of the line stands from + where it has always stood: what the form offers as "Position du + texte", and zero for a cable which has never been nudged -- which + is where every cable starts, so that merely opening a project + moves nothing. +*/ +QPointF CablePart::textOffset() const +{ + return m_cable ? m_cable->properties().text_offset : QPointF(); +} + +/** + @brief CablePart::coreOffset + @return how far the row of colours stands from the slashes it names: + the same kind of nudge, kept apart from the label's because the two + are set apart in the form and are moved one without the other. +*/ +QPointF CablePart::coreOffset() const +{ + return m_cable ? m_cable->properties().core_offset : QPointF(); +} + +/** + @brief CablePart::textLeft + Where a text of this width starts, at the left end of the trunk + line -- the same place for every text, so that a cable whose + fields are set apart still reads as one label rather than as five. + @param key the name of a text of the cable + @param width how wide that text is, in scene units + @return the x of the left of the text, in scene coordinates +*/ +qreal CablePart::textLeft(const QString &key, qreal width) const +{ + const qreal line_left = qMin(m_p1.x(), m_p2.x()); + if (alignOf(key) == Qt::AlignLeft) { + return line_left + 6.0; + } + if (alignOf(key) == Qt::AlignHCenter) { + return line_left - width * 0.5; + } + return line_left - 6.0 - width; +} + +/** + @brief CablePart::trunkIsHorizontal + @return true when the trunk line runs along the sheet rather than up + and down it: which way it runs is what tells the label where it may + sit, and where the colour of a core may be written. +*/ +bool CablePart::trunkIsHorizontal() const +{ + return qAbs(m_p2.y() - m_p1.y()) <= qAbs(m_p2.x() - m_p1.x()); +} + +/** + @brief CablePart::labelLines + @return what of the cable the label at the left of the trunk line + writes, in the order the lines are stacked: where the cable runs + first, then what it is called. Every field the user switched off, + and every field he left empty, is left out. + + Neither the type of the cable, nor its length, nor the references to + the other folios this cable runs on is among them: all three are + written under the line rather than over it -- the type first, the + length under it and the references at the very bottom -- so what is + above the line stays the description of where the cable belongs and + nothing else. See refLines() for those underneath. + + Each line comes with the rectangle it is written in, worked out with + its own font and its own way of lining up: those lines may differ + from each other as much as he likes, and they are stacked one + under the other by their own height rather than by one common size. +*/ +QList CablePart::labelLines() const +{ + if (!m_cable) return QList(); + + const CableProperties properties = m_cable->properties(); + QList lines; + const auto write = [this, &lines](const QString &text, const QString &key) + { + if (text.isEmpty()) return; + LabelLine line; + line.text = text; + line.key = key; + line.font = fontOf(key); + line.align = alignOf(key); + const QFontMetricsF metrics(line.font); + line.width = metrics.horizontalAdvance(text); + line.height = metrics.height(); + lines.append(line); + }; + + if (properties.show_installation) { + write(properties.installation, QStringLiteral("installation")); + } + if (properties.show_location) { + write(properties.location, QStringLiteral("location")); + } + if (properties.show_designation) { + write(properties.designation, QStringLiteral("designation")); + } + if (lines.isEmpty()) return lines; + + qreal total_height = 0.0; + for (const LabelLine &line : lines) { + total_height += line.height; + } + const qreal top = trunkIsHorizontal() + ? (qMin(m_p1.y(), m_p2.y()) - 2.0 - total_height) + : qMin(m_p1.y(), m_p2.y()); + + qreal y = top; + for (LabelLine &line : lines) + { + line.rect = QRectF(textLeft(line.key, line.width), y, + line.width, line.height); + y += line.height; + } + + //Where the label as a whole has been nudged to: every line of it + //goes with the rest, so those three lines keep reading as one + //label rather than as three which have drifted apart. + const QPointF nudge = textOffset(); + if (!nudge.isNull()) + { + for (LabelLine &line : lines) { + line.rect.translate(nudge); + } + } + return lines; +} + +/** + @brief CablePart::refLines + @return one line per other folio this cable runs on, stacked under + the length of the cable -- under the type when the length is not + drawn, straight under the trunk line when neither is. + + That is the bottom of everything the cable says about itself: above + the line stands where it belongs, under the line what it is and how + long it runs, and last comes where it goes on. Each line names the + section standing there, and each of them is the line he double + clicks to be taken to it. + + Every entry comes in the order crossRefs() lists them, so the index + of a line here is the index of that reference there. +*/ +QList CablePart::refLines() const +{ + if (!m_cable) return QList(); + + QList lines; + for (const CrossRef &ref : crossRefs()) + { + if (ref.text.isEmpty()) continue; + LabelLine line; + line.text = ref.text; + line.key = QStringLiteral("xref"); + line.font = fontOf(line.key); + line.align = alignOf(line.key); + const QFontMetricsF metrics(line.font); + line.width = metrics.horizontalAdvance(line.text); + line.height = metrics.height(); + lines.append(line); + } + if (lines.isEmpty()) return lines; + + //The same stack as typeRect() and lengthRect() build, only + //continued: what those two write between themselves decides how + //far down the references start, so no two of them can overlap + //whatever fonts he has chosen for them. + qreal y = underTop(); + if (!typeText().isEmpty()) { + y += QFontMetricsF(fontOf(QStringLiteral("type"))).height(); + } + if (!lengthText().isEmpty()) { + y += QFontMetricsF(fontOf(QStringLiteral("length"))).height(); + } + + for (LabelLine &line : lines) + { + line.rect = QRectF(textLeft(line.key, line.width), y, + line.width, line.height); + y += line.height; + } + + const QPointF nudge = textOffset(); + if (!nudge.isNull()) + { + for (LabelLine &line : lines) { + line.rect.translate(nudge); + } + } + return lines; +} + +/** + @brief CablePart::crossRefs + @return every other folio this cable runs on, one entry each, in the + order the folios turn -- empty when the cable runs on this folio + alone, which is what a cable normally does. + + The reference needs no data of its own: a cable standing on two + folios is one cable drawn as several lines, so every one of those + lines knows its siblings and they all get the same list, whichever + way they were put together -- a line drawn onto a cable which was + already there, or a cable drawn first and joined later. +*/ +QList CablePart::crossRefs() const +{ + QList refs; + if (!m_cable || !diagram() || !diagram()->project()) return refs; + + QETProject *project = diagram()->project(); + + //Which section stands on which other folio. The first section of + //a folio is the one %l and %c name, when the format asks for + //them: it is the line he has to look for over there. + QHash elsewhere; + const QList parts = m_cable->parts(); + for (const CablePartData &part : parts) + { + Diagram *other = project->diagramByUuid(part.diagram); + if (!other || other == diagram()) continue; + if (!elsewhere.contains(other)) { + elsewhere.insert(other, part); + } + } + if (elsewhere.isEmpty()) return refs; + + //The format this project asks for such a reference, chosen under + //Cross-references for the type "Cable": one text per folio, written + //out with that folio's own numbers and fields. + const XRefProperties xref = project->defaultXRefProperties(QStringLiteral("cable")); + const QString format = xref.masterLabel(); + if (format.isEmpty()) return refs; + + //The folios are walked over in the order they turn, so the lines + //read the way the pages do. + const QList folios = project->diagrams(); + for (Diagram *other : folios) + { + if (!elsewhere.contains(other)) continue; + + autonum::FormulaContext context; + const BorderTitleBlock &border = other->border_and_titleblock; + context.folio = border.folio(); + context.folio_index = other->folioIndex(); + context.folio_total = border.folioTotal(); + context.plant = border.plant(); + context.locmach = border.locmach(); + context.title_block_fields = border.additionalFields(); + context.project_properties = project->projectProperties(); + const CablePartData part = elsewhere.value(other); + context.has_element = true; + context.element_position = other->convertPosition((part.p1 + part.p2) * 0.5); + + //A fresh set of numbers for every line: two references of + //the same cable must not count one after the other. + autonum::sequentialNumbers seq; + CrossRef ref; + ref.diagram = other; + ref.part = part.uuid; + ref.text = autonum::AssignVariables::formulaToLabel(format, seq, context); + if (ref.text.isEmpty()) continue; + refs.append(ref); + } + return refs; +} + +/** + @brief CablePart::crossRefAt + @param scene_pos a point of the sheet, in scene coordinates + @return the index of the reference standing at that very place, -1 + when none does -- measured on the lines which are really drawn, so + the hand of the mouse, the double click and the drawing can never + disagree about which line is which. +*/ +int CablePart::crossRefAt(const QPointF &scene_pos) const +{ + int index = 0; + for (const LabelLine &line : refLines()) + { + if (line.rect.contains(scene_pos)) return index; + ++index; + } + return -1; +} + +/** + @brief CablePart::goToCrossRef + Send the mouse to the section of the cable which stands on the folio + the reference at that place points at, the way a cross reference of + an element does: the folio is shown and the line is picked. + @param scene_pos a point of the sheet, in scene coordinates + @return true when the click stood on a reference +*/ +bool CablePart::goToCrossRef(const QPointF &scene_pos) +{ + const int index = crossRefAt(scene_pos); + if (index < 0) return false; + + const QList refs = crossRefs(); + if (index >= refs.size()) return false; + + const CrossRef ref = refs.at(index); + if (!ref.diagram) return false; + + const QList items = ref.diagram->items(); + for (QGraphicsItem *item : items) + { + auto *section = qgraphicsitem_cast(item); + if (section && section->partUuid() == ref.part) { + QetGraphicsItem::showItem(section); + return true; + } + } + return false; +} + +/** + @brief CablePart::pdfRefs + Where the PDF export has to put a clickable link for every reference + this section writes: the rectangle of the text on this folio, and on + the folio it points at the rectangle of the section it names -- the + very section a double click on the drawing sends him to (see + goToCrossRef), so that the export and the drawing can never disagree + about where the link leads. + + One entry per reference drawn, in the order it is drawn, so that the + export and the drawing count the same way (see crossRefAt). + @return those entries, empty when this cable runs on this folio alone +*/ +QList CablePart::pdfRefs() const +{ + QList out; + if (!m_cable) return out; + + const QList lines = refLines(); + const QList refs = crossRefs(); + const int count = qMin(lines.size(), refs.size()); + + for (int i = 0; i < count; ++i) + { + const CrossRef &ref = refs.at(i); + if (!ref.diagram || lines.at(i).rect.isEmpty()) continue; + + PdfRef link; + link.diagram = ref.diagram; + link.here = lines.at(i).rect; + + //The section standing over there, which is what the reader + //has to be brought to. It is looked for the same way a click + //on the drawing looks for it, so link and click agree. + const QList items = ref.diagram->items(); + for (QGraphicsItem *item : items) + { + auto *section = qgraphicsitem_cast(item); + if (section && section->partUuid() == ref.part) { + link.there = section->mapRectToScene(section->boundingRect()); + break; + } + } + out.append(link); + } + return out; +} + +/** + @brief CablePart::setUpXrefHooks + Keep the reference lines up to date with what the project does: a + folio which is added, removed or moved changes which lines there are + and what they say, and so does the format chosen under Cross-references. + + Only this line is redrawn, which is enough: the references of a + cable are worked out again from the cable itself every time its + label is drawn. +*/ +void CablePart::setUpXrefHooks() +{ + for (const QMetaObject::Connection &connection : std::as_const(m_xref_connections)) { + disconnect(connection); + } + m_xref_connections.clear(); + + Diagram *folio = diagram(); + if (!m_cable || !folio || !folio->project()) return; + + QETProject *project = folio->project(); + const auto rebuild = [this]() { + prepareGeometryChange(); + setUpXrefHooks(); + update(); + }; + + m_xref_connections << connect(project, &QETProject::projectDiagramsOrderChanged, this, rebuild); + m_xref_connections << connect(project, &QETProject::diagramAdded, this, rebuild); + m_xref_connections << connect(project, &QETProject::diagramRemoved, this, rebuild); + m_xref_connections << connect(project, &QETProject::XRefPropertiesChanged, this, rebuild); + + //%F names the other folio by its label, which is read off that + //folio itself: only when the format really asks for it does that + //folio have to be listened to as well. + const XRefProperties xref = project->defaultXRefProperties(QStringLiteral("cable")); + if (xref.masterLabel().contains(QLatin1String("%F"))) + { + for (Diagram *other : project->diagrams()) { + m_xref_connections << connect(other, &Diagram::diagramInformationChanged, this, rebuild); + } + } +} + +/** + @brief CablePart::typeText + @return the type of the cable, an empty string when the drawing is + not meant to show it or the cable says nothing about it +*/ +QString CablePart::typeText() const +{ + if (!m_cable) return QString(); + + const CableProperties properties = m_cable->properties(); + if (!properties.show_type || properties.type.isEmpty()) { + return QString(); + } + return properties.type; +} + +/** + @brief CablePart::lengthText + @return how long the cable is, an empty string when the drawing is + not meant to show it or the cable says nothing about it +*/ +QString CablePart::lengthText() const +{ + if (!m_cable) return QString(); + + const CableProperties properties = m_cable->properties(); + if (!properties.show_length || properties.length.isEmpty()) { + return QString(); + } + return properties.length; +} + +/** + @brief CablePart::labelRect + The rectangle holding the label of the cable, drawn at the left of + the trunk line -- in scene coordinates, like the line itself, so the + item never has to be moved for its text to follow. + + Across a horizontal line the whole label stands above the line: text + straddling the line is what the eyes have to fight with. The type + and the length of the cable stand under the line, one under the + other, and are therefore not measured here. + @return an empty rectangle when the cable says nothing to show +*/ +QRectF CablePart::labelRect() const +{ + QRectF rect; + for (const LabelLine &line : labelLines()) + { + rect = rect.isEmpty() ? line.rect : rect.united(line.rect); + } + return rect; +} + +/** + @brief CablePart::underTop + Where the first line written under the trunk line starts. + + Across a horizontal line that is just under the line itself; along a + line which runs up and down the sheet "under" has no meaning, so it + is just under the rest of the label instead -- which keeps those + lines at the left of the line either way. + @return the y of the top of that first line, in scene coordinates +*/ +qreal CablePart::underTop() const +{ + if (trunkIsHorizontal()) { + return qMax(m_p1.y(), m_p2.y()) + 2.0; + } + + const QRectF label = labelRect(); + //labelRect() already carries the nudge of the label, and the + //lines under it are nudged once more further down: what is asked + //for here is where they would stand without it, so that they go + //with the label exactly once rather than twice. + return label.isEmpty() ? qMin(m_p1.y(), m_p2.y()) + : label.bottom() + 2.0 - textOffset().y(); +} + +/** + @brief CablePart::typeRect + The rectangle the type of the cable is written in. It sits under the + trunk line rather than with the rest of the label, so the type reads + as what the line carries while everything above the line says where + the cable belongs -- and it is the first of the lines written under + the line, so the length can stand under it. + @return an empty rectangle when the type is not drawn +*/ +QRectF CablePart::typeRect() const +{ + const QString type = typeText(); + if (type.isEmpty()) { + return QRectF(); + } + + const QFontMetricsF metrics(fontOf(QStringLiteral("type"))); + const qreal width = metrics.horizontalAdvance(type); + const qreal height = metrics.height(); + + return QRectF(textLeft(QStringLiteral("type"), width), underTop(), + width, height).translated(textOffset()); +} + +/** + @brief CablePart::lengthRect + The rectangle the length of the cable is written in. It stands under + the type of the cable, which itself stands straight under the trunk + line: the type is what the cable is, the length is one more thing + said about it. Where the type is not drawn, the length takes its + place and sits straight under the line. + @return an empty rectangle when the length is not drawn +*/ +QRectF CablePart::lengthRect() const +{ + const QString length = lengthText(); + if (length.isEmpty()) { + return QRectF(); + } + + const QFontMetricsF metrics(fontOf(QStringLiteral("length"))); + const qreal width = metrics.horizontalAdvance(length); + const qreal height = metrics.height(); + + //The type may well be written in another font than this, so how + //far down the length hangs has to be measured from the type and + //not from itself. + qreal top = underTop(); + if (!typeText().isEmpty()) { + top += QFontMetricsF(fontOf(QStringLiteral("type"))).height(); + } + + return QRectF(textLeft(QStringLiteral("length"), width), top, + width, height).translated(textOffset()); +} + +/** + @brief CablePart::boundingRect +*/ +QRectF CablePart::boundingRect() const +{ + QRectF rect(QPointF(qMin(m_p1.x(), m_p2.x()), qMin(m_p1.y(), m_p2.y())), + QPointF(qMax(m_p1.x(), m_p2.x()), qMax(m_p1.y(), m_p2.y()))); + rect.adjust(-14.0, -14.0, 14.0, 14.0); + + const QRectF label = labelRect(); + if (!label.isEmpty()) { + rect = rect.united(label); + } + const QRectF type = typeRect(); + if (!type.isEmpty()) { + rect = rect.united(type); + } + const QRectF length = lengthRect(); + if (!length.isEmpty()) { + rect = rect.united(length); + } + for (const LabelLine &line : refLines()) { + rect = rect.united(line.rect); + } + + if (m_cable) + { + for (const CableCore &core : m_cable->usedCores()) + { + if (core.part != m_part_uuid || !coreDrawn(core)) continue; + const QPointF at = (core.core == m_dragged_core) ? m_drag_scene : coreDrawPosition(core); + rect = rect.united(coreLabelRect(at, m_cable->colorOfCore(core.core)) + .adjusted(-3.0, -3.0, 3.0, 3.0)); + } + //The core which is only waiting to be put down is drawn + //too, so its colour has to be inside what is repainted -- + //right from the moment he asks for it, whether the mouse + //already stands at the line or still has to come there + if (m_pending_core >= 0) + { + rect = rect.united(coreLabelRect(m_drag_scene, + m_cable->colorOfCore(m_pending_core)) + .adjusted(-3.0, -3.0, 3.0, 3.0)); + } + } + return rect; +} + +/** + @brief CablePart::coreLabelPivot + The point the colour of a core is written around before being turned + by a quarter: at the left of its slash -- or rather close enough to + the wire that it reads as one thing with it -- and lifted, so its + lower end stops just above the line instead of being cut through by + it. + + Being turned by a quarter, the tail of a letter like "g" points to + the right, which is the side facing the wire: that is what the small + distance kept here has to clear. + @param at where the slash stands, in scene coordinates + @param color the colour being written, e.g. "br" + @return the centre of the text, in scene coordinates -- nudged by + whatever the form offers as "Position des couleurs", which moves the + colours and never the slash: the slash marks where the wire starts, + and that is not for a distance to decide. +*/ +QPointF CablePart::coreLabelPivot(const QPointF &at, const QString &color) const +{ + const QFontMetricsF metrics(coreFont()); + const qreal length = metrics.horizontalAdvance(color); + const qreal thickness = metrics.height(); + + return QPointF(at.x() - core_label_side - thickness * 0.5, + at.y() - core_label_gap - length * 0.5) + coreOffset(); +} + +/** + @brief CablePart::coreLabelRect + The rectangle the colour of a core is written in: the text stands at + the left of its slash and is turned by a quarter, so it runs along + the line instead of across it. + @param at where the slash stands, in scene coordinates + @param color the colour being written, e.g. "br" + @return the rectangle in scene coordinates, empty when there is + nothing to write +*/ +QRectF CablePart::coreLabelRect(const QPointF &at, const QString &color) const +{ + if (color.isEmpty()) return QRectF(); + + const QFontMetricsF metrics(coreFont()); + const qreal width = metrics.horizontalAdvance(color); + const qreal height = metrics.height(); + + //The text is drawn around this point and then turned by -90°, so + //its screen rectangle is height wide and text length tall. + const QPointF pivot = coreLabelPivot(at, color); + return QRectF(pivot.x() - height * 0.5, pivot.y() - width * 0.5, height, width); +} + +/** + @brief CablePart::coreDrawPosition + Where a stored core is drawn right now. While the trunk line is + being dragged the label stands where it stood, carried along by + however far the line has come: the line, the description at its left + and the colours of its cores are one thing and move as one thing, + so no label ever jumps, ever lands on a neighbour's wire or ever + disappears -- and letting go of the line needs no correction. + @param core the stored core + @return where it is drawn at this moment +*/ +QPointF CablePart::coreDrawPosition(const CableCore &core) const +{ + if (m_line_moved) + { + for (const CableCore &dragged : std::as_const(m_line_drag_cores)) + { + if (dragged.core == core.core && dragged.part == core.part) { + return dragged.position; + } + } + } + return core.position; +} + +/** + @brief CablePart::coreDrawn + Says whether a core is drawn at all. While the line is dragged, the + labels are drawn as they stand during that drag -- which is every + one of them: carrying the line along never leaves any of them out. + @param core the stored core + @return true when there is something to draw +*/ +bool CablePart::coreDrawn(const CableCore &core) const +{ + if (!m_line_moved) return true; + + for (const CableCore &dragged : std::as_const(m_line_drag_cores)) + { + if (dragged.core == core.core && dragged.part == core.part) { + return true; + } + } + return false; +} + +/** + @brief CablePart::dragPosition + Where the label of a core being dragged is drawn: still exactly + where it stood, taken along by however far the mouse has come since + it was picked up -- and only by whole grid steps, counted from the + place it stood, the same as anything else drawn on the sheet moves. + + So picking a label up never shifts it by a hair, even when the + mouse closes on it a little to one side, and letting go can never + take it back: what is drawn while he drags is exactly what is kept + when he lets go. A pull shorter than half a grid step moves nothing + at all, which is how every other item on the folio behaves. + + The label follows the line and nothing else: pulling it upwards, + downwards, sideways or diagonally slides it along its own line, + never takes it off it, and never past either end of it -- a colour + label belongs to the line it is written on. Holding Ctrl lets go of + the grid steps, as everywhere else on the sheet. + @param scene_pos where the mouse stands, in scene coordinates + @return where the label is drawn at this moment +*/ +QPointF CablePart::dragPosition(const QPointF &scene_pos) const +{ + //Where it was picked up: still the place the cable says it + //stands, since nothing is written while he drags. + QPointF anchor = m_drag_scene; + if (m_cable && m_dragged_core >= 0) { + const CableCore held = m_cable->core(m_dragged_core); + if (held.core == m_dragged_core) anchor = held.position; + } + + const QPointF axis = m_p2 - m_p1; + const qreal length_squared = axis.x() * axis.x() + axis.y() * axis.y(); + if (qFuzzyIsNull(length_squared)) return anchor; + + const qreal length = std::sqrt(length_squared); + const QPointF shift = scene_pos - m_press_scene; + const qreal along = (shift.x() * axis.x() + shift.y() * axis.y()) / length; + + const qreal stepped = stepAlong(along); + + const QPointF carried = anchor + (axis / length) * stepped; + + //And no further than the line itself: a colour label belongs to + //the line it is written on and stops at either end of it, so it + //goes on standing over a place the line really runs across and + //an entry can always follow it. Where it was picked up lay on + //the line, so this never moves a label which behaves -- it only + //stops one being pulled past the end. + const qreal share = ((carried.x() - m_p1.x()) * axis.x() + + (carried.y() - m_p1.y()) * axis.y()) + / length_squared; + if (share <= 0.0) return m_p1; + if (share >= 1.0) return m_p2; + return m_p1 + axis * share; +} + +/** + @brief CablePart::stepAlong + Snap a distance measured along the line to a grid step, in the + coordinates of the sheet: a horizontal line steps along x, a + vertical one along y, and holding Ctrl lets go of the grid the same + way Diagram::snapToGrid does everywhere else on the sheet. + @param along how far from the first end of the line, in scene units + @return that distance at a grid step +*/ +qreal CablePart::stepAlong(qreal along) const +{ + const QPointF probe = trunkIsHorizontal() ? QPointF(along, 0.0) + : QPointF(0.0, along); + const QPointF stepped_probe = Diagram::snapToGrid(probe); + return trunkIsHorizontal() ? stepped_probe.x() + : stepped_probe.y(); +} + +/** + @brief CablePart::placePosition + Where the mouse would put down a core which is waiting to be put + down: the mouse itself projected onto the line, snapped to a grid + step and stopped at either end of the line, so what the drawing + shows while he aims is exactly what the click leaves behind. + + Unlike dragPosition this asks where the mouse *is* rather than how + far it has come, since nothing is held yet to measure that from. + @param scene_pos where the mouse stands, in scene coordinates + @return where the slash would be drawn +*/ +QPointF CablePart::placePosition(const QPointF &scene_pos) const +{ + const QPointF axis = m_p2 - m_p1; + const qreal length_squared = axis.x() * axis.x() + axis.y() * axis.y(); + if (qFuzzyIsNull(length_squared)) return m_p1; + + const qreal length = std::sqrt(length_squared); + const QPointF shift = scene_pos - m_p1; + const qreal along = (shift.x() * axis.x() + shift.y() * axis.y()) / length; + + //At a grid step like anything else drawn, and never beyond + //either end: a colour label belongs to the line it is written + //on and stops where the line stops. + const qreal stepped = qBound(0.0, stepAlong(along), length); + return m_p1 + (axis / length) * stepped; +} + +/** + @brief CablePart::shape + Only the trunk line, its text and its slashes are clickable, not the + whole rectangle around them: a cable drawn across a dense folio must + not steal the clicks meant for what it passes over. +*/ +QPainterPath CablePart::shape() const +{ + QPainterPath trunk; + trunk.moveTo(m_p1); + trunk.lineTo(m_p2); + + QPainterPathStroker stroker; + stroker.setWidth(10.0); + stroker.setCapStyle(Qt::FlatCap); + + QPainterPath result = stroker.createStroke(trunk); + + const QRectF label = labelRect(); + if (!label.isEmpty()) { + result.addRect(label); + } + const QRectF type = typeRect(); + if (!type.isEmpty()) { + result.addRect(type); + } + const QRectF length = lengthRect(); + if (!length.isEmpty()) { + result.addRect(length); + } + //The references to the other folios stand under those and are + //clicked the same way. + for (const LabelLine &line : refLines()) { + result.addRect(line.rect); + } + + if (m_cable) + { + for (const CableCore &core : m_cable->usedCores()) + { + if (core.part != m_part_uuid || !coreDrawn(core)) continue; + const QPointF at = (core.core == m_dragged_core) ? m_drag_scene : coreDrawPosition(core); + //The colour beside the slash is held by the same grab as + //the slash: it is read far more often than it is moved, + //and clicking the letters has to do what clicking the + //slash does. The label stands to the left of the slash, + //so the grab reaches that way rather than the other. + result.addRect(QRectF(at - QPointF(18.0, slash_grab), + QSizeF(24.0, slash_grab * 2.0))); + const QRectF text = coreLabelRect(at, m_cable->colorOfCore(core.core)); + if (!text.isEmpty()) { + result.addRect(text.adjusted(-3.0, -3.0, 3.0, 3.0)); + } + } + } + + //While the line is picked, its two end points are part of what + //may be clicked: they reach out over the one unit of stroke the + //trunk itself is, and a finger aiming at a blue point never + //lands that exactly. + if (isSelected()) + { + result.addEllipse(m_p1, grip_grab, grip_grab); + result.addEllipse(m_p2, grip_grab, grip_grab); + } + return result; +} + +/** + @brief CablePart::labelAt + Whether the colour label of that core is standing at that point: + either its slash, or the text beside it, both of which read as one + thing with the wire the core names. + + One core at a time, so that the test can never be answered by a + neighbour standing closer to the point -- dropping one colour + straight onto another has to be seen as exactly that. + @param core which core is being asked about + @param local a point of this item, scene coordinates + @return true when the point is on that label +*/ +bool CablePart::labelAt(int core, const QPointF &local) const +{ + if (!m_cable) return false; + + const CableCore at_core = m_cable->core(core); + if (at_core.core != core || at_core.part != m_part_uuid || !coreDrawn(at_core)) { + return false; + } + + const QPointF at = coreDrawPosition(at_core); + if (QLineF(at, local).length() <= slash_grab) return true; + + const QRectF text = coreLabelRect(at, m_cable->colorOfCore(core)); + return !text.isEmpty() && text.adjusted(-3.0, -3.0, 3.0, 3.0).contains(local); +} + +/** + @brief CablePart::coreAt + @param local a point of this item, scene coordinates + @return the core whose slash or colour stands there, -1 when none does +*/ +int CablePart::coreAt(const QPointF &local) const +{ + if (!m_cable) return -1; + + for (const CableCore &core : m_cable->usedCores()) + { + if (core.part != m_part_uuid || !coreDrawn(core)) continue; + if (core.core != m_dragged_core) + { + if (labelAt(core.core, local)) return core.core; + continue; + } + + //The one being dragged is drawn where the mouse holds it + //right now, not where the cable still says it stands + const QPointF at = m_drag_scene; + if (QLineF(at, local).length() <= slash_grab) { + return core.core; + } + const QRectF text = coreLabelRect(at, m_cable->colorOfCore(core.core)); + if (!text.isEmpty() && text.adjusted(-3.0, -3.0, 3.0, 3.0).contains(local)) { + return core.core; + } + } + return -1; +} + +/** + @brief CablePart::drawLabel + @param painter +*/ +void CablePart::drawLabel(QPainter *painter, const QColor &ink) const +{ + if (!m_cable) return; + + const QList lines = labelLines(); + const QRectF type_rect = typeRect(); + const QRectF length_rect = lengthRect(); + const QList ref_lines = refLines(); + if (lines.isEmpty() && type_rect.isEmpty() && length_rect.isEmpty() + && ref_lines.isEmpty()) return; + + painter->save(); + painter->setPen(ink); + + //Every line brings the font it is written with: they are not + //measured with the same yard, so they may not be written with + //one either. + for (const LabelLine &line : lines) + { + painter->setFont(line.font); + painter->drawText(line.rect, line.align | Qt::AlignVCenter, line.text); + } + if (!type_rect.isEmpty()) { + painter->setFont(fontOf(QStringLiteral("type"))); + painter->drawText(type_rect, alignOf(QStringLiteral("type")) | Qt::AlignVCenter, + typeText()); + } + if (!length_rect.isEmpty()) { + painter->setFont(fontOf(QStringLiteral("length"))); + painter->drawText(length_rect, alignOf(QStringLiteral("length")) | Qt::AlignVCenter, + lengthText()); + } + //Last of all, at the very bottom: which other folios this cable + //runs on, one line each. + for (const LabelLine &line : ref_lines) + { + painter->setFont(line.font); + painter->drawText(line.rect, line.align | Qt::AlignVCenter, line.text); + } + painter->restore(); +} + +/** + @brief CablePart::drawCores + One slash per core the cable really wires, with the colour of that + core beside it -- the same colour which is written into the cable + field of the conductor underneath. Plus, while a core is waiting to + be put down, a paler copy of the very same marks wherever the mouse + stands near the line. + @param painter +*/ +void CablePart::drawCores(QPainter *painter, const QColor &ink) const +{ + if (!m_cable) return; + + for (const CableCore &core : m_cable->usedCores()) + { + if (core.part != m_part_uuid || !coreDrawn(core)) continue; + + const bool dragged = (core.core == m_dragged_core); + const QPointF at = dragged ? m_drag_scene : coreDrawPosition(core); + + drawCoreMark(painter, ink, at, m_cable->colorOfCore(core.core)); + } + + //A core which is waiting to be put down shows where it would + //land: the same slash and the same colour as any other, only + //paler, since nothing of it is written yet. It shows as soon as + //he asks for the core, and not only once the mouse has come + //near enough -- he picks it out of a list, and the line may well + //be across the screen from where that list stands. + if (m_pending_core >= 0) + { + painter->save(); + painter->setOpacity(painter->opacity() * 0.6); + drawCoreMark(painter, ink, m_drag_scene, + m_cable->colorOfCore(m_pending_core)); + painter->restore(); + } +} + +/** + @brief CablePart::drawCoreMark + One slash, with the colour of the core it marks written beside it: + the colour stands at the left of its slash and is turned by a + quarter, the way a measurement is written along the line it belongs + to. The same drawing serves a core which is already on the sheet and + one which is only being aimed at. + @param painter + @param ink the colour everything of this line is drawn with + @param at where the slash stands, in scene coordinates + @param color the colour of that core, e.g. "br" +*/ +void CablePart::drawCoreMark(QPainter *painter, const QColor &ink, + const QPointF &at, const QString &color) const +{ + const QFont core_font = coreFont(); + const QFontMetricsF metrics(core_font); + + painter->save(); + painter->setFont(core_font); + painter->setPen(QPen(ink, 1.0)); + painter->drawLine(QPointF(at.x() - slash_half, at.y() + slash_half), + QPointF(at.x() + slash_half, at.y() - slash_half)); + + if (!color.isEmpty()) + { + const qreal width = metrics.horizontalAdvance(color); + const qreal height = metrics.height(); + const QPointF pivot = coreLabelPivot(at, color); + + painter->save(); + painter->translate(pivot); + painter->rotate(-90.0); + painter->drawText(QRectF(-width * 0.5, -height * 0.5, width, height), + Qt::AlignCenter, color); + painter->restore(); + } + painter->restore(); +} + +/** + @brief CablePart::paint + @param painter + @param option + @param widget +*/ +void CablePart::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + Q_UNUSED(option) + Q_UNUSED(widget) + + painter->setRenderHint(QPainter::Antialiasing, true); + painter->setFont(textFont()); + + // The folio is painted into a buffer whose lightness is inverted to the + // palette afterwards (PaletteGraphicsView): what is black in the buffer + // comes out as the Text color, what is white comes out as the sheet. + // The palette of the option, on the other hand, is the palette of the + // view's widgets, so it names colors which are already final and land + // on the sheet color -- an ink taken from it vanishes. Conductors are + // drawn the same way: black when they stand, red when they are picked. + const QColor ink = isSelected() ? Qt::red : Qt::black; + + //One unit, like every other line of the drawing: a cable trunk is + //a line, not a highlight, and it has to line up with the wires it + //runs across rather than stand out over them. + QPen pen(ink, 1.0); + pen.setCapStyle(Qt::FlatCap); + pen.setJoinStyle(Qt::MiterJoin); + painter->setPen(pen); + painter->drawLine(m_p1, m_p2); + + drawLabel(painter, ink); + + drawCores(painter, ink); + + //The two points every line of the drawing shows once it is + //picked: one at each end, in the same blue QET's own handles + //use. Pulling one of them changes how long the line is, the + //same way an end of a conductor is pulled (mousePressEvent + //and mouseMoveEvent). They belong to the line and are painted + //by it, so nothing else has to be put into the folio for them. + if (isSelected()) + { + painter->save(); + painter->setPen(Qt::NoPen); + painter->setBrush(Qt::blue); + painter->drawEllipse(m_p1, grip_radius, grip_radius); + painter->drawEllipse(m_p2, grip_radius, grip_radius); + painter->restore(); + } +} + +/** + @brief CablePart::name + @return the cable number, so the cable shows under its own name in + every list which names items +*/ +QString CablePart::name() const +{ + return m_cable ? m_cable->designation() : QString(); +} + +/** + @brief CablePart::syncGeometry + Tell the cable where this section runs. The cable is the one place + the drawing is read back from, so nothing has to be collected from + the folios at saving time. +*/ +void CablePart::syncGeometry() +{ + if (!m_cable) return; + m_cable->setPartGeometry(m_part_uuid, m_p1, m_p2); +} + +/** + @brief CablePart::mousePressEvent + While a core waits to be put down, the click belongs to that: on the + line -- or near enough for the mouse to be pointing at it -- the core + is left standing there, right click calls it off, and a click anywhere + else calls it off as well and goes on doing what it does for everybody + (left clicking on a slash or on its colour holds that core, on one of + the two blue points at the ends it holds that end, anywhere else on + the line it moves the line). + + Otherwise: left clicking on a slash or on its colour holds that core: + it can be dragged onto another conductor to give it that conductor. + + On one of the two blue points at the ends of a picked line it holds + that end instead, so the line can be made longer or shorter the same + way an end of a conductor is pulled (mouseMoveEvent). + + Left clicking anywhere else on the line moves the line. + @param event +*/ +void CablePart::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + //A core which waits to be put down takes the whole click: on + //the line it is left standing there, anywhere else -- and on + //the right button, which cancels everywhere on the sheet -- + //nothing is put down. The click itself goes on doing whatever + //it does for everybody else. + if (m_pending_core >= 0) + { + if (!m_cable) + { + cancelPlacement(); + event->ignore(); + return; + } + //Where he aims is read off the click itself as well, so a + //dialog closing with the mouse already over the line needs + //no move first and a stale position is never taken for a + //place he never pointed at. + m_drag_scene = placePosition(event->scenePos()); + m_pending_valid = QLineF(event->scenePos(), m_drag_scene).length() + <= place_grab; + + if (event->button() == Qt::LeftButton && m_pending_valid) + { + const int core = m_pending_core; + const QPointF at = m_drag_scene; + cancelPlacement(); + m_just_placed = placeCore(core, at); + update(); + event->accept(); + return; + } + const bool cancel = (event->button() == Qt::RightButton); + cancelPlacement(); + if (cancel) { + event->accept(); + } else { + event->ignore(); + } + return; + } + + //The second of two quick clicks arrives as a double click: by + //then the first one has already put a core down, and that must + //not read as a request to open the dialog a second time. + m_just_placed = false; + + if (event->button() != Qt::LeftButton) { + QetGraphicsItem::mousePressEvent(event); + return; + } + + m_press_scene = event->scenePos(); + m_move_p1 = m_p1; + m_move_p2 = m_p2; + m_line_moved = false; + m_line_drag_cores.clear(); + //Nothing is carried along until he picks up a whole line: a + //press on a colour or on one of the blue points works on that + //one thing and leaves every other line standing. + m_carried.clear(); + //Where every colour label stands when the gesture starts: a + //line which is moved carries all of them along with it, and + //undo has to know where they were before that. A line which is + //stretched does not touch them, and records the same set + //unchanged. + m_cores_before = m_cable ? m_cable->usedCores() : QList(); + //Whether the sheet has already been told that the rest of the + //selection comes along with this line (see carrySelection): every + //press starts from nothing, so the next gesture tells it again. + m_mover_started = false; + m_told_mover = QPointF(); + + //One of the two blue points at the ends, when the line is + //picked and only one of the two is under the finger: pulling + //it changes how long the line is. The line comes before + //whatever stands on it: a colour label parked right at the end + //may not take that point away, since the line could not be + //made longer from that end any more -- the labels would have + //to be pushed aside first, and there is nothing to push them + //with. The label is still picked up beside the point, by its + //letters or by its slash a little further along the line. + //When both ends are that close, which only happens on a very + //short line, nothing is stretched: it is moved like any other + //line instead. + int grip = 0; + if (isSelected()) + { + const bool first = QLineF(event->scenePos(), m_p1).length() <= grip_grab; + const bool second = QLineF(event->scenePos(), m_p2).length() <= grip_grab; + if (first != second) grip = first ? 1 : 2; + } + m_stretch_end = grip; + + if (grip > 0) + { + update(); + event->accept(); + return; + } + + const int core = coreAt(event->scenePos()); + if (core >= 0) + { + m_dragged_core = core; + //The label stays exactly where it stands until the mouse + //really moves: picking it up must not shift it by a hair. + m_drag_scene = m_cable->core(core).position; + if (!isSelected()) { + setSelected(true); + } + update(); + event->accept(); + return; + } + + QetGraphicsItem::mousePressEvent(event); + + //Every other line he has picked up at the same time: dragging + //one line takes the whole selection with it, and all of them go + //back to where they stood if he calls the gesture off. The + //selection is read after the click has been dealt with, since + //clicking an unselected line leaves that one alone selected. + m_carried.clear(); + if (isSelected() && scene()) + { + const QList selected = scene()->selectedItems(); + for (QGraphicsItem *item : selected) + { + auto *other = qgraphicsitem_cast(item); + if (!other || other == this || !other->m_cable) continue; + + CarriedLine carried; + carried.part = other; + carried.p1 = other->m_p1; + carried.p2 = other->m_p2; + carried.cores = other->m_cable->usedCores(); + m_carried.append(carried); + } + } +} + +/** + @brief CablePart::mouseMoveEvent + Three things the mouse can carry: the colour of a core (which stays + on its line and never past either end of it), one of the two blue + points at the ends (which makes the line longer or shorter -- that + changes nothing else: every colour label goes on standing exactly + where the user put it, and the line may not be brought in past the + outermost of those labels, which would otherwise be left standing + beyond the end of their own line), and the whole line (which is + translated as a piece, taking its colour labels with it). The line + in each case is snapped to the grid. + @param event +*/ +void CablePart::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + //Where a core waiting to be put down would stand: on the line + //itself, at a grid step, and drawn from the very first moment + //it is asked for -- how near the mouse stands decides nothing + //but whether a click keeps it or sends it away (see + //mousePressEvent), never whether he can see it. + if (m_pending_core >= 0) + { + if (!m_cable) { + cancelPlacement(); + } else { + m_drag_scene = placePosition(event->scenePos()); + update(); + } + event->accept(); + return; + } + + if (m_dragged_core >= 0) + { + m_drag_scene = dragPosition(event->scenePos()); + update(); + event->accept(); + return; + } + + if (m_stretch_end > 0 && (event->buttons() & Qt::LeftButton)) + { + //The end under the finger follows the mouse, snapped to the + //grid like anything else drawn on the folio, and the line + //keeps its right angle: the direction the mouse covers the + //most decides which way the line runs, the same way the + //drawing tool decides it -- so pulling the end of a + //horizontal line far enough upwards turns the line + //vertical instead of hanging it into the air at an angle. + const QPointF fixed = (m_stretch_end == 1) ? m_move_p2 : m_move_p1; + QPointF moving = Diagram::snapToGrid(event->scenePos()); + const QPointF to = moving - fixed; + + bool horizontal; + if (qAbs(to.x()) > qAbs(to.y())) horizontal = true; + else if (qAbs(to.y()) > qAbs(to.x())) horizontal = false; + else horizontal = trunkIsHorizontal(); + moving = horizontal ? QPointF(moving.x(), fixed.y()) + : QPointF(fixed.x(), moving.y()); + + //Never shorter than his own colour labels: every one of + //them which stood on this part of the line when the + //gesture began has to go on standing on it, or it would be + //left beyond the end of the line it belongs to and could + //no longer be wired. He may pull the line out as far as he + //likes, and he may bring either end in as far as he likes + //up to the outermost of those labels -- which are found + //along the line as it runs now, since the direction can + //change from one move to the next. + const QPointF started_from = (m_stretch_end == 1) ? m_move_p1 : m_move_p2; + const qreal at_fixed = horizontal ? fixed.x() : fixed.y(); + const qreal at_start = horizontal ? started_from.x() : started_from.y(); + const qreal first = qMin(at_fixed, at_start); + const qreal last = qMax(at_fixed, at_start); + + bool any_label = false; + qreal low = at_fixed, high = at_fixed; + for (const CableCore &core : m_cores_before) + { + if (core.part != m_part_uuid) continue; + + const qreal at = horizontal ? core.position.x() : core.position.y(); + if (at < first || at > last) continue; + + if (!any_label) { low = high = at; any_label = true; } + else { low = qMin(low, at); high = qMax(high, at); } + } + + if (any_label) + { + //The end sits on the grid, so the limit it stops + //against is taken from it on the far side of the + //label, never in front of it. + QSettings settings; + const int step = horizontal + ? settings.value(QStringLiteral("diagrameditor/Xgrid"), + Diagram::xGrid).toInt() + : settings.value(QStringLiteral("diagrameditor/Ygrid"), + Diagram::yGrid).toInt(); + if (step > 0) { + high = std::ceil(high / step) * step; + low = std::floor(low / step) * step; + } + + qreal at_end = horizontal ? moving.x() : moving.y(); + at_end = at_end > at_fixed ? qMax(at_end, high) + : qMin(at_end, low); + moving = horizontal ? QPointF(at_end, moving.y()) + : QPointF(moving.x(), at_end); + } + + const QPointF p1 = (m_stretch_end == 1) ? moving : fixed; + const QPointF p2 = (m_stretch_end == 1) ? fixed : moving; + + if (p1 != m_p1 || p2 != m_p2) + { + setLine(p1, p2); + m_line_moved = true; + //Only the line is stretched: every colour label goes on + //standing exactly where the user left it, none is + //carried anywhere and none is worked out again. What + //the drawing showed of them before the gesture goes on + //being what the cable holds -- which is what the + //release below records, along with the line. + m_line_drag_cores = m_cores_before; + update(); + } + event->accept(); + return; + } + + if (isSelected() && event->buttons() & Qt::LeftButton) + { + //The line follows the mouse, snapped to the grid like anything + //else drawn on the folio, and keeps its length: it is purely + //optical, so nothing else has to follow it. + const QPointF target = Diagram::snapToGrid( + m_move_p1 + (event->scenePos() - m_press_scene)); + const QPointF delta = target - m_move_p1; + + if (target != m_p1 || m_move_p2 + delta != m_p2) + { + setLine(target, m_move_p2 + delta); + m_line_moved = true; + //Where every colour label stands on the line at this + //moment: carried along by however far the line has + //come, so line, description and colours move as one + //piece and no label ever jumps or disappears. + m_line_drag_cores = m_cores_before; + reconcileCores(m_line_drag_cores, delta); + update(); + } + //Every other line he picked up with this one comes along, + //on every step of the gesture and with the same step: a + //selection of lines is one thing to move. It happens even + //when the line under his finger itself stands still -- a + //pull back to where it began -- or those would be left + //standing out where the gesture reached. + carryCompanions(delta); + //Everything else he marked at the same time comes along too + //-- the elements and the texts of the same selection -- so + //that one gesture moves all of it rather than two halves of + //the selection going different ways. + carrySelection(delta); + event->accept(); + return; + } + + QetGraphicsItem::mouseMoveEvent(event); +} + +/** + @brief CablePart::mouseReleaseEvent + @param event +*/ +void CablePart::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + //Nothing has been put down by this gesture, so nothing has to + //be settled either: the core is placed by the press itself. + if (m_pending_core >= 0) + { + event->accept(); + return; + } + + + if (m_dragged_core >= 0 && event->button() == Qt::LeftButton) + { + const int core = m_dragged_core; + m_dragged_core = -1; + + //What was drawn while he dragged is what is kept: the label + //goes on standing where he left it, and letting go can never + //take it back to where it was picked up. A press which never + //went anywhere is a click: it keeps the label exactly where + //it already stands and never makes it name some other wire + //for having been touched. + const CableCore held = m_cable ? m_cable->core(core) : CableCore(); + const bool moved_label = (held.core == core) && (m_drag_scene != held.position); + + if (moved_label) { + rebindCore(core, m_drag_scene); + } + update(); + event->accept(); + return; + } + + //The steps of this line, held back until the gesture is over: + //when the sheet is moving elements together with the lines, its + //own undo waits for them so that one single undo step takes all + //of it back. + QList pending; + bool cancelled = false; + + if (event->button() == Qt::LeftButton && m_line_moved && diagram()) + { + const QPointF after_p1 = m_p1; + const QPointF after_p2 = m_p2; + //One undo step for one gesture: taking the drag back puts + //every line of it exactly where it started -- a line which + //moved takes its colour labels back with it, since they are + //written on that line, and one which was stretched leaves + //them exactly where he put them. + if (after_p1 != m_move_p1 || after_p2 != m_move_p2) + { + QList after = m_line_drag_cores; + + //Stretching only changes how long the line is: no + //colour label has been carried anywhere, so nothing of + //the cable has to be worked out again, no wire changes + //hands and nothing at all is asked. One step which puts + //the line -- and only the line -- back where it was. + if (m_stretch_end > 0) + { + pending.append( + new MoveCablePartCommand(m_cable, this, + m_move_p1, m_move_p2, + after_p1, after_p2, + m_cores_before, after)); + } + else + { + //The lines he picked up with this one settle first, + //one after the other: a wire one of them lets go of + //is then already free for the next one instead of + //being asked about as if it were still taken. Each + //of them asks before taking anything away from a + //cable which is not part of this gesture. + QList steps; + cancelled = !settleCompanions(steps); + + //What the drawing already showed during the drag goes + //into the cable now -- and which wire each core names + //is worked out at this moment, and only at it, from + //where its colour label has come to rest: that is + //what makes the entries of the wires right again + //after a move, instead of leaving them standing on + //the wires the line has gone away from. No label is + //moved for it. + if (!cancelled) + { + readyToSettle(after); + cancelled = !settleCores(after); + } + + if (cancelled) + { + //He called the whole gesture off: every line of + //it goes back to where he picked it up, nothing + //at all is written, and there is no step to undo + //-- the drawing is as it was before he started. + putCompanionsBack(); + if (m_cable) { + m_cable->setCores(m_cores_before); + } + setLine(m_move_p1, m_move_p2); + for (QUndoCommand *step : steps) { + delete step; + } + } + else + { + if (m_cable) { + m_cable->setCores(after); + } + steps.append(new MoveCablePartCommand(m_cable, this, + m_move_p1, m_move_p2, + after_p1, after_p2, + m_cores_before, after)); + //Given to the whole gesture rather than pushed + //here, since the sheet may still have the rest + //of the selection to write down with it. + pending = steps; + steps.clear(); + } + } + } + } + + //The lines he picked up with this one go on standing where the + //gesture left them, and none of them is carried any more -- + //whether it was written down or called off. + for (const CarriedLine &carried : std::as_const(m_carried)) + { + if (!carried.part) continue; + carried.part->m_line_moved = false; + carried.part->m_line_drag_cores.clear(); + carried.part->update(); + } + m_carried.clear(); + + m_line_moved = false; + m_stretch_end = 0; + m_line_drag_cores.clear(); + + //One step for one gesture, however mixed the selection is: when + //the sheet is moving the elements he marked together with these + //lines, its own undo waits for the steps above and pushes + //everything at once, so a single undo takes the whole selection + //back. When nothing else was marked they are pushed here exactly + //as they always were -- and he called the gesture off when + //nothing at all is written, the elements included. + if (diagram()) + { + ElementsMover &mover = diagram()->elementsMover(); + if (cancelled) + { + qDeleteAll(pending); + pending.clear(); + mover.cancelMovement(); + } + else if (!pending.isEmpty() && !mover.isReady()) + { + mover.addExtraCommands(pending); + pending.clear(); + } + else if (pending.size() == 1) + { + diagram()->undoStack().push(pending.takeFirst()); + } + else if (!pending.isEmpty()) + { + //One step however many lines he moved: taking the + //gesture back has to take all of it back, or half the + //selection would stay where the drag left it. + diagram()->undoStack().push(new BatchCommand( + pending, + QCoreApplication::translate( + "BatchCommand", "Move %n cable(s)", + "Un geste déplace plusieurs lignes à la fois.", + pending.size()))); + pending.clear(); + } + } + else + { + qDeleteAll(pending); + pending.clear(); + } + + QetGraphicsItem::mouseReleaseEvent(event); + + //The sheet has been told everything this gesture had to tell it: + //the next press starts from nothing again (see carrySelection). + m_mover_started = false; + m_told_mover = QPointF(); +} + +/** + @brief CablePart::mouseDoubleClickEvent + Opening the cable is what a double click on the line is for. On one + of the colour labels it does nothing: they are part of a core, and + the user asking for the whole cable by clicking twice in the same + place never said so. On a line which points at another folio it goes + to that folio instead: the reference leads somewhere, and asking + twice in it is asking to be taken there. + @param event +*/ +void CablePart::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + //The click which put a core down is reported once more as a + //double click when he clicks twice fast: it was there to place + //something and must not go on to open the dialog. + if (m_just_placed) + { + m_just_placed = false; + event->accept(); + return; + } + + if (event->button() == Qt::LeftButton && coreAt(event->scenePos()) >= 0) + { + event->accept(); + return; + } + + //A line which points at another folio leads there: asking twice + //in that very line is asking to be taken to the section standing + //over there, the way a cross reference of an element does, rather + //than to open this cable. + if (event->button() == Qt::LeftButton && goToCrossRef(event->scenePos())) + { + event->accept(); + return; + } + QetGraphicsItem::mouseDoubleClickEvent(event); +} + +/** + @brief CablePart::hoverMoveEvent + The hand over a line which points at another folio: it says the line + leads somewhere before he clicks and finds out. While a core waits to + be put down the cross of that gesture is showing, and it stays. + @param event +*/ +void CablePart::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +{ + QetGraphicsItem::hoverMoveEvent(event); + + if (m_pending_core >= 0) return; + + if (crossRefAt(event->scenePos()) >= 0) { + setCursor(Qt::PointingHandCursor); + } else { + unsetCursor(); + } +} + +/** + @brief CablePart::rebindCore + Let go of a core the user dragged: it lands where he let it go, and + whether it takes the wire standing there is decided by what he did + rather than by anything being looked up for him. + + Nothing here ever moves the label to reach a wire. It goes on + standing at the place he dropped it -- on the line, at the grid, + the very place it has been drawn for every moment of the drag -- so + that a label never crawls back to the wire he pulled it away from + and never goes off to look for one of its own. What changes, if + anything, is which wire names it: + + - On a wire this line runs across: the core takes it, and the + field of the wire it left is emptied by the refresh which + follows. + - On a wire another cable holds: he is asked about it first. Yes + hands the wire over, and the other cable's core becomes a free + slot of that cable -- its slash and its colour leave the sheet + with it, which is what he saw happen. No leaves the other cable + exactly as it was and makes this core the free one instead: it + names no wire at all any more, so its own slash and colour go off + the sheet as well, its entry leaves the wire it came from, and it + waits as a free slot in the list of existing cables until he puts + it back. + - Directly on the colour label of another core of the same cable: + the two exchange their wires, which is a deliberate exchange -- + he put one colour on top of the other, so he means the second one + to take what the first is giving up. + - On a wire another core of this same cable already holds, anywhere + but on its label: nothing changes. + - On nothing at all: the label stays exactly where he dropped it, + and it stops naming a wire -- an entry follows its label and + stops where its label stopped, so that no entry is left standing + on a wire the label has gone away from. A label which has not + been moved keeps what it had, though: picking one up and letting + it go again leaves the drawing exactly as it was. + + Only the label he dragged may move: no other core of this cable is + hunted down. A core is taken away from its own cable at one single + place -- when he says no to the wire he has dropped its label on, + so that it names nothing -- and that is the very thing the other + cable's core becomes when he says yes to taking its wire. Both + answers therefore leave the drawing the same way: a free slot, no + slash, no colour, and the entry gone from the wire it stood on. + + Whatever comes out of it is kept as one undo step, the whole set of + assignments before and after the gesture. + @param core which core is being moved + @param dropped_at scene coordinates where the slash was let go + @param before_cores the set of assignments as it stood before the + core was added to the cable, when a core is being put down rather + than moved; nullptr otherwise +*/ +bool CablePart::rebindCore(int core, const QPointF &dropped_at, + const QList *before_cores) +{ + if (!m_cable || !diagram() || !diagram()->project()) { + return true; + } + + const CableCore moved = m_cable->core(core); + if (moved.core != core) { + return true; + } + + //What the cable held before this gesture, so undo can put it + //back: the set as it stands while a core already on the sheet + //is merely dragged, or -- when a core is being put down for the + //first time -- the set from before it was added, which takes + //the addition back as well. + const QList before = before_cores ? *before_cores + : m_cable->usedCores(); + + //Where the label has actually been drawn: on the line, at whole + //grid steps from where it stood. It is taken as it is and never + //worked out again, so letting go cannot shift it by a hair. + const QPointF at = dropped_at; + CableCore landed = moved; + landed.position = at; + + //Which wire of this line stands at that very place, worked out + //from where the label stands and never the other way round: + //the label is not sent off to look for a wire, it names the + //one it happens to be standing on. + const QList crossings = CableManager::crossedConductors( + diagram(), QLineF(m_p1, m_p2)); + Conductor *target = wireFor(crossings, moved, at); + + //Set when he refuses a wire another cable holds: this core then + //names no wire at all any more and goes back to being a free + //slot of the cable, so it is taken out rather than written. + bool freed = false; + + if (target) + { + //Which core of this cable, if any, already stands on that + //wire -- everything but the one being dragged. + int holder = -1; + for (const CableCore &other : m_cable->usedCores()) + { + if (other.core == core || other.part != m_part_uuid) continue; + if (other.conductor == target->uuid()) { + holder = other.core; + } + } + + if (holder < 0) + { + const ClaimAnswer answer = mayClaim(target); + if (answer == ClaimAnswer::Cancel) + { + //He called the drop off: the label goes on standing + //where he picked it up, and nothing is written at all. + return false; + } + if (answer == ClaimAnswer::Take) + { + //A wire is one piece of wire: whichever cable held it + //before has to let it go. + CableManager::claimConductor(diagram()->project(), target, m_cable.data()); + + //A conductor keeps the identity a cable binds it by, even + //when it was read back from a file written before it had + //one. + target->setUuid(target->uuid()); + + landed.conductor = target->uuid(); + } + else + { + //He said no: the other cable goes on holding that + //wire, and this label has come to rest on it anyway. + //So this core names no wire at all any more and goes + //back to being a free slot of this cable -- exactly + //what the other cable's core becomes when he says + //yes -- taking its slash and its colour off the sheet + //with it, while its entry leaves the wire the label + //has gone away from. Only the other cable keeps its + //wire, and he can put this core back wherever he + //likes from the list of existing cables. + freed = true; + } + } + else if (labelAt(holder, at)) + { + //One colour dropped straight onto another: the two + //exchange their wires, so neither is left standing on + //a wire the drawing does not name with it. The dragged + //label stays where he put it, on the wire it has just + //taken, and the other one comes to the place it gives + //up -- that exchange is what he asked for. + CableCore swapped = m_cable->core(holder); + if (swapped.core == holder) + { + CableManager::claimConductor(diagram()->project(), target, m_cable.data()); + target->setUuid(target->uuid()); + + landed.conductor = target->uuid(); + + swapped.conductor = moved.conductor; + swapped.position = moved.position; + m_cable->setCore(swapped); + } + } + //Held by another core of this cable but not dropped on its + //label: leave everything alone, the dragged label merely + //stays where it was let go. + } + else if (at != moved.position && !moved.conductor.isNull()) + { + //He let go where this line runs across nothing, having + //really brought the label there: the entry of the wire it + //came from goes with it, while the label itself stays + //exactly where he put it and merely names no wire at all + //any more. Not moved means not touched at all, so picking + //a label up and letting it go again never empties + //anything. + landed.conductor = QUuid(); + } + + if (freed) + { + //No wire names this core any more: it goes back to being a + //free slot of the cable and stops being drawn, and the + //refresh which follows empties the cable field of the wire + //it used to name -- an entry follows its label, and this + //label has come to rest where it may not name anything. + m_cable->removeCore(core); + } + else + { + + if (landed != moved) { + m_cable->setCore(landed); + } + } + + const QList after = m_cable->usedCores(); + if (after != before) { + //A core which has just been put down for the first time is + //not being moved, and the step which takes it back is named + //for what it did rather than for where it went. + const QString text = before_cores + ? QCoreApplication::translate("ChangeCableCoresCommand", + "Place a cable core") + : QString(); + diagram()->undoStack().push( + new ChangeCableCoresCommand(m_cable, before, after, text)); + } + return true; +} + +/** + @brief CablePart::takeCoreOffLine + Take one core off this very line: its colour label disappears from + the sheet and the core goes back to being a free slot of its cable, + listed among the ones which stand nowhere -- the exact opposite of + putting one down from that list. + + Only a core standing on this line is taken off, never one of the + other sections of the same cable: a cable running over two folios + stands on two lines, and the one whose menu was asked for is the one + he is working on. + + Whatever it named goes with it: the refresh which follows empties + the cable field of the wire it used to name, since an entry follows + the label it stands for, and this label no longer stands anywhere. + + One undo step, and a single undo puts the label back exactly where + it stood. + @param core which core standing on this line is taken off + @return true when a core was taken off +*/ +bool CablePart::takeCoreOffLine(int core) +{ + if (!m_cable || !diagram() || !diagram()->project()) return false; + + const CableCore there = m_cable->core(core); + if (there.core != core || there.part != m_part_uuid) return false; + + + const QList before = m_cable->usedCores(); + m_cable->removeCore(core); + const QList after = m_cable->usedCores(); + if (after == before) return false; + + diagram()->undoStack().push(new ChangeCableCoresCommand( + m_cable, before, after, + QCoreApplication::translate("ChangeCableCoresCommand", + "Remove a core from the line"))); + return true; +} + +/** + @brief CablePart::reconcileCores + Where the colour labels of this line stand while the line is being + moved: exactly where they stood, taken along by however far the line + has come. + + Every label is carried along on every single step of the gesture -- + the trunk line, the description above it and the colour labels of the + cores are one thing and move as one thing. Nothing is worked out + again while he drags, so no label ever jumps, ever lands on a + neighbour's wire or ever disappears because the line came a little + too short: pulling the line back puts every label exactly back where + it was. + + The place a label belongs to is worked out afterwards, when the + line is let go (settleCores), and while a single core is moved on + its own -- gestures which are about one wire rather than about the + whole line, and which read the wire off the place of the label + rather than sending the label off to find one. + @param cores the whole set of assignments, changed in place + @param delta how far the line has come in this gesture +*/ +void CablePart::reconcileCores(QList &cores, const QPointF &delta) const +{ + for (CableCore &core : cores) + { + if (core.part != m_part_uuid) continue; + + core.position += delta; + } +} + +/** + @brief CablePart::carryCompanions + Every other line he picked up with this one comes along, with the + same step and with the colours of its own cores: a selection of + lines is one thing to move. + + Nothing of them is written while he drags -- they are drawn where + the gesture has brought them, exactly the way this line draws its + own labels, so pulling back puts every one of them back where it + was and letting go works the entries out afterwards. + @param delta how far the line under his finger has come +*/ +void CablePart::carryCompanions(const QPointF &delta) +{ + for (const CarriedLine &carried : std::as_const(m_carried)) + { + CablePart *other = carried.part; + if (!other) continue; + + other->setLine(carried.p1 + delta, carried.p2 + delta); + other->m_line_moved = true; + other->m_line_drag_cores = carried.cores; + other->reconcileCores(other->m_line_drag_cores, delta); + other->update(); + } +} + +/** + @brief CablePart::carrySelection + Everything else he marked at the same time comes along too: the + elements, the texts and the images of the same selection are moved + by the very step this line has taken, so that one gesture moves + whatever the selection is made of instead of two halves of it going + different ways -- the sheet has its own way of moving those, and + this is the only place which knows how far the lines have come. + + The step handed over is the part of the gesture the sheet has not + been told yet: what this line measures is how far it has come all in + altogether, from where the press found it, while the sheet takes one + step at a time. + @param total_delta how far this line has come since the press +*/ +void CablePart::carrySelection(const QPointF &total_delta) +{ + if (!diagram()) return; + + ElementsMover &mover = diagram()->elementsMover(); + if (!m_mover_started) + { + //Once per gesture rather than once per step: when nothing + //but lines is marked the sheet has nothing to move of its + //own, and must not be asked to start over at every step. + m_mover_started = true; + m_told_mover = QPointF(); + mover.beginMovement(diagram(), this); + } + + const QPointF step = total_delta - m_told_mover; + m_told_mover = total_delta; + if (!step.isNull()) { + mover.continueMovement(step); + } +} + +/** + @brief CablePart::settleCompanions + Where every other line of this gesture comes to rest, worked out + exactly the way this line's own is: from where its colour labels + have come to stand, asking before anything changes hands. + + The lines are settled one after the other rather than all at once, + so that a wire one of them lets go of is already free for the next + one instead of being asked about as if it were still taken. + @param steps receives one undo step per line he let go of + @return false when he cancelled one of their questions, in which + case nothing at all has to be written and the caller puts every + line back where it was picked up +*/ +bool CablePart::settleCompanions(QList &steps) +{ + for (const CarriedLine &carried : std::as_const(m_carried)) + { + CablePart *other = carried.part; + if (!other || !other->m_cable) continue; + + QList after = other->m_line_drag_cores; + other->readyToSettle(after); + + if (!other->settleCores(after)) { + return false; + } + + other->m_cable->setCores(after); + steps.append(new MoveCablePartCommand(other->m_cable, other, + carried.p1, carried.p2, + other->m_p1, other->m_p2, + carried.cores, after)); + } + return true; +} + +/** + @brief CablePart::putCompanionsBack + Put every other line of this gesture back to where he picked it + up, cores included: the wire fields are rewritten along the way, + so that not one entry of the refused move is left standing. +*/ +void CablePart::putCompanionsBack() +{ + for (const CarriedLine &carried : std::as_const(m_carried)) + { + CablePart *other = carried.part; + if (!other) continue; + + other->setLine(carried.p1, carried.p2); + if (other->m_cable) { + other->m_cable->setCores(carried.cores); + } + other->m_line_moved = false; + other->m_line_drag_cores.clear(); + other->update(); + } +} + +/** + @brief CablePart::beginLineGesture + Where this line stood when the sheet began moving the selection it + is part of, kept here so that every step of that movement can carry + the line -- and its colour labels, which are written on it -- along + with it, exactly as if the finger had been on the line itself. + + Nothing is carried along by this line: the sheet carries every line + of the selection itself, one after the other, so no line takes its + neighbours along a second time. +*/ +void CablePart::beginLineGesture() +{ + m_move_p1 = m_p1; + m_move_p2 = m_p2; + m_line_moved = false; + m_line_drag_cores.clear(); + m_carried.clear(); + m_cores_before = m_cable ? m_cable->usedCores() : QList(); + //Where its own labels stand when the gesture begins: they go on + //standing wherever the line is carried to, and undo has to know + //where they were before that. + m_line_drag_cores = m_cores_before; + m_stretch_end = 0; + m_dragged_core = -1; +} + +/** + @brief CablePart::continueLineGesture + Take one more step of a move the sheet is driving: the line follows + by that much and every colour label standing on it comes along with + it, so line, description and colours move as one piece and no label + ever jumps, lands on a neighbour's wire or disappears under his + hand. + @param delta how far to come, in scene units +*/ +void CablePart::continueLineGesture(const QPointF &delta) +{ + if (!m_cable || delta.isNull()) return; + + setLine(m_p1 + delta, m_p2 + delta); + m_line_moved = true; + //Step by step rather than measured from where the gesture + //began: the sheet hands one step over at a time + reconcileCores(m_line_drag_cores, delta); + update(); +} + +/** + @brief CablePart::settleLineGesture + Where this line comes to rest, worked out the same way as after a + drag of its own: which wire every colour label has come to stand on, + asked before anything changes hands, and no label moved for it. + + The step is handed over rather than pushed, so that the movement of + the whole selection ends up as one single undo step. + @param steps receives the undo step of this line, if any + @return false when he called the gesture off -- this line is already + back where it began then, and the sheet puts the rest back too +*/ +bool CablePart::settleLineGesture(QList &steps) +{ + if (!m_line_moved) return true; + //Back where it began: nothing was carried anywhere, so there is + //nothing to work out and nothing to undo + if (m_p1 == m_move_p1 && m_p2 == m_move_p2) return true; + + if (!m_cable || !diagram()) + { + abortLineGesture(); + return true; + } + + QList after = m_line_drag_cores; + readyToSettle(after); + + if (!settleCores(after)) + { + abortLineGesture(); + return false; + } + + m_cable->setCores(after); + steps.append(new MoveCablePartCommand(m_cable, this, + m_move_p1, m_move_p2, + m_p1, m_p2, + m_cores_before, after)); + return true; +} + +/** + @brief CablePart::abortLineGesture + Put this line back where the gesture found it: the line goes back + to its place and its cable gets the labels it held at that moment, + whether they were written down during this gesture or not. +*/ +void CablePart::abortLineGesture() +{ + if (m_line_moved) + { + if (m_cable) { + m_cable->setCores(m_cores_before); + } + setLine(m_move_p1, m_move_p2); + update(); + } + m_line_moved = false; + m_line_drag_cores.clear(); + m_cores_before.clear(); +} + +/** + @brief CablePart::doneLineGesture + The gesture is over for this line: forget where it began, the step + which was worked out from it having been handed over already. +*/ +void CablePart::doneLineGesture() +{ + m_line_moved = false; + m_line_drag_cores.clear(); + m_cores_before.clear(); + m_stretch_end = 0; + m_dragged_core = -1; +} + +/** + @brief CablePart::readyToSettle + Make a set of carried cores ready to be written into the cable: + this line's own labels wherever the gesture has brought them, and + every other section of the cable exactly as the cable holds it at + this moment. + + The other sections are read back rather than carried, because + another line of this very gesture may have just settled and + written them -- and a core which is no longer there has just been + taken by another cable of the gesture, which makes it that + cable's free slot rather than one of ours. + @param cores the carried set, corrected in place +*/ +void CablePart::readyToSettle(QList &cores) const +{ + if (!m_cable) return; + + for (int i = cores.size() - 1; i >= 0; --i) + { + const bool mine = cores.at(i).part == m_part_uuid; + if (m_cable->hasCore(cores.at(i).core)) { + if (!mine) { + cores[i] = m_cable->core(cores.at(i).core); + } + } else { + cores.removeAt(i); + } + } +} + +/** + @brief CablePart::wireFor + Which wire this line runs across at the very place a colour label + stands, so that the entry of a wire follows the label instead of + the label being sent off to find a wire. + + The nearest crossing which is close enough wins, and where two are + as close as that, the wire the core already names wins the draw: a + label standing between two crossings goes on naming the one it had + rather than sliding onto the other, while a label dropped straight + onto another wire does take that one. Close enough means close + enough for the slash and the wire to read as one thing -- and + nothing at all that close means no wire: a label is never moved to + reach one, it keeps whatever it already names and stands where the + user left it. + @param crossings every place this line runs across a wire + @param core the core being worked out + @param at where its label stands, in scene coordinates + @return the wire to give the core, or nullptr +*/ +Conductor *CablePart::wireFor(const QList &crossings, + const CableCore &core, const QPointF &at) const +{ + const CableCrossing *nearest = nullptr; + const qreal tolerance = CableManager::bind_tolerance; + qreal nearest_distance = tolerance; + + for (const CableCrossing &crossing : crossings) + { + if (!crossing.conductor) continue; + + const qreal distance = QLineF(crossing.position, at).length(); + if (distance > tolerance) continue; + if (nearest && distance >= nearest_distance) { + //Where it already stands wins a draw, so that a label + //between two crossings never slides from one to the other + if (distance > nearest_distance + || crossing.conductor->uuid() != core.conductor) { + continue; + } + } + + nearest = &crossing; + nearest_distance = distance; + } + return nearest ? nearest->conductor : nullptr; +} + +/** + @brief CablePart::askClaim + The question every takeover is asked with: three answers, in + French, of which the third one is the way out of the whole gesture + -- he has let go in the wrong place, and would rather have nothing + happen at all than take a wire he did not mean to take. + @param parent the window the question is asked in + @param title the title of the question + @param question what is being asked + @return what he answered +*/ +CablePart::ClaimAnswer CablePart::askClaim(QWidget *parent, + const QString &title, + const QString &question) const +{ + QMessageBox box(QMessageBox::Question, title, question, QMessageBox::NoButton, parent); + QPushButton *take = box.addButton( + tr("Yes", "Prendre le conducteur à l'autre câble."), + QMessageBox::YesRole); + QPushButton *leave = box.addButton( + tr("No", "Laisser le conducteur à l'autre câble, on ne change rien."), + QMessageBox::NoRole); + QPushButton *cancel = box.addButton( + tr("Cancel", "Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient."), + QMessageBox::RejectRole); + //The safe answer is the one under his finger, and the escape + //key throws the whole gesture away rather than taking a wire. + box.setDefaultButton(leave); + box.setEscapeButton(cancel); + box.exec(); + + const QAbstractButton *clicked = box.clickedButton(); + if (clicked == take) return ClaimAnswer::Take; + if (clicked == leave) return ClaimAnswer::Leave; + return ClaimAnswer::Cancel; +} + +/** + @brief CablePart::mayClaim + Whether a wire may be given to this cable. A wire another cable + already describes is asked about first: taking it empties the cable + field of that other cable, and that is not something a drop or a + movement does behind the back of the user. + @param conductor the wire about to be taken + @return what he answered +*/ +CablePart::ClaimAnswer CablePart::mayClaim(Conductor *conductor) const +{ + if (!conductor || !m_cable || !diagram() || !diagram()->project()) { + return ClaimAnswer::Leave; + } + + const QUuid holder = conductor->properties().m_cable_uuid; + if (holder.isNull() || holder == m_cable->uuid()) return ClaimAnswer::Take; + + const Cable *other = CableManager::cableByUuid(diagram()->project(), holder); + const QString other_name = other ? other->designation() : QString(); + + const QString text = other_name.isEmpty() + ? tr("This conductor is already described by another cable. Do you want to assign it to cable %1?", + "Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre.") + : tr("This conductor is already described by cable %1. Do you want to assign it to cable %2?", + "Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre."); + + QWidget *parent = nullptr; + if (!diagram()->views().isEmpty()) { + parent = diagram()->views().constFirst(); + } + + return askClaim(parent, + tr("Conductor already assigned", "Un conducteur ne peut appartenir qu'à un câble."), + other_name.isEmpty() ? text.arg(m_cable->designation()) + : text.arg(other_name, m_cable->designation())); +} + +/** + @brief CablePart::mayClaimSeveral + The same question as mayClaim(), but asked once for a whole handful + of conductors: pulling a line across several wires which another + cable already describes must ask about them too, rather than either + quietly taking them or quietly leaving them -- one question, one + answer, and the other cable releases every wire he says yes to. + @param conductors the wires which other cables hold + @return what he answered +*/ +CablePart::ClaimAnswer CablePart::mayClaimSeveral(const QList &conductors) const +{ + if (conductors.isEmpty() || !m_cable || !diagram() || !diagram()->project()) { + return ClaimAnswer::Leave; + } + + //Which cables hold those wires: he is told the name of one of + //them, and that is the one he is most likely to be looking for. + QString other_name; + QSet others; + for (const Conductor *conductor : conductors) + { + const QUuid holder = conductor->properties().m_cable_uuid; + if (holder.isNull() || holder == m_cable->uuid()) continue; + others.insert(holder); + } + if (others.isEmpty()) return ClaimAnswer::Take; + + if (others.size() == 1) { + const Cable *other = CableManager::cableByUuid(diagram()->project(), *others.constBegin()); + if (other) other_name = other->designation(); + } + //Several other cables at once: no one name would say it all. + const bool unnamed = (others.size() != 1) || other_name.isEmpty(); + + const int n = conductors.size(); + const QString title = n <= 1 + ? tr("Conductor already assigned", "Un conducteur ne peut appartenir qu'à un câble.") + : tr("Conductors already assigned", "Plusieurs conducteurs sont pris en une seule fois.", n); + + const QString text = n <= 1 + ? (unnamed + ? tr("This conductor is already described by another cable. Do you want to assign it to cable %1?", + "Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre.") + : tr("This conductor is already described by cable %1. Do you want to assign it to cable %2?", + "Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre.")) + : (unnamed + ? tr("%n conductors are already described by other cables. Do you want to assign them to cable %1?", + "On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles.", n) + : tr("%n conductors are already described by cable %1. Do you want to assign them to cable %2?", + "On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble.", n)); + + const QString question = unnamed + ? text.arg(m_cable->designation()) + : text.arg(other_name, m_cable->designation()); + + QWidget *parent = nullptr; + if (!diagram()->views().isEmpty()) { + parent = diagram()->views().constFirst(); + } + + return askClaim(parent, title, question); +} + +/** + @brief CablePart::settleCores + Which wire each core names once the line has come to rest: read + off where the colour labels have stood themselves, so that moving a + line as a whole updates the entries of the wires instead of leaving + them behind on the wires it has gone away from. + + While he drags, every label is merely carried along, so nothing + jumps, nothing lands on a neighbour's wire and nothing disappears + because the line came a little short -- the drawing stays readable + over the whole gesture, and pulling the line back puts every label + exactly back where it was. Which wire each core names is worked out + once, at the very end, and always from the place of the label: a + label standing on a wire gives that wire to its core, and the wire + it came from keeps no binding, so the refresh which follows empties + its cable field. Not one label is moved here. A label which came + to rest beside a wire rather than on it -- a whole grid step away, + which is as far as one pull of the line can carry it -- lets go of + that wire, because it no longer stands on it: an entry is always + where its colour label stands, and the grid is what puts a label + down on a crossing in the first place, so standing on that + crossing is what counts. When the line has been drawn off into an + empty part of the sheet, where it crosses no wire at all, every one + of its cores lets go, so that no entry is left standing on a wire + the label has gone away from. Pulling the line back puts every + label on a crossing again, and with it the entries they had. + + The whole set is worked out at once, and not core after core in the + order they happen to be stored. Otherwise a label coming to rest on + a wire another label of this very line is standing on at this moment + would be turned away for a core which is moving off that very wire + in the same gesture -- and its entry would go on standing on a wire + the line has gone away from, which is exactly the untidy entry that + has to disappear. A label which does not move keeps its wire all the + same, and where two labels want one wire, the first of them has it + and the other keeps what it had. + + A core which has no wire at all yet -- a copy put down on a folio + it was not wired on, because a copy is carried whole even where + there is nothing to wire -- takes the wire its own label stands on, + if there is one: pulling a copied line into place is what wires it. + + Only wires nobody else holds are taken -- and when the line comes + to rest on wires another cable already describes, he is asked about + them once, before anything is taken, naming the other cable and + answering no unless he says yes. The answer covers the whole move: + either those wires change hands and the other cable releases them, + or none of them does. + + Whichever way he answers, a core whose label has come to rest on + such a wire and names none of its own any more stops being a core + of its cable: it goes back to being a free slot, so that neither its + slash nor its colour is drawn on a wire which is not its own, and + its entry leaves the wire the label went away from -- an entry + following its label just as it does everywhere else, so that no + entry is left standing where no colour label stands. Yes makes the + other cable's core the free one instead; No makes it this cable's + own, and the other cable keeps its wire either way. That is why + both answers look the same on the sheet: one label standing there, + and a free slot in the list of existing cables. + + And he may call the whole gesture off: nothing is then written at + all, the line goes back to where he picked it up, and the drawing + is once more what it was before he started. + + @param cores the whole set of assignments, changed in place + @return false when he cancelled the gesture +*/ +bool CablePart::settleCores(QList &cores) const +{ + if (!m_cable || !diagram()) return true; + + const QList crossings = CableManager::crossedConductors( + diagram(), QLineF(m_p1, m_p2)); + //A line which runs across nothing at all is not a reason to call + //the move off: it is the moment every core of this section lets + //go of the wire it came from, since an entry belongs to a wire + //the cable still touches. So the walk below happens either way, + //and then simply comes out with nothing to keep. + + //Which wire every core ends up with is worked out for the whole + //set before a single one of them is written down -- a dry run + //first, which merely collects the wires of other cables on the + //way, so that he is asked about all of them before any of them + //changes hands. + // + //Working it out for the set as a whole, and not core by core in + //the order they happen to be stored, is what makes the entries + //come out right: a label coming to rest on a wire another label + //of this very line is standing on at this moment must have that + //wire, because the other label is moving off it in the same + //gesture -- whereas a label which does not move, and keeps the + //wire it names, must not be robbed of it. + const auto settle_once = [this, &crossings]( + QList &list, + const bool dry_run, + QList *foreign_wires, + const bool take_foreign) + { + //A wire another cable already describes only changes hands + //when he has said yes to taking it away from that one. + const auto is_foreign = [this](Conductor *wire) { + return wire && !wire->properties().m_cable_uuid.isNull() + && wire->properties().m_cable_uuid != m_cable->uuid(); + }; + + //The wire each colour label of this line is standing on + //right now -- worked out for every one of them first, so + //that which wire a core gets does not depend on which core + //is looked at first. None at all when a label stands on no + //wire, and then that core lets go of whatever it named. + QHash wanted; + for (const CableCore &core : list) { + if (core.part != m_part_uuid) continue; + wanted.insert(core.core, wireFor(crossings, core, core.position)); + } + + //Who lets go of nothing: a label standing on its own wire, + //and every label of another part of this cable, which this + //line never takes anything from. A label standing on no + //wire at all is not among them: it lets go of what it + //named, a whole grid step away from a crossing being + //already beside that wire rather than on it. + QSet keepers; + //Who ends up naming no wire at all: a label which has come + //to rest on a wire another cable holds, and he has said no + //to taking it. Such a core goes back to being a free slot of + //this cable -- exactly what the other cable's core becomes + //when he says yes -- so neither its slash nor its colour is + //drawn on a wire which is not its own, and its entry leaves + //the wire the label came from with it. The other cable keeps + //its wire either way. + QSet refuses; + for (const CableCore &core : list) + { + if (core.part != m_part_uuid) continue; + Conductor *wire = wanted.value(core.core, nullptr); + //Stands on no wire of this line: not a keeper, so it + //lets go of whatever it named further down. + if (!wire) continue; + + if (wire->uuid() == core.conductor) { + keepers.insert(core.core); + continue; + } + if (!take_foreign && is_foreign(wire)) { + refuses.insert(core.core); + } + } + + //Which core ends up with which wire, over and over until it + //stops moving: a core sent away from its own wire sends the + //one waiting for that wire away too, and that one may in + //turn free the wire the first one was after. The keepers + //only ever grow, so this cannot go round for ever. + QSet given_wires; + bool grew = true; + while (grew) + { + grew = false; + given_wires.clear(); + + //The wires nobody is letting go of + QSet staying; + for (const CableCore &core : list) + { + if (core.conductor.isNull()) continue; + if (core.part != m_part_uuid || keepers.contains(core.core)) { + staying.insert(core.conductor); + } + } + + for (const CableCore &core : list) + { + if (core.part != m_part_uuid + || keepers.contains(core.core) + || refuses.contains(core.core)) continue; + + Conductor *wanted_wire = wanted.value(core.core, nullptr); + if (!wanted_wire) continue; //stands on no wire: a keeper already + + const QUuid uuid = wanted_wire->uuid(); + if (staying.contains(uuid) || given_wires.contains(uuid)) + { + //Another label of this line goes on standing on it, + //or has just been given it: this one keeps the wire + //it names now rather than taking it away from under + //a label which has come to rest on it. + keepers.insert(core.core); + grew = true; + continue; + } + given_wires.insert(uuid); + } + } + + //The whole set has come to rest; now it can be written down + //without anything shifting under the feet of the next core. + //Cores which name no wire at all any more are collected on + //the way and taken out of the set only once the walk is over, + //since a list cannot be shortened while it is being walked. + QList freed; + for (CableCore &core : list) + { + if (core.part != m_part_uuid) continue; + + Conductor *wire = wanted.value(core.core, nullptr); + + if (refuses.contains(core.core)) + { + //He said no, so this core names no wire at all any + //more: it goes back to being a free slot of this + //cable, exactly what the other cable's core becomes + //when he says yes to taking its wire. Neither its + //slash nor its colour stays standing on a wire which + //is not its own, and its entry leaves the wire the + //label came from with it -- while the other cable + //keeps its wire either way. + if (!dry_run) { + freed << core.core; + } + continue; + } + + if (!wire) + { + //The label has come to rest where this line crosses + //nothing: the entry of the wire it came from goes + //with it, while the label itself stays exactly + //where he put it and merely names no wire at all + //any more -- an entry follows its label, and stops + //where its label stopped. A whole grid step away + //from a crossing is already beside that wire + //rather than on it, which is the case he means. + if (!dry_run && !core.conductor.isNull()) { + core.conductor = QUuid(); + } + continue; + } + + if (keepers.contains(core.core)) + { + continue; + } + + const QUuid uuid = wire->uuid(); + //Another cable holds this wire: it only changes hands + //when he has said yes to taking it away from that one. + const bool foreign = is_foreign(wire); + if (foreign && foreign_wires) { + foreign_wires->append(wire); + } + if (!dry_run) { + + wire->setUuid(uuid); + //A wire is one piece of wire: whichever cable held it + //before has to let it go, or its entry would stand on + //the wire all the same. + if (foreign) { + CableManager::claimConductor(diagram()->project(), wire, m_cable.data()); + wire->setUuid(uuid); + } + core.conductor = uuid; + //The wire this core has just left keeps no binding, so + //the refresh which follows empties its cable field: an + //entry follows its label, and stops where its label + //stopped + } + } + + //A core which names no wire is not a core of this cable any + //more: it goes back to being a free slot, and takes its slash + //and its colour off the sheet with it -- the very thing the + //other cable's core becomes when he says yes to taking its + //wire, so that both answers behave the same way. + for (int i = list.size() - 1; i >= 0; --i) { + if (list.at(i).part == m_part_uuid + && freed.contains(list.at(i).core)) { + list.removeAt(i); + } + } + }; + + QList trial = cores; + QList foreign_wires; + settle_once(trial, true, &foreign_wires, true); + + //The whole move is asked about at once, and the wires of other + //cables are taken either all together or not at all. + ClaimAnswer answer = ClaimAnswer::Leave; + if (!foreign_wires.isEmpty()) { + answer = mayClaimSeveral(foreign_wires); + if (answer == ClaimAnswer::Cancel) return false; + } + + settle_once(cores, false, nullptr, answer == ClaimAnswer::Take); + return true; +} + +/** + @brief CablePart::itemChange + Fold any translation of the item into its own geometry: this item + works in scene coordinates and keeps itself at the origin, so that + one number -- the trunk line -- is all the cable ever has to store. + + The colour labels come along with it. A line moved as a whole -- + by a paste, by a duplicate, or together with the rest of a selection + -- is one thing, and its labels belong to it, so they travel rather + than staying behind at the place the line was copied from. The trunk + line dragged by its own gesture does not come through here: it is + given its new geometry directly, which is what lets that gesture + carry the labels step by step and settle them only at the end. + @param change + @param value + @return +*/ +QVariant CablePart::itemChange(GraphicsItemChange change, const QVariant &value) +{ + if (change == ItemSelectedHasChanged) + { + //The two blue points at the ends come and go with the + //selection, so the moment a line is picked it has to be + //drawn again -- otherwise the points only appear at the + //next redraw of any other kind. + update(); + } + if (change == ItemSceneHasChanged) + { + //The folio this line stands in is what its references to the + //other folios of the cable are worked out from, and it is + //also what has to be listened to: only now, once there is + //one, can they be kept up to date -- and once this line + //leaves that folio, they have to stop. + setUpXrefHooks(); + } + if (change == ItemPositionHasChanged) + { + const QPointF new_pos = value.toPointF(); + if (!new_pos.isNull()) + { + prepareGeometryChange(); + m_p1 += new_pos; + m_p2 += new_pos; + if (m_cable) { + m_cable->movePartCores(m_part_uuid, new_pos); + } + syncGeometry(); + update(); + QGraphicsItem::setPos(QPointF()); + } + } + return QetGraphicsItem::itemChange(change, value); +} + +/** + @brief CablePart::editProperty + Open the dialog which edits the properties of the cable this line + belongs to -- the number, the type, the installation, the place. They + belong to the cable, so editing them here changes them for every line + of that cable, on every folio. +*/ +void CablePart::editProperty() +{ + if (!m_cable || !diagram() || diagram()->isReadOnly()) return; + + //Asking for the whole cable is another thing than putting one + //of its cores down: anything which waited for a click stops + //waiting -- on this line or on any other, since only one of + //them can wait at a time -- and he can start over from this + //dialog. + cancelPlacing(); + + CablePropertiesDialog dialog(m_cable, diagram(), this, + diagram()->views().isEmpty() + ? nullptr : diagram()->views().constFirst()); + dialog.exec(); +} + +/** + @brief CablePart::startPlacingCore + Give this line the mouse and wait for the click which puts that core + of its cable down: the core follows the line wherever the mouse comes + near it, drawn where the click would leave it -- on the line, at a + grid step, and never past either end of it. + + It is always this very section which takes the core, never the first + section of the cable: a cable running over two folios stands on two + lines, and the one whose dialog was asked for is the one he is + working on. + @param core which core of the cable is being put down +*/ +void CablePart::startPlacingCore(int core) +{ + if (!m_cable || !diagram() || diagram()->isReadOnly()) return; + if (core < 0 || core >= m_cable->coreCount() || m_cable->hasCore(core)) return; + if (m_dragged_core >= 0 || m_stretch_end > 0 || m_line_moved) return; + if (m_pending_core == core) + { + //He asks again for the very core which is waiting already: + //there is nothing to arm a second time, but the mouse still + //goes to the line -- asking twice has to behave exactly like + //asking once, and the mark is where he is being sent to. + sendMouseToLine(); + return; + } + + cancelPlacement(); + + //Only one line at a time may wait for its click, and it is the + //one whose dialog was asked for: a line standing on another + //folio lets go as well, so Escape and the right button always + //find the very line he is working on. + cancelPlacing(); + + m_pending_core = core; + s_placing = this; + m_drag_scene = m_p1; + m_pending_valid = false; + + //Where the mouse stands at this very moment, so that a dialog + //which happened to cover the line does not have to be closed by + //a click the core would take for itself -- and then straight to + //the line, which is where the next click belongs. + sendMouseToLine(); + + if (!isSelected()) { + setSelected(true); + } + grabMouse(); + setCursor(Qt::CrossCursor); + update(); +} + +/** + @brief CablePart::sendMouseToLine + Send the mouse to this line, onto the grid step the mark of the + waiting core stands on, so that the very next click is the click + which puts that core down: he picks the core out of a list, and the + line may well be across the screen from where that list stands. + + The mouse goes wherever the line stands, as long as that line is + standing in some window he can see -- there is nothing else to ask. + It is never the mark which is held back: he asked for this core, the + very next click is the one which puts it down, and the mouse is + meant to be there when he clicks. +*/ +void CablePart::sendMouseToLine() +{ + if (!scene() || scene()->views().isEmpty()) return; + + QGraphicsView *view = scene()->views().constFirst(); + const QPointF scene_pos = view->mapToScene(view->mapFromGlobal(QCursor::pos())); + m_drag_scene = placePosition(scene_pos); + m_pending_valid = QLineF(scene_pos, m_drag_scene).length() <= place_grab; + view->setFocus(); + + //The window he is actually looking at: a folio may stand in + //more than one window, and only the one which is on screen can + //be sent the mouse. The mark itself is drawn on the line + //whenever he asks for the core, seen or not -- whether a click + //keeps it or sends it away is worked out from the click itself + //(see mousePressEvent), so nothing here may stop the mouse + //from going where he just told it to go. + QGraphicsView *shown = nullptr; + for (QGraphicsView *candidate : scene()->views()) + { + if (candidate && candidate->isVisible()) { + shown = candidate; + break; + } + } + + if (shown) + { + QWidget *viewport = shown->viewport(); + const QPoint there = viewport->mapFrom(shown, shown->mapFromScene(m_drag_scene)); + const QPoint target = viewport->mapToGlobal(there); + const QPointF mark = m_drag_scene; + QPointer self(this); + + QCursor::setPos(target); + + //And again a little later: a pop-up which has just closed + //keeps the mouse in hand for a moment longer, and the system + //only lets go once the menu is really gone from the screen. + //A jump asked for earlier than that is dropped on the floor, + //while one asked for afterwards always goes through -- so the + //very same jump is asked for three times, as long as this + //line is still the one waiting and its mark still stands on + //that very spot. + const int waits[] = {0, 70, 250}; + for (const int wait : waits) + { + QTimer::singleShot(wait, viewport, [self, target, mark]() { + if (!self || self->m_pending_core < 0 || self->m_drag_scene != mark) return; + + //The same pop-up may have kept the mouse out of + //this line's hands while it was closing: the line + //waits for the click, so it has to be the one + //holding the mouse. + if (self->scene() && self->scene()->mouseGrabberItem() != self.data()) { + self->grabMouse(); + } + + QCursor::setPos(target); + }); + } + } + update(); + +} + +/** + @brief CablePart::cancelPlacement + Stop waiting for the click which would put a core down, without + putting anything down anywhere: the core goes back to being a free + one in the dialog it came from. +*/ +void CablePart::cancelPlacement() +{ + if (s_placing == this) s_placing = nullptr; + if (m_pending_core < 0) return; + + m_pending_core = -1; + m_pending_valid = false; + ungrabMouse(); + unsetCursor(); + update(); +} + +/** + @brief CablePart::placingPart + @return the line which waits for the click putting a core down right + now, or nullptr when no line does +*/ +CablePart *CablePart::placingPart() +{ + return s_placing.data(); +} + +/** + @brief CablePart::cancelPlacing + End the wait of whichever line stands in it, without putting anything + down anywhere: the core goes back to being a free one. + @return true when a line was waiting for its click +*/ +bool CablePart::cancelPlacing() +{ + if (!s_placing) return false; + + s_placing->cancelPlacement(); + return true; +} + +/** + @brief CablePart::placeCore + Put a core which is not on the sheet yet onto this line, standing + where the mouse says: on a wire this line runs across it takes that + wire like any other label would -- including asking before taking + one another cable holds -- and where the line runs across nothing it + merely stands and names no wire at all. + + The core belongs to this very section, so a cable standing on two + folios gets it on the line he asked for rather than on the first one. + @param core which core of the cable is being put down + @param at where its label is to stand, in scene coordinates + @return false when nothing was put down +*/ +bool CablePart::placeCore(int core, const QPointF &at) +{ + if (!m_cable || !diagram() || diagram()->isReadOnly()) return false; + if (core < 0 || core >= m_cable->coreCount()) return false; + if (m_cable->hasCore(core)) return false; + + //Every core the cable holds at this moment: the addition is + //kept as one step of undo together with whatever the click + //makes of it, so that taking it back leaves no trace. + const QList before = m_cable->usedCores(); + + CableCore fresh; + fresh.core = core; + fresh.part = m_part_uuid; + fresh.conductor = QUuid(); + fresh.position = at; + m_cable->setCore(fresh); + + if (!rebindCore(core, at, &before)) + { + //He called the question off, so nothing is put down at + //all: the core goes back to being a free one, and no step + //of undo was written for what never happened. + m_cable->setCores(before); + return false; + } + return true; +} diff --git a/sources/cable/cablepart.h b/sources/cable/cablepart.h new file mode 100644 index 000000000..a3b8744fa --- /dev/null +++ b/sources/cable/cablepart.h @@ -0,0 +1,513 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEPART_H +#define CABLEPART_H + +#include "cable.h" +#include "cablemanager.h" +#include "../qetgraphicsitem/qetgraphicsitem.h" + +#include +#include +#include +#include +#include + +class Cable; +class CablePartData; +class Conductor; +class QUndoCommand; +class QWidget; + +/** + @brief The CablePart class draws one section of a cable: the trunk + line of one folio, the number and the type of the cable at its left, + and a slash with the colour of a core wherever that core crosses a + conductor. + + All of it is a view of the Cable: the geometry lives in the cable + itself, so lengthening the trunk line is purely optical. What a core + wires is read off where its colour label stands: dropping a label + gives that core the wire it lands on, and letting go of a moved line + works the entries out the same way, from where the labels have come + to rest. A label is never sent off to look for a wire and never + moved to reach one -- it goes on standing where the user put it -- + and no gesture at all takes a core away from its cable. +*/ +class CablePart : public QetGraphicsItem +{ + Q_OBJECT + + public: + explicit CablePart(const CablePartData &data, QGraphicsItem *parent = nullptr); + explicit CablePart(QGraphicsItem *parent = nullptr); + ~CablePart() override; + + enum {Type = UserType + 1012}; + int type() const override {return Type;} + + void setCable(Cable *cable); + Cable *cable() const; + QUuid partUuid() const; + ///Bind the item to its cable once the project is loaded + void refreshPending(); + + void setLine(const QPointF &p1, const QPointF &p2); + QLineF line() const; + QPointF firstPoint() const {return m_p1;} + QPointF secondPoint() const {return m_p2;} + + QRectF boundingRect() const override; + QPainterPath shape() const override; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; + QString name() const override; + + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; + ///Shows the hand over a line which points at another folio + void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override; + ///Opens the dialog editing the properties of the whole cable + void editProperty() override; + + /** + Give this line the mouse and wait for the next click to put + down a core of its cable which is not on the sheet yet: the + core follows this line wherever the mouse comes near it and + the click leaves it standing there, snapped to the grid like + anything else drawn. + + It is always this very section which takes it, never the + first section of the cable: a cable running over two folios + stands on two lines, and the one whose dialog was asked for + is the one being worked on. + @param core which core of the cable is being put down + */ + void startPlacingCore(int core); + ///Stop waiting for that click, putting nothing down at all + void cancelPlacement(); + + /** + The line which waits for the click putting one of its cores + down at this very moment, anywhere in the application, or + nullptr when no line does. + + Only one line at a time may wait -- taking the core always + belongs to the line whose dialog was asked for -- so Escape + and the right button can simply ask here and always act on + the right one, however many folios are open. + */ + static CablePart *placingPart(); + /** + End that wait wherever it stands, without putting anything + down anywhere: the core goes back to being a free one. + + Used by the sheet itself, which gets the right button and + Escape before any item does (see DiagramView). + @return true when a line was waiting for its click + */ + static bool cancelPlacing(); + + /** + Which core of this cable has its colour label standing at + that very place on the sheet -- asked by the sheet itself + when the right button comes down on a line, so that the + menu which opens belongs to that one core rather than to + the whole folio. + @param scene_pos a point of the sheet, in scene coordinates + @return the core standing there, -1 when none does + */ + int coreAt(const QPointF &scene_pos) const; + /** + Take one core off this line: it names no wire any more and + goes back to being a free slot of its cable, listed among + the ones which stand nowhere -- the very opposite of + putting one down from that list. + + Kept as one undo step, so a single undo puts the label + back exactly where it stood. + @param core which core standing on this line is taken off + @return true when a core was taken off + */ + bool takeCoreOffLine(int core); + + /** + Which wire this line runs across at the very place a colour + label stands -- so that the entry of a wire follows the label + instead of the label being sent off to find a wire. Also asked + by a copy being put down (CableCopy::wire), which must not + move any label to reach a wire either. + @param crossings every place this line runs across a wire + @param core the core being worked out + @param at where its label stands, in scene coordinates + @return the wire to give the core, or nullptr + */ + Conductor *wireFor(const QList &crossings, + const CableCore &core, const QPointF &at) const; + + /** + Move this line from outside: the sheet moving a whole + selection of elements and lines at once asks every line + of the selection to come along, one step after the other, + exactly as if the finger had been on the line itself, so + that one gesture moves everything which is marked instead + of two halves of the selection going different ways. + + The calls come in order -- begin once, continue as often + as the gesture needs, settle once for the whole + selection, then either done or abort -- and a line which + never moves simply has no undo step to hand over. + */ + void beginLineGesture(); + ///Take one more step of such a move, by that much + void continueLineGesture(const QPointF &delta); + /** + Where this line comes to rest, worked out the same way as + after a drag of its own: which wire every colour label now + stands on, asked before anything changes hands. The step + of this line is handed over rather than pushed, so that + the movement as a whole ends up as one single undo step. + @param steps receives the undo step of this line, if any + @return false when he called the gesture off + */ + bool settleLineGesture(QList &steps); + ///Put this line back where the gesture found it + void abortLineGesture(); + ///The gesture is over for this line: forget where it began + void doneLineGesture(); + + /** + One cross reference of this section as the PDF export + needs it: where the text of the reference stands on this + folio, and on the folio it points at where the section it + names stands -- so that exporting makes it a clickable + link the way a cross reference of an element already is. + + Both rectangles are in scene coordinates, each of its own + folio. + */ + struct PdfRef + { + ///The folio the reference points at + Diagram *diagram = nullptr; + ///Where the text of the reference stands on this folio + QRectF here; + ///Where the section it names stands on that folio + QRectF there; + }; + QList pdfRefs() const; + + protected: + QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; + + private: + /** + One line of the label at the left of the trunk line: + what is written, which field of the cable it comes from + and -- worked out from what that field asks for -- the + font it is written with, the way it lines up and the + rectangle it sits in. + + Every line carries its own font, because every field + may have been given one of its own: Anlage, Ort and + Désignation stand in one block, and their lines may + very well no longer all be the same size once he has + set them apart. + */ + struct LabelLine + { + QString text; + QString key; + QFont font; + Qt::Alignment align = Qt::AlignRight; + qreal width = 0.0; + qreal height = 0.0; + QRectF rect; + }; + + /** + One line of the label which points at a folio this cable + runs on besides this one: that folio, the section of the + cable standing there, and the text this project asks for + such a reference -- the format chosen for the type + "Cable" under Cross-references, written out once per folio, + in the order the folios turn. + */ + struct CrossRef + { + ///The other folio, which always exists while listed + Diagram *diagram = nullptr; + ///Which section of the cable stands on it + QUuid part; + ///The text as it is written on the drawing + QString text; + }; + + QFont textFont() const; + ///The font the colours of the cores are written with + QFont coreFont() const; + ///The font one named text of this cable is written with + QFont fontOf(const QString &key) const; + ///How one named text of this cable lines up at the line + Qt::Alignment alignOf(const QString &key) const; + /** + How far the whole label at the left of the line is + nudged on the drawing: over the line, under it, left + or right of the end of it. A nudge only, which moves + the texts and never the line. + @return the distance in scene units + */ + QPointF textOffset() const; + /** + How far the row of colours is nudged on the drawing: + again a distance on the texts only, the slashes and + the entries behind them staying where they stand. + @return the distance in scene units + */ + QPointF coreOffset() const; + /** + Where a text of this width starts, at the left end of + the trunk line: before the line when it is set to end + there (the way it always did), on the line when it is + centred, after it when it starts there. + @param key the field the text comes from + @param width how wide the text is, in scene units + @return the x of the left of the text + */ + qreal textLeft(const QString &key, qreal width) const; + bool trunkIsHorizontal() const; + QList labelLines() const; + /** + The references to the other folios this cable runs on, + one line each, stacked under the length of the cable: + at the very bottom of everything the line says. + @return those lines, in the order crossRefs() lists them + */ + QList refLines() const; + /** + Every other folio this cable runs on, one entry each, in + the order the folios turn -- empty when the cable runs on + this folio alone, which is the usual case. + */ + QList crossRefs() const; + /** + Which of those references stands at that very place, so + that both the hand of the mouse and a double click know + which line they are about. + @param scene_pos a point of the sheet, in scene coordinates + @return the index of that reference, -1 when none stands there + */ + int crossRefAt(const QPointF &scene_pos) const; + /** + Send the mouse to the section of the cable which stands + on the folio the reference at that place points at -- the + very leap an element's cross reference takes, straight to + the place to look at. + @param scene_pos a point of the sheet, in scene coordinates + @return true when the click stood on a reference + */ + bool goToCrossRef(const QPointF &scene_pos); + /** + Keep the reference lines up to date with the project: a + folio which is added, removed or moved changes what they + say, and so does the format chosen under Cross-references. + */ + void setUpXrefHooks(); + QString typeText() const; + QString lengthText() const; + QRectF labelRect() const; + qreal underTop() const; + QRectF typeRect() const; + QRectF lengthRect() const; + QRectF coreLabelRect(const QPointF &at, const QString &color) const; + QPointF coreLabelPivot(const QPointF &at, const QString &color) const; + QPointF coreDrawPosition(const CableCore &core) const; + bool coreDrawn(const CableCore &core) const; + QPointF dragPosition(const QPointF &scene_pos) const; + /** + Where the mouse would put down a core which waits to be + put down: the mouse projected onto the line itself, at a + grid step, and never past either end of the line -- the + same coordinates a dragged label would be drawn at, only + worked out from the mouse rather than from a gesture. + @param scene_pos where the mouse stands, in scene coordinates + @return where the slash would be drawn + */ + QPointF placePosition(const QPointF &scene_pos) const; + /** + Snap a distance measured along the line to a grid step, in + the coordinates of the sheet -- so a horizontal line steps + along x and a vertical one along y. Holding Ctrl lets go of + the grid, as everywhere else on the sheet. + @param along how far from the first end of the line + @return that distance at a grid step + */ + qreal stepAlong(qreal along) const; + void drawLabel(QPainter *painter, const QColor &ink) const; + void drawCores(QPainter *painter, const QColor &ink) const; + ///Draw the slash of one core and the colour written beside it + void drawCoreMark(QPainter *painter, const QColor &ink, + const QPointF &at, const QString &color) const; + void syncGeometry(); + bool labelAt(int core, const QPointF &scene_pos) const; + ///Answer to the question of taking a wire another cable holds + enum class ClaimAnswer { + ///Take it: the other cable lets it go + Take, + ///Leave it: nothing changes hands, the rest still happens + Leave, + ///Cancel: this whole gesture is called off, as if undone + Cancel + }; + /** + @param core which core is being let go + @param dropped_at where its label comes to rest + @param before every core the cable held before this one was + added to it, so that the one step of undo takes the addition + back as well; nullptr while a core which is already on the + sheet is merely moved + @return false when the user called the whole thing off + */ + bool rebindCore(int core, const QPointF &dropped_at, + const QList *before = nullptr); + /** + Put a core which is not on the sheet yet onto this line: it + stands where the mouse says, and if a wire runs across that + very place it names that wire the same way a dragged label + would. Called off means back to being a free core, with one + step of undo to take it away again. + @param core which core of the cable is being put down + @param at where its label is to stand, in scene coordinates + @return false when nothing was put down + */ + bool placeCore(int core, const QPointF &at); + /** + Send the mouse to this line, to the grid step the mark of + the waiting core stands on, so that the very next click is + the one which puts the core down -- wherever he asked for + the core from, and whether he asks for this very one a + second time or not. The mouse goes there only where the + line is really in sight: a folio hidden behind another + one, or off the edge of the view, is left alone rather + than jumped to. + */ + void sendMouseToLine(); + void reconcileCores(QList &cores, const QPointF &delta) const; + bool settleCores(QList &cores) const; + ClaimAnswer mayClaim(Conductor *conductor) const; + ClaimAnswer mayClaimSeveral(const QList &conductors) const; + ClaimAnswer askClaim(QWidget *parent, + const QString &title, + const QString &question) const; + + private: + ///The one line which waits for the click putting a core down, + ///null once there is none: taking the core belongs to the line + ///whose dialog was asked for, never to the first line of the + ///cable, and the sheet has to be able to cancel that wait + ///without knowing which scene it stands in + static QPointer s_placing; + QPointer m_cable; + ///Identity of the cable this part belongs to, kept until the + ///project has loaded it and setCable() can be called + QUuid m_pending_cable; + QUuid m_part_uuid; + QPointF m_p1; + QPointF m_p2; + + ///Core being dragged by its slash, -1 when none + int m_dragged_core = -1; + ///Core waiting to be put down by the next click, -1 when none + int m_pending_core = -1; + ///True while the mouse stands close enough to this line for + ///the waiting core to be put down where it shows + bool m_pending_valid = false; + ///True between the click which put a core down and the second + ///click Qt counts as a double click, so that a click which was + ///there to place something does not open the dialog as well + bool m_just_placed = false; + ///Where the dragged slash follows the mouse + QPointF m_drag_scene; + QPointF m_press_scene; + QPointF m_move_p1; + QPointF m_move_p2; + ///True while the trunk line is being dragged, so undo knows + ///there is a move to take back + bool m_line_moved = false; + ///Which end of the trunk line is being pulled by one of its + ///blue points: 0 none, 1 the first end, 2 the second + int m_stretch_end = 0; + ///Every core as it stands while the line is being dragged: + ///every label is carried along by however far the line has + ///come, so the line, its description and the colours of its + ///cores move as one thing and no label ever jumps, lands on + ///a neighbour's wire or disappears under his hand + QList m_line_drag_cores; + ///Every core as it was when the line was picked up, so undo + ///can put the labels back with the line + QList m_cores_before; + ///Another line he picked up at the same time: a drag takes + ///the whole selection with it, so each of them is carried + ///along and each of them goes back to where it stood if he + ///calls the gesture off + struct CarriedLine + { + CablePart *part = nullptr; + ///Where that line ran when the gesture began + QPointF p1; + QPointF p2; + ///What its cable held when the gesture began + QList cores; + }; + QList m_carried; + + ///True when the sheet has been told that the rest of the + ///selection comes along with this line (see carrySelection), + ///so that it is told once per gesture rather than once per + ///step -- and never again once it had nothing to move + bool m_mover_started = false; + ///How far of this gesture the sheet has already been told + QPointF m_told_mover; + + ///The lines which keep the references to the other folios of + ///this cable up to date, taken down and taken again whenever + ///this section comes to stand in another folio + QList m_xref_connections; + + void carryCompanions(const QPointF &delta); + /** + Everything else he marked at the same time comes along + too -- the elements, the texts and the images of the same + selection -- by the very step this line has taken, so + that one gesture moves all of it instead of the lines + going one way and the rest another. + + What this line measures is how far it has come all in + altogether, from where the press found it, while the + sheet takes a step at a time: so only the part it has not + been told yet is handed over. + @param total_delta how far this line has come since the press + */ + void carrySelection(const QPointF &total_delta); + bool settleCompanions(QList &steps); + void putCompanionsBack(); + void readyToSettle(QList &cores) const; +}; + +#endif // CABLEPART_H diff --git a/sources/cable/cablepropertiesdialog.cpp b/sources/cable/cablepropertiesdialog.cpp new file mode 100644 index 000000000..f489c4a44 --- /dev/null +++ b/sources/cable/cablepropertiesdialog.cpp @@ -0,0 +1,279 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablepropertiesdialog.h" + +#include "cablecreatedialog.h" +#include "cablepart.h" +#include "cablepropertieswidget.h" +#include "editcablecommand.h" +#include "../diagram.h" +#include "../qeticons.h" + +#include +#include +#include +#include +#include +#include +#include + +/** + @brief CablePropertiesDialog::CablePropertiesDialog + @param cable the cable being edited + @param diagram the folio the line was double-clicked on, whose undo + stack takes the edit back + @param part the very line which was double-clicked: a core put down + from this dialog lands on that line, never on the first line of a + cable which stands on two folios + @param parent +*/ +CablePropertiesDialog::CablePropertiesDialog(Cable *cable, + Diagram *diagram, + CablePart *part, + QWidget *parent) : + QDialog(parent), + m_cable(cable), + m_diagram(diagram), + m_part(part) +{ + setWindowTitle(tr("Cable")); + + auto *layout = new QVBoxLayout(this); + m_fields = new CablePropertiesWidget(this); + layout->addWidget(m_fields); + + //The button beside the type field: it opens the window which + //opens when a cable line has just been drawn, in the mode where + //it changes the type of this very cable. + connect(m_fields, &CablePropertiesWidget::typeChangeRequested, + this, &CablePropertiesDialog::changeTypeRequested); + + m_cores = new QLabel(this); + m_cores->setWordWrap(true); + layout->addWidget(m_cores); + + //The cores the type offers which are not on the sheet yet. + //Double-clicking one brings it in: the line it was asked from + //takes the mouse and the next click puts the core down there. + m_free_label = new QLabel(tr("Unplaced cores:"), this); + m_free_cores = new QListWidget(this); + m_free_cores->setSelectionMode(QAbstractItemView::SingleSelection); + m_free_cores->setAlternatingRowColors(true); + m_free_cores->setToolTip(tr("Double-click a core to place it on the " + "line: the line follows the mouse and a " + "click leaves it where you aimed.")); + m_free_cores->setContextMenuPolicy(Qt::CustomContextMenu); + connect(m_free_cores, &QWidget::customContextMenuRequested, + this, &CablePropertiesDialog::freeCoreMenu); + connect(m_free_cores, &QListWidget::itemDoubleClicked, + this, &CablePropertiesDialog::placeRequested); + connect(m_free_cores, &QListWidget::itemActivated, + this, &CablePropertiesDialog::placeRequested); + layout->addWidget(m_free_label); + layout->addWidget(m_free_cores); + + auto *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + connect(buttons, &QDialogButtonBox::accepted, this, &CablePropertiesDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, this, &CablePropertiesDialog::reject); + layout->addWidget(buttons); + + if (m_cable) { + m_fields->setProperties(m_cable->properties()); + } + updateCoreCount(); + + fillFreeCores(); + + setMinimumWidth(400); +} + +/** + @brief CablePropertiesDialog::updateCoreCount + Say how many cores this cable has now and how many of them are wired + to a conductor. It is said again after the type was changed, since + the new type may hold more cores -- or fewer. +*/ +void CablePropertiesDialog::updateCoreCount() +{ + if (!m_cores) return; + + if (!m_cable) + { + m_cores->setText(tr("No cable.")); + return; + } + + m_cores->setText(tr("%1 of %2 cores wired to a conductor", + "how many cores of this cable are wired", + m_cable->usedCoreCount()) + .arg(m_cable->usedCoreCount()) + .arg(m_cable->coreCount())); +} + +/** + @brief CablePropertiesDialog::changeTypeRequested + Open the window which opens when a cable line has just been drawn, + in the mode where it changes the type of this very cable: he picks + the new type there out of the cable type file, and the cable takes + it -- cores reworked, marks redrawn -- as one single undo step. + + Whatever he typed into the form is written first, so the change and + the typing cannot overwrite each other; and the form is filled in + again afterwards, since pressing OK right after would otherwise + write the old type back. +*/ +void CablePropertiesDialog::changeTypeRequested() +{ + if (!m_cable) return; + + apply(); + + CableCreateDialog dialog(m_diagram, m_cable, this); + if (dialog.exec() != QDialog::Accepted) return; + + m_fields->setProperties(m_cable->properties()); + updateCoreCount(); + fillFreeCores(); +} + +/** + @brief CablePropertiesDialog::fillFreeCores + List every core the type of this cable offers and which stands + nowhere on the sheet: those are the ones he can still put down. The + list is of no use when there is none, so it takes no room then. +*/ +void CablePropertiesDialog::fillFreeCores() +{ + if (!m_free_cores) return; + + m_free_cores->clear(); + for (int i = 0; m_cable && i < m_cable->coreCount(); ++i) + { + if (m_cable->hasCore(i)) continue; + + const QString color = m_cable->colorOfCore(i); + auto *item = new QListWidgetItem( + color.isEmpty() ? tr("Core %1").arg(i + 1) + : tr("Core %1 — %2").arg(i + 1).arg(color), + m_free_cores); + item->setData(Qt::UserRole, i); + } + + const bool any = m_part && m_free_cores->count() > 0; + m_free_label->setVisible(any); + m_free_cores->setVisible(any); + if (!any) return; + + //As high as the entries it really shows, six of them at most: + //a handful of free cores must not turn the dialog into a wall. + const int row = qMax(m_free_cores->sizeHintForRow(0), 18); + m_free_cores->setFixedHeight(row * qMin(6, m_free_cores->count()) + + 2 * m_free_cores->frameWidth() + 4); +} + +/** + @brief CablePropertiesDialog::placeRequested + He picked one of the cores which stand nowhere: whatever is typed in + the form is written first, the dialog closes, and the line he asked + it from takes the mouse -- so the core goes onto that very line, and + the next click leaves it standing there. + @param item the entry he double-clicked +*/ +void CablePropertiesDialog::placeRequested(QListWidgetItem *item) +{ + //A double click reports itself twice on some platforms (once as + //activated, once as double-clicked): the first one takes the + //mouse away, the second must not ask for it again. + if (!item || !m_part || m_placing) return; + + m_placing = true; + const int core = item->data(Qt::UserRole).toInt(); + QPointer part = m_part; + + apply(); + QDialog::accept(); + + part->startPlacingCore(core); +} + +/** + @brief CablePropertiesDialog::freeCoreMenu + The small menu a right click on a core which stands nowhere opens: + one entry, doing what a double click does -- this dialog writes + whatever he typed, closes itself, the line he asked it from takes + the mouse, the mark shows on that line at once and the mouse is put + down there, so that the very next click leaves the core standing on + that line. + + @param pos where he right-clicked, in list coordinates +*/ +void CablePropertiesDialog::freeCoreMenu(const QPoint &pos) +{ + QListWidgetItem *item = m_free_cores ? m_free_cores->itemAt(pos) : nullptr; + if (!item || !m_part || m_placing) return; + + m_free_cores->setCurrentItem(item); + + QMenu menu(m_free_cores); + QAction *place = menu.addAction(tr("Place this core on the line")); + place->setIcon(QET::Icons::Cable); + + if (menu.exec(m_free_cores->viewport()->mapToGlobal(pos)) == place) { + //Gone before he is sent off: this dialog is closing, the + //mouse goes to the line and nothing may be left standing + //over the place it is sent to. + menu.hide(); + placeRequested(item); + } +} + +/** + @brief CablePropertiesDialog::accept + Whatever was typed here is written into the cable as one undo step, + and the cable works out the cable field of every conductor it feeds + again on its own: rename the cable and every drawing which shows it + follows. +*/ +void CablePropertiesDialog::accept() +{ + apply(); + QDialog::accept(); +} + +/** + @brief CablePropertiesDialog::apply + Everything the form holds goes into the cable as one single undo + step -- and only when something really changed, so that closing the + dialog by any means leaves no step of undo to walk back through. +*/ +void CablePropertiesDialog::apply() +{ + if (!m_cable) return; + + const CableProperties before = m_cable->properties(); + const CableProperties after = m_fields->properties(); + if (after != before) + { + if (m_diagram) { + m_diagram->undoStack().push( + new ChangeCablePropertiesCommand(m_cable, before, after)); + } else { + m_cable->setProperties(after); + } + } +} diff --git a/sources/cable/cablepropertiesdialog.h b/sources/cable/cablepropertiesdialog.h new file mode 100644 index 000000000..b0eddcf1e --- /dev/null +++ b/sources/cable/cablepropertiesdialog.h @@ -0,0 +1,99 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEPROPERTIESDIALOG_H +#define CABLEPROPERTIESDIALOG_H + +#include "cable.h" + +#include +#include + +class CablePropertiesWidget; +class CablePart; +class Diagram; +class QLabel; +class QListWidget; +class QListWidgetItem; + +/** + @brief The dialog which edits a cable once it is drawn. + + Everything it holds belongs to the cable itself rather than to the + line which was drawn: whatever is typed here applies to every section + of that cable, on every folio, and the conductors it feeds get their + cable field worked out again as soon as it says it changed. + + Under the count of cores it lists the cores of the type which stand + nowhere on the sheet yet: double-clicking one sends it to the very + line this dialog was asked from, which takes the mouse until he + clicks and leaves the core standing there. +*/ +class CablePropertiesDialog : public QDialog +{ + Q_OBJECT + + public: + /** + @param cable the cable being edited + @param diagram the folio whose undo stack takes the edit + @param part the very line which was double-clicked, where a + core chosen in this dialog is to be put down + @param parent + */ + explicit CablePropertiesDialog(Cable *cable, + Diagram *diagram = nullptr, + CablePart *part = nullptr, + QWidget *parent = nullptr); + + void accept() override; + + private: + ///Everything the form holds goes into the cable, as one step + void apply(); + ///What the count of cores under the form says right now + void updateCoreCount(); + ///He asked for the window choosing another type for this cable + void changeTypeRequested(); + ///Lists the cores of the type which stand nowhere yet + void fillFreeCores(); + ///He double-clicked one of them: put it down on the line + void placeRequested(QListWidgetItem *item); + /** + The small menu a right click on a core which stands + nowhere opens: one entry doing what a double click does + -- the dialog closes, the line takes the mouse, the mark + shows on it at once and the mouse is put down there. + @param pos where he right-clicked, in list coordinates + */ + void freeCoreMenu(const QPoint &pos); + + private: + QPointer m_cable; + Diagram *m_diagram = nullptr; + ///The line whose dialog this is, and the one a core chosen + ///here is put down on + QPointer m_part; + CablePropertiesWidget *m_fields = nullptr; + QLabel *m_cores = nullptr; + QLabel *m_free_label = nullptr; + QListWidget *m_free_cores = nullptr; + ///True from the moment he picks a core to put down + bool m_placing = false; +}; + +#endif // CABLEPROPERTIESDIALOG_H diff --git a/sources/cable/cablepropertieseditorwidget.cpp b/sources/cable/cablepropertieseditorwidget.cpp new file mode 100644 index 000000000..a5516aaeb --- /dev/null +++ b/sources/cable/cablepropertieseditorwidget.cpp @@ -0,0 +1,389 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablepropertieseditorwidget.h" + +#include "cablecreatedialog.h" +#include "cablepart.h" +#include "cablepropertieswidget.h" +#include "editcablecommand.h" +#include "../qeticons.h" +#include "../qetproject.h" + +#include +#include +#include +#include +#include +#include +#include + +/** + @brief CablePropertiesEditorWidget::CablePropertiesEditorWidget + @param cable the cable being edited + @param part the line of that cable this panel was opened by, which + is the line a core picked here is put down on + @param parent parent widget +*/ +CablePropertiesEditorWidget::CablePropertiesEditorWidget(Cable *cable, + CablePart *part, + QWidget *parent) : + PropertiesEditorWidget(parent), + m_fields(new CablePropertiesWidget(this)), + m_info(new QLabel(this)), + m_free_label(new QLabel(this)), + m_free_cores(new QListWidget(this)) +{ + m_info->setWordWrap(true); + + //The cores which stand nowhere yet, listed under the count of + //wired ones: double-clicking one puts it down on this very line + //without any dialog having to be opened for it. The list takes + //no keyboard focus, so clicking it never takes the drawing away + //from the user -- startPlacingCore() hands the focus to the + //sheet itself, which is where Escape has to be heard. + m_free_label->setText(tr("Unplaced cores:")); + m_free_label->setVisible(false); + m_free_cores->setSelectionMode(QAbstractItemView::SingleSelection); + m_free_cores->setAlternatingRowColors(true); + m_free_cores->setFocusPolicy(Qt::NoFocus); + m_free_cores->setToolTip(tr("Double-click a core to place it on the " + "line: the line follows the mouse and a " + "click leaves it where you aimed.")); + m_free_cores->setVisible(false); + m_free_cores->setContextMenuPolicy(Qt::CustomContextMenu); + connect(m_free_cores, &QWidget::customContextMenuRequested, + this, &CablePropertiesEditorWidget::freeCoreMenu); + connect(m_free_cores, &QListWidget::itemDoubleClicked, + this, &CablePropertiesEditorWidget::placeRequested); + connect(m_free_cores, &QListWidget::itemActivated, + this, &CablePropertiesEditorWidget::placeRequested); + + auto *layout = new QVBoxLayout(this); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(4); + layout->addWidget(m_fields); + + //The button beside the type field: it opens the window which + //opens when a cable line has just been drawn, in the mode where + //it changes the type of this very cable. + connect(m_fields, &CablePropertiesWidget::typeChangeRequested, + this, &CablePropertiesEditorWidget::changeTypeRequested); + + layout->addWidget(m_info); + layout->addWidget(m_free_label); + layout->addWidget(m_free_cores); + layout->addStretch(1); + + //Wide enough for the labels, the ticks, the fields, the buttons + //setting how a text is written and the two distances nudging + //the label and the row of colours -- they sit side by side. + setMinimumWidth(250); + setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); + + setDisabled(true); + setCable(cable, part); +} + +/** + @brief CablePropertiesEditorWidget::setCable + Set (or change) the cable whose properties are edited. + @param cable + @param part the line of that cable this panel was opened by: the one + a core picked in the list is put down on, and null while no single + line is selected -- then nothing can be put down and the list stays + out of the way +*/ +void CablePropertiesEditorWidget::setCable(Cable *cable, CablePart *part) +{ + if (!cable) return; + m_part = part; + if (m_cable && m_cable != cable) + disconnect(m_cable, nullptr, this, nullptr); + + m_cable = cable; + //Keep the panel in sync when the cable is edited elsewhere (the + //dialog reached by double-clicking its line, for one): otherwise + //the panel would write back what it held before that edit. + connect(m_cable, &Cable::changed, + this, &CablePropertiesEditorWidget::updateUi, Qt::UniqueConnection); + setEnabled(true); + updateUi(); +} + +/** + @brief CablePropertiesEditorWidget::setLiveEdit + In live-edit mode (how the panel uses every editor) an edit is + applied as soon as a field is finished, rather than waiting for a + call to apply(). On top of that the text itself is written onto the + cable with every character, so what he types shows up on the drawing + while he is still typing it -- the whole editing of one field stays + one single undo step, which is worked out when the field is left. + @param live_edit true to enable live edit + @return always true +*/ +bool CablePropertiesEditorWidget::setLiveEdit(bool live_edit) +{ + if (m_live_edit == live_edit) return true; + m_live_edit = live_edit; + + if (m_live_edit) { + m_live_connection = connect(m_fields, &CablePropertiesWidget::propertiesEdited, + this, &CablePropertiesEditorWidget::apply); + connect(m_fields, &CablePropertiesWidget::propertiesTyped, + this, &CablePropertiesEditorWidget::applyLive); + } else { + disconnect(m_live_connection); + disconnect(m_fields, &CablePropertiesWidget::propertiesTyped, + this, &CablePropertiesEditorWidget::applyLive); + } + return true; +} + +/** + @brief CablePropertiesEditorWidget::applyLive + Put what is being typed straight onto the cable, without pushing an + undo step: the whole editing of one field is one step, which + apply() works out from what the panel showed when the field is left. +*/ +void CablePropertiesEditorWidget::applyLive() +{ + //Ignore the signals sent while the form is being filled in: at + //that moment it holds a half loaded state. + if (m_updating) return; + if (!m_cable) return; + + m_live_cable = m_cable; + m_cable->setProperties(m_fields->properties()); +} + +/** + @brief CablePropertiesEditorWidget::changeTypeRequested + Open the window which opens when a cable line has just been drawn, + in the mode where it changes the type of this very cable: he picks + the new type there out of the cable type file, and the cable takes + it -- cores reworked, marks redrawn -- as one single undo step. + + The form is filled in again afterwards rather than through the usual + path: the type has just changed under it, and it may not go on + offering the one which was left. +*/ +void CablePropertiesEditorWidget::changeTypeRequested() +{ + if (!m_cable) return; + + CableCreateDialog dialog(m_part ? m_part->diagram() : nullptr, + m_cable, + this); + if (dialog.exec() != QDialog::Accepted) return; + + m_updating = true; + m_fields->setProperties(m_cable->properties()); + m_shown = m_cable->properties(); + m_updating = false; + updateInfo(); +} + +/** + @brief CablePropertiesEditorWidget::apply + Put what was typed onto the cable as one undo step. +*/ +void CablePropertiesEditorWidget::apply() +{ + //Ignore the signals sent while the form is being filled in: at + //that moment it holds a half loaded state. + if (m_updating) return; + if (!m_cable) return; + + if (QUndoCommand *undo = associatedUndo()) + { + auto *project = qobject_cast(m_cable->parent()); + if (project && project->undoStack()) { + project->undoStack()->push(undo); + } else { + m_cable->setProperties(m_fields->properties()); + delete undo; + } + } + m_shown = m_fields->properties(); +} + +/** + @brief CablePropertiesEditorWidget::associatedUndo + @return the edit as one undo step, or nullptr when nothing changed +*/ +QUndoCommand *CablePropertiesEditorWidget::associatedUndo() const +{ + if (!m_cable) return nullptr; + + const CableProperties after = m_fields->properties(); + if (after == m_shown) return nullptr; + return new ChangeCablePropertiesCommand(m_cable, m_shown, after); +} + +/** + @brief CablePropertiesEditorWidget::reset + Discard the edit in progress, putting back what the panel showed. +*/ +void CablePropertiesEditorWidget::reset() +{ + if (!m_cable) return; + m_updating = true; + m_fields->setProperties(m_shown); + m_updating = false; +} + +/** + @brief CablePropertiesEditorWidget::updateInfo + Say how many cores of this cable are wired to a conductor. +*/ +void CablePropertiesEditorWidget::updateInfo() +{ + if (!m_cable) return; + + m_info->setText(tr("%1 of %2 cores wired to a conductor", + "how many cores of this cable are wired", + m_cable->usedCoreCount()) + .arg(m_cable->usedCoreCount()) + .arg(m_cable->coreCount())); + + updateFreeCores(); +} + +/** + @brief CablePropertiesEditorWidget::updateFreeCores + List the cores the type of this cable offers which stand nowhere on + the sheet yet: those are the ones he can still put down, and they + come down straight from here, on the line this panel was opened by. + + The list is of no use when there is none -- and it cannot work at + all when no single line of the cable is the selected one, since a + core then has no line to be put down on -- so it takes no room then. +*/ +void CablePropertiesEditorWidget::updateFreeCores() +{ + if (!m_free_cores) return; + + const bool usable = m_cable && m_part && m_part->cable() == m_cable; + + m_free_cores->clear(); + if (usable) + { + for (int i = 0; i < m_cable->coreCount(); ++i) + { + if (m_cable->hasCore(i)) continue; + + const QString color = m_cable->colorOfCore(i); + auto *item = new QListWidgetItem( + color.isEmpty() ? tr("Core %1").arg(i + 1) + : tr("Core %1 — %2").arg(i + 1).arg(color), + m_free_cores); + item->setData(Qt::UserRole, i); + } + } + + const bool any = usable && m_free_cores->count() > 0; + m_free_label->setVisible(any); + m_free_cores->setVisible(any); + if (!any) return; + + //As high as the entries it really shows, four of them at most: + //the dock is small, and a handful of free cores must not turn + //it into a wall. + const int row = qMax(m_free_cores->sizeHintForRow(0), 18); + m_free_cores->setFixedHeight(row * qMin(4, m_free_cores->count()) + + 2 * m_free_cores->frameWidth() + 4); +} + +/** + @brief CablePropertiesEditorWidget::placeRequested + He double-clicked one of the cores which stand nowhere: this very + line takes the mouse and waits for the click which puts the core + down. There is no dialog to close here -- the panel stays where it + is, and it reads the cable back as soon as the core lands. + + @param item the entry he double-clicked +*/ +void CablePropertiesEditorWidget::placeRequested(QListWidgetItem *item) +{ + if (!item || !m_part) return; + + m_part->startPlacingCore(item->data(Qt::UserRole).toInt()); +} + +/** + @brief CablePropertiesEditorWidget::freeCoreMenu + The small menu a right click on a core which stands nowhere opens: + one entry, doing what a double click does -- the line takes the + mouse, the mark shows on it at once and the mouse is put down there, + so the very next click leaves the core standing on that line. + + @param pos where he right-clicked, in list coordinates +*/ +void CablePropertiesEditorWidget::freeCoreMenu(const QPoint &pos) +{ + QListWidgetItem *item = m_free_cores ? m_free_cores->itemAt(pos) : nullptr; + if (!item || !m_part) return; + + m_free_cores->setCurrentItem(item); + + QMenu menu(m_free_cores); + QAction *place = menu.addAction(tr("Place this core on the line")); + place->setIcon(QET::Icons::Cable); + + if (menu.exec(m_free_cores->viewport()->mapToGlobal(pos)) == place) { + //Gone before he is sent off: the mouse goes to the line + //and nothing may be left standing over the place it is + //sent to. + menu.hide(); + placeRequested(item); + } +} + +/** + @brief CablePropertiesEditorWidget::updateUi + Read the cable back into the panel. + + Not while a field is being typed in: writing what was just typed + back into that field would take the cursor away from the user with + every key, and it would take back the state the whole editing of + that field is measured against when the undo step is worked out. +*/ +void CablePropertiesEditorWidget::updateUi() +{ + if (!m_cable) return; + + if (m_fields->editing() && m_live_cable == m_cable) { + updateInfo(); + return; + } + + m_updating = true; + m_fields->setProperties(m_cable->properties()); + m_shown = m_cable->properties(); + updateInfo(); + m_updating = false; +} + +/** + @brief CablePropertiesEditorWidget::title + @return the panel title +*/ +QString CablePropertiesEditorWidget::title() const +{ + return tr("Cable"); +} diff --git a/sources/cable/cablepropertieseditorwidget.h b/sources/cable/cablepropertieseditorwidget.h new file mode 100644 index 000000000..52268a0ce --- /dev/null +++ b/sources/cable/cablepropertieseditorwidget.h @@ -0,0 +1,115 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEPROPERTIESEDITORWIDGET_H +#define CABLEPROPERTIESEDITORWIDGET_H + +#include "cable.h" + +#include "../PropertiesEditor/propertieseditorwidget.h" + +#include +#include +#include + +class CablePropertiesWidget; +class CablePart; +class QLabel; +class QListWidget; +class QListWidgetItem; + +/** + @brief The cable shown in the "Propriétés de la sélection" panel. + + Selecting a line of a cable used to bring up nothing at all there: + the panel only knew the item types it already had an editor for. + Now it holds the very fields the cable is filled in with -- each of + them with its own tick saying whether the drawing shows it -- and + what stands there is written back live, one undo step per edit. +*/ +class CablePropertiesEditorWidget : public PropertiesEditorWidget +{ + Q_OBJECT + + public: + explicit CablePropertiesEditorWidget(Cable *cable = nullptr, + CablePart *part = nullptr, + QWidget *parent = nullptr); + + void setCable(Cable *cable, CablePart *part = nullptr); + + void apply() override; + void reset() override; + void updateUi() override; + QUndoCommand *associatedUndo() const override; + QString title() const override; + bool setLiveEdit(bool live_edit) override; + + private: + ///Write what is being typed onto the cable right away + void applyLive(); + ///He asked for the window choosing another type for this cable + void changeTypeRequested(); + ///Say how many cores of this cable are wired + void updateInfo(); + /** + List the cores which stand nowhere on the sheet yet, under + the count of wired ones: those are the ones he can still + put down, and double-clicking one puts it down straight + from here, on the line this panel was opened for. + */ + void updateFreeCores(); + ///He double-clicked one of those cores: give it this line + void placeRequested(QListWidgetItem *item); + /** + He right-clicked one of them: a small menu with the one + thing which can be done to a core which stands nowhere + -- putting it down -- for whoever does not know that a + double click does the same. + @param pos where he clicked, in list coordinates + */ + void freeCoreMenu(const QPoint &pos); + + private: + CablePropertiesWidget *m_fields = nullptr; + QLabel *m_info = nullptr; + ///The cores which stand nowhere yet, listed under the count + QLabel *m_free_label = nullptr; + QListWidget *m_free_cores = nullptr; + QPointer m_cable; + /** + The line this panel was opened by, which is the one a core + picked here is put down on: taking a core always belongs to + the line whose dialog was asked for, never to the first + line of the cable. Null while no single line is selected, + and then there is nothing to put a core down on and the + list takes no room. + */ + QPointer m_part; + ///What the panel showed before the edit: the fields which + ///differ from it are the ones the user changed + CableProperties m_shown; + ///The cable the text is being typed straight into, so that + ///reading the cable back only skips the very field which is + ///under the fingers of the user -- and never for another + ///cable which has just become the selected one + QPointer m_live_cable; + QMetaObject::Connection m_live_connection; + bool m_updating = false; +}; + +#endif // CABLEPROPERTIESEDITORWIDGET_H diff --git a/sources/cable/cablepropertieswidget.cpp b/sources/cable/cablepropertieswidget.cpp new file mode 100644 index 000000000..5728c777f --- /dev/null +++ b/sources/cable/cablepropertieswidget.cpp @@ -0,0 +1,409 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablepropertieswidget.h" + +#include "cabletextformatdialog.h" +#include "../qetapp.h" +#include "../qeticons.h" +#include "../utils/qetutils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + @brief CablePropertiesWidget::CablePropertiesWidget + One row per field: its name, the tick saying whether the drawing + shows it, the field itself, then the button setting how that one + text is written -- one last row for the colours of the cores, which + are written all together along the line, and one row per distance + he may nudge the whole label and that row of colours with. + @param parent +*/ +CablePropertiesWidget::CablePropertiesWidget(QWidget *parent) : + QWidget(parent) +{ + auto *grid = new QGridLayout(this); + grid->setContentsMargins(0, 0, 0, 0); + grid->setHorizontalSpacing(6); + grid->setVerticalSpacing(3); + + auto *plan = new QLabel(tr("Drawing", + "column header: the drawing shows this field"), this); + plan->setAlignment(Qt::AlignCenter); + plan->setToolTip(tr("Tick to write this field on the drawing.", + "tooltip of the tick before each field")); + grid->addWidget(plan, 0, 1, Qt::AlignCenter); + + int row = 1; + addField(grid, row++, QStringLiteral("designation"), + tr("Designation"), &m_designation, &m_show_designation); + const int type_row = row; + addField(grid, row++, QStringLiteral("type"), + tr("Type"), &m_type, &m_show_type); + + //A button beside the type field, opening the very window which + //opens when a cable line has just been drawn: the type is + //picked from the cable type file there -- with its search, its + //filter and its own button for a type the file does not hold + //yet -- rather than typed in as plain text. + auto *pick_type = new QPushButton(this); + pick_type->setFocusPolicy(Qt::NoFocus); + pick_type->setIcon(QET::Icons::Cable); + pick_type->setToolTip(tr("Choose the type of this cable from the list of " + "cable types…")); + connect(pick_type, &QPushButton::clicked, + this, &CablePropertiesWidget::typeChangeRequested); + grid->addWidget(pick_type, type_row, 4, Qt::AlignRight | Qt::AlignVCenter); + + addField(grid, row++, QStringLiteral("installation"), + tr("Plant (=)"), &m_installation, &m_show_installation); + addField(grid, row++, QStringLiteral("location"), + tr("Location (+)"), &m_location, &m_show_location); + addField(grid, row++, QStringLiteral("length"), + tr("Length"), &m_length, &m_show_length); + + //The colours of the cores: one setting for every one of them at + //once, since they are written in one row along the line and are + //read as one row. + auto *cores_label = new QLabel(tr("Core colors"), this); + cores_label->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + cores_label->setToolTip(tr("The font of the colors of all the cores " + "of this cable, written along the line.")); + grid->addWidget(cores_label, row, 0, Qt::AlignRight | Qt::AlignVCenter); + addFormatButton(grid, row, QStringLiteral("cores")); + + //Where that whole label stands: one distance along the line and + //one across it, in pixels, moving the label as one thing -- + //installation, place and designation over the line, type and + //length under it -- and the line not at all. + addOffsetRow(grid, row + 1, tr("Text position"), + tr("Shifts all the cable text: plant, location " + "and designation on one side, type and length " + "on the other. The line, the slashes and the " + "wiring stay in place. 10 px make one grid cell."), + &m_text_offset_x, &m_text_offset_y); + + //And where the row of colours stands from the slashes it names. + addOffsetRow(grid, row + 2, tr("Core colors position"), + tr("Shifts the core colors relative to their slashes. " + "The slashes, the entries and the wiring stay in place. " + "10 px make one grid cell."), + &m_core_offset_x, &m_core_offset_y); + + grid->setColumnStretch(2, 1); +} + +/** + @brief CablePropertiesWidget::addField + Build one row of the form. + @param grid the form being built + @param row where to put it + @param key the name this text goes by in the file + @param name what the field holds + @param edit receives the line edit + @param tick receives the tick before it +*/ +void CablePropertiesWidget::addField(QGridLayout *grid, + int row, + const QString &key, + const QString &name, + QLineEdit **edit, + QCheckBox **tick) +{ + auto *label = new QLabel(name, this); + auto *check = new QCheckBox(this); + check->setToolTip(tr("Tick to write this field on the drawing.", + "tooltip of the tick before each field")); + auto *field = new QLineEdit(this); + field->setClearButtonEnabled(true); + + connect(field, &QLineEdit::editingFinished, + this, &CablePropertiesWidget::propertiesEdited); + //Every character too: what is typed is written onto the cable + //as it stands, so the drawing follows while he is still typing + //rather than only once he leaves the field. + connect(field, &QLineEdit::textChanged, + this, &CablePropertiesWidget::propertiesTyped); + connect(check, &QCheckBox::toggled, + this, &CablePropertiesWidget::propertiesEdited); + + grid->addWidget(label, row, 0, Qt::AlignRight | Qt::AlignVCenter); + grid->addWidget(check, row, 1, Qt::AlignCenter); + grid->addWidget(field, row, 2); + addFormatButton(grid, row, key); + + *edit = field; + *tick = check; +} + +/** + @brief CablePropertiesWidget::addFormatButton + The small button standing at the right of a text: it says which + size that text is written with, and opens the window where that + size -- and the rest of how the text is written -- is set. + @param grid the form being built + @param row where to put it + @param key the name of the text + @return the button, so the caller may reach it again +*/ +QPushButton *CablePropertiesWidget::addFormatButton(QGridLayout *grid, + int row, + const QString &key) +{ + auto *button = new QPushButton(this); + button->setFocusPolicy(Qt::NoFocus); + connect(button, &QPushButton::clicked, this, + [this, key]() {editFormat(key);}); + + grid->addWidget(button, row, 3, Qt::AlignRight | Qt::AlignVCenter); + m_format_buttons.insert(key, button); + refreshFormatButton(key); + return button; +} + +/** + @brief CablePropertiesWidget::addOffsetRow + Build one of the two rows nudging what is drawn: a name at the left + of the form, then two distances in pixels -- one measured along the + line, one across it -- the way the cross references of a slave offer + theirs. + + Both boxes speak of the drawing and nothing else: what he types here + moves texts, and the line, the slashes and the wires behind them keep + standing exactly where they were. + @param grid the form being built + @param row where to put it + @param name what that distance moves + @param tip what it does and does not touch + @param dx receives the spin box for the distance along the line + @param dy receives the spin box for the distance across it +*/ +void CablePropertiesWidget::addOffsetRow(QGridLayout *grid, + int row, + const QString &name, + const QString &tip, + QSpinBox **dx, + QSpinBox **dy) +{ + auto *label = new QLabel(name, this); + label->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + label->setToolTip(tip); + + const auto spin = [this, tip]() { + auto *box = new QSpinBox(this); + box->setRange(-200, 200); + box->setSingleStep(1); + box->setSuffix(QStringLiteral(" px")); + box->setAlignment(Qt::AlignRight); + box->setToolTip(tip); + connect(box, &QSpinBox::valueChanged, + this, &CablePropertiesWidget::propertiesEdited); + return box; + }; + QSpinBox *x_box = spin(); + QSpinBox *y_box = spin(); + + auto *along = new QLabel(tr("X :"), this); + along->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + auto *across = new QLabel(tr("Y :"), this); + across->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + + auto *values = new QHBoxLayout; + values->setContentsMargins(0, 0, 0, 0); + values->setSpacing(4); + values->addWidget(along); + values->addWidget(x_box); + values->addWidget(across); + values->addWidget(y_box); + values->addStretch(1); + + grid->addWidget(label, row, 0, Qt::AlignRight | Qt::AlignVCenter); + grid->addLayout(values, row, 2); + + *dx = x_box; + *dy = y_box; +} + +/** + @brief CablePropertiesWidget::editFormat + Open the window where one text of the cable is set, and -- when he + came out of it having really changed something -- write the answer + back into the form. One window is one change, so one step of undo. + @param key the name of the text +*/ +void CablePropertiesWidget::editFormat(const QString &key) +{ + CableTextFormatDialog dialog(m_formats.value(key), coresKey(key), this); + if (dialog.exec() != QDialog::Accepted) return; + + const CableTextFormat answer = dialog.format(); + if (m_formats.value(key) == answer) return; + + if (answer == CableTextFormat()) m_formats.remove(key); + else m_formats.insert(key, answer); + + refreshFormatButton(key); + emit propertiesEdited(); +} + +/** + @brief CablePropertiesWidget::refreshFormatButton + Let the button of one text say which size that text is written with, + so that the size is read off the form rather than only in the + drawing. + @param key the name of the text +*/ +void CablePropertiesWidget::refreshFormatButton(const QString &key) +{ + QPushButton *button = m_format_buttons.value(key); + if (!button) return; + + const QFont font = effectiveFont(key); + button->setText(tr("%1 pt").arg(QString::number(font.pointSizeF(), 'g', 3))); + + const QString tip = coresKey(key) + ? tr("Font, size and style of the core colors.") + : tr("Font, size, style and alignment of this text."); + const CableTextFormat format = m_formats.value(key); + const bool its_own = !format.font.isEmpty() || format.alignment != 0; + button->setToolTip(tip + QLatin1Char(' ') + (its_own + ? tr("Set for this cable.") + : tr("Value defined in the preferences."))); +} + +/** + @brief CablePropertiesWidget::effectiveFont + @param key the name of a text of the form + @return the font that text really is written with on the drawing: + the one this cable asks for, or -- when it asks for none -- the one + the preferences offer +*/ +QFont CablePropertiesWidget::effectiveFont(const QString &key) const +{ + const CableTextFormat format = m_formats.value(key); + if (!format.font.isEmpty()) + { + QFont font; + if (QETUtils::fontFromString(font, format.font)) { + return font; + } + } + return coresKey(key) ? QETApp::cableCoreFont() : QETApp::cableTextsFont(); +} + +/** + @brief CablePropertiesWidget::properties + @return everything the form holds right now +*/ +CableProperties CablePropertiesWidget::properties() const +{ + CableProperties properties; + properties.designation = m_designation->text().trimmed(); + //A name which is not the one read from the cable can only have + //come from him typing it in: from that moment on the cable + //carries a name of his own rather than one the numbering rule + //handed out. Putting the very same name back by hand keeps the + //cable as it stood, which is what the field says. + properties.designation_by_hand = properties.designation == m_designation_text + ? m_designation_by_hand : true; + properties.type = m_type->text().trimmed(); + properties.installation = m_installation->text().trimmed(); + properties.location = m_location->text().trimmed(); + properties.length = m_length->text().trimmed(); + properties.show_designation = m_show_designation->isChecked(); + properties.show_type = m_show_type->isChecked(); + properties.show_installation = m_show_installation->isChecked(); + properties.show_location = m_show_location->isChecked(); + properties.show_length = m_show_length->isChecked(); + properties.texts = m_formats; + properties.text_offset = QPointF(m_text_offset_x->value(), + m_text_offset_y->value()); + properties.core_offset = QPointF(m_core_offset_x->value(), + m_core_offset_y->value()); + return properties; +} + +/** + @brief CablePropertiesWidget::setProperties + Fill the form in. The ticks say what is drawn, so a field which is + switched off still keeps the text standing in it -- hiding it on the + drawing never throws away what the user typed. + @param properties +*/ +void CablePropertiesWidget::setProperties(const CableProperties &properties) +{ + m_designation->setText(properties.designation); + //What the field holds now is what the cable said: anything he + //types from here on is a name of his own + m_designation_text = properties.designation; + m_designation_by_hand = properties.designation_by_hand; + m_type->setText(properties.type); + m_installation->setText(properties.installation); + m_location->setText(properties.location); + m_length->setText(properties.length); + m_show_designation->setChecked(properties.show_designation); + m_show_type->setChecked(properties.show_type); + m_show_installation->setChecked(properties.show_installation); + m_show_location->setChecked(properties.show_location); + m_show_length->setChecked(properties.show_length); + + //Filling the form in is not the user nudging anything: those + //two rows are muted while they are set, so that loading a cable + //can never look like an edit which then has to be undone. + const QSignalBlocker block_text_x(m_text_offset_x); + const QSignalBlocker block_text_y(m_text_offset_y); + const QSignalBlocker block_core_x(m_core_offset_x); + const QSignalBlocker block_core_y(m_core_offset_y); + m_text_offset_x->setValue(qRound(properties.text_offset.x())); + m_text_offset_y->setValue(qRound(properties.text_offset.y())); + m_core_offset_x->setValue(qRound(properties.core_offset.x())); + m_core_offset_y->setValue(qRound(properties.core_offset.y())); + + //The texts this cable writes its own way. Only what really has + //an answer of its own is kept, so that a stray empty entry can + //never make the form claim a change it never made. + m_formats.clear(); + for (auto it = properties.texts.cbegin(); it != properties.texts.cend(); ++it) + { + if (it.value() == CableTextFormat()) continue; + m_formats.insert(it.key(), it.value()); + } + for (auto it = m_format_buttons.cbegin(); it != m_format_buttons.cend(); ++it) { + refreshFormatButton(it.key()); + } +} + +/** + @brief CablePropertiesWidget::editing + @return true when the keyboard stands in one of the fields of this + form. The panel uses it to keep its hands off what is being typed: + writing the cable back into the form while he is typing would take + the cursor away from him with every key. +*/ +bool CablePropertiesWidget::editing() const +{ + QWidget *focus = QApplication::focusWidget(); + return focus && (focus == this || isAncestorOf(focus)); +} diff --git a/sources/cable/cablepropertieswidget.h b/sources/cable/cablepropertieswidget.h new file mode 100644 index 000000000..ea4b83fef --- /dev/null +++ b/sources/cable/cablepropertieswidget.h @@ -0,0 +1,158 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEPROPERTIESWIDGET_H +#define CABLEPROPERTIESWIDGET_H + +#include "cable.h" + +#include + +class QCheckBox; +class QGridLayout; +class QLineEdit; +class QPushButton; +class QSpinBox; + +/** + @brief The fields a cable is filled in with, and the tick before each + of them saying whether what stands there is written on the drawing. + + It holds no cable of its own: it is a plain form, filled in with + setProperties() and read back with properties(). That way the dialog + editing one cable and the selection panel of QElectroTech offer + exactly the same fields in the same order, and neither of them can + drift away from the other. + + Every field is followed by a checkbox: what the checkbox says is + written next to the trunk line of the drawing, what it does not say + stays in the cable alone and only shows up in lists. + + Behind every field stands a button opening the window where that one + text is written: its font, its size, its style and -- for the texts + drawn next to the line -- the way it lines up there. The colours of + the cores get a button of their own at the foot of the form, all of + them at once, because they are written in one row along the line and + are never set apart. + + The type field carries one more button, on the right of that row. It + does not say how the word is written: it asks for the window which + opens when a cable line has just been drawn, where a type is picked + out of the cable type file -- with its search, its filter and its own + button for a type the file does not hold yet -- and taken onto the + cable. Whoever holds this form answers typeChangeRequested(). + + At the foot of the form stand the two distances he may nudge: one for + the whole label, one for the row of colours. Both are on the drawing + only -- the line, the slashes and the wiring stay where they are. +*/ +class CablePropertiesWidget : public QWidget +{ + Q_OBJECT + + public: + explicit CablePropertiesWidget(QWidget *parent = nullptr); + + ///What the form holds right now + CableProperties properties() const; + ///Fill the form in + void setProperties(const CableProperties &properties); + ///True while one of the fields is being typed in + bool editing() const; + + signals: + ///Emitted when a field or a tick was really changed by hand + void propertiesEdited(); + ///Emitted with every character typed, so the drawing can + ///follow the text as it is written rather than only once the + ///field is left + void propertiesTyped(); + ///Emitted when he asks for the window choosing the type of + ///this cable out of the cable type file + void typeChangeRequested(); + + private: + void addField(QGridLayout *grid, + int row, + const QString &key, + const QString &name, + QLineEdit **edit, + QCheckBox **tick); + ///The button opening the window which sets one text + QPushButton *addFormatButton(QGridLayout *grid, int row, const QString &key); + /** + Build one row of the two spin boxes nudging what is + drawn: one for the label of the cable, one for the row + of its colours. + @param grid the form being built + @param row where to put it + @param name what the row moves + @param tip what that distance does and does not touch + @param dx receives the spin box for the distance along + the line + @param dy receives the spin box for the distance across + it + */ + void addOffsetRow(QGridLayout *grid, + int row, + const QString &name, + const QString &tip, + QSpinBox **dx, + QSpinBox **dy); + ///Open the window setting one text, then say so if it changed + void editFormat(const QString &key); + ///Let the button say which size that text is written with + void refreshFormatButton(const QString &key); + ///The font this text is really written with right now + QFont effectiveFont(const QString &key) const; + ///True when this key names the colours of the cores + static bool coresKey(const QString &key) {return key == QLatin1String("cores");} + + private: + QLineEdit *m_designation = nullptr; + /** + The name exactly as it was read from the cable, and + whether that name was typed in: anything else he puts + into the field from then on is his own work, and the + cable is marked as carrying a name he chose (see + properties()) + */ + QString m_designation_text; + bool m_designation_by_hand = false; + QLineEdit *m_type = nullptr; + QLineEdit *m_installation = nullptr; + QLineEdit *m_location = nullptr; + QLineEdit *m_length = nullptr; + QCheckBox *m_show_designation = nullptr; + QCheckBox *m_show_type = nullptr; + QCheckBox *m_show_installation = nullptr; + QCheckBox *m_show_location = nullptr; + QCheckBox *m_show_length = nullptr; + ///What each text of this form is written with; a text which + ///is not in here follows what the preferences say + QHash m_formats; + ///The button opening the window of each text, by name + QHash m_format_buttons; + ///How far the label of the cable is nudged on the drawing + QSpinBox *m_text_offset_x = nullptr; + QSpinBox *m_text_offset_y = nullptr; + ///How far the row of colours is nudged on the drawing + QSpinBox *m_core_offset_x = nullptr; + QSpinBox *m_core_offset_y = nullptr; +}; + +#endif // CABLEPROPERTIESWIDGET_H diff --git a/sources/cable/cablerenumber.cpp b/sources/cable/cablerenumber.cpp new file mode 100644 index 000000000..4d9b23159 --- /dev/null +++ b/sources/cable/cablerenumber.cpp @@ -0,0 +1,292 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablerenumber.h" + +#include "cable.h" +#include "../autoNum/assignvariables.h" +#include "../autoNum/numerotationcontextcommands.h" +#include "../diagram.h" +#include "../qetproject.h" + +#include +#include + +#include +#include + +namespace { + +/** + @brief One cable of the project, and where it stands so that the + cables can be laid out in an order everybody can see again. +*/ +struct OrderedCable +{ + Cable *cable = nullptr; + ///The lowest folio the cable is drawn on + int folio = 0; + ///How far it reaches to the left and how far to the top on + ///that folio + qreal left = 0.0; + qreal top = 0.0; + ///The folio the rule is read on for this cable + Diagram *diagram = nullptr; +}; + +/** + @brief Read a rule once, the way the numbering of a cable reads it. + + The rule is read on a copy, since reading it fills in what its + folio-bound parts are worth on that one folio, and that must not + creep into the rule itself. + @param context the rule as it stands at this point of the numbering + @param diagram the folio the number is worked out on + @param key the name the rule is kept under in the project + @return the number, empty when the rule says nothing here +*/ +QString readRule(NumerotationContext context, Diagram *diagram, const QString &key) +{ + const QString formula = autonum::numerotationContextToFormula(context); + autonum::sequentialNumbers seq; + autonum::setSequential(formula, seq, context, diagram, key); + return autonum::AssignVariables::formulaToLabel(formula, seq, diagram); +} + +} // namespace + +/** + @brief CableRenumber::byHandCount + @param project + @return how many cables of that project carry a name typed in by hand +*/ +int CableRenumber::byHandCount(QETProject *project) +{ + if (!project) return 0; + + int count = 0; + for (Cable *cable : project->cables()) + { + if (cable && cable->designationByHand()) { + ++count; + } + } + return count; +} + +/** + @brief CableRenumber::plan + Work the number of every cable of the project out, without writing + anywhere. The cables are put in the order they are numbered in -- + folio by folio, and on each folio along whichever axis leads -- and + the rule is then read from its beginning once for each of them, so + that the numbering runs on without a hole. + @param project the project whose cables are numbered + @param rule the numbering rule to read + @param x_axis_first true when the leftmost cable of a folio comes first + @param include_by_hand false to leave the names typed in by hand alone + @return the numbers, or what stopped the numbering +*/ +CableRenumberPlan CableRenumber::plan(QETProject *project, + const NumerotationContext &rule, + bool x_axis_first, + bool include_by_hand) +{ + CableRenumberPlan result; + if (!project) + { + result.error = QCoreApplication::translate( + "CableRenumber", "No project is open."); + return result; + } + if (project->isReadOnly()) + { + result.error = QCoreApplication::translate( + "CableRenumber", + "This project is read-only: its cables cannot be " + "renumbered."); + return result; + } + //The rule may be one the numbering window is drawing right now + //and has not written into the project yet: the numbering writes + //it together with the numbers themselves, so the project does + //not have to hold it beforehand. What the counters are kept + //under is the name the rule is stored with, which for cables is + //fixed either way -- so numbering starts from a project which + //has no rule saved yet just as well. + QString key = project->cableCurrentAutoNum(); + if (key.isEmpty()) { + key = QETProject::cableAutoNumRuleName(); + } + if (rule.isEmpty()) + { + result.error = QCoreApplication::translate( + "CableRenumber", + "No cable numbering rule is defined for this " + "project. Define one in this window before " + "renumbering its cables."); + return result; + } + + //Where every cable stands, and which ones are left alone: their + //names stay as they are, so the numbering must not hand the + //same number out again + QList ordered; + QSet taken; + for (Cable *cable : project->cables()) + { + if (!cable) continue; + if (!include_by_hand && cable->designationByHand()) + { + if (!cable->designation().isEmpty()) { + taken.insert(cable->designation()); + } + continue; + } + + OrderedCable entry; + entry.cable = cable; + + for (const CablePartData &part : cable->parts()) + { + Diagram *diagram = project->diagramByUuid(part.diagram); + if (!diagram) continue; + + const int index = project->folioIndex(diagram); + const qreal left = qMin(part.p1.x(), part.p2.x()); + const qreal top = qMin(part.p1.y(), part.p2.y()); + + if (!entry.diagram || index < entry.folio) + { + entry.folio = index; + entry.diagram = diagram; + entry.left = left; + entry.top = top; + } else if (index == entry.folio) { + entry.left = qMin(entry.left, left); + entry.top = qMin(entry.top, top); + } + } + //A cable which stands on no folio the project still knows + //is numbered last rather than first by accident + if (!entry.diagram) { + entry.folio = std::numeric_limits::max(); + } + ordered.append(entry); + } + + //Folio by folio, and on each folio along the axis which leads: + //the other axis is only asked when the leading one says two + //cables are level, so that the numbering never depends on the + //order the cables happen to be stored in + std::sort(ordered.begin(), ordered.end(), + [x_axis_first](const OrderedCable &a, const OrderedCable &b) + { + if (a.folio != b.folio) return a.folio < b.folio; + + const qreal a_first = x_axis_first ? a.left : a.top; + const qreal b_first = x_axis_first ? b.left : b.top; + if (a_first != b_first) return a_first < b_first; + + const qreal a_second = x_axis_first ? a.top : a.left; + const qreal b_second = x_axis_first ? b.top : b.left; + if (a_second != b_second) return a_second < b_second; + + return a.cable->uuid().toString() < b.cable->uuid().toString(); + }); + + //Read the rule from the beginning, once for each cable: its + //counters are put back first, since numbering a project over + //starts at the beginning whatever the last number was + NumerotationContext context = autonum::resetContextCounters(rule); + int current_folio = -1; + + for (const OrderedCable &entry : std::as_const(ordered)) + { + if (!entry.diagram) + { + result.error = QCoreApplication::translate( + "CableRenumber", + "A cable is not on any sheet of the project: " + "nothing was changed."); + return result; + } + + //A counter bound to the folio counts from the beginning of + //that folio: the first cable of a folio gets the first + //number of it, and the folios after it start again rather + //than carrying the number of the folio before on + if (entry.folio != current_folio) + { + context = autonum::resetFolioCounters(context); + current_folio = entry.folio; + } + + const QString candidate = readRule(context, entry.diagram, key); + if (candidate.isEmpty()) + { + result.error = QCoreApplication::translate( + "CableRenumber", + "The current rule gives no number here: " + "nothing was changed."); + return result; + } + //A rule which does not count hands out the same number + //twice, and two cables of one project may not be called + //the same thing + if (result.designations.contains(candidate)) + { + result.error = QCoreApplication::translate( + "CableRenumber", + "The current rule gives the same number (%1) twice: " + "it must count to renumber a whole project. " + "Nothing was changed.") + .arg(candidate); + return result; + } + //A name which stays because it was typed in keeps its + //number, and the numbering may not hand that number out + if (taken.contains(candidate)) + { + result.error = QCoreApplication::translate( + "CableRenumber", + "Number %1 is already used by a cable whose name " + "is left as it is: nothing was changed.") + .arg(candidate); + return result; + } + + taken.insert(candidate); + result.cables.append(entry.cable); + result.designations.append(candidate); + + //Step the rule on for the next cable; a rule which cannot + //step stays where it is and is caught by the check above + NumerotationContextCommands ncc(context, entry.diagram); + const NumerotationContext following = ncc.next(); + if (following.size() == context.size()) { + context = following; + } + } + + //Where the rule stands after the last cable has been numbered: + //the caller writes that into the project, so numbering goes on + //from there instead of from wherever the rule happened to stand + //before this numbering ran + result.after = context; + return result; +} diff --git a/sources/cable/cablerenumber.h b/sources/cable/cablerenumber.h new file mode 100644 index 000000000..c97513e8d --- /dev/null +++ b/sources/cable/cablerenumber.h @@ -0,0 +1,102 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLERENUMBER_H +#define CABLERENUMBER_H + +#include +#include +#include + +#include "../autoNum/numerotationcontext.h" + +class Cable; +class QETProject; + +/** + @brief What numbering a whole project would do, worked out before a + single cable is written to. + + Working it out first means the answer can be refused as a whole: a + rule which hands out the same number twice, or a number some cable + which is left alone already carries, stops the whole numbering + rather than numbering half the project and then getting stuck. +*/ +struct CableRenumberPlan +{ + ///The cables to number, in the order they are numbered in + QList cables; + ///The number each of them gets, one for each cable + QStringList designations; + ///The rule as it stands once the last cable has been numbered: + ///its counters are where the next number would be taken from + NumerotationContext after; + ///What stopped the numbering, empty while it may be carried out + QString error; + + bool ok() const {return error.isEmpty();} +}; + +/** + @brief Working out the numbers a whole project should carry. + + Everything here is pure: nothing is written to the project and + nothing is put on the undo stack, so a caller may look at the plan + and decide against it without anything having happened. +*/ +namespace CableRenumber +{ + /** + How many cables of this project carry a name which was typed in + rather than handed out by the numbering rule. Those are the ones + renumbering asks about before it takes their name away. + @param project + @return the number of such cables + */ + int byHandCount(QETProject *project); + + /** + Work the number of every cable of the project out of @p rule. + + The cables are laid out first -- folio by folio, and on each + folio either from the left to the right or from the top to the + bottom, whichever axis leads -- and are then numbered one after + the other from the beginning of the rule, so that a hole left by + a cable which has been deleted closes behind it. + + @param project the project whose cables are numbered + @param rule the numbering rule to read; its counters are put + back to 1 first, since numbering starts from the beginning + @param x_axis_first true to number the cables of a folio from + the left to the right, false to number them from the top to the + bottom + @param include_by_hand false to leave the cables whose name was + typed in exactly as they are + @return the numbers, or what stopped the numbering. The plan + also carries the rule as it stands once every cable has been + given its number, so that the caller may put that into the + project: the counters have to stay where the last number was + taken from, or the next cable drawn would skip over every + number in between + */ + CableRenumberPlan plan(QETProject *project, + const NumerotationContext &rule, + bool x_axis_first, + bool include_by_hand); +} + +#endif // CABLERENUMBER_H diff --git a/sources/cable/cabletextformatdialog.cpp b/sources/cable/cabletextformatdialog.cpp new file mode 100644 index 000000000..550b46516 --- /dev/null +++ b/sources/cable/cabletextformatdialog.cpp @@ -0,0 +1,278 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cabletextformatdialog.h" + +#include "../qetapp.h" +#include "../utils/qetutils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + /** + @brief The way a text lines up, as the dialog lists it: right + first, which is where every text stands unless he says otherwise. + @param index the place in the list of the dialog + @return the flags the drawing understands + */ + Qt::Alignment alignmentFromIndex(int index) + { + switch (index) + { + case 1: return Qt::AlignHCenter; + case 2: return Qt::AlignLeft; + default: return Qt::AlignRight; + } + } + + /** + @brief The place in the list of the dialog of an alignment. + @param alignment Qt::AlignLeft, Qt::AlignHCenter or Qt::AlignRight + @return the index, 0 (right) when nothing is named + */ + int alignmentIndex(int alignment) + { + switch (alignment) + { + case int(Qt::AlignHCenter): return 1; + case int(Qt::AlignLeft): return 2; + default: return 0; + } + } + + /** + Whether two fonts would be read the very same way on the sheet: + the family he picks, the size he gives it, and the style he + chose among the four offered. + @param a the font he has chosen + @param b the font the preferences would write it with + @return true when nothing of them differs + */ + bool sameFont(const QFont &a, const QFont &b) + { + return a.family() == b.family() + && qFuzzyCompare(a.pointSizeF(), b.pointSizeF()) + && a.bold() == b.bold() + && a.italic() == b.italic(); + } +} + +/** + @brief CableTextFormatDialog::CableTextFormatDialog + @param format what this cable writes that text with right now + @param cores true for the colours of the cores + @param parent +*/ +CableTextFormatDialog::CableTextFormatDialog(const CableTextFormat &format, + bool cores, + QWidget *parent) : + QDialog(parent), + m_cores(cores) +{ + setWindowTitle(cores ? tr("Core colors") + : tr("Text format")); + buildUi(); + + //The font this text is written with right now: the one this + //cable asks for, or the one the preferences offer when it asks + //for none -- which is what he sees on the sheet as he opens this. + QFont font; + bool restored = false; + if (!format.font.isEmpty()) { + restored = QETUtils::fontFromString(font, format.font); + } + if (!restored) { + font = cores ? QETApp::cableCoreFont() : QETApp::cableTextsFont(); + } + + //Where this text stands right now, in the same way: the answer + //of the cable itself, or -- when it has none -- the one the + //preferences offer, so that he opens this onto what the sheet + //really shows rather than onto whatever the default used to be. + m_initial_alignment = cores ? 0 + : (format.alignment ? format.alignment + : int(QETApp::cableTextAlignment())); + + m_family->setCurrentFont(font); + m_size->setValue(font.pointSizeF()); + if (font.bold() && font.italic()) m_style->setCurrentIndex(3); + else if (font.italic()) m_style->setCurrentIndex(2); + else if (font.bold()) m_style->setCurrentIndex(1); + else m_style->setCurrentIndex(0); + if (m_alignment) { + m_alignment->setCurrentIndex(alignmentIndex(m_initial_alignment)); + } + + //Going back to the preferences means something only while this + //cable has an answer of its own: when it already follows them, + //there is nothing here to give back. + m_reset->setEnabled(!format.font.isEmpty() || format.alignment != 0); + updatePreview(); +} + +/** + @brief CableTextFormatDialog::buildUi + One row per thing he may set, then what it looks like -- because a + size means nothing as a number alone. +*/ +void CableTextFormatDialog::buildUi() +{ + auto *form = new QFormLayout; + form->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow); + form->setHorizontalSpacing(12); + + m_family = new QFontComboBox(this); + m_family->setFontFilters(QFontComboBox::AllFonts); + form->addRow(tr("Font:"), m_family); + + m_size = new QDoubleSpinBox(this); + m_size->setRange(1.0, 300.0); + m_size->setDecimals(1); + m_size->setSingleStep(0.5); + m_size->setSuffix(tr(" pt")); + form->addRow(tr("Size:"), m_size); + + m_style = new QComboBox(this); + m_style->addItem(tr("Normal")); + m_style->addItem(tr("Bold")); + m_style->addItem(tr("Italic")); + m_style->addItem(tr("Bold italic")); + form->addRow(tr("Style:"), m_style); + + //The colours of the cores stand turned by a quarter along their + //own line: there is nothing for them to line up with. + if (!m_cores) + { + m_alignment = new QComboBox(this); + m_alignment->addItem(tr("Right aligned")); + m_alignment->addItem(tr("Centred")); + m_alignment->addItem(tr("Left aligned")); + form->addRow(tr("Alignment:"), m_alignment); + } + + m_preview = new QLabel(tr("15W1 · H07V-K 3G1.5"), this); + m_preview->setFrameStyle(QFrame::Box | QFrame::Plain); + m_preview->setMinimumHeight(30); + m_preview->setIndent(6); + form->addRow(tr("Preview:"), m_preview); + + auto *buttons = new QDialogButtonBox( + QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + m_reset = buttons->addButton(tr("Reset"), QDialogButtonBox::ResetRole); + connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); + connect(m_reset, &QPushButton::clicked, this, [this]() { + m_reset_chosen = true; + accept(); + }); + + auto *layout = new QVBoxLayout(this); + layout->addLayout(form); + layout->addWidget(buttons); + setLayout(layout); + + connect(m_family, &QFontComboBox::currentFontChanged, + this, &CableTextFormatDialog::updatePreview); + connect(m_size, &QDoubleSpinBox::valueChanged, + this, &CableTextFormatDialog::updatePreview); + connect(m_style, &QComboBox::currentIndexChanged, + this, &CableTextFormatDialog::updatePreview); + if (m_alignment) { + connect(m_alignment, &QComboBox::currentIndexChanged, + this, &CableTextFormatDialog::updatePreview); + } +} + +/** + @brief CableTextFormatDialog::chosenFont + What the dialog offers right now: the family he picked, the size he + gave it and the style he chose among the four offered -- rather than + whatever that family happened to be called in the list. + @return the font +*/ +QFont CableTextFormatDialog::chosenFont() const +{ + QFont font = m_family->currentFont(); + font.setPointSizeF(m_size->value()); + const bool italic = m_style->currentIndex() == 2 || m_style->currentIndex() == 3; + const bool bold = m_style->currentIndex() == 1 || m_style->currentIndex() == 3; + font.setBold(bold); + font.setItalic(italic); + return font; +} + +/** + @brief CableTextFormatDialog::updatePreview + Write the line offered as an example the way it would be written + after what he has just set -- the only place where a size becomes + something one can judge. +*/ +void CableTextFormatDialog::updatePreview() +{ + m_preview->setFont(chosenFont()); + if (m_alignment) { + m_preview->setAlignment( + alignmentFromIndex(m_alignment->currentIndex()) | Qt::AlignVCenter); + } else { + m_preview->setAlignment(Qt::AlignCenter); + } +} + +/** + @brief CableTextFormatDialog::format + @return what the cable is to write that text with from now on. + + An empty answer means "the way the preferences say", and the two + halves of it are worked out apart from each other: he may set the + way one text lines up without taking away its freedom to follow a + new default font later, and the other way round. What already + stands the way the preferences say is left out, so that a cable + which said nothing keeps saying nothing -- and a later change of + what those preferences are still reaches it. +*/ +CableTextFormat CableTextFormatDialog::format() const +{ + if (m_reset_chosen) return CableTextFormat(); + + const QFont font = chosenFont(); + const QFont default_font = m_cores ? QETApp::cableCoreFont() + : QETApp::cableTextsFont(); + + CableTextFormat answer; + if (!sameFont(font, default_font)) { + answer.font = QETUtils::fontToString(font); + } + //The colours of the cores stand turned by a quarter: they have + //no line to line up with, and saying so would only be noise in + //the file. + if (!m_cores) + { + const int alignment = int(alignmentFromIndex(m_alignment->currentIndex())); + if (alignment != int(QETApp::cableTextAlignment())) { + answer.alignment = alignment; + } + } + return answer; +} diff --git a/sources/cable/cabletextformatdialog.h b/sources/cable/cabletextformatdialog.h new file mode 100644 index 000000000..49db070f2 --- /dev/null +++ b/sources/cable/cabletextformatdialog.h @@ -0,0 +1,83 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLETEXTFORMATDIALOG_H +#define CABLETEXTFORMATDIALOG_H + +#include "cable.h" + +#include + +class QComboBox; +class QFontComboBox; +class QDoubleSpinBox; +class QLabel; +class QPushButton; + +/** + @brief The small window where one text of one cable is set: the font + it is written with -- family, size and style -- and, for the texts + written next to the trunk line, the way it lines up at the line. + + The colours of the cores come here as well, all of them together + because they are drawn together: they have no alignment, being + turned by a quarter along their own line. + + Saying nothing is the normal case: the cable then follows what the + preferences offer on the "Textes" page, and OK keeps an answer of + its own only when he really changed something -- so that picking + another default later on still reaches this cable. +*/ +class CableTextFormatDialog : public QDialog +{ + Q_OBJECT + + public: + /** + @param format what this cable writes that text with right + now, an empty format when it merely follows the preferences + @param cores true for the colours of the cores: they have + no alignment and follow QETApp::cableCoreFont() + @param parent + */ + CableTextFormatDialog(const CableTextFormat &format, + bool cores, + QWidget *parent = nullptr); + + ///What the cable is to write that text with from now on + CableTextFormat format() const; + + private: + void buildUi(); + void updatePreview(); + QFont chosenFont() const; + + bool m_cores = false; + ///True when he asked to go back to following the preferences + bool m_reset_chosen = false; + ///The alignment this text has right now, 0 for the cores + int m_initial_alignment = int(Qt::AlignRight); + + QFontComboBox *m_family = nullptr; + QDoubleSpinBox *m_size = nullptr; + QComboBox *m_style = nullptr; + QComboBox *m_alignment = nullptr; + QLabel *m_preview = nullptr; + QPushButton *m_reset = nullptr; +}; + +#endif // CABLETEXTFORMATDIALOG_H diff --git a/sources/cable/editcablecommand.cpp b/sources/cable/editcablecommand.cpp new file mode 100644 index 000000000..eb27596d8 --- /dev/null +++ b/sources/cable/editcablecommand.cpp @@ -0,0 +1,494 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "editcablecommand.h" + +#include "cablemanager.h" +#include "cablepart.h" +#include "../diagram.h" +#include "../qetproject.h" + +#include + +#include + +/** + @brief BatchCommand::BatchCommand + @param first step to run first, kept by this command + @param second step to run right after it, kept by this command +*/ +BatchCommand::BatchCommand(QUndoCommand *first, QUndoCommand *second) : + m_steps({first, second}) +{ + m_steps.removeAll(nullptr); + setText(QCoreApplication::translate("BatchCommand", "Delete")); +} + +/** + @brief BatchCommand::BatchCommand + @param steps every step of one single gesture, in the order the + user did them, kept by this command + @param text what the gesture was, as the undo history shows it +*/ +BatchCommand::BatchCommand(const QList &steps, const QString &text) : + m_steps(steps) +{ + m_steps.removeAll(nullptr); + setText(text); +} + +/** + @brief BatchCommand::~BatchCommand + The steps it holds go with it: they were never given to anything else. +*/ +BatchCommand::~BatchCommand() +{ + for (QUndoCommand *step : std::as_const(m_steps)) { + delete step; + } +} + +/** + @brief BatchCommand::redo + Every step, in the order the user did them. +*/ +void BatchCommand::redo() +{ + for (QUndoCommand *step : std::as_const(m_steps)) { + if (step) step->redo(); + } +} + +/** + @brief BatchCommand::undo + Every step taken back in the reverse order, so what one step changed + is still there when the next one is undone. +*/ +void BatchCommand::undo() +{ + for (auto it = m_steps.crbegin(); it != m_steps.crend(); ++it) { + if (*it) (*it)->undo(); + } +} + +/** + @brief MoveCablePartCommand::MoveCablePartCommand + @param cable the cable the section belongs to + @param part the line being dragged + @param before_p1 + @param before_p2 + @param after_p1 + @param after_p2 + @param before_cores where every colour label stood before the drag + @param after_cores where it stands after it +*/ +MoveCablePartCommand::MoveCablePartCommand(Cable *cable, + CablePart *part, + const QPointF &before_p1, + const QPointF &before_p2, + const QPointF &after_p1, + const QPointF &after_p2, + const QList &before_cores, + const QList &after_cores) : + m_cable(cable), + m_part(part), + m_before_p1(before_p1), + m_before_p2(before_p2), + m_after_p1(after_p1), + m_after_p2(after_p2), + m_before_cores(before_cores), + m_after_cores(after_cores) +{ + setText(QCoreApplication::translate("MoveCablePartCommand", "Move a cable")); +} + +void MoveCablePartCommand::undo() +{ + apply(m_before_p1, m_before_p2, m_before_cores); +} + +void MoveCablePartCommand::redo() +{ + apply(m_after_p1, m_after_p2, m_after_cores); +} + +/** + @brief MoveCablePartCommand::apply + Put the line where it belongs and the colour labels with it. The + positions are written last: they are stored in scene coordinates, so + they only make sense once the line itself is back in place. + @param p1 + @param p2 + @param cores +*/ +void MoveCablePartCommand::apply(const QPointF &p1, + const QPointF &p2, + const QList &cores) +{ + if (m_part) { + m_part->setLine(p1, p2); + } + if (m_cable) { + m_cable->setCores(cores); + } +} + +/** + @brief ChangeCablePropertiesCommand::ChangeCablePropertiesCommand + @param cable + @param before every field as it was before the edit + @param after every field as the user left it +*/ +ChangeCablePropertiesCommand::ChangeCablePropertiesCommand(Cable *cable, + const CableProperties &before, + const CableProperties &after) : + m_cable(cable), + m_before(before), + m_after(after) +{ + setText(QCoreApplication::translate("ChangeCablePropertiesCommand", + "Edit the properties of a cable")); +} + +void ChangeCablePropertiesCommand::undo() +{ + if (m_cable) { + m_cable->setProperties(m_before); + } +} + +void ChangeCablePropertiesCommand::redo() +{ + if (m_cable) { + m_cable->setProperties(m_after); + } +} + +/** + @brief RenumberCablesCommand::RenumberCablesCommand + @param cables the cables to number, in the order they are numbered in + @param designations the number each of them gets + @param project the project whose numbering rule moves along with + the numbering + @param num_key the name that rule is kept under in the project + @param num_before where its counters stood before the numbering ran + @param num_after where the numbering leaves them +*/ +RenumberCablesCommand::RenumberCablesCommand(const QList &cables, + const QStringList &designations, + QETProject *project, + const QString &num_key, + const NumerotationContext &num_before, + const NumerotationContext &num_after) : + m_project(project), + m_num_key(num_key), + m_num_before(num_before), + m_num_after(num_after) +{ + for (int i = 0; i < cables.size() && i < designations.size(); ++i) + { + Cable *cable = cables.at(i); + if (!cable) continue; + + m_cables.append(cable); + m_before.append(cable->designation()); + m_by_hand_before.append(cable->designationByHand()); + m_after.append(designations.at(i)); + //A number the rule has just handed out is the rule's, so + //nothing here stays marked as having been typed in + m_by_hand_after.append(false); + } + + setText(QCoreApplication::translate("RenumberCablesCommand", + "Renumber %n cable(s)", + "", m_cables.size())); +} + +void RenumberCablesCommand::undo() +{ + apply(false); +} + +void RenumberCablesCommand::redo() +{ + apply(true); +} + +/** + @brief RenumberCablesCommand::apply + @param use_after true to write the numbers the rule handed out, + false to put the ones back which were there before +*/ +void RenumberCablesCommand::apply(bool use_after) +{ + for (int i = 0; i < m_cables.size(); ++i) + { + Cable *cable = m_cables.at(i).data(); + if (!cable) continue; + + //Where the name comes from is written first: a number the + //rule has just handed out is the rule's whatever the cable + //was called before, and undo has to say so again + cable->setDesignationByHand(use_after ? m_by_hand_after.at(i) + : m_by_hand_before.at(i)); + cable->setDesignation(use_after ? m_after.at(i) : m_before.at(i)); + } + + //Where the numbering rule itself stands moves along with the + //numbering: once it has run, its counters are where the last + //number was taken from, so the next cable drawn goes on from + //there rather than skipping over every number in between. Undo + //puts them back like the names, since numbering a project over + //is one single act. + if (m_project && !m_num_key.isEmpty()) + { + const NumerotationContext context = use_after ? m_num_after + : m_num_before; + //An empty rule is never written: losing the rule altogether + //is not something numbering may do, not even on the way back + if (!context.isEmpty()) + { + m_project->addCableAutoNum(m_num_key, context); + m_project->setCurrentCableAutoNum(m_num_key); + } + } +} + +/** + @brief ChangeCableTypeCommand::ChangeCableTypeCommand + @param cable + @param before the type, the count, the colours and the cores as + they were before the change + @param after the very same four as the chosen type says +*/ +ChangeCableTypeCommand::ChangeCableTypeCommand(Cable *cable, + const CableTypeState &before, + const CableTypeState &after) : + m_cable(cable), + m_before(before), + m_after(after) +{ + setText(QCoreApplication::translate("ChangeCableTypeCommand", + "Change the cable type")); +} + +void ChangeCableTypeCommand::undo() +{ + apply(m_before); +} + +void ChangeCableTypeCommand::redo() +{ + apply(m_after); +} + +/** + @brief ChangeCableTypeCommand::apply + One block in one pass: name, colours, count, then the cores. The + count has to stand before the cores, since a cable with fewer cores + cannot hold the others -- and the other way round, undoing a type + with fewer cores has to open the room before the cores come back + into it. + @param state the block to write +*/ +void ChangeCableTypeCommand::apply(const CableTypeState &state) +{ + if (m_cable) { + m_cable->applyTypeState(state); + } +} + +/** + @brief ChangeCableCoresCommand::ChangeCableCoresCommand + @param cable + @param before every core the cable wired before the change + @param after every core it wires after it + @param text what undo says about this step, empty for a core which + is merely moved +*/ +ChangeCableCoresCommand::ChangeCableCoresCommand(Cable *cable, + const QList &before, + const QList &after, + const QString &text) : + m_cable(cable), + m_before(before), + m_after(after) +{ + setText(text.isEmpty() + ? QCoreApplication::translate("ChangeCableCoresCommand", + "Move a cable core") + : text); +} + +void ChangeCableCoresCommand::undo() +{ + apply(m_before); +} + +void ChangeCableCoresCommand::redo() +{ + apply(m_after); +} + +/** + @brief ChangeCableCoresCommand::apply + Write one whole set of assignments in place of another. The cable + says it changed, which is what makes the project work out the cable + field of every conductor it feeds again, so the drawing follows. + @param cores +*/ +void ChangeCableCoresCommand::apply(const QList &cores) +{ + if (m_cable) { + m_cable->setCores(cores); + } +} + +/** + @brief RemoveCableCommand::RemoveCableCommand + @param diagram the folios the lines are drawn on + @param parts the lines the user asked to delete +*/ +RemoveCableCommand::RemoveCableCommand(Diagram *diagram, const QList &parts) : + m_diagram(diagram) +{ + setText(QCoreApplication::translate("RemoveCableCommand", "Delete a cable")); + + for (CablePart *part : parts) + { + if (!part) continue; + + Entry entry; + entry.part = part; + entry.cable = part->cable(); + entry.data.uuid = part->partUuid(); + entry.data.diagram = m_diagram ? m_diagram->uuid() : QUuid(); + entry.data.p1 = part->firstPoint(); + entry.data.p2 = part->secondPoint(); + m_entries.append(entry); + + if (entry.cable && !m_cables.contains(entry.cable)) { + m_cables.append(entry.cable); + m_cores.insert(entry.cable.data(), entry.cable->usedCores()); + } + } +} + +/** + @brief RemoveCableCommand::~RemoveCableCommand + Whatever the stack leaves behind has to be cleaned up here: a cable + which is not held by the project any more, and a line which never + made it back onto a folio, belong to this command. +*/ +RemoveCableCommand::~RemoveCableCommand() +{ + QETProject *proj = project(); + for (const QPointer &cable : std::as_const(m_cables)) + { + if (cable && (!proj || !proj->cables().contains(cable))) { + delete cable; + } + } + for (const Entry &entry : std::as_const(m_entries)) + { + if (entry.part && !entry.part->scene()) { + delete entry.part; + } + } +} + +/** + @brief RemoveCableCommand::project + @return the project this command works in, or nullptr +*/ +QETProject *RemoveCableCommand::project() const +{ + return m_diagram ? m_diagram->project() : nullptr; +} + +/** + @brief RemoveCableCommand::redo + Take the lines off their folios. Each cable loses the sections which + are gone together with the cores drawn on them, and a cable which has + no section left anywhere leaves the project: a cable nothing draws is + no cable of this project. +*/ +void RemoveCableCommand::redo() +{ + QETProject *proj = project(); + + for (const Entry &entry : std::as_const(m_entries)) + { + if (entry.cable) { + entry.cable->removePart(entry.data.uuid); + } + if (entry.part && entry.part->scene() && m_diagram) { + m_diagram->removeItem(entry.part); + } + } + + if (proj) + { + for (const QPointer &cable : std::as_const(m_cables)) + { + if (cable && cable->parts().isEmpty() && proj->cables().contains(cable)) { + proj->removeCable(cable); + } + } + } + + CableManager::refreshLabels(proj); +} + +/** + @brief RemoveCableCommand::undo + Put the lines back on their folios, the sections back in their cable + and the cores back on those sections: exactly the state the delete + action took away. +*/ +void RemoveCableCommand::undo() +{ + QETProject *proj = project(); + + if (proj) + { + for (const QPointer &cable : std::as_const(m_cables)) + { + if (cable && !proj->cables().contains(cable)) { + proj->addCable(cable); + } + } + } + + for (const Entry &entry : std::as_const(m_entries)) + { + if (entry.cable) + { + if (!entry.cable->hasPart(entry.data.uuid)) { + entry.cable->addPart(entry.data); + } + for (const CableCore &core : m_cores.value(entry.cable.data())) { + entry.cable->setCore(core); + } + } + if (entry.part && !entry.part->scene() && m_diagram) { + m_diagram->addItem(entry.part); + } + } + + CableManager::refreshLabels(proj); +} diff --git a/sources/cable/editcablecommand.h b/sources/cable/editcablecommand.h new file mode 100644 index 000000000..1308b6b66 --- /dev/null +++ b/sources/cable/editcablecommand.h @@ -0,0 +1,285 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef EDITCABLECOMMAND_H +#define EDITCABLECOMMAND_H + +#include "cable.h" + +#include "../autoNum/numerotationcontext.h" + +#include +#include +#include +#include + +class CablePart; +class Diagram; +class QETProject; + +/** + @brief Puts a dragged cable line back where it was, or where the user + just dragged it to. + + The colour labels of its cores follow the line -- they are drawn on + it -- and come back with it when the move is undone. Which core lands + on which conductor never depends on where the trunk line stands, so + the assignments are only carried along by this step, never changed. +*/ +class MoveCablePartCommand : public QUndoCommand +{ + public: + MoveCablePartCommand(Cable *cable, + CablePart *part, + const QPointF &before_p1, + const QPointF &before_p2, + const QPointF &after_p1, + const QPointF &after_p2, + const QList &before_cores, + const QList &after_cores); + + void undo() override; + void redo() override; + + private: + void apply(const QPointF &p1, + const QPointF &p2, + const QList &cores); + + private: + QPointer m_cable; + QPointer m_part; + QPointF m_before_p1; + QPointF m_before_p2; + QPointF m_after_p1; + QPointF m_after_p2; + QList m_before_cores; + QList m_after_cores; +}; + +/** + @brief Rewrites which cores a cable wires, the way dragging the slash + of a core does: the whole set of assignments is taken before and + after the gesture, so undoing puts every one of them back -- the core + which was moved, but also the one it swapped colours with. +*/ +class ChangeCableCoresCommand : public QUndoCommand +{ + public: + /** + @param cable the cable whose assignments are rewritten + @param before every core it held before + @param after every core it holds after + @param text what undo says about this step: an empty string + for the usual step of moving a core around, since putting a + core down for the first time is not a move at all + */ + ChangeCableCoresCommand(Cable *cable, + const QList &before, + const QList &after, + const QString &text = QString()); + + void undo() override; + void redo() override; + + private: + void apply(const QList &cores); + + private: + QPointer m_cable; + QList m_before; + QList m_after; +}; + +/** + @brief Writes what the user typed into the fields of a cable -- and + what he ticks off again -- as one single undo step. + + All the fields belong to the cable rather than to one line of it, so + one change puts every line of that cable, on every folio, right. +*/ +class ChangeCablePropertiesCommand : public QUndoCommand +{ + public: + ChangeCablePropertiesCommand(Cable *cable, + const CableProperties &before, + const CableProperties &after); + + void undo() override; + void redo() override; + + private: + QPointer m_cable; + CableProperties m_before; + CableProperties m_after; +}; + +/** + @brief Gives every cable of a project the number the numbering rule + says it should have, laid out in the order the cables are met along + the sheets. + + That is how a project is numbered again after a cable has been taken + away: the hole its number leaves closes because the cables behind it + move up one place, and a rule which has just been changed reaches + every cable of the project at once. + + One command covers them all -- numbering a whole project is one + single act, so undo takes all of it back together. What the + numbering rule itself holds is part of that act: once the cables + are numbered, the counters of the rule stand where the last number + was taken from, and undo puts them back where they stood. +*/ +class RenumberCablesCommand : public QUndoCommand +{ + public: + /** + @param cables the cables to number, in the order they are + numbered in + @param designations the number each of them gets, one for + each cable + @param project the project whose numbering rule moves along + with the numbering + @param num_key the name that rule is kept under in the + project + @param num_before where its counters stood before the + numbering ran + @param num_after where the numbering leaves them + */ + RenumberCablesCommand(const QList &cables, + const QStringList &designations, + QETProject *project, + const QString &num_key, + const NumerotationContext &num_before, + const NumerotationContext &num_after); + + void undo() override; + void redo() override; + + private: + void apply(bool use_after); + + private: + QList> m_cables; + QStringList m_before; + QStringList m_after; + QList m_by_hand_before; + QList m_by_hand_after; + QETProject *m_project = nullptr; + QString m_num_key; + NumerotationContext m_num_before; + NumerotationContext m_num_after; +}; + +/** + @brief Changes which type a cable is -- its name, how many cores it + has and the colour of each of them -- together with the cores it + may lose on the way, as one single step. + + The cores belong to this step rather than to a step of their own: + a type with fewer cores takes marks off the drawing, and undoing has + to bring them back along with the name and the colours, never half + of it. +*/ +class ChangeCableTypeCommand : public QUndoCommand +{ + public: + /** + @param cable the cable whose type is changed + @param before the state the cable was in + @param after the state it is put into + */ + ChangeCableTypeCommand(Cable *cable, + const CableTypeState &before, + const CableTypeState &after); + + void undo() override; + void redo() override; + + private: + void apply(const CableTypeState &state); + + private: + QPointer m_cable; + CableTypeState m_before; + CableTypeState m_after; +}; + +/** + @brief Holds the steps of one single gesture together, so a single + undo takes all of them back -- an ordinary deletion with the cable + deletions which go with it, or a drag which moved several cable + lines at once. + + It keeps its steps rather than handing them to QUndoCommand as + children: Qt6.11 has no addChild() any more. +*/ +class BatchCommand : public QUndoCommand +{ + public: + BatchCommand(QUndoCommand *first, QUndoCommand *second); + BatchCommand(const QList &steps, const QString &text); + ~BatchCommand() override; + + void undo() override; + void redo() override; + + private: + QList m_steps; +}; + +/** + @brief Takes one or more drawn cable lines off their folios -- and the + cable itself with them when no line of it is left anywhere. + + Undo puts everything back: the lines on their folios, the sections in + the cable, the cores on those sections, and the cable in the project + when it had to leave it. +*/ +class RemoveCableCommand : public QUndoCommand +{ + public: + RemoveCableCommand(Diagram *diagram, const QList &parts); + ~RemoveCableCommand() override; + + void undo() override; + void redo() override; + + private: + QETProject *project() const; + + private: + struct Entry + { + ///The line as it is drawn on the folio + QPointer part; + ///Where the cable holds that section + CablePartData data; + ///The cable the section belongs to + QPointer cable; + }; + + QPointer m_diagram; + QList m_entries; + ///Every cable which loses a section here, with all the cores + ///it wires at this moment: removing a section drops the cores + ///drawn on it, and undo has to bring them back + QList> m_cables; + QHash> m_cores; +}; + +#endif // EDITCABLECOMMAND_H diff --git a/sources/cablelist/cableexportdialog.cpp b/sources/cablelist/cableexportdialog.cpp new file mode 100644 index 000000000..f929f476d --- /dev/null +++ b/sources/cablelist/cableexportdialog.cpp @@ -0,0 +1,155 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cableexportdialog.h" + +#include "cablelistmodel.h" +#include "cablelistrows.h" +#include "cablequerywidget.h" + +#include "../bomexport.h" +#include "../qet.h" +#include "../qetapp.h" +#include "../qetproject.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + @brief CableExportDialog::CableExportDialog + @param project the project whose cables are exported + @param parent +*/ +CableExportDialog::CableExportDialog(QETProject *project, QWidget *parent) : + QDialog(parent), + m_project(project) +{ + setWindowTitle(tr("Export the cable list as CSV")); + QET::trackDialogGeometry(this); + + auto *main_layout = new QVBoxLayout(this); + + //The same column picker the cable list is built with, so the + //export asks for its columns the same way the list does + m_query_widget = new CableQueryWidget(this); + main_layout->addWidget(m_query_widget); + + auto *page_group = new QGroupBox(tr("Layout"), this); + auto *page_layout = new QVBoxLayout(page_group); + m_include_headers = new QCheckBox(tr("include headers"), page_group); + m_include_headers->setChecked(true); + page_layout->addWidget(m_include_headers); + page_layout->addStretch(); + main_layout->addWidget(page_group); + + auto *preview_layout = new QHBoxLayout; + auto *preview_pb = new QPushButton(tr("Preview"), this); + preview_layout->addWidget(preview_pb); + preview_layout->addStretch(); + main_layout->addLayout(preview_layout); + + m_preview_table = new QTableView(this); + m_preview_table->setEditTriggers(QAbstractItemView::NoEditTriggers); + main_layout->addWidget(m_preview_table); + + auto *buttons = new QDialogButtonBox( + QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + main_layout->addWidget(buttons); + connect(buttons, &QDialogButtonBox::accepted, + this, &CableExportDialog::accept); + connect(buttons, &QDialogButtonBox::rejected, + this, &CableExportDialog::reject); + connect(preview_pb, &QPushButton::clicked, + this, &CableExportDialog::preview); + + m_model = new CableListModel(m_project, this); + m_preview_table->setModel(m_model); + preview(); + + setMinimumSize(QSize(760, 560)); +} + +/** + @brief CableExportDialog::exec + Ask for the file once the user accepted, and write the chosen + columns to it -- the same flow as the material list export + @return +*/ +int CableExportDialog::exec() +{ + const auto r = QDialog::exec(); + if (r == QDialog::Accepted) + { + QString dir = m_project->currentDir(); + if (dir.isEmpty()) dir = QETApp::documentDir(); + const QString file_name = dir + QLatin1Char('/') + + tr("cable_list_") + m_project->title() + + QStringLiteral(".csv"); + const QString file_path = QFileDialog::getSaveFileName( + this, tr("Save As... "), file_name, + tr("CSV files (*.csv)")); + if (!file_path.isEmpty()) + { + QString error; + const auto csv = CableList::toCsv( + m_project, selectedColumns(), + m_include_headers->isChecked()); + if (!BomExport::writeCsv(file_path, csv, &error)) { + QMessageBox::critical( + this, tr("Error"), + tr("Cannot save the cable list to %1.\n%2") + .arg(file_path, error)); + } + } + } + return r; +} + +/** + @brief CableExportDialog::selectedColumns + @return the picked columns, and the default ones when the user + picked nothing -- an export of everything is what a dialog + confirmed without choosing asks for, the same fallback the drawn + table uses +*/ +QStringList CableExportDialog::selectedColumns() const +{ + auto keys = m_query_widget->selectedKeys(); + if (keys.isEmpty()) { + keys = CableList::defaultKeys(); + } + return keys; +} + +/** + @brief CableExportDialog::preview + Show what will be written: the chosen columns, worked out from the + cables of the project as they are right now +*/ +void CableExportDialog::preview() +{ + m_model->setFields(selectedColumns()); + m_preview_table->resizeColumnsToContents(); +} diff --git a/sources/cablelist/cableexportdialog.h b/sources/cablelist/cableexportdialog.h new file mode 100644 index 000000000..e14d63ec7 --- /dev/null +++ b/sources/cablelist/cableexportdialog.h @@ -0,0 +1,58 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEEXPORTDIALOG_H +#define CABLEEXPORTDIALOG_H + +#include +#include + +class QCheckBox; +class QTableView; + +class CableListModel; +class CableQueryWidget; +class QETProject; + +/** + @brief The CableExportDialog asks which columns of the cable list + are exported and writes them to a CSV file, built the same way the + BOMExportDialog does it for the material list: the column picker + the cable list is built with on top, the page settings under it, a + preview of what will be written, and the file asked for when the + dialog is accepted. +*/ +class CableExportDialog : public QDialog +{ + Q_DECLARE_TR_FUNCTIONS(CableExportDialog) + + public: + explicit CableExportDialog(QETProject *project, QWidget *parent = nullptr); + int exec() override; + + private: + QStringList selectedColumns() const; + void preview(); + + QETProject *m_project; + CableQueryWidget *m_query_widget; + CableListModel *m_model; + QCheckBox *m_include_headers; + QTableView *m_preview_table; +}; + +#endif // CABLEEXPORTDIALOG_H diff --git a/sources/cablelist/cablelistmodel.cpp b/sources/cablelist/cablelistmodel.cpp new file mode 100644 index 000000000..8991a9522 --- /dev/null +++ b/sources/cablelist/cablelistmodel.cpp @@ -0,0 +1,421 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablelistmodel.h" + +#include "cablelistrows.h" + +#include "../cable/cable.h" +#include "../diagram.h" +#include "../qetgraphicsitem/element.h" +#include "../qetproject.h" +#include "../qetxml.h" +#include "../utils/qetutils.h" + +#include +#include + +#include +#include + +/** + @brief CableListModel::CableListModel + @param project : project whose cables this model lists + @param parent : parent QObject +*/ +CableListModel::CableListModel(QETProject *project, QObject *parent) : + QAbstractTableModel(parent), + m_project(project) +{ + //Left is what a table starts with and stays with: the factory + //overwrites it with the alignment chosen in the dialog, and a + //table which never got that far (no column selected at + //placement) still draws its cells left rather than from an + //empty role + m_index_0_0_data.insert(Qt::TextAlignmentRole, int(Qt::AlignLeft)); + //The same gap between the text and the cell lines the creation + //dialog offers for the material list, already in place for a + //table which starts out empty and gets its columns later -- + //the factory overwrites it with the margins chosen in the + //dialog as soon as the table has a cell to configure + m_index_0_0_data.insert(Qt::UserRole+1, + QETUtils::marginsToString(QMargins(5,5,10,5))); + connectProject(); + setFields(CableList::defaultKeys()); +} + +/** + @brief CableListModel::CableListModel + @param other_model +*/ +CableListModel::CableListModel(const CableListModel &other_model) : + QAbstractTableModel(other_model.parent()) +{ + setParent(other_model.parent()); + m_project = other_model.m_project; + m_identifier = other_model.m_identifier; + connectProject(); + setFields(other_model.m_fields); + m_header_data = other_model.m_header_data; + m_index_0_0_data = other_model.m_index_0_0_data; +} + +/** + @brief CableListModel::rowCount + Reimplemented for QAbstractTableModel + @param parent + @return +*/ +int CableListModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) + return 0; + + //A table built without a single column shows no rows either: + //the empty frame a nomenclature table makes when it is + //created without entries, not a list of rows nobody can see + if (m_fields.isEmpty()) { + return 0; + } + + return m_rows.count(); +} + +/** + @brief CableListModel::columnCount + Reimplemented for QAbstractTableModel + @param parent + @return +*/ +int CableListModel::columnCount(const QModelIndex &parent) const +{ + if (parent.isValid()) + return 0; + + return m_fields.count(); +} + +/** + @brief CableListModel::setHeaderData + Reimplemented from QAbstractTableModel. + Only horizontal orientation is accepted. + @param section + @param orientation + @param value + @param role + @return +*/ +bool CableListModel::setHeaderData(int section, Qt::Orientation orientation, + const QVariant &value, int role) +{ + if (orientation == Qt::Vertical) { + return false; + } + auto hash_ = m_header_data.value(section); + hash_.insert(role, value); + m_header_data.insert(section, hash_); + emit headerDataChanged(orientation, section, section); + return true; +} + +/** + @brief CableListModel::headerData + Reimplemented for QAbstractTableModel + @param section + @param orientation + @param role + @return +*/ +QVariant CableListModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if (orientation == Qt::Vertical) { + return QVariant(); + } + + if (m_header_data.contains(section)) + { + auto hash_ = m_header_data.value(section); + if (role == Qt::DisplayRole && !hash_.contains(Qt::DisplayRole)) { //special case to have the same behavior as Qt + return hash_.value(Qt::EditRole); + } + return m_header_data.value(section).value(role); + } + return QVariant(); +} + +/** + @brief CableListModel::setData + Only store the data for the index 0.0. An empty table has no cells + yet -- index(0,0) does not exist without a single column -- but + its look is still settable: the factory configuring a freshly made + table must not be thrown away just because the table was placed + without entries and gains its columns afterwards. The data is read + as soon as cells exist. + @param index + @param value + @param role + @return +*/ +bool CableListModel::setData(const QModelIndex &index, const QVariant &value, int role) +{ + if (index.isValid() && (index.row() != 0 || index.column() != 0)) { + return false; + } + m_index_0_0_data.insert(role, value); + if (index.isValid()) { + emit dataChanged(index, index, {role}); + } + return true; +} + +/** + @brief CableListModel::data + Reimplemented for QAbstractTableModel + @param index + @param role + @return +*/ +QVariant CableListModel::data(const QModelIndex &index, int role) const +{ + if (!index.isValid()) + return QVariant(); + + if (index.row() == 0 && + index.column() == 0 && + role != Qt::DisplayRole) { + return m_index_0_0_data.value(role); + } + + if (role == Qt::DisplayRole) { + return m_rows.at(index.row()).value(m_fields.at(index.column())); + } + + return QVariant(); +} + +/** + @brief CableListModel::project + @return the project whose cables this model lists +*/ +QETProject *CableListModel::project() const +{ + return m_project.data(); +} + +/** + @brief CableListModel::setFields + Set which columns this table shows, in that order, and work the rows + out along the way. Unknown keys are dropped rather than shown as + empty columns: a file naming a column this program does not know + would draw a blank header nobody can fill. + @param fields the keys of CableList::allColumns() +*/ +void CableListModel::setFields(const QStringList &fields) +{ + QStringList kept; + for (const QString &field : fields) + { + if (kept.contains(field)) { + continue; + } + if (CableList::labelOf(field).isEmpty()) { + continue; + } + kept << field; + } + + beginResetModel(); + m_fields = kept; + //The columns themselves change, their labels are written again + //below -- but HOW a header is drawn (font, alignment, margins) + //belongs to the table, not to the column set, and stays as it + //is across a column edit. Sections which no longer exist are + //dropped, so a stale header of an old column cannot linger + for (auto it = m_header_data.begin(); it != m_header_data.end(); ) { + if (it.key() >= m_fields.count()) { + it = m_header_data.erase(it); + } else { + ++it; + } + } + for (int i = 0; i < m_fields.count(); ++i) { + m_header_data[i].insert(Qt::DisplayRole, CableList::labelOf(m_fields.at(i))); + } + m_rows = m_project ? CableList::rows(m_project) + : QVector>(); + endResetModel(); +} + +/** + @brief CableListModel::queryString + @return the fields joined the way the project file stores them +*/ +QString CableListModel::queryString() const +{ + return m_fields.join(QLatin1Char(',')); +} + +/** + @brief CableListModel::refresh + Work the rows out again, and watch everything they are worked out + from: a cable of the project, a folio, a piece a cable lands on + (its label is the BMK of an end, its Installation and Localisation + are what those two columns of an end read). +*/ +void CableListModel::refresh() +{ + for (const QMetaObject::Connection &connection : std::as_const(m_watchers)) { + QObject::disconnect(connection); + } + m_watchers.clear(); + + if (m_project) + { + const QVector cables = m_project->cables(); + for (Cable *cable : cables) { + m_watchers << connect(cable, &Cable::changed, + this, &CableListModel::refresh); + } + + const QList diagrams = m_project->diagrams(); + for (Diagram *diagram : diagrams) + { + m_watchers << connect(diagram, &Diagram::diagramInformationChanged, + this, &CableListModel::refresh); + const QList elements = diagram->elements(); + for (Element *element : elements) { + m_watchers << connect(element, &Element::elementInfoChange, + this, &CableListModel::refresh); + } + } + } + + beginResetModel(); + m_rows = m_project ? CableList::rows(m_project) + : QVector>(); + endResetModel(); +} + +/** + @brief CableListModel::connectProject + Watch the project itself: cables and folios coming and going reach + this model even though no refresh of ours was running to catch them + (the rows of a project being read from its file are filled cable by + cable, one signal at a time). +*/ +void CableListModel::connectProject() +{ + if (!m_project) { + return; + } + + connect(m_project, &QETProject::cableAdded, this, &CableListModel::refresh); + connect(m_project, &QETProject::cableRemoved, this, &CableListModel::refresh); + connect(m_project, &QETProject::diagramAdded, this, &CableListModel::refresh); + connect(m_project, &QETProject::diagramRemoved, this, &CableListModel::refresh); +} + +/** + @brief CableListModel::toXml + Save the model to xml: which columns are shown, the look of the + cells and of the header -- the rows themselves are not saved, they + are worked out again from the cables whenever the project opens. + @param document + @return +*/ +QDomElement CableListModel::toXml(QDomDocument &document) const +{ + auto dom_element = document.createElement(xmlTagName()); + + //Identifier + auto dom_identifier = document.createElement("identifier"); + auto dom_identifier_text = document.createTextNode(m_identifier); + dom_identifier.appendChild(dom_identifier_text); + dom_element.appendChild(dom_identifier); + + //Fields + auto dom_fields = document.createElement("fields"); + auto dom_fields_text = document.createTextNode(queryString()); + dom_fields.appendChild(dom_fields_text); + dom_element.appendChild(dom_fields); + + //Add index 0,0 data + auto index_00 = document.createElement("index00"); + index_00.setAttribute("font", QETUtils::fontToString(m_index_0_0_data.value(Qt::FontRole).value())); + auto me = QMetaEnum::fromType(); + index_00.setAttribute("alignment", me.valueToKey(m_index_0_0_data.value(Qt::TextAlignmentRole).toInt())); + dom_element.appendChild(index_00); + index_00.setAttribute("margins", m_index_0_0_data.value(Qt::UserRole+1).toString()); + + //header data + QHash> horizontal_; + for (auto key : m_header_data.keys()) + { + //We save all data except the display role, because it is + //generated from the fields above (same reason and same sorted + //order as ProjectDBModel, so the file stays reproducible) + auto list = m_header_data.value(key).keys(); + list.removeAll(Qt::DisplayRole); + std::sort(list.begin(), list.end()); + + horizontal_.insert(key, list); + } + + dom_element.appendChild(QETXML::modelHeaderDataToXml(document, this, horizontal_, QHash>())); + + return dom_element; +} + +/** + @brief CableListModel::fromXml + Restore the model from xml + @param element +*/ +void CableListModel::fromXml(const QDomElement &element) +{ + if (element.tagName() != xmlTagName()) + return; + + setIdentifier(element.firstChildElement("identifier").text()); + setFields(element.firstChildElement("fields").text() + .split(QLatin1Char(','), Qt::SkipEmptyParts)); + + //Index 0,0 + auto index_00 = element.firstChildElement("index00"); + QFont font_; + QETUtils::fontFromString(font_, index_00.attribute("font")); + m_index_0_0_data.insert(Qt::FontRole, font_); + auto me = QMetaEnum::fromType(); + const int alignment = me.keyToValue(index_00.attribute("alignment") + .toStdString().data()); + //A file written without an alignment (an empty or unknown enum + //key) would restore as -1, whose bits draw every cell right- + //aligned -- left is the default instead + m_index_0_0_data.insert(Qt::TextAlignmentRole, + alignment > 0 ? alignment : int(Qt::AlignLeft)); + //A file saved without cell margins (one written before the + //look of an empty table was kept) restores with the same + //default the creation dialog offers, instead of text drawn + //against the cell lines + const QString margins_ = index_00.attribute("margins"); + m_index_0_0_data.insert(Qt::UserRole+1, + margins_.isEmpty() + ? QETUtils::marginsToString(QMargins(5,5,10,5)) + : margins_); + + QETXML::modelHeaderDataFromXml(element.firstChildElement("header_data"), this); +} diff --git a/sources/cablelist/cablelistmodel.h b/sources/cablelist/cablelistmodel.h new file mode 100644 index 000000000..376c790a4 --- /dev/null +++ b/sources/cablelist/cablelistmodel.h @@ -0,0 +1,107 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLELISTMODEL_H +#define CABLELISTMODEL_H + +#include +#include +#include +#include +#include +#include +#include +#include + +class Cable; +class Diagram; +class Element; +class QETProject; + +/** + @brief The CableListModel class + + The rows of a cable list, shown by QetGraphicsTableItem the way the + project database model shows a nomenclature -- and shaped after it + on purpose: same roles, same header behaviour, same way of saving + itself to the project file, so that the table on the sheet treats + this model exactly like any other. + + Whereas ProjectDBModel asks the project database, this model asks + CableList::rows(), straight from the cables of the project. It + refreshes itself whenever anything those rows are worked out from + changes: a cable edited, a cable added or removed, a folio added, + removed or re-informed (its title block carries the installation and + the place), a label typed over on a piece a cable lands on. +*/ +class CableListModel : public QAbstractTableModel +{ + Q_OBJECT + + public: + explicit CableListModel(QETProject *project, QObject *parent = nullptr); + CableListModel(const CableListModel &other_model); + + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + bool setHeaderData(int section, + Qt::Orientation orientation, + const QVariant &value, + int role = Qt::EditRole) override; + QVariant headerData(int section, + Qt::Orientation orientation, + int role = Qt::DisplayRole) const override; + bool setData(const QModelIndex &index, + const QVariant &value, + int role = Qt::EditRole) override; + QVariant data(const QModelIndex &index, + int role = Qt::DisplayRole) const override; + + /// The columns this table shows, in order: keys of CableList + void setFields(const QStringList &fields); + QStringList fields() const {return m_fields;} + /// The same, joined the way the project file stores it + QString queryString() const; + void setIdentifier(const QString &identifier) {m_identifier = identifier;} + QString identifier() const {return m_identifier;} + QETProject *project() const; + + QDomElement toXml(QDomDocument &document) const; + void fromXml(const QDomElement &element); + static QString xmlTagName() {return QStringLiteral("cable_list_model");} + + public slots: + /// Work the rows out again and tell whoever shows them + void refresh(); + + private: + /// Watch everything the rows are worked out from + void connectProject(); + + QPointer m_project; + QStringList m_fields; + QVector> m_rows; + //First int = section, second int = Qt::role, QVariant = value + QHash> m_header_data; + QHash m_index_0_0_data; + QString m_identifier = QStringLiteral("cable_list"); + /// The current watchers of this model, dropped and taken + /// again on every refresh + QList m_watchers; +}; + +#endif // CABLELISTMODEL_H diff --git a/sources/cablelist/cablelistmodelpropertieswidget.cpp b/sources/cablelist/cablelistmodelpropertieswidget.cpp new file mode 100644 index 000000000..990e85b08 --- /dev/null +++ b/sources/cablelist/cablelistmodelpropertieswidget.cpp @@ -0,0 +1,100 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablelistmodelpropertieswidget.h" + +#include "cablelistmodel.h" +#include "cablequerywidget.h" + +#include +#include +#include +#include +#include + +/** + @brief CableListModelPropertiesWidget::CableListModelPropertiesWidget + @param model + @param parent +*/ +CableListModelPropertiesWidget::CableListModelPropertiesWidget( + CableListModel *model, + QWidget *parent) : + PropertiesEditorWidget(parent) +{ + auto *layout = new QHBoxLayout(this); + m_edit_pb = new QPushButton(tr("Edit columns..."), this); + m_refresh_pb = new QPushButton(tr("Refresh"), this); + layout->addWidget(m_edit_pb); + layout->addWidget(m_refresh_pb); + layout->addStretch(); + + connect(m_edit_pb, &QPushButton::clicked, this, &CableListModelPropertiesWidget::editColumns); + connect(m_refresh_pb, &QPushButton::clicked, this, &CableListModelPropertiesWidget::refreshRows); + + setModel(model); +} + +/** + @brief CableListModelPropertiesWidget::setModel + @param model +*/ +void CableListModelPropertiesWidget::setModel(CableListModel *model) +{ + m_model = model; + m_edit_pb->setEnabled(m_model != nullptr); + m_refresh_pb->setEnabled(m_model != nullptr); +} + +/** + @brief CableListModelPropertiesWidget::editColumns + Ask for the columns again and put them on the table right away -- + the same immediate, not-undoable way the database table changes its + query +*/ +void CableListModelPropertiesWidget::editColumns() +{ + if (!m_model) { + return; + } + + QDialog d(this); + d.setWindowTitle(tr("Cable list columns")); + auto *layout = new QVBoxLayout(&d); + auto *widget = new CableQueryWidget(&d); + widget->setFields(m_model->fields()); + layout->addWidget(widget); + + auto *button_box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + layout->addWidget(button_box); + connect(button_box, &QDialogButtonBox::accepted, &d, &QDialog::accept); + connect(button_box, &QDialogButtonBox::rejected, &d, &QDialog::reject); + + if (d.exec()) { + m_model->setFields(widget->selectedKeys()); + } +} + +/** + @brief CableListModelPropertiesWidget::refreshRows +*/ +void CableListModelPropertiesWidget::refreshRows() +{ + if (m_model) { + m_model->refresh(); + } +} diff --git a/sources/cablelist/cablelistmodelpropertieswidget.h b/sources/cablelist/cablelistmodelpropertieswidget.h new file mode 100644 index 000000000..908a8b178 --- /dev/null +++ b/sources/cablelist/cablelistmodelpropertieswidget.h @@ -0,0 +1,55 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLELISTMODELPROPERTIESWIDGET_H +#define CABLELISTMODELPROPERTIESWIDGET_H + +#include "../../PropertiesEditor/propertieseditorwidget.h" + +class CableListModel; +class QPushButton; + +/** + @brief The CableListModelPropertiesWidget class + The editor shown when a cable list table is selected: change which + columns the table shows, or work its rows out again. Shaped after + ProjectDBModelPropertiesWidget, which changes its query the same + immediate, not-undoable way -- the table itself is undoable to move + or delete, its content always follows the cables. +*/ +class CableListModelPropertiesWidget : public PropertiesEditorWidget +{ + Q_OBJECT + + public: + explicit CableListModelPropertiesWidget(CableListModel *model = nullptr, + QWidget *parent = nullptr); + ~CableListModelPropertiesWidget() override = default; + + void setModel(CableListModel *model); + + private slots: + void editColumns(); + void refreshRows(); + + private: + CableListModel *m_model = nullptr; + QPushButton *m_edit_pb = nullptr; + QPushButton *m_refresh_pb = nullptr; +}; + +#endif // CABLELISTMODELPROPERTIESWIDGET_H diff --git a/sources/cablelist/cablelistrows.cpp b/sources/cablelist/cablelistrows.cpp new file mode 100644 index 000000000..34df4998e --- /dev/null +++ b/sources/cablelist/cablelistrows.cpp @@ -0,0 +1,468 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablelistrows.h" + +#include "../bomexport.h" +#include "../cable/cable.h" +#include "../conductorproperties.h" +#include "../diagram.h" +#include "../qetgraphicsitem/conductor.h" +#include "../qetgraphicsitem/element.h" +#include "../qetgraphicsitem/terminal.h" +#include "../qetinformation.h" +#include "../qetproject.h" + +#include +#include + +#include +#include +#include + +namespace { + +/** + @brief One place where the line of a cable ends. + + An end which lands on a piece carries that piece (its uuid for + grouping and its pointer for reading the label, both valid as long + as the plan lives); an end taken from the drawn line carries none, + and its tie names the section instead. +*/ +struct CableEnd +{ + Diagram *diagram = nullptr; + QPointF scene; + Element *element = nullptr; + QUuid element_uuid; + QString tie; + + bool isLanding() const {return !element_uuid.isNull();} +}; + +/** + @brief endBefore + The order the ends of the cables are read in: the earlier sheet + first, then the higher point of that sheet, then the left one, then + a stable name so that a redraw can never swap two ends and shuffle + the rows around. + @param a first end + @param b second end + @param project the project the sheet numbers come from + @return true when a comes before b +*/ +bool endBefore(const CableEnd &a, const CableEnd &b, const QETProject *project) +{ + const int folio_a = a.diagram ? project->folioIndex(a.diagram) : INT_MAX; + const int folio_b = b.diagram ? project->folioIndex(b.diagram) : INT_MAX; + if (folio_a != folio_b) { + return folio_a < folio_b; + } + if (a.scene.y() != b.scene.y()) { + return a.scene.y() < b.scene.y(); + } + if (a.scene.x() != b.scene.x()) { + return a.scene.x() < b.scene.x(); + } + return a.tie < b.tie; +} + +/** + @brief folioOf + @param end + @return the sheet number the end lies on, empty when it lies on no + sheet at all (a cable nothing was ever drawn for) +*/ +QString folioOf(const CableEnd &end, const QETProject *project) +{ + return end.diagram ? QString::number(project->folioIndex(end.diagram) + 1) + : QString(); +} + +/** + @brief plantOf + @return the Installation the piece the end lands on carries -- the + same field every other list reads for a piece. A piece without one + leaves the cell empty: there is no second place to look for it, and + an end of the drawn line, which lands on no piece at all, fills + nothing either. +*/ +QString plantOf(const CableEnd &end) +{ + if (!end.element) { + return QString(); + } + return end.element->elementInformations() + .value(QETInformation::ELMT_PLANT).toString(); +} + +/** + @brief locmachOf + @return the Localisation the piece the end lands on carries, with + the same rule as the Installation: what the piece carries or + nothing at all. +*/ +QString locmachOf(const CableEnd &end) +{ + if (!end.element) { + return QString(); + } + return end.element->elementInformations() + .value(QETInformation::ELMT_LOCATION).toString(); +} + +/** + @brief labelOfEnd + @return the label (the BMK) of the piece the end lands on, empty for + an end of the drawn line -- there is no piece there to carry one +*/ +QString labelOfEnd(const CableEnd &end) +{ + if (!end.element) { + return QString(); + } + return end.element->elementInformations() + .value(QETInformation::ELMT_LABEL).toString(); +} + +} // namespace + +/** + @brief CableList::allColumns + @return every column of the cable list, in the order they are + offered, drawn and exported +*/ +const QList &CableList::allColumns() +{ + static const QList columns = { + {QStringLiteral("nr"), tr("No.")}, + {QStringLiteral("installation_cable"), tr("Plant (cable)")}, + {QStringLiteral("location_cable"), tr("Location (cable)")}, + {QStringLiteral("bmk_cable"), tr("Label (cable)")}, + {QStringLiteral("installation_start"), tr("Plant (start)")}, + {QStringLiteral("location_start"), tr("Location (start)")}, + {QStringLiteral("bmk_start"), tr("Label (start)")}, + {QStringLiteral("folio_start"), tr("Sheet (start)")}, + {QStringLiteral("installation_end"), tr("Plant (end)")}, + {QStringLiteral("location_end"), tr("Location (end)")}, + {QStringLiteral("bmk_end"), tr("Label (end)")}, + {QStringLiteral("folio_end"), tr("Sheet (end)")}, + {QStringLiteral("type"), tr("Cable type")}, + {QStringLiteral("length"), tr("Length")}, + {QStringLiteral("cores_used"), tr("Used cores")}, + }; + return columns; +} + +/** + @brief CableList::defaultKeys + @return the columns a freshly drawn cable list starts with: all of + them +*/ +const QStringList &CableList::defaultKeys() +{ + static const QStringList keys = []() { + QStringList list; + for (const Column &column : allColumns()) { + list << column.key; + } + return list; + }(); + return keys; +} + +/** + @brief CableList::labelOf + @param key + @return the header text of that column, empty when the key names no + column of this list +*/ +QString CableList::labelOf(const QString &key) +{ + for (const Column &column : allColumns()) { + if (column.key == key) { + return column.label; + } + } + return QString(); +} + +/** + @brief CableList::rows + Work out one row per cable, in plan order. + @param project the project whose cables are listed + @return the rows, sorted, the number column already filled in +*/ +QVector> CableList::rows(QETProject *project) +{ + QVector> result; + if (!project) { + return result; + } + + //Every conductor of every cable is walked once, and where one + //lands on a real piece becomes an arrival of that cable. A core + //which ends on a folio report is skipped on that side: the + //cable goes on over there, and the landing on the far sheet is + //what counts as its end. + QHash> arrivals; + for (Diagram *diagram : project->diagrams()) + { + for (Conductor *conductor : diagram->conductors()) + { + const ConductorProperties properties = conductor->properties(); + if (properties.m_cable_uuid.isNull()) { + continue; + } + if (!conductor->terminal1 || !conductor->terminal2) { + continue; + } + + Terminal *terminals[2] = {conductor->terminal1, conductor->terminal2}; + for (Terminal *terminal : terminals) + { + Element *element = terminal->parentElement(); + if (!element) { + //a free end is not an arrival + continue; + } + if (element->linkType() & Element::AllReport) { + //the cable continues on the linked sheet + continue; + } + + CableEnd end; + end.diagram = element->diagram(); + end.scene = terminal->scenePos(); + end.element = element; + end.element_uuid = element->uuid(); + end.tie = conductor->uuid().toString(); + arrivals[properties.m_cable_uuid].append(end); + } + } + } + + struct Entry + { + Cable *cable = nullptr; + CableEnd start; + CableEnd target; + }; + + auto byPlan = [project](const CableEnd &a, const CableEnd &b) { + return endBefore(a, b, project); + }; + + QVector entries; + entries.reserve(project->cables().count()); + + for (Cable *cable : project->cables()) + { + //Several cores landing on one piece are one end: the highest + //of their landings speaks for it. + QHash grouped; + for (const CableEnd &end : arrivals.value(cable->uuid())) + { + auto it = grouped.find(end.element_uuid); + if (it == grouped.end() || byPlan(end, it.value())) { + grouped.insert(end.element_uuid, end); + } + } + QList landings = grouped.values(); + std::sort(landings.begin(), landings.end(), byPlan); + + //The free ends of the drawn line, for the sides no core ever + //landed on + QList line_ends; + for (const CablePartData &part : cable->parts()) + { + Diagram *diagram = project->diagramByUuid(part.diagram); + if (!diagram) { + continue; + } + for (int i = 0; i < 2; ++i) + { + CableEnd end; + end.diagram = diagram; + end.scene = i ? part.p2 : part.p1; + end.tie = part.uuid.toString() + (i ? QStringLiteral("2") + : QStringLiteral("1")); + line_ends.append(end); + } + } + std::sort(line_ends.begin(), line_ends.end(), byPlan); + + Entry entry; + entry.cable = cable; + + if (landings.size() >= 2) + { + //The rule as asked for: the first finding counts for + //both ends. First landing in plan order is the start, + //the very next finding is the target -- not the last + //one. A sheet further along finds the same cable again + //but start and target are already taken by then, so it + //adds nothing: on the first sheet, the upper piece is + //the start and the lower one the target. + entry.start = landings.first(); + entry.target = landings.at(1); + } + else if (landings.size() == 1) + { + //One side is wired: that side carries the label, the + //other side falls back to the drawn line, farthest end + //first so a tie goes to the later point of the plan. + entry.start = landings.first(); + entry.target = landings.first(); + qreal farthest = -1.0; + for (const CableEnd &candidate : std::as_const(line_ends)) + { + const qreal distance = QLineF(entry.start.scene, candidate.scene).length(); + if (distance >= farthest) { + farthest = distance; + entry.target = candidate; + } + } + } + else if (line_ends.size() >= 2) + { + entry.start = line_ends.first(); + entry.target = line_ends.last(); + } + else if (line_ends.size() == 1) + { + entry.start = line_ends.first(); + entry.target = line_ends.first(); + } + //A cable with neither a core nor a line draws no ends at all; + //its own fields still fill the row. + + entries.append(entry); + } + + //Plan order again for the rows themselves: by the sheet the start + //lies on, then from the top of that sheet down. The name and the + //uuid only ever break ties, so the numbering is stable between + //two openings of the same project. + std::sort(entries.begin(), entries.end(), [project](const Entry &a, const Entry &b) { + if (endBefore(a.start, b.start, project)) return true; + if (endBefore(b.start, a.start, project)) return false; + if (endBefore(a.target, b.target, project)) return true; + if (endBefore(b.target, a.target, project)) return false; + if (a.cable->designation() != b.cable->designation()) { + return a.cable->designation() < b.cable->designation(); + } + return a.cable->uuid().toString() < b.cable->uuid().toString(); + }); + + int number = 0; + for (const Entry &entry : std::as_const(entries)) + { + Cable *cable = entry.cable; + QMap row; + row.insert(QStringLiteral("nr"), QString::number(++number)); + row.insert(QStringLiteral("installation_cable"), cable->installation()); + row.insert(QStringLiteral("location_cable"), cable->location()); + row.insert(QStringLiteral("bmk_cable"), cable->designation()); + row.insert(QStringLiteral("installation_start"), plantOf(entry.start)); + row.insert(QStringLiteral("location_start"), locmachOf(entry.start)); + row.insert(QStringLiteral("bmk_start"), labelOfEnd(entry.start)); + row.insert(QStringLiteral("folio_start"), folioOf(entry.start, project)); + row.insert(QStringLiteral("installation_end"), plantOf(entry.target)); + row.insert(QStringLiteral("location_end"), locmachOf(entry.target)); + row.insert(QStringLiteral("bmk_end"), labelOfEnd(entry.target)); + row.insert(QStringLiteral("folio_end"), folioOf(entry.target, project)); + row.insert(QStringLiteral("type"), cable->type()); + row.insert(QStringLiteral("length"), cable->length()); + row.insert(QStringLiteral("cores_used"), + QStringLiteral("%1/%2") + .arg(cable->usedCoreCount()) + .arg(cable->coreCount())); + result.append(row); + } + + return result; +} + +/** + @brief CableList::toCsv + The whole list as CSV bytes: every column of the list, every cable + of the project, in the format every CSV export of this program + writes. + @param project the project whose cables are listed + @return the bytes to write +*/ +/** + @brief CableList::toCsv + @param project the project whose cables are listed + @param keys the columns to write, in that order; unknown keys are + dropped, and a list without a single usable one falls back to the + default columns rather than writing a blank file + @param include_headers whether the line of column names is written + as the first line + @return the CSV bytes in the format every CSV export of this + program writes (UTF-8 BOM, ';', every field quoted) +*/ +QByteArray CableList::toCsv(QETProject *project, const QStringList &keys, + bool include_headers) +{ + QStringList kept; + for (const QString &key : keys) + { + if (kept.contains(key) || labelOf(key).isEmpty()) { + continue; + } + kept << key; + } + if (kept.isEmpty()) { + kept = defaultKeys(); + } + + QByteArray csv("\xEF\xBB\xBF"); + if (include_headers) { + QStringList headers; + for (const QString &key : std::as_const(kept)) { + headers << labelOf(key); + } + csv += BomExport::csvRecord(headers); + } + + const QVector> rows_ = rows(project); + for (const QMap &row : rows_) + { + QStringList values; + for (const QString &key : std::as_const(kept)) { + values << row.value(key); + } + csv += BomExport::csvRecord(values); + } + + return csv; +} + +/** + @brief CableList::toCsv + The whole list as it has always been written: every column, every + cable, the line of column names included + @param project the project whose cables are listed + @return the CSV bytes +*/ +QByteArray CableList::toCsv(QETProject *project) +{ + return toCsv(project, defaultKeys(), true); +} diff --git a/sources/cablelist/cablelistrows.h b/sources/cablelist/cablelistrows.h new file mode 100644 index 000000000..4f3f80988 --- /dev/null +++ b/sources/cablelist/cablelistrows.h @@ -0,0 +1,101 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLELISTROWS_H +#define CABLELISTROWS_H + +#include +#include +#include +#include +#include +#include + +class QETProject; + +/** + @brief The CableList class + + The columns and the rows of the cable list (menu "Listes": the entry + which puts such a table on a sheet, and the CSV export which writes + the same table to a file). + + Everything which decides what a cable list row says lives here, so + that the table drawn on the sheet and the exported CSV can never + disagree: one row per cable, worked out once and read twice. + + The two ends of a cable are worked out the way the user asked for + it: + + - wherever the cores of the cable land on a real piece (a terminal + strip, a device) is an end. Several cores landing on the same + piece are one end. A core which ends on a folio report is not an + end at all -- the cable goes on over there, and the landing on the + far sheet is the end instead, which is what makes a cable running + over several sheets show its start on the earlier sheet and its + target on the later one; + - ends are ordered by sheet first (the earlier sheet wins), then by + height in the plan (the higher one wins), then left to right; + the first end is the start, the last one the target; + - a cable whose cores never landed anywhere (not drawn yet, or only + wired in the middle) falls back to the two free ends of its drawn + line; when there is only one landing, the other side falls back to + the line end farthest away from it. +*/ +class CableList +{ + Q_DECLARE_TR_FUNCTIONS(CableList) + + public: + struct Column + { + /// The name the row hash, the saved file and the CSV use + QString key; + /// What the header over the column says + QString label; + }; + + /// Every column the list can offer, in the order they are + /// offered and exported + static const QList &allColumns(); + /// The columns a fresh list starts with: all of them but the + /// ones marked optional above + static const QStringList &defaultKeys(); + /// The header text of one column, empty when the key is not + /// a column of this list + static QString labelOf(const QString &key); + + /// One row per cable, sorted: first by the sheet its start + /// lies on, then from the top of that sheet down, the number + /// column filled in along the way + static QVector> rows(QETProject *project); + + /// The whole list as CSV bytes, in the format every CSV + /// export of this program writes (UTF-8 BOM, ';', every + /// field quoted): every column, every cable, the line of + /// column names included + static QByteArray toCsv(QETProject *project); + /// The same, but only the given columns, in the given + /// order, and only with the line of column names when asked + /// for -- what the export dialog writes. Unknown keys are + /// dropped, and no usable key at all falls back to the + /// default columns + static QByteArray toCsv(QETProject *project, const QStringList &keys, + bool include_headers); +}; + +#endif // CABLELISTROWS_H diff --git a/sources/cablelist/cablequerywidget.cpp b/sources/cablelist/cablequerywidget.cpp new file mode 100644 index 000000000..4b32dc71f --- /dev/null +++ b/sources/cablelist/cablequerywidget.cpp @@ -0,0 +1,319 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablequerywidget.h" + +#include "cablelistrows.h" + +#include "../qetapp.h" +#include "../ui/configsaveloaderwidget.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/** + @brief CableQueryWidget::CableQueryWidget + @param parent +*/ +CableQueryWidget::CableQueryWidget(QWidget *parent) : + QWidget(parent) +{ + auto *layout = new QVBoxLayout(this); + + auto *lists = new QHBoxLayout; + + auto *left = new QVBoxLayout; + left->addWidget(new QLabel(tr("Available columns"), this)); + m_available_list = new QListWidget(this); + left->addWidget(m_available_list); + + auto *buttons = new QVBoxLayout; + buttons->addStretch(); + auto make_button = [this](QStyle::StandardPixmap icon, const QString &tip) { + auto *button = new QPushButton(this); + button->setIcon(style()->standardIcon(icon)); + button->setToolTip(tip); + return button; + }; + auto *add_pb = make_button(QStyle::SP_ArrowRight, tr("Add the selected column")); + auto *remove_pb = make_button(QStyle::SP_ArrowLeft, tr("Remove the selected column")); + auto *up_pb = make_button(QStyle::SP_ArrowUp, tr("Move the selected column up")); + auto *down_pb = make_button(QStyle::SP_ArrowDown, tr("Move the selected column down")); + buttons->addWidget(add_pb); + buttons->addWidget(remove_pb); + buttons->addWidget(up_pb); + buttons->addWidget(down_pb); + buttons->addStretch(); + + auto *right = new QVBoxLayout; + right->addWidget(new QLabel(tr("Table columns"), this)); + m_choosen_list = new QListWidget(this); + right->addWidget(m_choosen_list); + + lists->addLayout(left); + lists->addLayout(buttons); + lists->addLayout(right); + layout->addLayout(lists); + + m_config_gb = new ConfigSaveLoaderWidget(this); + layout->addWidget(m_config_gb); + + setMinimumSize(QSize(520, 420)); + + setUpItems(); + fillSavedQuery(); + + connect(m_config_gb, &ConfigSaveLoaderWidget::saveClicked, this, &CableQueryWidget::saveConfig); + connect(m_config_gb, &ConfigSaveLoaderWidget::loadClicked, this, &CableQueryWidget::loadConfig); + + connect(add_pb, &QPushButton::clicked, this, &CableQueryWidget::addField); + connect(remove_pb, &QPushButton::clicked, this, &CableQueryWidget::removeField); + connect(up_pb, &QPushButton::clicked, this, &CableQueryWidget::moveFieldUp); + connect(down_pb, &QPushButton::clicked, this, &CableQueryWidget::moveFieldDown); + + connect(m_available_list, &QListWidget::itemDoubleClicked, + this, &CableQueryWidget::on_m_available_list_itemDoubleClicked); + connect(m_choosen_list, &QListWidget::itemDoubleClicked, + this, &CableQueryWidget::on_m_choosen_list_itemDoubleClicked); +} + +/** + @brief CableQueryWidget::~CableQueryWidget +*/ +CableQueryWidget::~CableQueryWidget() +{ +} + +/** + @brief CableQueryWidget::selectedKeys + @return the chosen columns, in order +*/ +QStringList CableQueryWidget::selectedKeys() const +{ + QStringList keys; + int row = 0; + while (auto *item = m_choosen_list->item(row)) + { + keys.append(item->data(Qt::UserRole).toString()); + ++row; + } + + return keys; +} + +/** + @brief CableQueryWidget::setFields + Put exactly these columns in the right list, in that order. Keys + this list does not know are ignored, which is what keeps a file + coming from a newer program readable here. + @param fields +*/ +void CableQueryWidget::setFields(const QStringList &fields) +{ + //Ugly hack to force to remove all chosen columns, the same way + //SummaryQueryWidget::reset() does it + while (auto *item = m_choosen_list->takeItem(0)) { + m_available_list->addItem(item); + } + + for (const QString &key : fields) + { + for (int row = 0; row < m_available_list->count(); ++row) + { + QListWidgetItem *item = m_available_list->item(row); + if (item->data(Qt::UserRole).toString() == key) { + m_available_list->takeItem(row); + m_choosen_list->addItem(item); + break; + } + } + } +} + +/** + @brief CableQueryWidget::setUpItems + Fill the available list with every column the list offers and + leave them there: a fresh dialog opens with its entries on the + left, the same way the material list dialog does. What a table or + an export starts with when nothing has been picked is the default + set of columns, applied where the table or the file is made. +*/ +void CableQueryWidget::setUpItems() +{ + for (const CableList::Column &column : CableList::allColumns()) + { + auto *item = new QListWidgetItem(column.label, m_available_list); + item->setData(Qt::UserRole, column.key); + } +} + +/** + @brief CableQueryWidget::fillSavedQuery + Fill the combo box of the saved configurations +*/ +void CableQueryWidget::fillSavedQuery() +{ + QFile file(QETApp::configDir() % QStringLiteral("/cable_list.json")); + if (file.open(QFile::ReadOnly)) + { + QJsonDocument jsd(QJsonDocument::fromJson(file.readAll())); + QJsonObject jso = jsd.object(); + + for (auto it = jso.begin() ; it != jso.end() ; ++it) { + m_config_gb->addItem(it.key()); + } + } +} + +/** + @brief CableQueryWidget::on_m_available_list_itemDoubleClicked + @param item +*/ +void CableQueryWidget::on_m_available_list_itemDoubleClicked(QListWidgetItem *item) +{ + Q_UNUSED(item) + addField(); +} + +/** + @brief CableQueryWidget::on_m_choosen_list_itemDoubleClicked + @param item +*/ +void CableQueryWidget::on_m_choosen_list_itemDoubleClicked(QListWidgetItem *item) +{ + Q_UNUSED(item) + removeField(); +} + +/** + @brief CableQueryWidget::addField +*/ +void CableQueryWidget::addField() +{ + if (auto *item = m_available_list->takeItem(m_available_list->currentRow())) { + m_choosen_list->addItem(item); + } +} + +/** + @brief CableQueryWidget::removeField +*/ +void CableQueryWidget::removeField() +{ + if (auto *item = m_choosen_list->takeItem(m_choosen_list->currentRow())) { + m_available_list->addItem(item); + } +} + +/** + @brief CableQueryWidget::moveFieldUp +*/ +void CableQueryWidget::moveFieldUp() +{ + auto row = m_choosen_list->currentRow(); + if (row <= 0) { + return; + } + + auto *item = m_choosen_list->takeItem(row); + m_choosen_list->insertItem(row - 1, item); + m_choosen_list->setCurrentItem(item); +} + +/** + @brief CableQueryWidget::moveFieldDown +*/ +void CableQueryWidget::moveFieldDown() +{ + auto row = m_choosen_list->currentRow(); + if (row == -1) { + return; + } + + auto *item = m_choosen_list->takeItem(row); + m_choosen_list->insertItem(row + 1, item); + m_choosen_list->setCurrentItem(item); +} + +/** + @brief CableQueryWidget::saveConfig +*/ +void CableQueryWidget::saveConfig() +{ + QFile file_(QETApp::configDir() % QStringLiteral("/cable_list.json")); + + if (file_.open(QFile::ReadWrite)) + { + QJsonDocument doc_(QJsonDocument::fromJson(file_.readAll())); + QJsonObject root_object; + + if (!doc_.isEmpty()) + { + root_object = doc_.object(); + if (root_object.contains(m_config_gb->text())) { + root_object.remove(m_config_gb->text()); + } + } + + QJsonObject object_; + object_.insert(QStringLiteral("fields"), selectedKeys().join(QLatin1Char(','))); + root_object[m_config_gb->text()] = object_; + + doc_.setObject(root_object); + file_.resize(0); + file_.write(doc_.toJson()); + } +} + +/** + @brief CableQueryWidget::loadConfig +*/ +void CableQueryWidget::loadConfig() +{ + auto name = m_config_gb->selectedText(); + if (name.isEmpty()) { + return; + } + + QFile file_(QETApp::configDir() % QStringLiteral("/cable_list.json")); + if (!file_.open(QFile::ReadOnly)) { + return; + } + + QJsonDocument doc_(QJsonDocument::fromJson(file_.readAll())); + QJsonObject object_ = doc_.object(); + + auto value = object_.value(name); + if (!value.isObject()) { + return; + } + + auto fields = value.toObject().value(QStringLiteral("fields")); + if (fields.isString()) { + setFields(fields.toString().split(QLatin1Char(','), Qt::SkipEmptyParts)); + } +} diff --git a/sources/cablelist/cablequerywidget.h b/sources/cablelist/cablequerywidget.h new file mode 100644 index 000000000..d1d4d7738 --- /dev/null +++ b/sources/cablelist/cablequerywidget.h @@ -0,0 +1,71 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLEQUERYWIDGET_H +#define CABLEQUERYWIDGET_H + +#include + +class ConfigSaveLoaderWidget; +class QListWidget; +class QListWidgetItem; +class QPushButton; + +/** + @brief The CableQueryWidget class + The content tab of the dialog which puts a cable list on a sheet: + which columns the list shows, and in which order. Shaped after + SummaryQueryWidget -- two lists with arrows between them, a saved + configuration per name -- but the columns are chosen out of the + fixed set of CableList instead of out of a SQL query, so there is no + query line to edit. +*/ +class CableQueryWidget : public QWidget +{ + Q_OBJECT + + public: + explicit CableQueryWidget(QWidget *parent = nullptr); + ~CableQueryWidget(); + + static QString modelIdentifier() {return "cable_list";} + /// The chosen columns, in order + QStringList selectedKeys() const; + /// Put exactly these columns in the right list, in that + /// order; keys this list does not know are ignored + void setFields(const QStringList &fields); + + private slots: + void on_m_available_list_itemDoubleClicked(QListWidgetItem *item); + void on_m_choosen_list_itemDoubleClicked(QListWidgetItem *item); + void addField(); + void removeField(); + void moveFieldUp(); + void moveFieldDown(); + void saveConfig(); + void loadConfig(); + + private: + void setUpItems(); + void fillSavedQuery(); + + QListWidget *m_available_list = nullptr; + QListWidget *m_choosen_list = nullptr; + ConfigSaveLoaderWidget *m_config_gb = nullptr; +}; + +#endif // CABLEQUERYWIDGET_H diff --git a/sources/cablelist/cabletypelist.cpp b/sources/cablelist/cabletypelist.cpp new file mode 100644 index 000000000..4e8250341 --- /dev/null +++ b/sources/cablelist/cabletypelist.cpp @@ -0,0 +1,824 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cabletypelist.h" + +#include "../materiallist/materiallist.h" +#include "../qetinformation.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace { + +/** + @brief The columns of a cable type file -- the whole catalogue, and + the only ones the program reads anything from. + + Three of them: the name of the type, how many cores it has and the + colour of each of them. In that order they are written into a brand + new file, and a label line is matched against them so that a + catalogue read back never depends on the wording of its first line. + + The material file the pattern was copied from holds more columns + (section, sheath colour, manufacturer and so on); they were never + read here and are not listed. A file which has them anyway loses + nothing: a header cell outside this list keeps its own name and its + own data, it carries no meaning, and the machine header line is + recognized by its shape rather than by this list, so an extra + column there never turns that line into a record of cables. +*/ +const QStringList &canonicalColumns() +{ + static const QStringList columns = { + QStringLiteral("designation"), + QStringLiteral("cores"), + QStringLiteral("core_colors") + }; + return columns; +} + +/** + @brief Tell whether a cell of the machine header can be a column key. + + A key is one plain lowercase word -- core_colors and + manufacturer_reference are typical -- written the same whichever + language the file is read in, which is exactly why it can sit under + the label line. A key the program doesn't know is still a key : its + column is kept and shown the way it is written, it carries no + meaning. What the shape really protects is the other side: a cable + ("H07V-K 3G1,5") never looks like this, so a line of cables is + never mistaken for a header. + @param cell + @return true when the cell can be part of the machine header line +*/ +bool isMachineKey(const QString &cell) +{ + if (cell.isEmpty()) { + return false; + } + for (const QChar c : cell) + { + const ushort u = c.unicode(); + const bool key = (u >= 'a' && u <= 'z') + || (u >= '0' && u <= '9') + || u == '_'; + if (!key) { + return false; + } + } + //A key starts with a letter, so that a row of numbers can never + //pass for one. + return cell.at(0).unicode() >= 'a' && cell.at(0).unicode() <= 'z'; +} + +/** + @brief Decode a csv file content. + The cable type file is written in utf-8 with a BOM, the same way the + material file is, so spreadsheets open it with the right encoding. A + file written by hand in the local encoding is still decodable: + fromUtf8() is only used when the bytes are valid utf-8. + @param raw + @return +*/ +QString decode(const QByteArray &raw) +{ + if (raw.startsWith("\xEF\xBB\xBF")) { + return QString::fromUtf8(raw.constData() + 3, raw.size() - 3); + } + + const QByteArray utf8 = QString::fromUtf8(raw).toUtf8(); + if (utf8 == raw) { + return QString::fromUtf8(raw); + } + return QString::fromLocal8Bit(raw); +} + +/** + @brief Tell whether a file exists and holds something. + An existing but empty file is the same as no file at all: it can be + filled with the template without losing anything. + @param path + @return +*/ +bool hasContent(const QString &path) +{ + const QFileInfo info(path); + return info.exists() && info.isFile() && info.size() > 0; +} + +} // namespace + +/** + @brief CableTypeList::settingsKey + @return the QSettings key holding the path of the cable type file +*/ +QString CableTypeList::settingsKey() +{ + return QStringLiteral("cable-management/cable-type-list-path"); +} + +/** + @brief CableTypeList::configuredPath + @return the path of the cable type file as chosen in the preferences, + or a null QString when the user never set one. +*/ +QString CableTypeList::configuredPath() +{ + QSettings settings; + const QString path = settings.value(settingsKey(), QStringLiteral("default")).toString(); + if (path.isEmpty() || path == QLatin1String("default")) { + return QString(); + } + return path; +} + +/** + @brief CableTypeList::setConfiguredPath + Store the path of the cable type file in the preferences. + @param path +*/ +void CableTypeList::setConfiguredPath(const QString &path) +{ + QSettings settings; + settings.setValue(settingsKey(), path.isEmpty() ? QStringLiteral("default") : path); +} + +/** + @brief CableTypeList::defaultFileName + @return the file name used when the cable type file is created without + an explicit location. +*/ +QString CableTypeList::defaultFileName() +{ + return QStringLiteral("qet_cable_types.csv"); +} + +/** + @brief CableTypeList::defaultPath + @return where the cable type file is created when no path is + configured yet : the standard documents folder. +*/ +QString CableTypeList::defaultPath() +{ + QString dir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); + while (dir.endsWith(QLatin1Char('/'))) { + dir.chop(1); + } + if (dir.isEmpty()) { + dir = QDir::currentPath(); + } + return dir + QLatin1Char('/') + defaultFileName(); +} + +/** + @brief CableTypeList::savedHeaderState + @return the saved column layout of the selection window, empty when the + window was never opened or the layout could not be read back. +*/ +QByteArray CableTypeList::savedHeaderState() +{ + QSettings settings; + return settings.value(QStringLiteral("cable-management/cable-type-list-header")).toByteArray(); +} + +/** + @brief CableTypeList::saveHeaderState + Remember the column layout of the selection window. + @param state the header state as saved by QHeaderView::saveState() +*/ +void CableTypeList::saveHeaderState(const QByteArray &state) +{ + QSettings settings; + settings.setValue(QStringLiteral("cable-management/cable-type-list-header"), state); +} + +/** + @brief CableTypeList::savedDialogSize + @return the size the selection window had the last time it was closed, + an invalid size when it was never opened. +*/ +QSize CableTypeList::savedDialogSize() +{ + QSettings settings; + const QSize size(settings.value(QStringLiteral("cable-management/cable-type-list-width")).toInt(), + settings.value(QStringLiteral("cable-management/cable-type-list-height")).toInt()); + //A size which was never written reads back as 0x0, which Qt still + //counts as valid : it must not be handed to resize(). + return size.isEmpty() ? QSize() : size; +} + +/** + @brief CableTypeList::saveDialogSize + Remember the size of the selection window. + @param size +*/ +void CableTypeList::saveDialogSize(const QSize &size) +{ + if (size.isEmpty()) { + return; + } + QSettings settings; + settings.setValue(QStringLiteral("cable-management/cable-type-list-width"), size.width()); + settings.setValue(QStringLiteral("cable-management/cable-type-list-height"), size.height()); +} + +/** + @brief CableTypeList::defaultColumns + @return the columns of a brand new cable type file, in writing order. +*/ +QStringList CableTypeList::defaultColumns() +{ + return canonicalColumns(); +} + +/** + @brief CableTypeList::translatedColumn + @param column a column of the cable type file + @return that column named the way it is shown to the user, in the + current language. A column QElectroTech doesn't know is returned as it + is, since it can only have been named by the user. +*/ +QString CableTypeList::translatedColumn(const QString &column) +{ + //The columns which are specific to a cable keep their own wording, + //the ones shared with the material file reuse the element + //information wording, so both catalogues read the same. The type + //column is the exception: it is called Designation here, the way + //the cable form calls it, and not "Article number", which is + //what an element means by it. + static const QMap own = { + {QStringLiteral("designation"), + QCoreApplication::translate("CableTypeList", "Designation")}, + {QStringLiteral("cores"), + QCoreApplication::translate("CableTypeList", "Number of cores")}, + {QStringLiteral("core_colors"), + QCoreApplication::translate("CableTypeList", "Core colors")}, + {QStringLiteral("section"), + QCoreApplication::translate("CableTypeList", "Cable section")}, + {QStringLiteral("color"), + QCoreApplication::translate("CableTypeList", "Sheath color")} + }; + + const auto it = own.constFind(column); + if (it != own.constEnd()) { + return it.value(); + } + + const QString translated = QETInformation::translatedInfoKey(column); + return translated.isEmpty() ? column : translated; +} + +/** + @brief CableTypeList::translatedHeader + The label line of a cable type file : the columns the way the user + reads them, in the current language. + @param columns + @return +*/ +QStringList CableTypeList::translatedHeader(const QStringList &columns) +{ + QStringList header; + header.reserve(columns.size()); + for (const QString &column : columns) { + header.append(translatedColumn(column)); + } + return header; +} + +/** + @brief CableTypeList::designation + @param record + @return the type name of that cable, the way it shows in the + selection list and on the drawing +*/ +QString CableTypeList::designation(const CableTypeRecord &record) +{ + return record.value(QStringLiteral("designation")); +} + +/** + @brief CableTypeList::coreCount + Tell how many cores a cable type holds. + @param record + @return the number of cores, or 0 when the file doesn't say. 0 means + "unknown", which the selection window treats as usable : a file which + says nothing is no reason to refuse a type. +*/ +int CableTypeList::coreCount(const CableTypeRecord &record) +{ + bool ok = false; + const int cores = record.value(QStringLiteral("cores")).trimmed().toInt(&ok); + return (ok && cores > 0) ? cores : 0; +} + +/** + @brief CableTypeList::coreColors + The colours of the cores, in the order they are written in the file, + which is the order they are given to the cores of a drawn cable. + @param record + @return + + The cell holds the colours separated by |, ; or ,. Writing always + uses | because it can't appear in a colour name and never needs + quoting, reading accepts the three so a hand written file works too. +*/ +QStringList CableTypeList::coreColors(const CableTypeRecord &record) +{ + QStringList colors; + const QString cell = record.value(QStringLiteral("core_colors")); + for (const QString &raw : cell.split(QLatin1Char('|'), Qt::SkipEmptyParts)) + { + for (const QString &part : raw.split(QLatin1Char(';'), Qt::SkipEmptyParts)) + { + for (const QString &color : part.split(QLatin1Char(','), Qt::SkipEmptyParts)) + { + const QString trimmed = color.trimmed(); + if (!trimmed.isEmpty()) { + colors.append(trimmed); + } + } + } + } + return colors; +} + +/** + @brief CableTypeList::headerAliasMap + @return every accepted header cell of a cable type file, lowercased, + mapped to the canonical column it means. + + Beside the key itself, a header may use the translated name of the + column ("Nombre d'âmes" for cores), or the name and translation of an + element information, so a catalogue sharing columns with the material + file is understood in both. +*/ +QMap CableTypeList::headerAliasMap() +{ + QMap map; + + for (const QString &key : canonicalColumns()) + { + map.insert(key.toLower(), key); + const QString translated = translatedColumn(key); + if (!translated.isEmpty()) { + map.insert(translated.toLower(), key); + } + //The element information spells the same column another way + //("Article number" for designation); both are accepted, so + //that a file written with either wording reads the same. + const QString info_key = QETInformation::translatedInfoKey(key); + if (!info_key.isEmpty() && info_key != translated) { + map.insert(info_key.toLower(), key); + } + } + + //Every element information is an acceptable column name, so that + //columns copied over from the material file keep their meaning. + const QStringList keys = QETInformation::elementInfoKeys(); + for (const QString &key : keys) + { + if (map.contains(key.toLower())) { + continue; + } + map.insert(key.toLower(), key); + const QString translated = QETInformation::translatedInfoKey(key); + if (!translated.isEmpty()) { + map.insert(translated.toLower(), key); + } + } + + //The wording older files were written with : these French names + //were the ones the label line carried before the interface text + //became English, and a catalogue written with them must keep + //reading, so each of them still means its column here. + static const QMap older_wording = { + {QStringLiteral("désignation"), QStringLiteral("designation")}, + {QStringLiteral("nombre d'âmes"), QStringLiteral("cores")}, + {QStringLiteral("couleurs des âmes"), QStringLiteral("core_colors")}, + {QStringLiteral("section du câble"), QStringLiteral("section")}, + {QStringLiteral("couleur du fourreau"), QStringLiteral("color")} + }; + for (auto it = older_wording.constBegin(); it != older_wording.constEnd(); ++it) + { + if (!map.contains(it.key())) { + map.insert(it.key(), it.value()); + } + } + + return map; +} + +/** + @brief CableTypeList::canonicalColumn + Turn one header cell into a canonical column name. + @param header_cell + @param already_used the names chosen for the previous cells, to keep + the header free of duplicates + @param alias_map lowercased alias -> canonical name + @return +*/ +QString CableTypeList::canonicalColumn(const QString &header_cell, + const QStringList &already_used, + const QMap &alias_map) +{ + const QString raw = header_cell.trimmed(); + + if (raw.isEmpty()) { + //A nameless column keeps its data and its place, it just can't be + //matched to anything. + QString name = QStringLiteral("column_%1").arg(already_used.size() + 1); + int i = already_used.size() + 1; + while (already_used.contains(name)) { + name = QStringLiteral("column_%1").arg(++i); + } + return name; + } + + const auto it = alias_map.constFind(raw.toLower()); + if (it != alias_map.constEnd() && !already_used.contains(it.value())) { + return it.value(); + } + + //Either an unknown name, or a second cell meaning something which is + //already used : the cell is kept as it is written, its data is never + //thrown away. + QString name = raw; + int i = 2; + while (already_used.contains(name)) { + name = raw + QStringLiteral("_%1").arg(i++); + } + return name; +} + +/** + @brief CableTypeList::isMachineHeaderLine + Tell whether the second line of a cable type file is the machine + header QElectroTech writes under the label line : the canonical + column names, kept so that a file written in one language is still + understood in another one. + @param label_line the first line of the file, the one the user reads + @param candidate the line which may be the machine header + @param alias_map lowercased alias -> canonical name + @return true when candidate must not be read as a record +*/ +bool CableTypeList::isMachineHeaderLine(const QStringList &label_line, + const QStringList &candidate, + const QMap &alias_map) +{ + if (candidate.isEmpty() || candidate.size() != label_line.size()) { + return false; + } + + //At least one cell the program really knows : a line made only + //of key shaped words nobody here gave a meaning to is far more + //likely to be a cable than a header. + bool has_known_column = false; + for (int i = 0; i < candidate.size(); ++i) + { + const QString cell = candidate.at(i).trimmed(); + if (cell.isEmpty()) { + continue; + } + if (alias_map.contains(cell.toLower())) + { + has_known_column = true; + continue; + } + if (cell == label_line.at(i).trimmed()) { + continue; + } + //An unknown key is still a key : the column comes back as + //it was written, its data is never thrown away. + if (isMachineKey(cell)) { + continue; + } + return false; + } + + return has_known_column; +} + +/** + @brief CableTypeList::load + Read a cable type file. + @param path + @param data receives the columns and the records + @param error receives a message when the file can't be read + @return true on success +*/ +bool CableTypeList::load(const QString &path, CableTypeListData *data, QString *error) +{ + if (error) { + error->clear(); + } + if (!data) { + if (error) { + *error = QCoreApplication::translate("CableTypeList", "No receiver for the cable types file."); + } + return false; + } + + data->columns.clear(); + data->records.clear(); + data->separator = QLatin1Char(';'); + + QFile file(path); + if (!file.open(QIODevice::ReadOnly)) + { + if (error) { + *error = file.errorString(); + } + return false; + } + const QByteArray raw = file.readAll(); + file.close(); + + const QString content = decode(raw); + if (content.trimmed().isEmpty()) { + return true; + } + + const int eol = content.indexOf(QLatin1Char('\n')); + data->separator = MaterialList::detectSeparator(eol < 0 ? content : content.left(eol)); + + QList rows = MaterialList::parseCsv(content, data->separator); + if (rows.isEmpty()) { + return true; + } + + const QStringList header = rows.takeFirst(); + const QMap alias_map = headerAliasMap(); + + //The label line is followed by the machine header QElectroTech + //writes itself : the canonical names, so that the file is read + //the same way whatever the language it was written in. + QStringList machine_line; + if (!rows.isEmpty() && isMachineHeaderLine(header, rows.first(), alias_map)) { + machine_line = rows.takeFirst(); + } + + QStringList used; + for (int i = 0; i < header.size(); ++i) + { + QString cell = header.at(i); + if (i < machine_line.size() && !machine_line.at(i).isEmpty()) { + cell = machine_line.at(i); + } + const QString column = canonicalColumn(cell, used, alias_map); + used.append(column); + data->columns.append(column); + } + + for (const QStringList &row : std::as_const(rows)) + { + CableTypeRecord record; + bool empty = true; + for (int i = 0; i < data->columns.size(); ++i) + { + const QString value = i < row.size() ? row.at(i) : QString(); + if (!value.isEmpty()) { + empty = false; + } + record.setValue(data->columns.at(i), value); + } + //Cells written past the header are not thrown away : they are + //written back the way they were read. + for (int i = data->columns.size(); i < row.size(); ++i) + { + if (!row.at(i).isEmpty()) { + empty = false; + } + record.extra.append(row.at(i)); + } + if (!empty) { + data->records.append(record); + } + } + + return true; +} + +/** + @brief CableTypeList::writeFile + Write a whole cable type file atomically : a crash or a full disk + never leaves a half written catalogue behind. + @param path + @param data + @param error receives a message when the file can't be written + @return true on success +*/ +bool CableTypeList::writeFile(const QString &path, const CableTypeListData &data, QString *error) +{ + if (error) { + error->clear(); + } + + QList rows; + rows.reserve(data.records.size()); + for (const CableTypeRecord &record : data.records) + { + QStringList row; + row.reserve(data.columns.size()); + for (const QString &column : data.columns) { + row.append(record.value(column)); + } + row.append(record.extra); + rows.append(row); + } + + QList header_lines; + header_lines.append(translatedHeader(data.columns)); + header_lines.append(data.columns); + const QByteArray content = MaterialList::serializeCsv(header_lines, rows, data.separator); + + //The folder may not be there yet: a fresh profile has no + //documents folder, and a path typed into the settings may name a + //folder which was never created. QSaveFile cannot write into a + //folder which does not exist, so without this the whole write + //fails and the message says nothing about the real reason. + const QString folder = QFileInfo(path).absolutePath(); + if (!folder.isEmpty() && !QDir(folder).exists() && !QDir().mkpath(folder)) + { + if (error) { + *error = QCoreApplication::translate( + "CableTypeList", + "Cannot create the folder %1 for the cable types file.").arg(folder); + } + return false; + } + + QSaveFile file(path); + if (!file.open(QIODevice::WriteOnly) || file.write(content) != content.size()) + { + if (error) { + *error = file.errorString(); + } + file.cancelWriting(); + return false; + } + if (!file.commit()) + { + if (error) { + *error = file.errorString(); + } + return false; + } + return true; +} + +/** + @brief CableTypeList::appendRecord + Add one cable type at the end of a cable type file. + The file is read again first: changes the user just saved from his + spreadsheet are part of what gets rewritten, never dropped. + @param path + @param record + @param error receives a message when the file can't be written + @return true on success +*/ +bool CableTypeList::appendRecord(const QString &path, const CableTypeRecord &record, QString *error) +{ + if (error) { + error->clear(); + } + + CableTypeListData data; + if (hasContent(path)) + { + if (!load(path, &data, error)) { + return false; + } + if (data.columns.isEmpty()) + { + if (error) { + *error = QCoreApplication::translate("CableTypeList", "The file contains no header: missing columns."); + } + return false; + } + } + else + { + data.columns = defaultColumns(); + data.separator = QLatin1Char(';'); + } + + data.records.append(record); + return writeFile(path, data, error); +} + +/** + @brief CableTypeList::updateRecord + Rewrite one line of a cable type file, the way a spreadsheet saves a + row he just edited: the line is found as it stands at this moment, + replaced by what the user left, and the whole file is written again + -- so the changes he saved from his spreadsheet in the meantime are + part of it rather than being thrown away. + @param path the file to write + @param before the line as it stands in the file right now + @param after the line as the user left it + @param error receives a message when the file can't be written, or + when the line he started from is no longer in it + @return true on success +*/ +bool CableTypeList::updateRecord(const QString &path, + const CableTypeRecord &before, + const CableTypeRecord &after, + QString *error) +{ + if (error) { + error->clear(); + } + + CableTypeListData data; + if (!load(path, &data, error)) { + return false; + } + if (data.columns.isEmpty()) + { + if (error) { + *error = QCoreApplication::translate("CableTypeList", "The file contains no header: missing columns."); + } + return false; + } + + int row = -1; + for (int i = 0; i < data.records.size(); ++i) + { + if (data.records.at(i) == before) { + row = i; + break; + } + } + if (row < 0) + { + //The line he started from is gone: rewriting whatever stands + //there now would overwrite somebody else's work. + if (error) { + *error = QCoreApplication::translate("CableTypeList", + "This entry no longer exists in the file: it may have been modified in the meantime."); + } + return false; + } + + data.records[row] = after; + return writeFile(path, data, error); +} + +/** + @brief CableTypeList::createFile + Create an empty cable type file holding only the header lines. + @param path + @param error receives a message when the file can't be written + @return true on success +*/ +bool CableTypeList::createFile(const QString &path, QString *error) +{ + if (error) { + error->clear(); + } + + if (hasContent(path)) + { + if (error) { + *error = QCoreApplication::translate("CableTypeList", "The file already exists and is not empty."); + } + return false; + } + + CableTypeListData data; + data.columns = defaultColumns(); + data.separator = QLatin1Char(';'); + return writeFile(path, data, error); +} + +/** + @brief CableTypeList::isEmptyFile + @param path + @return true when no file, or an empty one, exists at path +*/ +bool CableTypeList::isEmptyFile(const QString &path) +{ + return !hasContent(path); +} diff --git a/sources/cablelist/cabletypelist.h b/sources/cablelist/cabletypelist.h new file mode 100644 index 000000000..a2e5bfcfa --- /dev/null +++ b/sources/cablelist/cabletypelist.h @@ -0,0 +1,134 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLETYPELIST_H +#define CABLETYPELIST_H + +#include +#include +#include +#include +#include +#include +#include + +/** + @brief One line of the cable type file. + + Same shape as MaterialRecord : the keys are column names, either one + QElectroTech knows (designation, manufacturer...) or one the user + invented, which is never interpreted but never thrown away either. +*/ +struct CableTypeRecord +{ + QMap values; + //Cells written after the last column of the header, kept as they + //are, exactly like MaterialRecord::extra. + QStringList extra; + + QString value(const QString &column) const {return values.value(column);} + void setValue(const QString &column, const QString &value) {values.insert(column, value);} + bool operator==(const CableTypeRecord &other) const {return values == other.values;} +}; + +/** + @brief The whole content of a cable type file. + + The separator and the column names are read from the file rather than + imposed, so a catalogue written in a spreadsheet keeps working. +*/ +struct CableTypeListData +{ + QStringList columns; + QList records; + QChar separator = QLatin1Char(';'); + + bool isEmpty() const {return columns.isEmpty() && records.isEmpty();} +}; + +/** + @brief The CableTypeList class reads and writes the cable type file (a + CSV file listing the cable kinds a project may use : their name, + how many cores they have and the colour of each of them). + + It is the cable counterpart of MaterialList and follows it step by + step : same settings handling, same two header lines (the labels the + user reads, then the canonical names QElectroTech matches against), + same lenient reading of a hand written file. + + This is a pure data class : it knows nothing about widgets, so it + stays usable from the tests and from the command line. +*/ +class CableTypeList +{ + public: + //Settings + static QString settingsKey(); + static QString configuredPath(); + static void setConfiguredPath(const QString &path); + static QString defaultPath(); + static QString defaultFileName(); + + //Geometry of the selection window, remembered from one opening + //to the next, the same way MaterialList remembers its own. + static QByteArray savedHeaderState(); + static void saveHeaderState(const QByteArray &state); + static QSize savedDialogSize(); + static void saveDialogSize(const QSize &size); + + //Columns + static QStringList defaultColumns(); + static QString translatedColumn(const QString &column); + static QStringList translatedHeader(const QStringList &columns); + + //Cable semantics + static QString designation(const CableTypeRecord &record); + static int coreCount(const CableTypeRecord &record); + static QStringList coreColors(const CableTypeRecord &record); + + //File io + static bool load(const QString &path, CableTypeListData *data, QString *error = nullptr); + static bool writeFile(const QString &path, const CableTypeListData &data, QString *error = nullptr); + static bool appendRecord(const QString &path, const CableTypeRecord &record, QString *error = nullptr); + /** + @brief Rewrite one line of a cable type file, the way a + spreadsheet saves a row he just edited. + @param path the file to write + @param before the line as it stands in the file right now + @param after the line as the user left it + @param error receives a message when the file can't be + written, or when that line is no longer in it + @return true on success + */ + static bool updateRecord(const QString &path, + const CableTypeRecord &before, + const CableTypeRecord &after, + QString *error = nullptr); + static bool createFile(const QString &path, QString *error = nullptr); + static bool isEmptyFile(const QString &path); + + private: + static QMap headerAliasMap(); + static QString canonicalColumn(const QString &header_cell, + const QStringList &already_used, + const QMap &alias_map); + static bool isMachineHeaderLine(const QStringList &label_line, + const QStringList &candidate, + const QMap &alias_map); +}; + +#endif // CABLETYPELIST_H diff --git a/sources/conductorproperties.cpp b/sources/conductorproperties.cpp index 6cf2f40fd..f65a2a340 100644 --- a/sources/conductorproperties.cpp +++ b/sources/conductorproperties.cpp @@ -284,6 +284,15 @@ void ConductorProperties::toXml(QDomElement &e) const e.setAttribute("text_color", text_color.name()); e.setAttribute("formula", m_formula); e.setAttribute("cable", m_cable); + if (!m_cable_uuid.isNull()) + { + //Only written when there is a cable: a conductor which is no + //part of one keeps whatever cable text it had and no reference + //at all, so a hand written value is never mistaken for a + //generated one. + e.setAttribute("cable_uuid", m_cable_uuid.toString()); + e.setAttribute("cable_slot", QString::number(m_cable_slot)); + } e.setAttribute("bus", m_bus); e.setAttribute("function", m_function); e.setAttribute("tension_protocol", m_tension_protocol); @@ -343,6 +352,8 @@ void ConductorProperties::fromXml(QDomElement &e) text_color = (xml_text_color.isValid()? xml_text_color : QColor(Qt::black)); m_formula = e.attribute("formula"); m_cable = e.attribute("cable"); + m_cable_uuid = QUuid(e.attribute("cable_uuid")); + m_cable_slot = e.attribute("cable_slot", QString::number(-1)).toInt(); m_bus = e.attribute("bus"); m_function = e.attribute("function"); m_tension_protocol = e.attribute("tension_protocol"); @@ -844,6 +855,8 @@ bool ConductorProperties::operator==(const ConductorProperties &other) const other.text_color == text_color &&\ other.m_formula == m_formula &&\ other.m_cable == m_cable &&\ + other.m_cable_uuid == m_cable_uuid &&\ + other.m_cable_slot == m_cable_slot &&\ other.m_bus == m_bus &&\ other.m_function == m_function &&\ other.m_tension_protocol == m_tension_protocol &&\ diff --git a/sources/conductorproperties.h b/sources/conductorproperties.h index d29bbdbaa..6bb0fd004 100644 --- a/sources/conductorproperties.h +++ b/sources/conductorproperties.h @@ -21,6 +21,7 @@ #include "qet.h" #include #include +#include class QPainter; @@ -97,6 +98,14 @@ class ConductorProperties m_bus, m_cable; + /// The cable of the project this conductor is a core of, null + /// when it belongs to no cable. The text shown in m_cable is + /// generated from the cable and never typed in: this reference + /// plus the slot below is all it takes to work it out again. + QUuid m_cable_uuid; + /// Which core of that cable this conductor shows, -1 when none + int m_cable_slot = -1; + int text_size, m_dash_size = 1; diff --git a/sources/diagram.cpp b/sources/diagram.cpp index ab0c504f7..a04d4b433 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -20,9 +20,12 @@ #include "ElementsCollection/elementcollectionhandler.h" #include "TerminalStrip/GraphicsItem/terminalstripitem.h" +#include "cable/cablecopy.h" +#include "cable/cablepart.h" #include "xml/terminalstripitemxml.h" #include "QPropertyUndoCommand/qpropertyundocommand.h" #include "diagramcontent.h" +#include "diagramevent/diagrameventaddcable.h" #include "diagramevent/diagrameventinterface.h" #include "diagramposition.h" #include "factory/elementfactory.h" @@ -900,6 +903,23 @@ bool Diagram::eventInterfaceIsRunning() const return m_event_interface && m_event_interface->isRunning(); } +/** + @brief Diagram::cableToolIsRunning + @return true while the cable drawing tool is the running tool. + + That tool is the one which takes the right mouse button away from + everything else: while it runs, a right click cancels the line being + drawn and must not open the quick command ring nor any context menu + with it. Every other tool lets go of the button again and is + surrounded by the ring the way it always was. +*/ +bool Diagram::cableToolIsRunning() const +{ + return m_event_interface + && m_event_interface->isRunning() + && qobject_cast(m_event_interface); +} + /** @brief Diagram::conductorsAutonumName @return the name of autonum to use. @@ -1420,9 +1440,10 @@ void Diagram::folioSequentialsToXml(QHash *cables_added) { QDomElement root = document.documentElement(); - return(fromXml(root, position, consider_informations, content_ptr)); + return(fromXml(root, position, consider_informations, content_ptr, cables_added)); } /** @@ -1662,7 +1683,8 @@ QPair pickEnds(const QDomElement &f, bool Diagram::fromXml(QDomElement &document, QPointF position, bool consider_informations, - DiagramContent *content_ptr) + DiagramContent *content_ptr, + QList *cables_added) { const QDomElement& root = document; // The first element must be a diagram @@ -1928,6 +1950,17 @@ bool Diagram::fromXml(QDomElement &document, //Load terminal strip item QVector added_strips { TerminalStripItemXml::fromXml(this, root) }; + //Load the cable lines a copy fragment carries -- built here + //rather than in the caller so that they are placed with the rest + //of the selection, but only when the caller asked to be handed + //them: a folio loaded from a project file holds no cable of its + //own, the cables of a project are read at project level. + QList added_cables; + if (cables_added) { + added_cables = CableCopy::read(this, root); + *cables_added = added_cables; + } + //Translate items if a new position was given in parameter if (position != QPointF()) { @@ -1938,6 +1971,7 @@ bool Diagram::fromXml(QDomElement &document, for (auto image : std::as_const(added_images )) added_items << image; for (auto table : std::as_const(added_tables )) added_items << table; for (const auto &strip : std::as_const(added_strips)) added_items << strip; + for (const auto &cable : std::as_const(added_cables)) added_items << cable; //Get the top left corner of the rectangle that contain all added items QRectF items_rect; diff --git a/sources/diagram.h b/sources/diagram.h index e0587a96a..c19cac53b 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -33,6 +33,7 @@ #include class Conductor; +class CablePart; class CustomElement; class DiagramContent; class DiagramPosition; @@ -203,14 +204,21 @@ class Diagram : public QGraphicsScene QPointF = QPointF(), bool = true, DiagramContent * = nullptr); + //The last argument is only for a copy fragment: when it is + //given, the cable lines that fragment carries are built as + //well and handed back through it -- they are not part of a + //DiagramContent, so the caller has to know about them to + //put them on the undo stack (see CableCopy) bool fromXml(QDomDocument &, QPointF = QPointF(), bool = true, - DiagramContent * = nullptr); + DiagramContent * = nullptr, + QList * = nullptr); bool fromXml(QDomElement &, QPointF = QPointF(), bool = true, - DiagramContent * = nullptr); + DiagramContent * = nullptr, + QList * = nullptr); void folioSequentialsToXml(QHash*, QDomElement *, @@ -231,6 +239,7 @@ class Diagram : public QGraphicsScene virtual void addItem (QGraphicsItem *item); virtual void removeItem (QGraphicsItem *item); bool eventInterfaceIsRunning() const; + bool cableToolIsRunning() const; // methods related to graphics options ExportProperties applyProperties(const ExportProperties &); diff --git a/sources/diagramevent/diagrameventaddcable.cpp b/sources/diagramevent/diagrameventaddcable.cpp new file mode 100644 index 000000000..51d9aaacd --- /dev/null +++ b/sources/diagramevent/diagrameventaddcable.cpp @@ -0,0 +1,463 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "diagrameventaddcable.h" + +#include "../cable/addcablecommand.h" +#include "../cable/cablecreatedialog.h" +#include "../cable/cablepart.h" +#include "../diagram.h" +#include "../qetapp.h" +#include "../qetdiagrameditor.h" +#include "../qetproject.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + + ///A click closer than this to the start point is not an end point + const qreal min_end_length = 2.0; + +/** + @brief How far apart two grid points are, the same way the snapping + itself works it out -- the direction the line may be locked to has to + be judged against the same step the end point will land on. +*/ +qreal gridStep() +{ + QSettings settings; + const int x = settings.value(QStringLiteral("diagrameditor/Xgrid"), + Diagram::xGrid).toInt(); + return qMax(1, x); +} + +} // namespace + +/** + @brief DiagramEventAddCable::DiagramEventAddCable + @param diagram the folio the cable is drawn on +*/ +DiagramEventAddCable::DiagramEventAddCable(Diagram *diagram) : + DiagramEventInterface(diagram) +{ + m_running = true; + //Done here as well as in init(): Diagram::setEventInterface() + //only calls init() when it replaces another tool, so a fresh + //tool would otherwise never be set up at all. + init(); + //The message itself waits for the next turn of the event loop: + //setEventInterface() destroys the tool which was running before + //this constructor returns, and its destructor clears the status + //bar, which would wipe out anything shown before it is done. + QTimer::singleShot(0, this, [this]() { updateHint(); }); +} + +/** + @brief DiagramEventAddCable::~DiagramEventAddCable +*/ +DiagramEventAddCable::~DiagramEventAddCable() +{ + delete m_preview; + delete m_help_horiz; + delete m_help_verti; + + if (m_diagram) + { + for (QGraphicsView *view : m_diagram->views()) { + view->setContextMenuPolicy(Qt::DefaultContextMenu); + } + } + clearHint(); +} + +/** + @brief DiagramEventAddCable::init + While the tool runs, the right button belongs to it alone: it cancels + the line being drawn or ends the tool. The quick command ring and the + context menu of the folio would both pop up in the middle of the + drawing and take the tool away from under the user, so they are kept + out of the way until the tool is gone. +*/ +void DiagramEventAddCable::init() +{ + m_running = true; + if (m_diagram) + { + for (QGraphicsView *view : m_diagram->views()) { + view->setContextMenuPolicy(Qt::NoContextMenu); + } + } + updateHint(); +} + +/** + @brief DiagramEventAddCable::reset + Put the tool back to where it was before the first click: no line + kept, no preview, nothing remembered. The cross stays, since it + belongs to the tool rather than to one line. +*/ +void DiagramEventAddCable::reset() +{ + if (m_preview && m_diagram) { + m_diagram->removeItem(m_preview); + } + delete m_preview; + m_preview = nullptr; + m_has_anchor = false; + m_anchor = QPointF(); + m_axis = -1; + m_crossings.clear(); + updateHint(); +} + +/** + @brief DiagramEventAddCable::clearHint +*/ +void DiagramEventAddCable::clearHint() const +{ + if (!m_diagram || m_diagram->views().isEmpty()) return; + if (auto *editor = QETApp::diagramEditorAncestorOf(m_diagram->views().constFirst())) { + editor->statusBar()->clearMessage(); + } +} + +/** + @brief DiagramEventAddCable::updateHint + Say what the next click does, and -- once the line has been pulled + out -- how many conductors it runs across, so the user knows before + the dialog opens what the cable is going to be given. +*/ +void DiagramEventAddCable::updateHint() const +{ + if (!m_diagram || m_diagram->views().isEmpty()) return; + auto *editor = QETApp::diagramEditorAncestorOf(m_diagram->views().constFirst()); + if (!editor) return; + + if (!m_has_anchor) + { + editor->statusBar()->showMessage(tr( + "Left click: place the cable start; " + "drag or second click: finish; " + "right click: cancel; Esc: quit")); + return; + } + + editor->statusBar()->showMessage(tr( + "Left click or release: finish the line " + "(%n core(s) recognized; always horizontal or vertical); " + "right click: cancel the line", + "how many conductors the line being drawn already crosses", + m_crossings.size())); +} + +/** + @brief DiagramEventAddCable::mousePressEvent + @param event +*/ +void DiagramEventAddCable::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + if (Q_UNLIKELY(!m_diagram || m_diagram->isReadOnly())) return; + + if (event->button() == Qt::RightButton) + { + //Accepted first: emitting finish() makes the diagram destroy + //this very tool, so nothing may touch its members afterwards. + event->setAccepted(true); + + //First right click takes the line being drawn back, second one + //leaves the tool: the user always knows how far he has to press + //to get out, and never lands in a menu he did not ask for. + if (m_has_anchor) { + reset(); + } else { + m_running = false; + emit finish(); + } + return; + } + if (event->button() != Qt::LeftButton) return; + + const QPointF pos = Diagram::snapToGrid(event->scenePos()); + + if (!m_has_anchor) + { + m_has_anchor = true; + m_anchor = pos; + m_axis = -1; + updatePreview(pos); + event->setAccepted(true); + return; + } + + //A second click ends the line wherever it lands: it is snapped + //back onto whichever direction the line already runs along, so + //the user does not have to aim at the line itself. + const QPointF end = finishPoint(pos); + if (QLineF(m_anchor, end).length() >= min_end_length) { + finishLine(end); + } + event->setAccepted(true); +} + +/** + @brief DiagramEventAddCable::mouseMoveEvent + @param event +*/ +void DiagramEventAddCable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + showGuides(event->scenePos()); + if (!m_has_anchor) return; + + updatePreview(event->scenePos()); + event->setAccepted(true); +} + +/** + @brief DiagramEventAddCable::mouseReleaseEvent + Letting go of a drag which was pulled out far enough lays the line + down straight away, which is how a line is drawn everywhere else in + QElectroTech -- a click without a drag, on the other hand, only puts + the start point down and waits for the next click. + @param event +*/ +void DiagramEventAddCable::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + if (event->button() != Qt::LeftButton || !m_has_anchor) return; + + const QPointF end = finishPoint(Diagram::snapToGrid(event->scenePos())); + if (QLineF(m_anchor, end).length() >= min_end_length) { + finishLine(end); + } + event->setAccepted(true); +} + +/** + @brief DiagramEventAddCable::keyPressEvent + @param event +*/ +void DiagramEventAddCable::keyPressEvent(QKeyEvent *event) +{ + if (event->key() == Qt::Key_Escape) + { + if (m_has_anchor) + { + reset(); + event->setAccepted(true); + return; + } + } + DiagramEventInterface::keyPressEvent(event); +} + +/** + @brief DiagramEventAddCable::finishPoint + The point the line really ends at: snapped to the grid, and pulled + onto the direction the line already runs along, so a second click + which does not sit exactly on the axis still ends the line instead + of starting a new one. + @param scene_pos where the user clicked + @return the end of the line, in scene coordinates +*/ +QPointF DiagramEventAddCable::finishPoint(const QPointF &scene_pos) const +{ + if (m_axis == 0) { + return Diagram::snapToGrid(QPointF(scene_pos.x(), m_anchor.y())); + } + if (m_axis == 1) { + return Diagram::snapToGrid(QPointF(m_anchor.x(), scene_pos.y())); + } + + //The line was never pulled far enough to have a direction: take + //the one which is clearly longer, so it never ends up diagonal. + const QPointF delta = scene_pos - m_anchor; + if (qAbs(delta.x()) >= qAbs(delta.y())) { + return Diagram::snapToGrid(QPointF(scene_pos.x(), m_anchor.y())); + } + return Diagram::snapToGrid(QPointF(m_anchor.x(), scene_pos.y())); +} + +/** + @brief DiagramEventAddCable::updatePreview + Show the line as it will be laid down. + + The direction is decided again on every move rather than once and + for all: the user pulls, and the line follows whichever way he pulls + harder. A dead band of half a grid step keeps it from flickering + when he moves along the diagonal. + @param scene_pos where the mouse stands +*/ +void DiagramEventAddCable::updatePreview(const QPointF &scene_pos) +{ + if (!m_has_anchor || !m_diagram) return; + + QPointF end = scene_pos; + { + const QPointF delta = end - m_anchor; + const qreal dx = qAbs(delta.x()); + const qreal dy = qAbs(delta.y()); + const qreal dead = gridStep() * 0.5; + + int wanted = -1; + if (dx > dy + dead) { + wanted = 0; + } else if (dy > dx + dead) { + wanted = 1; + } else if (m_axis < 0 && (dx > dead || dy > dead)) { + wanted = dx >= dy ? 0 : 1; + } + if (wanted >= 0) { + m_axis = wanted; + } + } + + if (m_axis == 0) { + end.setY(m_anchor.y()); + } else if (m_axis == 1) { + end.setX(m_anchor.x()); + } + end = Diagram::snapToGrid(end); + + if (!m_preview) + { + m_preview = new QGraphicsLineItem; + QPen pen(QColor(0, 120, 215)); + pen.setWidthF(2.0); + pen.setStyle(Qt::DashLine); + m_preview->setPen(pen); + m_preview->setZValue(1000.0); + m_diagram->addItem(m_preview); + } + m_preview->setLine(QLineF(m_anchor, end)); + + //Keep the count of crossed conductors up to date, so the status + //bar already says what the dialog is about to say. + m_crossings = CableManager::crossedConductors(m_diagram, QLineF(m_anchor, end)); + updateHint(); +} + +/** + @brief DiagramEventAddCable::showGuides + The thin cross QElectroTech draws while any shape is drawn, which + says where the mouse stands in the folio and, for a line, along + which of the two directions it may run. + @param scene_pos where the mouse stands +*/ +void DiagramEventAddCable::showGuides(const QPointF &scene_pos) +{ + if (!m_diagram) return; + + if (!m_help_horiz || !m_help_verti) + { + QPen pen; + pen.setWidthF(0.4); + pen.setCosmetic(true); + pen.setColor(Diagram::background_color == Qt::darkGray ? Qt::lightGray : Qt::darkGray); + + const QRectF rect = m_diagram->border_and_titleblock.insideBorderRect(); + + if (!m_help_horiz) + { + m_help_horiz = new QGraphicsLineItem(rect.topLeft().x(), 0, rect.topRight().x(), 0); + m_help_horiz->setPen(pen); + m_help_horiz->setZValue(999.0); + m_diagram->addItem(m_help_horiz); + } + if (!m_help_verti) + { + m_help_verti = new QGraphicsLineItem(0, rect.topLeft().y(), 0, rect.bottomLeft().y()); + m_help_verti->setPen(pen); + m_help_verti->setZValue(999.0); + m_diagram->addItem(m_help_verti); + } + } + + const QPointF point = Diagram::snapToGrid(scene_pos); + m_help_horiz->setY(point.y()); + m_help_verti->setX(point.x()); +} + +/** + @brief DiagramEventAddCable::finishLine + Put the line down and hand it over to the dialog which turns it into + a cable -- a new one from the cable type file, or one the project + already holds. + @param end where the line stops +*/ +void DiagramEventAddCable::finishLine(const QPointF &end) +{ + if (!m_diagram || !m_diagram->project()) { + reset(); + return; + } + + QPointF to = end; + if (m_axis == 0) { + to.setY(m_anchor.y()); + } else if (m_axis == 1) { + to.setX(m_anchor.x()); + } + to = Diagram::snapToGrid(to); + + const QLineF line(m_anchor, to); + if (line.length() < min_end_length) { + reset(); + return; + } + + m_crossings = CableManager::crossedConductors(m_diagram, line); + + CablePartData part; + part.uuid = QUuid::createUuid(); + part.diagram = m_diagram->uuid(); + part.p1 = line.p1(); + part.p2 = line.p2(); + + //Remember which cable the line was given to: a brand new one was + //brought into being by this very dialog and undo has to take it + //away again, an existing one only gains a section. + const QVector before = m_diagram->project()->cables(); + + { + CableCreateDialog dialog(m_diagram, m_crossings, part, m_diagram->views().isEmpty() + ? nullptr : m_diagram->views().constFirst()); + if (dialog.exec() != QDialog::Accepted || !dialog.cable()) + { + reset(); + return; + } + + const bool own_cable = !before.contains(dialog.cable()); + + auto *item = new CablePart(part); + item->setCable(dialog.cable()); + m_diagram->addItem(item); + + m_diagram->project()->undoStack()->push( + new AddCableCommand(dialog.cable(), item, m_diagram, own_cable, + dialog.takenCores())); + } + + reset(); +} diff --git a/sources/diagramevent/diagrameventaddcable.h b/sources/diagramevent/diagrameventaddcable.h new file mode 100644 index 000000000..40b6cf0b1 --- /dev/null +++ b/sources/diagramevent/diagrameventaddcable.h @@ -0,0 +1,78 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef DIAGRAMEVENTADDCABLE_H +#define DIAGRAMEVENTADDCABLE_H + +#include "../cable/cablemanager.h" +#include "diagrameventinterface.h" + +class QLineF; +class QGraphicsLineItem; + +/** + @brief The DiagramEventAddCable class draws the trunk line of a cable. + + It behaves like every other drawing tool of QElectroTech: the first + click puts the start point down, the mouse then shows the line as it + will be, and either a second click or the release of a drag lays it + -- whichever the user does, he does not have to aim at anything. + + The line stays horizontal or vertical, whichever way the user pulls + harder, and it keeps following him: the direction is worked out again + on every mouse move (with a dead band so it does not flicker), never + frozen by the first stray pixel of the gesture -- a cable trunk runs + straight along a row of drawings, but along the row the user meant. +*/ +class DiagramEventAddCable : public DiagramEventInterface +{ + Q_OBJECT + + public: + explicit DiagramEventAddCable(Diagram *diagram); + ~DiagramEventAddCable() override; + + void mousePressEvent(QGraphicsSceneMouseEvent *event) override; + void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; + void init() override; + + private: + void reset(); + void updatePreview(const QPointF &scene_pos); + QPointF finishPoint(const QPointF &scene_pos) const; + void finishLine(const QPointF &end); + void showGuides(const QPointF &scene_pos); + void clearHint() const; + void updateHint() const; + + private: + QGraphicsLineItem *m_preview = nullptr; + ///The cross QElectroTech shows while any shape is drawn + QGraphicsLineItem *m_help_horiz = nullptr; + QGraphicsLineItem *m_help_verti = nullptr; + ///True once the first click has put the line's start down + bool m_has_anchor = false; + QPointF m_anchor; + ///Which way the line is locked: + ///-1 undecided, 0 horizontal, 1 vertical + int m_axis = -1; + QList m_crossings; +}; + +#endif // DIAGRAMEVENTADDCABLE_H diff --git a/sources/diagramevent/diagrameventaddpaste.cpp b/sources/diagramevent/diagrameventaddpaste.cpp index 354bd8132..c8a4e02ad 100644 --- a/sources/diagramevent/diagrameventaddpaste.cpp +++ b/sources/diagramevent/diagrameventaddpaste.cpp @@ -18,6 +18,10 @@ #include "diagrameventaddpaste.h" #include "../autoNum/ui/pastenumberingimport.h" +#include "../cable/addcablecommand.h" +#include "../cable/cablecopy.h" +#include "../cable/cablepart.h" +#include "../cable/editcablecommand.h" #include "../diagram.h" #include "../foliogrid.h" #include "../diagramcommands.h" @@ -30,12 +34,15 @@ #include #include +#include #include #include #include #include #include +#include + /** @brief DiagramEventAddPaste::DiagramEventAddPaste @param diagram : diagram to paste into @@ -74,8 +81,12 @@ db->setUpdateBlocked(true); } - //Load items at their original XML coordinates. - m_diagram->fromXml(document_xml, QPointF(), false, &m_content); + //Load items at their original XML coordinates. A cable line + //comes back through its own list rather than through the + //content: the cable owns it, so it is not one of the folio's + //items -- and it travels as a whole, colour labels and all, + //whether or not the place it is going to holds a wire. + m_diagram->fromXml(document_xml, QPointF(), false, &m_content, &m_cables); m_copied_schemes = PasteNumberingImport::copiedBy(document_xml); if (db) { @@ -83,9 +94,15 @@ db->setUpdateBlocked(false); db->updateDB(); } - if (!m_content.count()) return; + if (!m_content.count() && m_cables.isEmpty()) return; - const QList movable = m_content.items(MovableItems); + QList movable = m_content.items(MovableItems); + for (CablePart *part : std::as_const(m_cables)) { + if (part) { + movable << part; + m_cable_items.insert(part); + } + } if (movable.isEmpty()) return; //Compute the top-left of all items' actual on-screen bounding @@ -309,11 +326,24 @@ void DiagramEventAddPaste::moveTo(const QPointF &scene_pos) const QPointF delta = snapGrid(scene_pos) - m_initial_cursor; + //A cable line is handed a step rather than a place to stand: it + //folds a translation into its own geometry and into the colour + //labels it carries and keeps its own pos() at (0, 0) + //(CablePart::itemChange), so the position stored above -- always + //(0, 0) for it -- would be an addition again on every mouse move + //and the line would run away from the group it was pasted with. + //The difference to the last step keeps the translation the same + //one the rest of the paste gets, expressed their way: a place. + const QPointF cable_step = delta - m_cable_delta; for (auto it = m_relative_pos.constBegin() ; it != m_relative_pos.constEnd() ; ++it) { - if (it.key()) { + if (!it.key()) continue; + if (m_cable_items.contains(it.key())) { + it.key()->setPos(cable_step); + } else { it.key()->setPos(it.value() + delta); } } + m_cable_delta = delta; //Update conductor paths so they follow the moved terminals. const QList conductors = m_content.conductors(DiagramContent::AnyConductor); @@ -377,6 +407,11 @@ void DiagramEventAddPaste::keyPressEvent(QKeyEvent *event) PasteDiagramCommand's first redo() does not add the items to the scene -- it assumes they are already there, which is what Diagram::fromXml did when this started. So pushing it here adopts them rather than duplicating them. + + The cable lines are wired just before that, which is the first moment + the place they will occupy is final: each colour label takes the wire + it happens to stand on, and a line the user refuses to let take wires + away from another cable goes away again on its own. */ void DiagramEventAddPaste::commit() { @@ -384,10 +419,35 @@ void DiagramEventAddPaste::commit() m_finished = true; m_running = false; + const QList wired = CableCopy::wire( + m_diagram, m_cables, + m_content.conductors(DiagramContent::AnyConductor)); + m_cables.clear(); + + //The cable lines the copy brings are not part of the paste + //itself: they are handed to the paste so that one Ctrl+Z takes + //the whole of it back in one go. + QList cable_commands; + for (const CableCopy::Wired &line : std::as_const(wired)) + { + if (!line.part) continue; + + auto *added = new AddCableCommand(line.part->cable(), line.part.data(), + m_diagram, true, line.taken); + added->setText(QCoreApplication::translate("CableCopy", "Paste a cable")); + cable_commands << added; + } + //Asks whether to import the numberings the copy brings, if the - //project has not got them + //project has not got them; the paste itself and the cable lines + //travel inside the same step of the undo stack. PasteNumberingImport::push(m_diagram->views().isEmpty() ? nullptr : m_diagram->views().first(), - m_diagram, m_content, m_copied_schemes); + m_diagram, m_content, m_copied_schemes, cable_commands); + + //The undo stack has just run its first redo, which may have + //renewed the identity of a pasted conductor: the cores are + //pointed at the wires again so their cable field survives it. + CableCopy::repoint(wired); emit finish(); } @@ -419,6 +479,15 @@ void DiagramEventAddPaste::removeItems() delete item; } + //The cable lines never reached the undo stack either, so they + //are taken back the way they were built: off the folio, out of + //the project and deleted, leaving no trace of having been + //there -- not even a project asking to be saved for nothing. + for (CablePart *part : std::as_const(m_cables)) { + CableCopy::discard(m_diagram, part); + } + m_cables.clear(); + m_content.clear(); m_relative_pos.clear(); } diff --git a/sources/diagramevent/diagrameventaddpaste.h b/sources/diagramevent/diagrameventaddpaste.h index 12aafdd26..5e6012290 100644 --- a/sources/diagramevent/diagrameventaddpaste.h +++ b/sources/diagramevent/diagrameventaddpaste.h @@ -24,7 +24,9 @@ #include #include +#include +class CablePart; class QStatusBar; /** @@ -91,6 +93,25 @@ class DiagramEventAddPaste : public DiagramEventInterface void removeItems(); DiagramContent m_content; + ///The cable lines the same fragment carried, if any. They are + ///not part of a DiagramContent -- the cable owns them -- so + ///they travel beside it: moved with the rest of the paste, + ///wired where it lands, and taken away whole if it never lands. + QList m_cables; + ///The cable lines among them, as plain items. Their setPos() is + ///a translation rather than a move: CablePart works in scene + ///coordinates and keeps itself at the origin, folding whatever + ///it is handed into its own geometry and into the colour labels + ///it carries (CablePart::itemChange). Everything else in + ///m_relative_pos is given a place to stand; these are given a + ///step to take. + QSet m_cable_items; + ///The step already handed to those cable lines. They take the + ///difference to the new one, because for them a setPos() is an + ///addition: handing them the baseline-relative position on every + ///mouse move would add it again each time and let the line run + ///away from the rest of the paste. + QPointF m_cable_delta; /// The numberings the pasted copy carries QList m_copied_schemes; ///Each movable item's position relative to the group's top left, diff --git a/sources/diagramtoolbarsettings.cpp b/sources/diagramtoolbarsettings.cpp index 9fed1b76a..95964b227 100644 --- a/sources/diagramtoolbarsettings.cpp +++ b/sources/diagramtoolbarsettings.cpp @@ -193,6 +193,11 @@ QStringList DiagramToolbarSettings::defaultIds(const QString &name) QStringLiteral("diagrameditor.conductor_reset"), QStringLiteral("diagrameditor.auto_conductor"), QStringLiteral("diagrameditor.auto_break_conductor"), + //The cable tool is drawn across the conductors those two + //actions work on, so it sits with them rather than with + //the shapes of the "Ajouter" toolbar. + sep, + QStringLiteral("diagrameditor.add_cable"), QStringLiteral("widget:conductor_color")}; } if (name == QLatin1String("adding")) { diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index e758b91de..548606aa0 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -23,6 +23,10 @@ #include "qetproject.h" #include "QPropertyUndoCommand/qpropertyundocommand.h" #include "diagramcommands.h" +#include "cable/addcablecommand.h" +#include "cable/cablecopy.h" +#include "cable/cablepart.h" +#include "cable/editcablecommand.h" #include "diagramevent/diagrameventaddelement.h" #include "diagramevent/diagrameventaddmacro.h" #include "dvevent/dveventinterface.h" @@ -67,6 +71,29 @@ static bool hasCabinetInfo(const DiagramContext &infos); +/** + @brief batchWith + Keep two undo steps together so one Ctrl+Z takes the whole thing + back in one go. + + The batch also keeps the name the undo history shows for what the + user actually did: BatchCommand's own name says "Supprimer", which + is what it was first written for and would be misleading for a paste + or a duplicate. + @param first the step already assembled, may be null + @param second the step to add; ownership goes to the result + @return both steps as one command, or the only one of them +*/ +static QUndoCommand *batchWith(QUndoCommand *first, QUndoCommand *second) +{ + if (!first) return second; + if (!second) return first; + + auto *batched = new BatchCommand(first, second); + if (!first->text().isEmpty()) batched->setText(first->text()); + return batched; +} + /** Constructeur @param diagram Schema a afficher ; si diagram vaut 0, un nouveau Diagram est utilise @@ -638,8 +665,29 @@ void DiagramView::cut() { copy(); DiagramContent cut_content(m_diagram); + //A cable line is not held by DiagramContent: it leaves with a + //command of its own, which takes the cable itself away too when + //no line of it is left on the folio. + QList cable_cut; + for (QGraphicsItem *item : m_diagram->selectedItems()) { + if (auto *part = qgraphicsitem_cast(item)) { + cable_cut << part; + } + } + m_diagram -> clearSelection(); - m_diagram -> undoStack().push(new CutDiagramCommand(m_diagram, cut_content)); + + if (cable_cut.isEmpty()) { + m_diagram -> undoStack().push(new CutDiagramCommand(m_diagram, cut_content)); + return; + } + + QUndoCommand *command = nullptr; + if (cut_content.count()) { + command = new CutDiagramCommand(m_diagram, cut_content); + } + command = batchWith(command, new RemoveCableCommand(m_diagram, cable_cut)); + m_diagram -> undoStack().push(command); } /** @@ -649,7 +697,12 @@ void DiagramView::cut() void DiagramView::copy() { QClipboard *clipboard = QApplication::clipboard(); - QString content_clipboard = m_diagram -> toXml(false, true).toString(4); + QDomDocument document = m_diagram -> toXml(false, true); + //A drawn cable line is not one of the folio's items -- the cable + //owns it -- so it travels in a block of its own, beside the XML + //of the folio rather than in it. + CableCopy::write(m_diagram, document); + QString content_clipboard = document.toString(4); if (clipboard -> supportsSelection()) clipboard -> setText(content_clipboard, QClipboard::Selection); clipboard -> setText(content_clipboard); } @@ -670,16 +723,52 @@ void DiagramView::paste(const QPointF &pos, QClipboard::Mode clipboard_mode) { if (!document_xml.setContent(text_clipboard)) return; DiagramContent content_pasted; - m_diagram->fromXml(document_xml, pos, false, &content_pasted); + //A cable line is not part of a DiagramContent: it comes back + //through its own list, carrying the colour labels it was copied + //with, and each of them is given the wire it happens to stand + //on at the place it has just been put -- none at all, when that + //place holds no wire, in which case the labels go on standing + //on the line to be wired when it is pulled into place. + QList cable_pasted; + m_diagram->fromXml(document_xml, pos, false, &content_pasted, &cable_pasted); + const QList wired = CableCopy::wire( + m_diagram, cable_pasted, + content_pasted.conductors(DiagramContent::AnyConductor)); //If something was really added to diagram, we create an undo object. - if (content_pasted.count()) + if (content_pasted.count() || !wired.isEmpty()) { m_diagram -> clearSelection(); + + //One single step for the whole paste, cable lines included: + //undoing has to take back everything which came out of the + //clipboard in one go, and redoing has to put it all back. + QList cable_commands; + for (const CableCopy::Wired &line : std::as_const(wired)) { + if (!line.part) continue; + auto *added = new AddCableCommand(line.part->cable(), line.part.data(), + m_diagram, true, line.taken); + added->setText(QCoreApplication::translate("CableCopy", "Paste a cable")); + cable_commands << added; + } + //The copies end up selected, like everything else a paste + //just added, so the next Ctrl+V or Ctrl+D carries on from them + for (const CableCopy::Wired &line : std::as_const(wired)) { + if (line.part) line.part->setSelected(true); + } + //Asks whether to import the numberings the copy brings, if the - //project has not got them + //project has not got them; the paste itself and the cable lines + //travel inside the same step of the undo stack. PasteNumberingImport::push(this, m_diagram, content_pasted, - PasteNumberingImport::copiedBy(document_xml)); + PasteNumberingImport::copiedBy(document_xml), + cable_commands); + //The stack has just renewed the identity of a pasted + //conductor: the cores are pointed at the wires again and + //the cable fields written out once more, so the entries + //the copy was given as it was put down are on the wires it + //has actually landed on. + CableCopy::repoint(wired); adjustSceneRect(); } } @@ -749,21 +838,51 @@ void DiagramView::duplicate(const QPoint &stepOffset) // Mirrors copy(), but does not touch the system clipboard: Ctrl+D // should not clobber whatever the user last copied with Ctrl+C. QDomDocument document = m_diagram->toXml(false, true); + CableCopy::write(m_diagram, document); DiagramContent pasted; + QList cable_pasted; // No position argument -- see the function comment above for why // the offset is not passed here. - m_diagram->fromXml(document, QPointF(), false, &pasted); - if (!pasted.count()) return; + m_diagram->fromXml(document, QPointF(), false, &pasted, &cable_pasted); + if (!pasted.count() && cable_pasted.isEmpty()) return; const int movable = DiagramContent::Elements | DiagramContent::TextFields | DiagramContent::Images | DiagramContent::Shapes | DiagramContent::Tables | DiagramContent::TerminalStrip; for (QGraphicsItem *item : pasted.items(movable)) item->setPos(item->pos() + offset); + //The new line is stamped beside the original like everything + //else -- and only after that, because where each colour label + //ends up decides which wire it is going to take + for (CablePart *part : std::as_const(cable_pasted)) + if (part) part->setPos(part->pos() + offset); + + const QList wired = CableCopy::wire( + m_diagram, cable_pasted, + pasted.conductors(DiagramContent::AnyConductor)); m_diagram->clearSelection(); - m_diagram->undoStack().push(new PasteDiagramCommand(m_diagram, pasted)); + + QUndoCommand *command = nullptr; + if (pasted.count()) { + command = new PasteDiagramCommand(m_diagram, pasted); + } + for (const CableCopy::Wired &line : std::as_const(wired)) { + if (!line.part) continue; + auto *added = new AddCableCommand(line.part->cable(), line.part.data(), + m_diagram, true, line.taken); + added->setText(QCoreApplication::translate("CableCopy", "Duplicate a cable")); + command = batchWith(command, added); + } + for (const CableCopy::Wired &line : std::as_const(wired)) { + if (line.part) line.part->setSelected(true); + } + if (command) m_diagram->undoStack().push(command); + //Same as a paste: the stack has renewed the identity of the + //pasted conductors, so the cores are pointed at the wires again + //and the cable fields written out once more. + CableCopy::repoint(wired); adjustSceneRect(); } @@ -793,22 +912,59 @@ void DiagramView::mousePressEvent(QMouseEvent *e) m_press_pos = e->position().toPoint(); } + //A line which waits for the click putting one of its cores down + //owns the right button as well: that click says "no" to the core, + //so it neither starts the quick command ring nor reaches the + //sheet. It is the context menu of this very click which ends the + //wait (see contextMenuEvent()), which is why nothing is ended + //here: the menu is then cancelled instead of opened, and no menu + //can open out of a click meant to say "no" -- neither QET's own + //nor the platform's, which arrives with the press on X11 and with + //the release on Windows. + if (e->button() == Qt::RightButton && CablePart::placingPart()) { + e->accept(); + return; + } + //Right button: a click opens the context menu on release, a drag is //a gesture (DiagramGestureOverlay). Left alone while a text is edited. m_swallow_native_menu = false; m_gesture_over_tool = false; + + //A right click on the running cable tool belongs to the tool + //alone: it cancels the line being drawn, and ending the tool puts + //the context menu policy of the views back before this very click + //is over. The platform then still sends its own context menu for + //the same click -- on X11 with the press, on Windows with the + //release -- and the menu would open on the click which was meant + //to cancel. So it is swallowed here, the way a gesture swallows + //it further down; the next press which no tool handles puts this + //flag back to false. No other tool is touched: they hand the + //button back and are surrounded by the ring, as they always were. + if (e->button() == Qt::RightButton && m_diagram + && m_diagram->cableToolIsRunning()) { + m_swallow_native_menu = true; + } if (e->button() == Qt::RightButton && DiagramGestureOverlay::isEnabled() - && !m_diagram->focusItem()) + && !m_diagram->focusItem() + && !m_diagram->cableToolIsRunning()) { + //The right button draws the quick command ring, or opens the + //context menu on release. The cable tool alone does not let go + //of it: while it runs no gesture is tracked at all, because + //tracking one would both pop the ring up in the middle of the + //drawing and take the tool away from the click meant to + //cancel it (see mouseMoveEvent, which ends the tool as soon + //as a gesture is recognised). m_gesture_tracking = true; m_gesture_origin = e->position().toPoint(); m_context_toolbar->hide(); - //A tool is running, often one a gesture just started. A right - //click still goes to it -- it cancels or finishes the tool -- so - //the press carries on to the scene. A drag ends the tool and - //shows the ring (see mouseMoveEvent). + //Another tool is running, often one a gesture just started. A + //right click still goes to it -- it cancels or finishes the + //tool -- so the press carries on to the scene. A drag ends the + //tool and shows the ring (see mouseMoveEvent). if (m_diagram->eventInterfaceIsRunning()) { m_gesture_over_tool = true; } @@ -1277,6 +1433,15 @@ void DiagramView::keyPressEvent(QKeyEvent *e) if (m_diagram && m_diagram->eventInterfaceIsRunning()) { QGraphicsView::keyPressEvent(e); // let the active tool see it return; + } + //A line waiting for the click putting a core down has the + //first call on Escape: it lets that core go back to being + //a free one and lets the mouse go, while everything else + //-- the selection included -- stays as it is, so that + //Escape keeps doing one thing at a time. + if (CablePart::cancelPlacing()) { + e->accept(); + return; } if (m_diagram && !m_diagram->selectedItems().isEmpty()) { m_diagram->clearSelection(); @@ -1995,12 +2160,67 @@ QList DiagramView::contextMenuActions() const return list; } +/** + @brief DiagramView::cableCoreMenu + The menu of one single core, opened where he right-clicked: taking + that core off its line, which is the exact opposite of the menu the + free cores offer in the panel, of putting one down on a line. + + Only the colour labels count -- a right-click anywhere else on the + line is still about the line itself, and opens the folio's own menu + instead. Nothing is changed until he picks the entry, so opening the + menu and clicking it away leaves everything standing as it was. + @param menu_pos where he right-clicked, in view coordinates + @param global_pos the same place, in global coordinates + @return true when that menu was the one to open +*/ +bool DiagramView::cableCoreMenu(const QPoint &menu_pos, const QPoint &global_pos) +{ + if (!m_diagram || m_diagram->isReadOnly()) return false; + + const QPointF scene_pos = mapToScene(menu_pos); + auto *part = qgraphicsitem_cast( + m_diagram->itemAt(scene_pos, transform())); + if (!part) return false; + + const int core = part->coreAt(scene_pos); + if (core < 0) return false; + + //The line he takes a core off is the one on the sheet, so it is + //also the one the panel beside it edits from now on. + if (!part->isSelected()) { + m_diagram->clearSelection(); + part->setSelected(true); + } + + QMenu menu(this); + QAction *take = menu.addAction(tr("Remove this core from the line")); + take->setIcon(QET::Icons::Cable); + + if (menu.exec(global_pos) == take) { + part->takeCoreOffLine(core); + } + return true; +} + /** @brief DiagramView::contextMenuEvent @param e */ void DiagramView::contextMenuEvent(QContextMenuEvent *e) { + //A line which waits for the click putting one of its cores down + //takes this very event: the right button ends that wait and no + //menu opens out of a click meant to say "no". Being asked here + //first is what makes it work for every way a menu can come up -- + //the gesture ring's own menu, the platform's (with the press on + //X11, with the release on Windows) and the one raised from the + //keyboard -- so the menu never has to be closed after the fact. + if (CablePart::cancelPlacing()) { + e->accept(); + return; + } + QPoint menu_pos = e->pos(); QPoint menu_global_pos = e->globalPos(); @@ -2049,6 +2269,16 @@ void DiagramView::contextMenuEvent(QContextMenuEvent *e) } else { + //A colour label standing on a line asks about that one core + //rather than about the whole sheet: the very opposite of the + //menu the free cores offer, of putting one down on a line. + //It comes first, so that a core drawn over something else + //still belongs to its own line. + if (cableCoreMenu(menu_pos, menu_global_pos)) { + e->accept(); + return; + } + QGraphicsView::contextMenuEvent(e); if(e->isAccepted()) return; diff --git a/sources/diagramview.h b/sources/diagramview.h index 96e5f3820..4a3601ed7 100644 --- a/sources/diagramview.h +++ b/sources/diagramview.h @@ -143,6 +143,20 @@ class DiagramView : public PaletteGraphicsView private: void handleElementDrop(QDropEvent *); void updateFolioReportMenu(); + /** + The menu of one single core: the right button coming down + on a colour label which stands on a line asks about that + core rather than about the whole folio -- taking it off the + line, which is the exact opposite of the menu the free + cores offer, of putting one down on a line. + + Nothing opens when the point carries no colour label: the + folio's own menu is then still the right one. + @param menu_pos where he right-clicked, in view coordinates + @param global_pos the same place, in global coordinates + @return true when that menu was the one to open + */ + bool cableCoreMenu(const QPoint &menu_pos, const QPoint &global_pos); void handleTitleBlockDrop(QDropEvent *); void handleTextDrop(QDropEvent *); void handleImageFilesDrop(QDropEvent *); diff --git a/sources/elementsmover.cpp b/sources/elementsmover.cpp index c49ee9579..947f1e015 100644 --- a/sources/elementsmover.cpp +++ b/sources/elementsmover.cpp @@ -19,6 +19,8 @@ #include "qetproject.h" #include "autobreakconductor.h" #include "conductorautonumerotation.h" +#include "cable/cablepart.h" +#include "cable/editcablecommand.h" #include "diagram.h" #include "itemgroups.h" #include "qetgraphicsitem/conductor.h" @@ -116,6 +118,54 @@ int ElementsMover::beginMovement(Diagram *diagram, QGraphicsItem *driver_item) if (!m_moved_content.count()) return(-1); + //Steps left over by a gesture which never reached its end are + //never worth keeping: whatever starts here starts from nothing. + qDeleteAll(m_extra_commands); + m_extra_commands.clear(); + + //The cable lines he marked together with the elements come along + //too: a selection of elements and lines is one thing to move. + //When the finger is on a line itself, that line carries its own + //kind -- every line of the selection is begun by the one being + //dragged (see CablePart) -- so there is nothing to collect here. + m_moved_cables.clear(); + if (!qgraphicsitem_cast(m_movement_driver)) + { + for (QGraphicsItem *item : diagram->selectedItems()) + { + auto *cable = qgraphicsitem_cast(item); + if (!cable || !cable->cable()) continue; + + cable->beginLineGesture(); + m_moved_cables.append(cable); + } + } + + //Where every one of them stands at this moment: calling the + //movement off puts them all back here, recorded rather than + //worked out from the movement, since every step of that movement + //was snapped to the grid on its way and need not land on the + //same place coming back. + m_start_positions.clear(); + typedef DiagramContent dc; + for (auto &qgi : m_moved_content.items(dc::Elements + | dc::TextFields + | dc::Images + | dc::Shapes + | dc::ElementTextFields + | dc::TextGroup)) + { + m_start_positions.insert(qgi, qgi->pos()); + } + for (auto *conductor : m_moved_content.m_conductors_to_move) + { + if (conductor && conductor->textItem() + && conductor->textItem()->wasMovedByUser()) { + m_start_positions.insert(conductor->textItem(), + conductor->textItem()->pos()); + } + } + /* At this point, we've got all info to manage movement. * There is now a move in progress */ m_movement_running = true; @@ -177,9 +227,25 @@ void ElementsMover::continueMovement(const QPointF &movement) conductor->updatePath(); } + //The cable lines he marked together with the elements come along + //by the very same step: one gesture moves the whole selection + //instead of the lines standing still while the elements go, or + //the other way round. They are drawn where the gesture brings + //them, exactly as if the finger had been on the line itself, and + //settled once at the end (see endMovement). + for (CablePart *cable : std::as_const(m_moved_cables)) + { + if (cable) cable->continueLineGesture(movement); + } + if (m_status_bar && m_movement_driver) { - const auto point_{m_movement_driver->scenePos()}; + //A line does not stand at a point of its own -- it is drawn + //straight on the sheet -- so its own end is what is worth + //showing rather than its origin, which never moves. + auto *cable = qgraphicsitem_cast(m_movement_driver); + const auto point_{cable ? cable->firstPoint() + : m_movement_driver->scenePos()}; m_status_bar->showMessage(QString("x %1 : y %2").arg(QString::number(point_.x()), QString::number(point_.y()))); } } @@ -195,6 +261,30 @@ void ElementsMover::endMovement() // A movement must be inited if (!m_movement_running) return; + //The lines he marked together with the elements settle first: + //they may have to be asked something before they can rest, and + //their answer decides whether the whole gesture is written at + //all -- one of them calling it off calls off everything, the + //elements included, and there is nothing to undo because nothing + //at all has been written. + QList cable_steps; + for (CablePart *cable : std::as_const(m_moved_cables)) + { + if (!cable) continue; + if (!cable->settleLineGesture(cable_steps)) + { + qDeleteAll(cable_steps); + cable_steps.clear(); + cancelMovement(); + return; + } + } + for (CablePart *cable : std::as_const(m_moved_cables)) + { + if (cable) cable->doneLineGesture(); + } + m_moved_cables.clear(); + //empty command to be used has parent of commands below QUndoCommand *undo_object{new QUndoCommand()}; @@ -270,18 +360,118 @@ void ElementsMover::endMovement() } } - //Add undo_object if have child - if (undo_object->childCount()) - m_diagram->undoStack().push(undo_object); + //Add undo_object if have child -- or, when the lines of this + //selection brought their own undo over (see addExtraCommands), + //one single step for the whole gesture: taking it back has to + //take all of it back, or half the selection would stay where + //the gesture left it. + QList steps = m_extra_commands; + m_extra_commands.clear(); + steps.append(cable_steps); + + if (steps.isEmpty()) + { + if (undo_object->childCount()) + m_diagram->undoStack().push(undo_object); + else + delete undo_object; + } else - delete undo_object; + { + QString text = undo_object->text(); + if (text.isEmpty()) + text = steps.first()->text(); + + if (undo_object->childCount()) + steps.prepend(undo_object); + else + delete undo_object; + + if (steps.size() == 1) + m_diagram->undoStack().push(steps.takeFirst()); + else + m_diagram->undoStack().push(new BatchCommand(steps, text)); + } // There is no movement in progress now m_movement_running = false; m_moved_content.clear(); + m_moved_cables.clear(); + m_start_positions.clear(); //Keep saying why a held group did not move if (m_status_bar && !m_driver_held) { m_status_bar->clearMessage(); } } + +/** + @brief ElementsMover::addExtraCommands + Take over undo steps of items this mover does not move itself -- + the cable lines the user dragged himself -- so that the end of the + movement pushes them together with its own: one gesture, one step + in the history, whatever the selection is made of. + + They are thrown away by cancelMovement() if the gesture is called + off, and pushed by endMovement() otherwise. + @param steps the commands, given away with them +*/ +void ElementsMover::addExtraCommands(const QList &steps) +{ + for (QUndoCommand *step : steps) + { + if (step) m_extra_commands.append(step); + } +} + +/** + @brief ElementsMover::cancelMovement + Call the whole movement off without writing anything: every element + goes back to the place the gesture found it, every line of the + selection puts itself back where it stood and the undo steps which + were waiting for this movement are thrown away. + + One gesture is written as a whole or not at all, which is what a + "Annuler" answer to a question asked while the lines settle means. +*/ +void ElementsMover::cancelMovement() +{ + if (!m_movement_running) return; + + //Back to the places the gesture found them in: the recorded + //ones rather than the movement taken back, since every step of + //that movement was snapped to the grid on its way and coming + //back by the same amount need not land on the same place. + for (auto it = m_start_positions.constBegin(); + it != m_start_positions.constEnd(); ++it) + { + if (it.key()) it.key()->setPos(it.value()); + } + m_start_positions.clear(); + + for (auto *conductor : m_moved_content.m_conductors_to_move) + { + if (conductor) conductor->updatePath(); + } + + //Every line of the selection puts itself back where it stood + for (CablePart *cable : std::as_const(m_moved_cables)) + { + if (cable) cable->abortLineGesture(); + } + m_moved_cables.clear(); + + //Steps handed over by a line he dragged himself go with + //everything else: nothing has been written, so there is nothing + //to take back. + qDeleteAll(m_extra_commands); + m_extra_commands.clear(); + + m_current_movement -= m_current_movement; + m_movement_running = false; + m_moved_content.clear(); + + if (m_status_bar && !m_driver_held) { + m_status_bar->clearMessage(); + } +} diff --git a/sources/elementsmover.h b/sources/elementsmover.h index 2074a88eb..5a210d905 100644 --- a/sources/elementsmover.h +++ b/sources/elementsmover.h @@ -18,13 +18,16 @@ #ifndef ELEMENTS_MOVER_H #define ELEMENTS_MOVER_H +#include #include #include #include "diagramcontent.h" +class CablePart; class ConductorTextItem; class Diagram; class QStatusBar; +class QUndoCommand; /** This class manages the interactive movement of different items (elements, @@ -53,6 +56,27 @@ class ElementsMover { void continueMovement(const QPointF &); void endMovement(); bool holds(const QGraphicsItem *item) const; + /** + Steps of items this mover does not move itself -- the + cable lines the user dragged himself, which know how to + carry their own colour labels along -- handed over so + that the end of this movement pushes them together with + its own: one gesture, one undo step, whatever the + selection is made of. + @param steps the commands, given away with them + */ + void addExtraCommands(const QList &steps); + /** + Call the whole movement off without writing anything: + every element goes back to the place the gesture found it + and every line of the selection puts itself back too (see + CablePart), so nothing at all has to be undone. + + Answering "Annuler" to a question asked while the lines + settle is what calls it: one gesture is written as a + whole or not at all. + */ + void cancelMovement(); // attributes private: @@ -63,6 +87,17 @@ class ElementsMover { bool m_driver_held{false}; DiagramContent m_moved_content; QPointer m_status_bar; + ///The cable lines marked together with the elements, moved + ///by this mover from one gesture to the next (see + ///CablePart::beginLineGesture) -- empty whenever the finger + ///is on a line itself, since a line then carries its own + QList m_moved_cables; + ///Steps handed over by a line the user dragged himself, to + ///be pushed together with the rest of the movement + QList m_extra_commands; + ///Where every item of the movement stood when it began, so + ///that calling it off puts them all back exactly there + QHash m_start_positions; }; #endif diff --git a/sources/factory/propertieseditorfactory.cpp b/sources/factory/propertieseditorfactory.cpp index ba8b6acb3..cc7ae1dc9 100644 --- a/sources/factory/propertieseditorfactory.cpp +++ b/sources/factory/propertieseditorfactory.cpp @@ -18,6 +18,10 @@ #include "propertieseditorfactory.h" #include "../PropertiesEditor/propertieseditorwidget.h" +#include "../cable/cablepart.h" +#include "../cable/cablepropertieseditorwidget.h" +#include "../cablelist/cablelistmodel.h" +#include "../cablelist/cablelistmodelpropertieswidget.h" #include "../qetgraphicsitem/ViewItem/projectdbmodel.h" #include "../qetgraphicsitem/ViewItem/qetgraphicstableitem.h" #include "../qetgraphicsitem/ViewItem/ui/graphicstablepropertieseditor.h" @@ -55,7 +59,7 @@ PropertiesEditorWidget *PropertiesEditorFactory::propertiesEditor( PropertiesEditorWidget *editor, QWidget *parent) { - if (auto m = static_cast(model)) + if (auto m = dynamic_cast(model)) { if (editor && editor->metaObject()->className() @@ -66,6 +70,17 @@ PropertiesEditorWidget *PropertiesEditorFactory::propertiesEditor( } return new ProjectDBModelPropertiesWidget(m, parent); } + if (auto m = dynamic_cast(model)) + { + if (editor && + editor->metaObject()->className() + == CableListModelPropertiesWidget::staticMetaObject.className()) + { + static_cast(editor)->setModel(m); + return editor; + } + return new CableListModelPropertiesWidget(m, parent); + } return nullptr; } @@ -247,6 +262,27 @@ PropertiesEditorWidget *PropertiesEditorFactory::propertiesEditor( } return new GraphicsTablePropertiesEditor(table, parent); } + case CablePart::Type: //1012 + { + if (count_ > 1) { + return nullptr; + } + auto part = static_cast(item); + //The fields belong to the cable, never to one of its + //lines: whichever line is picked, it is the cable which + //is edited. + Cable *cable = part->cable(); + if (!cable) { + return nullptr; + } + + if (class_name == CablePropertiesEditorWidget::staticMetaObject.className()) + { + static_cast(editor)->setCable(cable, part); + return editor; + } + return new CablePropertiesEditorWidget(cable, part, parent); + } default: return nullptr; } diff --git a/sources/factory/qetgraphicstablefactory.cpp b/sources/factory/qetgraphicstablefactory.cpp index 44b7bc716..03f44e717 100644 --- a/sources/factory/qetgraphicstablefactory.cpp +++ b/sources/factory/qetgraphicstablefactory.cpp @@ -17,6 +17,8 @@ */ #include "qetgraphicstablefactory.h" +#include "../cablelist/cablelistmodel.h" +#include "../cablelist/cablequerywidget.h" #include "../dataBase/ui/elementquerywidget.h" #include "../dataBase/ui/summaryquerywidget.h" #include "../diagram.h" @@ -71,6 +73,26 @@ void QetGraphicsTableFactory::createAndAddSummary(Diagram *diagram) } } +/** + @brief QetGraphicsTableFactory::createAndAddCableList + Open a dialog for ask user the config of the table, + create a cable list table and add it to diagram + @param diagram +*/ +void QetGraphicsTableFactory::createAndAddCableList(Diagram *diagram) +{ + QScopedPointer d( + new AddTableDialog( + new CableQueryWidget(), + diagram->views().first())); + d->setWindowTitle(QObject::tr("Add a cable list")); + d->setTableName(QObject::tr("Cable list")); + + if (d->exec()) { + create(diagram, d.data()); + } +} + void QetGraphicsTableFactory::create(Diagram *diagram, AddTableDialog *dialog) { auto table_ = newTable(diagram, dialog); @@ -124,20 +146,33 @@ QetGraphicsTableItem *QetGraphicsTableFactory::newTable(Diagram *diagram, AddTab if (!previous_table) { - QString identifier_; - QString query_; + QAbstractTableModel *model = nullptr; if (auto query_widget = dynamic_cast(dialog->contentWidget())) { - identifier_ = query_widget->modelIdentifier(); - query_ = query_widget->queryStr(); + auto *db_model = new ProjectDBModel(diagram->project(), diagram->project()); + db_model->setIdentifier(query_widget->modelIdentifier()); + db_model->setQuery(query_widget->queryStr()); + model = db_model; } else if (auto query_widget = dynamic_cast(dialog->contentWidget())) { - identifier_ = query_widget->modelIdentifier(); - query_ = query_widget->queryStr(); + auto *db_model = new ProjectDBModel(diagram->project(), diagram->project()); + db_model->setIdentifier(query_widget->modelIdentifier()); + db_model->setQuery(query_widget->queryStr()); + model = db_model; + } else if (auto query_widget = dynamic_cast(dialog->contentWidget())) { + auto *cable_model = new CableListModel(diagram->project(), diagram->project()); + cable_model->setIdentifier(CableQueryWidget::modelIdentifier()); + //No entries chosen is no mistake to correct: an empty + //set of columns makes an empty table, the same grey + //frame a nomenclature table makes without entries + cable_model->setFields(query_widget->selectedKeys()); + model = cable_model; + } else { + //A content widget this factory does not know leaves an + //empty database model behind, which is what it has + //always done + model = new ProjectDBModel(diagram->project(), diagram->project()); } - auto model = new ProjectDBModel(diagram->project(), diagram->project()); - model->setIdentifier(identifier_); - model->setQuery(query_); model->setData(model->index(0,0), int(dialog->tableAlignment()), Qt::TextAlignmentRole); model->setData(model->index(0,0), dialog->tableFont(), Qt::FontRole); model->setData(model->index(0,0), QETUtils::marginsToString(dialog->headerMargins()), Qt::UserRole+1); diff --git a/sources/factory/qetgraphicstablefactory.h b/sources/factory/qetgraphicstablefactory.h index 0a93b0b5b..5c3118310 100644 --- a/sources/factory/qetgraphicstablefactory.h +++ b/sources/factory/qetgraphicstablefactory.h @@ -32,6 +32,7 @@ class QetGraphicsTableFactory static void createAndAddNomenclature(Diagram *diagram); static void createAndAddSummary(Diagram *diagram); + static void createAndAddCableList(Diagram *diagram); // Public so a caller that has already built and configured an // AddTableDialog itself (never shown or exec'd -- the two // methods above always exec() one, which the scripting API diff --git a/sources/pdf_links.cpp b/sources/pdf_links.cpp index af892836a..4fc9fc357 100644 --- a/sources/pdf_links.cpp +++ b/sources/pdf_links.cpp @@ -17,6 +17,7 @@ */ #include "pdf_links.h" +#include "cable/cablepart.h" #include "diagram.h" #include "qetgraphicsitem/crossrefitem.h" #include "qetgraphicsitem/dynamicelementtextitem.h" @@ -53,10 +54,13 @@ void injectCrossRefLinks(QPdfEngine *engine, Diagram *diagram, const QRectF &pageBounds = geom.pageBounds; // Compute, in PDF points on its OWN page, the rectangle to frame for a - // target element (used as a /FitR destination so the link zooms onto it). - auto destRectPdf = [&](Element *tgt) -> QRectF { - Diagram *dg = tgt ? tgt->diagram() : nullptr; - if (!dg) return QRectF(); + // target (used as a /FitR destination so the link zooms onto it). + // The target is given as a rectangle in the scene of @p dg, since what + // is pointed at is not always an element: a cable section is a plain + // drawn line somewhere on another folio. + auto frameRectPdf = [&](Diagram *dg, const QRectF &targetScene) -> QRectF { + if (!dg || targetScene.width() <= 0.0 || targetScene.height() <= 0.0) + return QRectF(); const QRectF srcT = geom.sourceRectOf(dg); if (srcT.width() <= 0.0 || srcT.height() <= 0.0) return QRectF(); const qreal sT = qMin(target.width() / srcT.width(), @@ -66,20 +70,20 @@ void injectCrossRefLinks(QPdfEngine *engine, Diagram *diagram, fitT.scale(sT, sT); fitT.translate(-srcT.x(), -srcT.y()); - QRectF elemScene = tgt->mapRectToScene(tgt->boundingRect()); - // Frame the element with a little context, and enforce a minimum + // Frame the target with a little context, and enforce a minimum // framed size so tiny contacts don't zoom in extremely. + QRectF framed = targetScene; const qreal pad = 25.0; - elemScene.adjust(-pad, -pad, pad, pad); + framed.adjust(-pad, -pad, pad, pad); const qreal minSide = 160.0; - if (elemScene.width() < minSide) - elemScene.adjust(-(minSide - elemScene.width()) / 2.0, 0, - (minSide - elemScene.width()) / 2.0, 0); - if (elemScene.height() < minSide) - elemScene.adjust(0, -(minSide - elemScene.height()) / 2.0, - 0, (minSide - elemScene.height()) / 2.0); + if (framed.width() < minSide) + framed.adjust(-(minSide - framed.width()) / 2.0, 0, + (minSide - framed.width()) / 2.0, 0); + if (framed.height() < minSide) + framed.adjust(0, -(minSide - framed.height()) / 2.0, + 0, (minSide - framed.height()) / 2.0); - const QRectF devT = fitT.mapRect(elemScene); + const QRectF devT = fitT.mapRect(framed); const QPointF a = geom.devToPdf(devT.topLeft()); const QPointF b = geom.devToPdf(devT.bottomRight()); return QRectF(QPointF(qMin(a.x(), b.x()), qMin(a.y(), b.y())), @@ -94,15 +98,18 @@ void injectCrossRefLinks(QPdfEngine *engine, Diagram *diagram, struct Link { QRectF rect; QUrl url; }; QList links; - auto injectLink = [&](const QRectF &sceneRect, Element *targetElmt) { - if (!targetElmt || !targetElmt->diagram()) return; - const int targetPage = pageMap.value(targetElmt->diagram(), -1); + // One clickable link: @p sceneRect on THIS folio leads to + // @p targetDiagram, framed around @p targetScene over there. + auto injectLinkTo = [&](const QRectF &sceneRect, Diagram *targetDiagram, + const QRectF &targetScene) { + if (!targetDiagram) return; + const int targetPage = pageMap.value(targetDiagram, -1); if (targetPage < 1) return; const QRectF devRect = fit.mapRect(sceneRect); if (!devRect.isValid() || !pageBounds.intersects(devRect)) return; QString frag = QString("page=%1").arg(targetPage); - const QRectF d = destRectPdf(targetElmt); // /FitR L_B_R_T + const QRectF d = frameRectPdf(targetDiagram, targetScene); // /FitR L_B_R_T if (d.isValid()) frag += QString("&fitr=%1_%2_%3_%4") .arg(qRound(d.left())).arg(qRound(d.top())) @@ -113,6 +120,12 @@ void injectCrossRefLinks(QPdfEngine *engine, Diagram *diagram, links.append({devRect, url}); }; + auto injectLink = [&](const QRectF &sceneRect, Element *targetElmt) { + if (!targetElmt || !targetElmt->diagram()) return; + injectLinkTo(sceneRect, targetElmt->diagram(), + targetElmt->mapRectToScene(targetElmt->boundingRect())); + }; + for (auto *item : diagram->items()) { // --- CrossRefItem links --- @@ -128,6 +141,15 @@ void injectCrossRefLinks(QPdfEngine *engine, Diagram *diagram, continue; } + // --- Cable cross-reference links (the lines under a cable which + // name the folio it goes on to) --- + if (auto *cable = dynamic_cast(item)) { + for (const CablePart::PdfRef &ref : cable->pdfRefs()) { + injectLinkTo(ref.here, ref.diagram, ref.there); + } + continue; + } + // --- Folio report links (DynamicElementTextItem) --- if (auto *deti = dynamic_cast(item)) { Element *parent = deti->parentElement(); diff --git a/sources/properties/xrefproperties.cpp b/sources/properties/xrefproperties.cpp index e6ed7cd53..4fbfbc4ea 100644 --- a/sources/properties/xrefproperties.cpp +++ b/sources/properties/xrefproperties.cpp @@ -67,6 +67,7 @@ XRefProperties::XRefProperties() m_prefix_keys << "power" << "delay" << "switch"; m_master_label = "%f-%l%c"; m_slave_label = "(%f-%l%c)"; + m_font = QString(); m_offset = 0; m_slave_offset = 0; m_xref_pos = Qt::AlignBottom; @@ -97,6 +98,7 @@ void XRefProperties::toSettings(QSettings &settings, settings.setValue(prefix % "master_label", master_label); QString slave_label = m_slave_label; settings.setValue(prefix % "slave_label", slave_label); + settings.setValue(prefix % "font", m_font); QMetaEnum var = QMetaEnum::fromType(); @@ -128,6 +130,7 @@ void XRefProperties::fromSettings(const QSettings &settings, m_slave_offset = settings.value(prefix % "slave_offset", "0").toInt(); m_master_label = settings.value(prefix % "master_label", "%f-%l%c").toString(); m_slave_label = settings.value(prefix % "slave_label", "(%f-%l%c)").toString(); + m_font = settings.value(prefix % "font").toString(); m_xref_pos = xrefPosFromKey(settings.value(prefix % "xrefpos").toString()); @@ -169,6 +172,14 @@ QDomElement XRefProperties::toXml(QDomDocument &xml_document) const xml_element.setAttribute("master_label", master_label); QString slave_label = m_slave_label; xml_element.setAttribute("slave_label", slave_label); + //Only the cable cross-reference has a font of its own, and only + //it ever sets one. Writing the attribute unconditionally put + //font="" on every cross-reference type of every project the + //program saved; a file which does not hold the attribute reads + //back as no font, which is what all of them are. + if (!m_font.isEmpty()) { + xml_element.setAttribute("font", m_font); + } foreach (QString key, m_prefix.keys()) { xml_element.setAttribute(key % "prefix", m_prefix.value(key)); } @@ -197,6 +208,7 @@ bool XRefProperties::fromXml(const QDomElement &xml_element) { m_slave_offset = xml_element.attribute("slave_offset", "0").toInt(); m_master_label = xml_element.attribute("master_label", "%f-%l%c"); m_slave_label = xml_element.attribute("slave_label","(%f-%l%c)"); + m_font = xml_element.attribute("font"); foreach (QString key, m_prefix_keys) { m_prefix.insert(key, xml_element.attribute(key % "prefix")); } @@ -206,15 +218,17 @@ bool XRefProperties::fromXml(const QDomElement &xml_element) { /** @brief XRefProperties::defaultProperties @return the default properties stored in the setting file - For the xref, there are 2 properties. - For coil, stored with the string "coil" in the returned QHash. - For protection, stored with the string "protection" in the returned QHash. + One entry per kind of element which shows a cross reference, stored + under its own key: "coil", "protection", "commutator", "plc" -- and + "cable", which is not an element at all: it is the reference a cable + writes in the label of each of its sections when the cable runs on + several folios. */ QHash XRefProperties::defaultProperties() { QHash hash; QStringList keys; - keys << "coil" << "protection" << "commutator" << "plc"; + keys << "coil" << "protection" << "commutator" << "plc" << "cable"; QSettings settings; @@ -223,6 +237,13 @@ QHash XRefProperties::defaultProperties() XRefProperties properties; QString str("diagrameditor/defaultxref"); properties.fromSettings(settings, str += key); + + //A cable takes the very same default text as a relay master + //and the other types, "%f-%l%c": what it names is then the + //other section of the cable -- the folio it stands on and + //the place it stands at there, which is what an element + //points at as well. No default of its own, so that setting + //the five of them apart needs no thought at all. hash.insert(key, properties); } @@ -241,7 +262,8 @@ bool XRefProperties::operator ==(const XRefProperties &xrp) const{ && m_offset == xrp.m_offset && m_slave_offset== xrp.m_slave_offset && m_xref_pos == xrp.m_xref_pos - && m_slave_label == xrp.m_slave_label); + && m_slave_label == xrp.m_slave_label + && m_font == xrp.m_font); } bool XRefProperties::operator !=(const XRefProperties &xrp) const diff --git a/sources/properties/xrefproperties.h b/sources/properties/xrefproperties.h index 08dfeca02..50fa569f8 100644 --- a/sources/properties/xrefproperties.h +++ b/sources/properties/xrefproperties.h @@ -80,6 +80,14 @@ class XRefProperties : public PropertiesInterface void setMasterLabel (const QString master) {m_master_label = master;} QString masterLabel () const {return m_master_label;} + /** + The font the reference of a cable is written with, as the + settings describe it -- empty when he has not set one, which + leaves the reference with the font of the cable texts. + */ + void setFont (const QString &font) {m_font = font;} + QString font () const {return m_font;} + void setSlaveLabel(const QString slave) {m_slave_label = slave;} QString slaveLabel () const {return m_slave_label;} @@ -103,6 +111,7 @@ class XRefProperties : public PropertiesInterface QStringList m_prefix_keys; QString m_master_label; QString m_slave_label; + QString m_font; int m_offset; int m_slave_offset; QString m_key; diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp index 9fddcead5..39a6009b2 100644 --- a/sources/qetapp.cpp +++ b/sources/qetapp.cpp @@ -1536,6 +1536,97 @@ QFont QETApp::indiTextsItemFont(qreal size) return(font_); } +/** + @brief QETApp::cableTextsFont + @return the font the texts of a cable (designation, type, + installation, location, length) are written with when the cable + itself has been given no font of its own. + + That is what the preferences offer on the "Textes" page, and -- when + nothing has been chosen there yet -- the font the drawing writes its + own texts with, a shade smaller: the way every cable has always been + drawn, so that opening the preferences changes nothing until he + picks something. +*/ +QFont QETApp::cableTextsFont() +{ + QSettings settings; + if (settings.contains("cable-management/cable-text-font")) + { + QFont font; + if (QETUtils::fontFromString( + font, settings.value("cable-management/cable-text-font").toString())) { + return font; + } + } + + QFont font = QApplication::font(); + font.setPointSizeF(font.pointSizeF() * 0.9); + return font; +} + +/** + @brief QETApp::cableCoreFont + @return the font the colour labels of the cores are written with + when the cable itself has been given no font of its own. + + That is what the preferences offer on the "Textes" page; until he + picks something there, the colours follow the texts of the cable, + so one setting alone already resizes the whole label of a cable. +*/ +QFont QETApp::cableCoreFont() +{ + QSettings settings; + if (settings.contains("cable-management/cable-core-font")) + { + QFont font; + if (QETUtils::fontFromString( + font, settings.value("cable-management/cable-core-font").toString())) { + return font; + } + } + return cableTextsFont(); +} + +/** + @brief QETApp::cableTextAlignment + @return how the texts of a cable line up at the left end of their + line when the cable itself asks for nothing: what the preferences + offer on the "Textes" page, and -- until he has picked something + there -- the way every text has always stood, with its right end at + the place where the line begins. +*/ +Qt::Alignment QETApp::cableTextAlignment() +{ + const QSettings settings; + const QString name = settings.value("cable-management/cable-align").toString(); + if (name == QLatin1String("left")) { + return Qt::AlignLeft; + } + if (name == QLatin1String("center")) { + return Qt::AlignHCenter; + } + return Qt::AlignRight; +} + +/** + @brief QETApp::setCableTextAlignment + Keep what the preferences chose as the way every cable lines up its + texts, for the cables which say nothing about it themselves. + @param alignment Qt::AlignRight, Qt::AlignHCenter or Qt::AlignLeft +*/ +void QETApp::setCableTextAlignment(Qt::Alignment alignment) +{ + QString name = QLatin1String("right"); + if (alignment == Qt::AlignLeft) { + name = QLatin1String("left"); + } else if (alignment == Qt::AlignHCenter) { + name = QLatin1String("center"); + } + QSettings settings; + settings.setValue("cable-management/cable-align", name); +} + /** @brief QETApp::diagramEditors @return schema editors diff --git a/sources/qetapp.h b/sources/qetapp.h index 234db5fa5..7810547c8 100644 --- a/sources/qetapp.h +++ b/sources/qetapp.h @@ -175,6 +175,24 @@ class QETApp : public QObject static QFont diagramTextsItemFont(qreal = -1.0); static QFont dynamicTextsItemFont(qreal = -1.0); static QFont indiTextsItemFont (qreal = -1.0); + /** + @brief The font the texts of a cable (designation, type, + installation, location, length) are written with when the + cable itself asks for none. + */ + static QFont cableTextsFont(); + /** + @brief The font the colour labels of the cores of a cable + are written with when the cable itself asks for none. + */ + static QFont cableCoreFont(); + /** + @brief How the texts of a cable line up at the left end of + their line when the cable asks for nothing itself: right, + centred or left of where the line begins. + */ + static Qt::Alignment cableTextAlignment(); + static void setCableTextAlignment(Qt::Alignment alignment); static QETDiagramEditor *diagramEditorForFile(const QString &); static QETDiagramEditor *diagramEditorAncestorOf (const QWidget *child); static QList diagramEditors(); diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 02538c4dd..a25842303 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -46,8 +46,11 @@ #endif #include "diagramevent/diagrameventaddshape.h" #include "diagramevent/diagrameventaddpath.h" +#include "diagramevent/diagrameventaddcable.h" #include "diagramevent/diagrameventfillet.h" #include "diagramevent/diagrameventaddtext.h" +#include "cable/cablepart.h" +#include "cable/editcablecommand.h" #include "diagramevent/diagrameventaddpaste.h" #include "diagramview.h" #include "elementspanelwidget.h" @@ -55,6 +58,7 @@ #include "factory/qetgraphicstablefactory.h" #include "print/projectprintwindow.h" #include "project/projectpropertieshandler.h" +#include "ui/projectpropertiesdialog.h" #include "projectview.h" #include "qetproject.h" #include "qetgraphicsitem/ViewItem/qetgraphicstableitem.h" @@ -65,6 +69,7 @@ #include "recentfiles.h" #include "textgrid.h" #include "shortcutmanager.h" +#include "cablelist/cableexportdialog.h" #include "ui/bomexportdialog.h" #include "ui/conductorcolortoolbutton.h" #include "ui/diagrambgcolorbutton.h" @@ -90,6 +95,7 @@ #include "wiringlistexport.h" #include "ui/wiringlistdialog.h" #include "ui/terminalnumberingdialog.h" +#include "ui/cablenumberingdialog.h" #include "toolbarsettings.h" #include #include @@ -744,6 +750,27 @@ void QETDiagramEditor::setUpActions() ShortcutManager::instance().registerAction(m_project_terminalBloc, "diagrameditor.terminal_strip_plugin", tr("Diagram editors"), QKeySequence()); connect(m_project_terminalBloc, &QAction::triggered, this, &QETDiagramEditor::generateTerminalBlock); + //Add a cable list + m_add_cable_list = new QAction(QET::Icons::TableOfContent, tr("Add a cable list"), this); + connect(m_add_cable_list, &QAction::triggered, this, [this]() { + if (this->currentDiagramView()) { + QetGraphicsTableFactory::createAndAddCableList(this->currentDiagramView()->diagram()); + } + }); + + //Export the whole cable list to CSV, every column of the list + m_export_cable_list = new QAction(QET::Icons::DocumentSpreadsheet, tr("Export the cable list to CSV format"), this); + connect(m_export_cable_list, &QAction::triggered, [this]() { + QETProject *project = this->currentProject(); + if (!project) { + return; + } + //The same dialog the material list is exported with, only + //with the columns of the cable list + CableExportDialog dialog(project, this); + dialog.exec(); + }); + //Export conductor num to csv m_project_export_conductor_num = new QAction(QET::Icons::DocumentSpreadsheet, tr("Export the list of names of wires"), this); ShortcutManager::instance().registerAction(m_project_export_conductor_num, "diagrameditor.export_conductor_names", tr("Diagram editors"), QKeySequence()); @@ -784,6 +811,14 @@ void QETDiagramEditor::setUpActions() ShortcutManager::instance().registerAction(m_terminal_numbering, "diagrameditor.terminal_numbering", tr("Diagram editors"), QKeySequence()); connect(m_terminal_numbering, &QAction::triggered, this, &QETDiagramEditor::slot_terminalNumbering); + // Cable numbering: the rule the project numbers its cables with, and + // the numbering of every cable of that project at once + m_cable_numbering = new QAction(QET::Icons::AutoNum, tr("Cable numbering"), this); + m_cable_numbering->setStatusTip( + tr("Shows the cable numbering rule of the project and " + "renumbers its cables with it")); + connect(m_cable_numbering, &QAction::triggered, this, &QETDiagramEditor::slot_cableNumbering); + // Reload element drawings from their current definition (bugtracker #802) m_reload_element_drawings = new QAction(QET::Icons::ViewRefresh, tr("Reload element drawings"), this); ShortcutManager::instance().registerAction(m_reload_element_drawings, "diagrameditor.reload_element_drawings", tr("Diagram editors"), QKeySequence()); @@ -1243,6 +1278,9 @@ void QETDiagramEditor::setUpActions() QAction *add_fillet = m_add_item_actions_group.addAction(QET::Icons::DrawFillet, tr("Add a fillet")); QAction *add_terminal_strip = m_add_item_actions_group.addAction(QET::Icons::TerminalStrip, tr("Add a terminal plan")); QAction *add_generic_device = m_add_item_actions_group.addAction(QET::Icons::GenericDevice, tr("Add a generic device…")); + //Not an element of the drawing but a line drawn across the + //conductors: what it crosses becomes the cores of a cable. + m_add_cable = m_add_item_actions_group.addAction(QET::Icons::Cable, tr("Draw a cable")); add_text ->setStatusTip(tr("Adds a text field to the current sheet")); add_image ->setStatusTip(tr("Add an image to the current sheet")); @@ -1258,6 +1296,7 @@ void QETDiagramEditor::setUpActions() add_fillet ->setStatusTip(tr("Rounds the corner between two lines of the current sheet")); add_terminal_strip->setStatusTip(tr("Adds a terminal plan to the current sheet")); add_generic_device->setStatusTip(tr("Makes a box symbol with terminals on any side and places it on the current sheet")); + m_add_cable ->setStatusTip(tr("Draws the main line of a cable: every conductor crossed becomes one of its cores")); add_text ->setData(QStringLiteral("text")); add_image ->setData(QStringLiteral("image")); @@ -1273,6 +1312,7 @@ void QETDiagramEditor::setUpActions() add_fillet ->setData(QStringLiteral("fillet")); add_terminal_strip->setData(QStringLiteral("terminal_strip")); add_generic_device->setData(QStringLiteral("generic_device")); + m_add_cable ->setData(QStringLiteral("cable")); add_text->setCheckable(true); add_line->setCheckable(true); @@ -1281,6 +1321,7 @@ void QETDiagramEditor::setUpActions() add_arc->setCheckable(true); add_polyline->setCheckable(true); add_path->setCheckable(true); + m_add_cable->setCheckable(true); add_fillet->setCheckable(true); connect(&m_add_item_actions_group, &QActionGroup::triggered, this, &QETDiagramEditor::addItemGroupTriggered); @@ -1442,6 +1483,10 @@ void QETDiagramEditor::setUpMenu() QMenu* menu_fichier = new QMenu(tr("&File"), this); QMenu* menu_edition = new QMenu(tr("&Edit"), this); QMenu* menu_project = new QMenu(tr("&Project"), this); + //Numbering of everything the project numbers, kept together + //and sitting right behind the project it belongs to + QMenu* menu_numbering = new QMenu(tr("Numbering"), this); + QMenu* menu_lists = new QMenu(tr("Lists"), this); QMenu* menu_affichage = new QMenu(tr("Displ&ay"), this); // QMenu *menu_outils = new QMenu(tr("O&utils"), this); windows_menu = new QMenu(tr("Wi&ndows"), this); @@ -1449,6 +1494,8 @@ void QETDiagramEditor::setUpMenu() insertMenu(settings_menu_, menu_fichier); insertMenu(settings_menu_, menu_edition); insertMenu(settings_menu_, menu_project); + insertMenu(settings_menu_, menu_numbering); + insertMenu(settings_menu_, menu_lists); insertMenu(settings_menu_, menu_affichage); insertMenu(help_menu_, windows_menu); @@ -1556,15 +1603,11 @@ void QETDiagramEditor::setUpMenu() menu_project -> addAction(m_remove_diagram_from_project); menu_project -> addAction(m_clean_project); menu_project -> addSeparator(); - menu_project -> addAction(m_add_summary); - menu_project -> addAction(m_add_nomenclature); menu_project -> addAction(m_csv_export); + menu_project -> addAction(m_export_cable_list); menu_project -> addAction(m_project_export_conductor_num); - menu_project -> addAction(m_terminal_strip_dialog); - menu_project -> addAction(m_project_terminalBloc); menu_project -> addAction(m_project_export_wiring_list); menu_project -> addAction(m_project_wiring_list_view); - menu_project -> addAction(m_terminal_numbering); menu_project -> addAction(m_reload_element_drawings); #ifdef QET_HAS_SCRIPTING m_scripts_menu = menu_project -> addMenu(tr("Scripts")); @@ -1578,6 +1621,27 @@ void QETDiagramEditor::setUpMenu() menu_project -> addAction(m_export_project_db); #endif + // menu Numbering + //Everything the project numbers sits here together: the + //terminals have come out of the project menu, the cables are + //the new one + menu_numbering -> addAction(m_terminal_numbering); + menu_numbering -> addAction(m_cable_numbering); + + // menu Listes + //Everything which drops a table or a list onto the sheets has + //come out of the project menu and sits here together: the + //summary, the material list, the terminal strip tools and the + //cable list. The CSV exports stay with the other exports in the + //project menu, the cable list's among them. + menu_lists -> addAction(m_add_summary); + menu_lists -> addAction(m_add_nomenclature); + menu_lists -> addSeparator(); + menu_lists -> addAction(m_terminal_strip_dialog); + menu_lists -> addAction(m_project_terminalBloc); + menu_lists -> addSeparator(); + menu_lists -> addAction(m_add_cable_list); + main_tool_bar -> toggleViewAction() -> setStatusTip(tr("Display or hide the main toolbar")); view_tool_bar -> toggleViewAction() -> setStatusTip(tr("Display or hide the Display toolbar")); diagram_tool_bar -> toggleViewAction() -> setStatusTip(tr("Display or hide the Diagram toolbar")); @@ -2242,6 +2306,90 @@ void QETDiagramEditor::selectGroupTriggered(QAction *action) diagram->selectAllTextFields(); } +/** + @brief QETDiagramEditor::cableNumberingGate + Decide whether the cable tool may start, asking about the numbering + rule when the project numbers its cables by no rule at all. + + A project which does have one is asked nothing: the tool starts and + that rule gives the numbers. A project which has none is asked once + whether one should be defined now: + + - Oui opens the window where the rule is written, straight onto the + cable page of its automatic numbering; whatever he does in there, + the tool only starts if a rule really exists by the time that + window is closed. + - Non says no, and says it for good: it is remembered in the program + settings so the question does not come up on the next start + either. Drawing goes on all the same, with W as the cable's name: + no number is worked out where none has been defined. + - Annuler leaves everything as it was, the tool does not start, and + the question comes again the next time he picks the tool up. + + @param diagram the folio the cable would be drawn on + @return true when the cable tool may start +*/ +bool QETDiagramEditor::cableNumberingGate(Diagram *diagram) +{ + if (!diagram || !diagram->project()) return true; + QETProject *project = diagram->project(); + if (project->hasCableAutoNum()) return true; + + //A read-only project is left alone without a question: there is + //nowhere to define a rule in it, so asking whether he wants to + //would be a way to nowhere. Its cables are drawn called W, the + //same as any project without a rule. + if (project->isReadOnly()) return true; + + //Whether he has once answered no in THIS project. The answer is + //kept with the project rather than in the program settings, so + //one project being answered with no does not stop every other + //project from being asked. + if (!project->cableAskNumbering()) { + return true; + } + + QMessageBox box(QMessageBox::Question, + tr("Automatic numbering", "window title"), + tr("No automatic cable numbering is defined.", + "shown when a project has no cable numbering rule"), + QMessageBox::NoButton, + this); + box.setInformativeText(tr( + "Do you want to define one now?\n\n" + "You can also number the cables automatically later: the rule " + "is set at any time in the project properties, on the " + "\"Auto Numbering\" page.", + "ask whether a cable numbering rule should be defined now")); + QPushButton *define_button = box.addButton(tr("Yes", "yes"), QMessageBox::YesRole); + QPushButton *later_button = box.addButton(tr("No", "no"), QMessageBox::NoRole); + box.addButton(tr("Cancel", "cancel"), QMessageBox::RejectRole); + box.setDefaultButton(later_button); + box.exec(); + + if (box.clickedButton() == later_button) { + //With this project only: he has answered once here and + //should not be asked again every time he picks the tool + //up in this project -- another project is free to ask. + project->setCableAskNumbering(false); + project->setModified(true); + return true; + } + if (box.clickedButton() != define_button) { + return false; + } + + //Oui: the window itself, opened where the rule is written. It + //has to really be there by the time that window is closed -- + //a Cancel in it must not leave the tool running all the same. + ProjectPropertiesDialog dialog(diagram->project(), this); + dialog.setCurrentPage(ProjectPropertiesDialog::Autonum); + dialog.changeToCable(); + dialog.exec(); + + return diagram->project()->hasCableAutoNum(); +} + /** @brief QETDiagramEditor::addItemGroupTriggered This slot is called when an item must be added to the current diagram, @@ -2294,6 +2442,22 @@ void QETDiagramEditor::addItemGroupTriggered(QAction *action) { diagram_event = new DiagramEventAddPath (d); } + else if (value == QLatin1String("cable")) + { + //The rule the number comes from -- or the word about there + //being no rule yet -- comes before anything is drawn. + if (!cableNumberingGate(d)) + { + //Nothing is drawn, so the button must not go on looking + //like a tool which is running, and whichever tool was + //active before this click must not keep going with its + //own button unchecked either. + action->setChecked(false); + d->clearEventInterface(); + return; + } + diagram_event = new DiagramEventAddCable(d); + } else if (value == "fillet") diagram_event = new DiagramEventFillet (d); else if (value == "image") @@ -2388,8 +2552,30 @@ void QETDiagramEditor::selectionGroupTriggered(QAction *action) "Unbridge and/or remove the levels from the affected terminals so that they can be " "deleted")); } else { + //A cable line is not held by DiagramContent: it is + //removed by its own command, which also lets the cable + //it belongs to go when no line of it is left anywhere. + QList cable_parts; + for (QGraphicsItem *item : diagram->selectedItems()) { + if (auto *part = qgraphicsitem_cast(item)) { + cable_parts << part; + } + } + const bool other_items = dc.hasDeletableItems(); + diagram->clearSelection(); - diagram->undoStack().push(new DeleteQGraphicsItemCommand(diagram, dc)); + + if (cable_parts.isEmpty()) { + diagram->undoStack().push(new DeleteQGraphicsItemCommand(diagram, dc)); + } else if (!other_items) { + diagram->undoStack().push(new RemoveCableCommand(diagram, cable_parts)); + } else { + //One single step, so a selection holding both a + //cable and ordinary drawings comes back whole. + diagram->undoStack().push(new BatchCommand( + new DeleteQGraphicsItemCommand(diagram, dc), + new RemoveCableCommand(diagram, cable_parts))); + } dv->adjustSceneRect(); } } @@ -2593,6 +2779,9 @@ void QETDiagramEditor::slot_updateActions() m_project_export_wiring_list -> setEnabled(opened_project); m_project_wiring_list_view -> setEnabled(opened_project); m_terminal_numbering -> setEnabled(editable_project); + m_cable_numbering -> setEnabled(editable_project); + m_add_cable_list -> setEnabled(editable_project); + m_export_cable_list -> setEnabled(editable_project); m_reload_element_drawings -> setEnabled(opened_project); #ifdef QET_HAS_SCRIPTING m_run_script -> setEnabled(opened_project); @@ -2686,8 +2875,20 @@ void QETDiagramEditor::slot_updateComplexActions() m_mirror_vertical->setEnabled(!ro && selected_elements_count); //Actions that need items (elements, conductors, texts...) selected, to be enabled - bool copiable_items = dc.hasCopiableItems(); - bool deletable_items = dc.hasDeletableItems(); + //A cable line is drawn on the folio but held by the cable, not + //by DiagramContent: it counts on its own for deleting and editing. + int selected_cables = 0; + for (QGraphicsItem *item : diagram_->selectedItems()) { + if (item && item->type() == CablePart::Type) { + selected_cables++; + } + } + + //A drawn cable line is copyable, cuttable and duplicatable on + //its own, although it belongs to its cable rather than to the + //folio and DiagramContent never sees it. + bool copiable_items = dc.hasCopiableItems() || selected_cables > 0; + bool deletable_items = dc.hasDeletableItems() || selected_cables > 0; m_cut -> setEnabled(!ro && copiable_items); m_copy -> setEnabled(copiable_items); m_duplicate -> setEnabled(!ro && copiable_items); @@ -2743,7 +2944,8 @@ void QETDiagramEditor::slot_updateComplexActions() - selected_dynamic_elmt_text) + selected_image + selected_shape - + selected_conductors_count; + + selected_conductors_count + + selected_cables; if (selected_editable == 1) { @@ -2769,6 +2971,13 @@ void QETDiagramEditor::slot_updateComplexActions() "edit image")); m_edit_selection -> setIcon(QET::Icons::resize_image); } + //edit cable + else if (selected_cables) + { + m_edit_selection -> setText(tr("Edit the cable", + "edit cable")); + m_edit_selection -> setIcon(QET::Icons::Cable); + } //edit conductor else if (selected_conductors_count) { @@ -4011,6 +4220,21 @@ void QETDiagramEditor::slot_terminalNumbering() { } } +/** + * @brief QETDiagramEditor::slot_cableNumbering + * Opens the window holding the numbering rule of the project's cables + * and the button which numbers every one of them again. The window + * writes the project and pushes its own undo step itself, so nothing + * is done with its result here beyond letting it work. + */ +void QETDiagramEditor::slot_cableNumbering() { + QETProject *project = currentProject(); + if (!project) return; + + CableNumberingDialog dialog(project, this); + dialog.exec(); +} + /** @brief QETDiagramEditor::slot_reloadElementDrawings Redraw every placed element of the current project from its current diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h index 9e9e0a01d..2ff471b3f 100644 --- a/sources/qetdiagrameditor.h +++ b/sources/qetdiagrameditor.h @@ -102,6 +102,18 @@ class QETDiagramEditor : public QETMainWindow void setUpMenu (); bool addProject(QETProject *, bool = true); + /** + Checked while the cable tool is about to start, when the + project has no numbering rule for its cables. He is then + asked whether one should be defined now (the window which + opens goes straight to the cable page of the automatic + numbering) or not -- and having answered no, he is not + asked again, whatever he draws from then on. A project + which does number its cables is never asked at all, and + one which lost the rule again is. + @return true when the cable tool may start. + */ + bool cableNumberingGate(Diagram *diagram); DiagramView *currentDiagramView() const; Element *currentElement() const; ProjectView *findProject(DiagramView *) const; @@ -158,6 +170,7 @@ class QETDiagramEditor : public QETMainWindow void editProjectProperties(ProjectView *); void editProjectProperties(QETProject *); void slot_terminalNumbering(); + void slot_cableNumbering(); void slot_reloadElementDrawings(); #ifdef QET_HAS_SCRIPTING void slot_runScript(); @@ -241,6 +254,7 @@ class QETDiagramEditor : public QETMainWindow *m_configure_duplicate, ///< Reopen the duplicate offset/direction dialog (#991) *m_auto_conductor, ///< Enable/Disable the use of auto conductor *m_auto_break_conductor, ///< Enable/Disable the use of auto break conductor + *m_add_cable = nullptr, ///< Draw the trunk line of a cable *m_draw_grid, ///< Switch the background grid display or not *m_draw_guides = nullptr, ///< Switch the custom guides display or not *m_cell_rulers = nullptr, ///< Keep the folio column/row headers in sight or not @@ -258,6 +272,9 @@ class QETDiagramEditor : public QETMainWindow *m_project_export_wiring_list, ///< Action to export the wiring list *m_project_wiring_list_view, ///< Action to show the wiring list read from the project database *m_terminal_numbering, ///< Action to launch terminal numbering + *m_cable_numbering, ///< Action to open the cable numbering window (rule + numbering of every cable) + *m_add_cable_list, ///< Add a cable list graphics item + *m_export_cable_list, ///< Export the cable list of the project to CSV *m_reload_element_drawings, ///< Action to redraw every placed element from its current definition #ifdef QET_HAS_SCRIPTING *m_run_script, ///< Action to run a JavaScript macro against the current project diff --git a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp index df090c36d..7a4f50155 100644 --- a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp +++ b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp @@ -19,6 +19,7 @@ #include "../../shownkinds.h" #include "../../qetproject.h" #include "../../QPropertyUndoCommand/qpropertyundocommand.h" +#include "../../cablelist/cablelistmodel.h" #include "../../createdxf.h" #include "../../diagram.h" #include "../../elementprovider.h" @@ -450,7 +451,13 @@ void QetGraphicsTableItem::setPreviousTable(QetGraphicsTableItem *table) } else if (old_previous_table->model()) //Copie the model of old previous table { - setModel(new ProjectDBModel(*static_cast(old_previous_table->model()))); + auto *old_model = old_previous_table ? old_previous_table->model() : nullptr; + if (auto *db_model = dynamic_cast(old_model)) { + setModel(new ProjectDBModel(*db_model)); + } + else if (auto *cable_model = dynamic_cast(old_model)) { + setModel(new CableListModel(*cable_model)); + } } if (old_previous_table && @@ -619,8 +626,12 @@ QDomElement QetGraphicsTableItem::toXml(QDomDocument &dom_document) const { //Add model auto dom_model = dom_document.createElement("model"); - auto project_db_model = static_cast(m_model.data()); - dom_model.appendChild(project_db_model->toXml(dom_document)); + if (auto project_db_model = dynamic_cast(m_model.data())) { + dom_model.appendChild(project_db_model->toXml(dom_document)); + } + else if (auto cable_model = dynamic_cast(m_model.data())) { + dom_model.appendChild(cable_model->toXml(dom_document)); + } dom_table.appendChild(dom_model); } @@ -672,16 +683,30 @@ void QetGraphicsTableItem::fromXml(const QDomElement &dom_element) } else if (this->diagram()) //The table haven't got a previous table, so there should be a model save to xml { - //Get table - auto model_ = new ProjectDBModel( - this->diagram()->project(), - this->diagram()->project()); - model_->fromXml( - dom_element - .firstChildElement("model") - .firstChildElement( - ProjectDBModel::xmlTagName())); - this->setModel(model_); + //Get table: which model wrote itself in there decides which + //class reads it back -- a cable list is not a database query + auto model_element = dom_element.firstChildElement("model"); + auto project_model_element = model_element.firstChildElement( + ProjectDBModel::xmlTagName()); + auto cable_model_element = model_element.firstChildElement( + CableListModel::xmlTagName()); + + if (!cable_model_element.isNull()) + { + auto model_ = new CableListModel( + this->diagram()->project(), + this->diagram()->project()); + model_->fromXml(cable_model_element); + this->setModel(model_); + } + else + { + auto model_ = new ProjectDBModel( + this->diagram()->project(), + this->diagram()->project()); + model_->fromXml(project_model_element); + this->setModel(model_); + } } //Restore the header from xml diff --git a/sources/qetgraphicsitem/conductor.cpp b/sources/qetgraphicsitem/conductor.cpp index 66fe92dbb..dc2715139 100644 --- a/sources/qetgraphicsitem/conductor.cpp +++ b/sources/qetgraphicsitem/conductor.cpp @@ -1845,6 +1845,32 @@ ConductorProperties Conductor::properties() const return(m_properties); } +/** + @brief Conductor::setCableReference + Record the cable core this conductor shows, together with the label + that assignment generates. Called only by CableManager, which works + the values out from the cable itself: the user never types them. + @param label the generated cable field, e.g. "15W1:br", empty to + detach the conductor from its cable + @param cable_uuid the cable this conductor is a core of + @param slot which core of that cable it shows, -1 when none +*/ +void Conductor::setCableReference(const QString &label, + const QUuid &cable_uuid, + int slot) +{ + if (m_properties.m_cable == label + && m_properties.m_cable_uuid == cable_uuid + && m_properties.m_cable_slot == slot) { + return; + } + + m_properties.m_cable = label; + m_properties.m_cable_uuid = cable_uuid; + m_properties.m_cable_slot = slot; + emit propertiesChange(); +} + /** @return true si le conducteur est mis en evidence */ diff --git a/sources/qetgraphicsitem/conductor.h b/sources/qetgraphicsitem/conductor.h index 34edfe436..f75931064 100644 --- a/sources/qetgraphicsitem/conductor.h +++ b/sources/qetgraphicsitem/conductor.h @@ -125,6 +125,15 @@ class Conductor : public QGraphicsObject bool only_text = false); void setProperties(const ConductorProperties &property); ConductorProperties properties() const; + /// Records which cable core this conductor shows and writes the + /// label that assignment generates (15W1:br) into its cable + /// field. Deliberately not routed through + /// setPropertyToPotential(): a core of a cable belongs to this + /// conductor alone and must never spill over a pass-through + /// terminal onto the neighbouring half conductor. + void setCableReference(const QString &label, + const QUuid &cable_uuid, + int slot); void setProfile(const ConductorProfile &, Qt::Corner); ConductorProfile profile(Qt::Corner) const; diff --git a/sources/qeticons.cpp b/sources/qeticons.cpp index 8436b77a9..e64fdcae6 100644 --- a/sources/qeticons.cpp +++ b/sources/qeticons.cpp @@ -37,6 +37,7 @@ namespace QET { QIcon ArrowRightDouble; QIcon Autoconnect; QIcon BringForward; + QIcon Cable; QIcon Cancel; QIcon Company; QIcon Conductor; @@ -416,6 +417,7 @@ void QET::Icons::initIcons() ArrowRightDouble = QIcon::fromTheme("arrow-right-double"); Autoconnect = QIcon::fromTheme("autoconnect"); BringForward = QIcon::fromTheme("bring_forward"); + Cable = QIcon::fromTheme("cable"); Cancel = QIcon::fromTheme("item-cancel"); Company = QIcon::fromTheme("go-company"); Conductor = QIcon::fromTheme("conductor"); diff --git a/sources/qeticons.h b/sources/qeticons.h index aec05c184..35aedfcc5 100644 --- a/sources/qeticons.h +++ b/sources/qeticons.h @@ -44,6 +44,7 @@ namespace QET { extern QIcon ArrowRightDouble; extern QIcon Autoconnect; extern QIcon BringForward; + extern QIcon Cable; extern QIcon Cancel; extern QIcon Company; extern QIcon Conductor; diff --git a/sources/qetproject.cpp b/sources/qetproject.cpp index 829ffd3b6..37ca5ed9a 100644 --- a/sources/qetproject.cpp +++ b/sources/qetproject.cpp @@ -23,6 +23,9 @@ #include "autoNum/numerotationcontext.h" #include "autoNum/numerotationcontextcommands.h" #include "autoNum/renumberelementscommand.h" +#include "cable/cable.h" +#include "cable/cablemanager.h" +#include "cable/cablepart.h" #include "autoNum/elementautonumschemecommand.h" #include "diagram.h" #include "qetgraphicsitem/element.h" @@ -117,6 +120,17 @@ m_project_properties_handler{this} for (auto it = folioData.first.constBegin(); it != folioData.first.constEnd(); ++it) { addFolioAutoNum(it.key(), it.value()); } + + //The cable numbering rule a project starts with, so a project + //made from these defaults numbers its cables the way the + //global settings say without having to be opened first. + auto cableData = NumerotationContext::loadFromSettings(settings, QStringLiteral("autonum/cable")); + for (auto it = cableData.first.constBegin(); it != cableData.first.constEnd(); ++it) { + addCableAutoNum(it.key(), it.value()); + } + if (!cableData.second.isEmpty()) { + setCurrentCableAutoNum(cableData.second); + } } } @@ -826,6 +840,16 @@ QHash QETProject::elementAutoNum() const return m_element_autonum; } +/** + @brief QETProject::cableAutoNum + @return the cable numerotation stored in the project -- one entry at + most, since cables are numbered by a single rule +*/ +QHash QETProject::cableAutoNum() const +{ + return m_cable_autonum; +} + /** @brief QETProject::elementAutoNumFormula @param key : autonum title @@ -866,6 +890,109 @@ void QETProject::setCurrrentElementAutonum(QString autoNum) { m_current_element_autonum = std::move(autoNum); } +/** + @brief QETProject::cableAutoNumFormula + @param key : autonum title + @return Formula of the cable numerotation stored with key +*/ +QString QETProject::cableAutoNumFormula(const QString& key) const +{ + if (m_cable_autonum.contains(key)) { + return autonum::numerotationContextToFormula(m_cable_autonum.value(key)); + } + + return QString(); +} + +/** + @brief QETProject::hasCableAutoNum + @return true when a numbering rule for cables is set: a context + stored under the name which is in use. A project which has never been + given one answers false, and that is what makes the cable tool ask + whether one should be defined (see QETDiagramEditor). +*/ +bool QETProject::hasCableAutoNum() const +{ + if (m_current_cable_autonum.isEmpty()) return false; + return !cableAutoNum(m_current_cable_autonum).isEmpty(); +} + +/** + @brief QETProject::cableCurrentAutoNum + @return title of the cable numerotation in use (one rule only) +*/ +QString QETProject::cableCurrentAutoNum() const +{ + return m_current_cable_autonum; +} + +/** + @brief QETProject::setCurrentCableAutoNum + @param autoNum : the rule which from now on numbers the cables +*/ +void QETProject::setCurrentCableAutoNum(QString autoNum) +{ + m_current_cable_autonum = std::move(autoNum); +} + +/** + @brief QETProject::cableAutoNumRuleName + @return the name the one and only cable numbering rule is kept under +*/ +QString QETProject::cableAutoNumRuleName() +{ + return QStringLiteral("Cable"); +} + +/** + @brief QETProject::cableXAxisFirst + @return true when the cables are numbered along the X axis (the + leftmost first), false when they are numbered along the Y axis (the + topmost first) +*/ +bool QETProject::cableXAxisFirst() const +{ + return m_cable_axis_x_first; +} + +/** + @brief QETProject::setCableXAxisFirst + Which axis the whole project numbers its cables along. Stored with + the rule rather than on its own, since it only means anything while + a rule is being applied to every cable at once. + @param x_axis_first +*/ +void QETProject::setCableXAxisFirst(bool x_axis_first) +{ + m_cable_axis_x_first = x_axis_first; +} + +/** + @brief QETProject::cableAskNumbering + @return true when the cable tool may still ask this project whether + a numbering rule should be defined. The answer to that question is + kept with the project rather than in the program settings, so that + one project being answered with no does not stop every other + project from asking. +*/ +bool QETProject::cableAskNumbering() const +{ + return m_cable_ask_numbering; +} + +/** + @brief QETProject::setCableAskNumbering + Take the answer he gave to the numbering question down with the + project. False means he has said no once here and is not to be + asked again in this project; taking the rule away puts it back to + true so the question comes again. + @param ask +*/ +void QETProject::setCableAskNumbering(bool ask) +{ + m_cable_ask_numbering = ask; +} + /** @brief QETProject::renumberElementsBySchemeTitle Renumber existing elements by element autonumbering scheme title. @@ -1187,6 +1314,32 @@ void QETProject::addFolioAutoNum(const QString& key, const NumerotationContext& emit autoNumContextUpdated(); } +/** + @brief QETProject::addCableAutoNum + Store the cable numbering rule. There is room for exactly one: saving + it under a name drops every other entry, so a project can never end up + with a list of cable rules to choose from. + @param key + @param context +*/ +void QETProject::addCableAutoNum(const QString& key, const NumerotationContext& context) +{ + if (!key.isEmpty()) { + const QStringList others = m_cable_autonum.keys(); + for (const QString &other : others) { + if (other != key) m_cable_autonum.remove(other); + } + } + m_cable_autonum.insert(key, context); + //The rule in use must always be one which exists: after a save + //under another name the old entry is gone, so follow the new one. + if (!key.isEmpty() && (m_current_cable_autonum.isEmpty() + || !m_cable_autonum.contains(m_current_cable_autonum))) { + m_current_cable_autonum = key; + } + emit autoNumContextUpdated(); +} + /** @brief QETProject::removeConductorAutoNum Remove Conductor Numerotation Context stored with key @@ -1217,6 +1370,21 @@ void QETProject::removeFolioAutoNum(const QString& key) { m_folio_autonum.remove(key); } +/** + @brief QETProject::removeCableAutoNum + Forget the cable numbering rule stored with key + @param key +*/ +void QETProject::removeCableAutoNum(const QString& key) +{ + m_cable_autonum.remove(key); + if (m_current_cable_autonum == key) { + m_current_cable_autonum = m_cable_autonum.isEmpty() + ? QString() : m_cable_autonum.keys().first(); + } + emit autoNumContextUpdated(); +} + /** @brief QETProject::conductorAutoNum Return conductor numerotation context stored with key. @@ -1252,6 +1420,18 @@ NumerotationContext QETProject::folioAutoNum (const QString &key) const else return NumerotationContext(); } +/** + @brief QETProject::cableAutoNum + Return the cable numerotation context stored with key. + If key is not found, return an empty numerotation context + @param key +*/ +NumerotationContext QETProject::cableAutoNum(const QString &key) const +{ + if (m_cable_autonum.contains(key)) return m_cable_autonum.value(key); + else return NumerotationContext(); +} + /** @brief QETProject::freezeExistentConductorLabel Freeze Existent Conductors in the selected folios @@ -1596,6 +1776,18 @@ QDomDocument QETProject::toXml() project_root.appendChild(xml_strip); } + //Write the cables to xml. Their sections are written here too, + //beside the cable they belong to, so a cable and everything drawn + //for it are read back together and can never come apart. + if (m_cables.count()) + { + auto xml_cables = xml_doc.createElement(QStringLiteral("cables")); + for (auto &cable : m_cables) { + xml_cables.appendChild(cable->toXml(xml_doc)); + } + project_root.appendChild(xml_cables); + } + // Write the elements collection. project_root.appendChild(m_elements_collection->root().cloneNode(true)); @@ -2109,10 +2301,23 @@ void QETProject::readProjectXml(QDomDocument &xml_project) readTerminalStripXml(xml_project); const qint64 strips_ms = phase_timer.restart(); + //Load the cables, after the diagrams their sections are drawn on + readCableXml(xml_project); + const qint64 cables_ms = phase_timer.restart(); + //Now that all are loaded we refresh content of the project. refresh(); const qint64 refresh_ms = phase_timer.restart(); + //refresh() above resolved the folio report links for the first + //time (refreshContents() -> initLink). The cable label pass at + //the end of readCableXml() ran before that, while no element + //knew its partners yet, so a core running through a report could + //not be carried over there -- it was even cleared off the far + //wire again. Run the pass once more now that the links exist: + //it recomputes everything from the project as it now stands. + CableManager::refreshLabels(this); + m_data_base.blockSignals(false); m_data_base.setUpdateBlocked(false); m_data_base.updateDB(xml_project); @@ -2120,11 +2325,12 @@ void QETProject::readProjectXml(QDomDocument &xml_project) qInfo().nospace() << "Project content built in " - << (elements_ms + diagrams_ms + strips_ms + << (elements_ms + diagrams_ms + strips_ms + cables_ms + refresh_ms + database_ms) / 1000.0 << " seconds (elements collection " << elements_ms / 1000.0 << ", diagrams " << diagrams_ms / 1000.0 << ", terminal strips " << strips_ms / 1000.0 + << ", cables " << cables_ms / 1000.0 << ", refresh " << refresh_ms / 1000.0 << ", database " << database_ms / 1000.0 << ")"; @@ -2318,7 +2524,7 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project) m_default_xref_properties = XRefProperties:: defaultProperties(); //Read values indicate in project - QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums, element_autonums, guides_elmt; + QDomElement border_elmt, titleblock_elmt, conductors_elmt, report_elmt, xref_elmt, conds_autonums, folio_autonums, element_autonums, cable_autonums, guides_elmt; for (QDomNode child = newdiagrams_elmt.firstChild() ; !child.isNull() ; child = child.nextSibling()) { @@ -2341,6 +2547,8 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project) folio_autonums = child_elmt; else if (child_elmt.tagName()== QLatin1String("element_autonums")) element_autonums = child_elmt; + else if (child_elmt.tagName()== QLatin1String("cable_autonums")) + cable_autonums = child_elmt; else if (child_elmt.tagName() == QLatin1String("guides")) guides_elmt = child_elmt; } @@ -2409,6 +2617,37 @@ void QETProject::readDefaultPropertiesXml(QDomDocument &xml_project) m_current_element_autonum = current_title; } } + if (!cable_autonums.isNull()) + { + m_current_cable_autonum = cable_autonums.attribute(QStringLiteral("current_autonum")); + //Which axis the cables are numbered along. A file written + //before this existed has no say in it and stays with the + //axis the terminals have always started from. + m_cable_axis_x_first = cable_autonums.attribute( + QStringLiteral("axis_priority"), QStringLiteral("x")) + != QLatin1String("y"); + //Whether the numbering question was already answered with + //no in this project. A file which does not hold the answer + //yet asks again rather than staying silent: it is his own + //answer per project which is kept, not a default saying no. + m_cable_ask_numbering = cable_autonums.attribute( + QStringLiteral("ask_numbering_rule"), QStringLiteral("true")) + != QLatin1String("false"); + for (auto elmt : QET::findInDomElement(cable_autonums, QStringLiteral("cable_autonum"))) + { + NumerotationContext nc; + nc.fromXml(elmt); + if (elmt.attribute(QStringLiteral("title")).isEmpty()) continue; + m_cable_autonum.insert(elmt.attribute(QStringLiteral("title")), nc); + } + //A file written by hand, or written before this rule existed, + //may name a rule which is not in the list: the numbering must + //never be left pointing at something which is not there. + if (!m_cable_autonum.contains(m_current_cable_autonum)) { + m_current_cable_autonum = m_cable_autonum.isEmpty() + ? QString() : m_cable_autonum.keys().first(); + } + } // Read guides from XML (if missing, e.g. in old projects, list stays empty) m_default_guides.clear(); @@ -2443,6 +2682,55 @@ void QETProject::readTerminalStripXml(const QDomDocument &xml_project) } } +/** + * @brief QETProject::readCableXml + * Read the cables of the project, and draw a section for each of them on + * the folio it belongs to. + * + * The diagrams have already been read at this point, which is what makes + * it possible to put the sections back where they were: a folio is + * identified by its uuid, so reordering or renumbering pages never moves + * a cable onto the wrong one. + * @param xml_project + */ +void QETProject::readCableXml(const QDomDocument &xml_project) +{ + auto xml_elmt = xml_project.documentElement(); + auto xml_cables = xml_elmt.firstChildElement(QStringLiteral("cables")); + if (xml_cables.isNull()) return; + + for (auto xml_cable = xml_cables.firstChildElement(QStringLiteral("cable")); + !xml_cable.isNull(); + xml_cable = xml_cable.nextSiblingElement(QStringLiteral("cable"))) + { + auto cable = new Cable(this); + cable->fromXml(xml_cable); + addCable(cable); + + for (const CablePartData &part_data : cable->parts()) + { + Diagram *diagram = diagramByUuid(part_data.diagram); + if (!diagram) + { + //The folio this section was drawn on has been removed: + //the section goes with it, and so do the cores which + //were only ever shown on it. + cable->removePart(part_data.uuid); + continue; + } + + auto part = new CablePart(part_data); + part->setCable(cable); + diagram->addItem(part); + } + } + + //The file holds the generated cable field of every conductor as + //well as the cables themselves; working it out again here makes + //sure the two agree even if a file was edited by hand. + CableManager::refreshLabels(this); +} + /** Export project properties under the \a xml_element XML element. */ @@ -2607,6 +2895,52 @@ void QETProject::writeDefaultPropertiesXml(QDomElement &xml_element) } xml_element.appendChild(element_autonums); + //Export Cable Autonum -- one rule, but stored exactly like the others + //so it travels with the project and survives a re-save untouched. + // + //Only when it holds something, though. An element which is not there + //reads back as exactly the defaults a project which never touched + //cable numbering already has, so writing it every time put + // into every file the program saved -- into the + //example projects and into projects without a single cable in them. + // + //That is not the same as writing it only for projects with cables, + //which would cost data: a rule named before the first cable is + //drawn, an axis chosen before it, and the numbering question + //answered with no are answers only this element can carry. + QDomElement cable_autonums = xml_document.createElement("cable_autonums"); + cable_autonums.setAttribute("current_autonum", m_current_cable_autonum); + cable_autonums.setAttribute("axis_priority", + m_cable_axis_x_first ? "x" : "y"); + //Only the no is written down: a project which has not answered + //the numbering question yet asks again, so silence in the file + //means asking rather than holding back. + if (!m_cable_ask_numbering) { + cable_autonums.setAttribute("ask_numbering_rule", "false"); + } + int written_cable_rules = 0; + QStringList cable_autonum_keys = cableAutoNum().keys(); + cable_autonum_keys.sort(); + for (const QString &key : std::as_const(cable_autonum_keys)) { + QDomElement cable_autonum = cableAutoNum(key).toXml(xml_document, "cable_autonum"); + if (key != "" && cableAutoNumFormula(key) != "") { + cable_autonum.setAttribute("title", key); + cable_autonum.setAttribute("formula", cableAutoNumFormula(key)); + cable_autonums.appendChild(cable_autonum); + ++written_cable_rules; + } + } + //Nothing to keep when the project never named a rule, never + //chose an axis other than the default and has not answered the + //numbering question with no -- then this element would say + //nothing the reader does not assume anyway. + if (!m_current_cable_autonum.isEmpty() + || !m_cable_ask_numbering + || !m_cable_axis_x_first + || written_cable_rules > 0) { + xml_element.appendChild(cable_autonums); + } + // Export default guides QDomElement guides_elmt = xml_document.createElement("guides"); for (const auto &g : m_default_guides) { @@ -2792,6 +3126,86 @@ bool QETProject::removeTerminalStrip(TerminalStrip *strip) { return m_terminal_strip_vector.removeOne(strip); } +/** + * @brief QETProject::cables + * @return every cable of this project + */ +QVector QETProject::cables() const { + return m_cables; +} + +/** + * @brief QETProject::newCable + * Create a cable owned by this project and watch it: whenever it changes, + * the cable field of every conductor it feeds is worked out again. + * @return the new cable + */ +Cable *QETProject::newCable() +{ + auto cable = new Cable(this); + addCable(cable); + return cable; +} + +/** + * @brief QETProject::addCable + * @param cable + * @return true when the cable is now held by this project + */ +bool QETProject::addCable(Cable *cable) +{ + if (!cable || cable->parent() != this) + return false; + + if (m_cables.contains(cable)) + return true; + + m_cables.append(cable); + connect(cable, &Cable::changed, this, [this]() { + CableManager::refreshLabels(this); + setModified(true); + }); + emit cableAdded(cable); + return true; +} + +/** + * @brief QETProject::removeCable + * Cable is removed from the list but not deleted, so an undo command can + * put it back. + * @param cable + * @return true when the cable was in the list + */ +bool QETProject::removeCable(Cable *cable) { + if (!m_cables.removeOne(cable)) + return false; + + disconnect(cable, nullptr, this, nullptr); + + //A cable which is no longer one of ours stops writing its labels + //into the conductors it used to feed. + CableManager::refreshLabels(this); + setModified(true); + emit cableRemoved(cable); + return true; +} + +/** + * @brief QETProject::diagramByUuid + * @param uuid + * @return the folio with that identity, or nullptr. A cable section says + * which folio it is drawn on by identity, since folios are reordered and + * renumbered freely. + */ +Diagram *QETProject::diagramByUuid(const QUuid &uuid) +{ + if (uuid.isNull()) return nullptr; + for (Diagram *diagram : m_diagrams_list) { + if (diagram && diagram->uuid() == uuid) return diagram; + } + return nullptr; +} + /** Cette methode sert a reperer un projet vide, c-a-d un projet identique a ce que l'on obtient en faisant Fichier > Nouveau. diff --git a/sources/qetproject.h b/sources/qetproject.h index 212d08169..56b1fc517 100644 --- a/sources/qetproject.h +++ b/sources/qetproject.h @@ -56,6 +56,7 @@ class QUndoStack; class XmlElementCollection; class QTimer; class TerminalStrip; +class Cable; #include @@ -182,6 +183,49 @@ class QETProject : public QObject QString elementCurrentAutoNum() const; void setCurrrentElementAutonum(QString autoNum); + /// The cable numbering rule. Only one of them is ever kept: + /// a cable is numbered by one rule and that is all there is, + /// so the hash holds a single entry (see the cable tab of + /// the automatic numbering pages). + QHash cableAutoNum() const; + void addCableAutoNum (const QString& key, const NumerotationContext& context); + void removeCableAutoNum (const QString& key); + NumerotationContext cableAutoNum(const QString &key) const; + + QString cableAutoNumFormula(const QString& key) const; + bool hasCableAutoNum() const; + QString cableCurrentAutoNum() const; + void setCurrentCableAutoNum(QString autoNum); + /** + Which axis the cables of the project are laid out along + when the whole project is numbered again: true (the + default) for the X axis, so the leftmost cable of a folio + comes first, false for the Y axis, so the topmost does. + It belongs to the numbering and is written into the + project file next to the rule itself. + */ + bool cableXAxisFirst() const; + void setCableXAxisFirst(bool x_axis_first); + /** + Whether the cable tool asks this project whether a + numbering rule should be defined, when he is picked up + and the project has none. Saying no in that question is + remembered with the project rather than in the program + settings, so one project saying no does not silence + every other one -- each project asks again until it + has answered for itself, and taking the rule away + brings the question back (see the cable tab of the + project properties and the numbering window). + */ + bool cableAskNumbering() const; + void setCableAskNumbering(bool ask); + /** + The name the single cable numbering rule is kept under. + Fixed and never translated: it is a key which goes into + the settings and into the project file, so it must read + the same whatever language the program runs in. + */ + static QString cableAutoNumRuleName(); //Identity of the element numbering schemes. The title is the //name shown to the user and the lookup key of the API; the uuid //is what an element's ELMT_FORMULA_ID refers to, so a scheme can @@ -262,6 +306,12 @@ class QETProject : public QObject bool addTerminalStrip(TerminalStrip *strip); bool removeTerminalStrip(TerminalStrip *strip); + QVector cables() const; + Cable *newCable(); + bool addCable(Cable *cable); + bool removeCable(Cable *cable); + Diagram *diagramByUuid(const QUuid &uuid); + public slots: Diagram *addNewDiagram(int pos = -1); void removeDiagram(Diagram *); @@ -295,6 +345,12 @@ class QETProject : public QObject void folioAutoNumRemoved(); void defaultTitleBlockPropertiesChanged(); void conductorAutoNumChanged(); + /// A cable joined or left this project. Views over the + /// cables -- the cable list table -- listen to both to work + /// their rows out again; during a load the cables arrive one + /// signal at a time, long after the folios were read. + void cableAdded(Cable *cable); + void cableRemoved(Cable *cable); private slots: void updateDiagramsFolioData(); @@ -329,6 +385,7 @@ class QETProject : public QObject void readProjectPropertiesXml(QDomDocument &xml_project); void readDefaultPropertiesXml(QDomDocument &xml_project); void readTerminalStripXml(const QDomDocument &xml_project); + void readCableXml(const QDomDocument &xml_project); void readUsageXml(QDomDocument &xml_project); void readWireHopsXml(QDomDocument &xml_project); void readSymbolTextsXml(QDomDocument &xml_project); @@ -398,6 +455,16 @@ class QETProject : public QObject /// Title -> uuid of each element numbering scheme QHash m_element_autonum_id; QString m_current_element_autonum; + /// Cable auto numbering: exactly one rule, kept the same way + /// the others are so it stores and travels with the project + /// alike, but never a list to choose from. + QHash m_cable_autonum; + QString m_current_cable_autonum; + ///< which axis the cables are numbered along (see cableXAxisFirst) + bool m_cable_axis_x_first = true; + ///< whether the cable tool still asks about a numbering rule + ///< for this project (see cableAskNumbering) + bool m_cable_ask_numbering = true; /// True when the loaded file had element numbering schemes /// saved without an id (written before ids existed) bool m_legacy_element_autonums = false; @@ -423,6 +490,7 @@ class QETProject : public QObject QSet m_saved_item_uuids; //symbol and wire uuids the file carries, see derivedItemUuid() projectDataBase m_data_base; QVector m_terminal_strip_vector; + QVector m_cables; ProjectPropertiesHandler m_project_properties_handler; }; diff --git a/sources/scripting/qetscriptapi.cpp b/sources/scripting/qetscriptapi.cpp index eec89c0e5..3b315f784 100644 --- a/sources/scripting/qetscriptapi.cpp +++ b/sources/scripting/qetscriptapi.cpp @@ -24,6 +24,9 @@ #include "../QPropertyUndoCommand/qpropertyundocommand.h" #include "../cli_export.h" #include "../diagram.h" +#include "../bomexport.h" +#include "../cablelist/cablelistrows.h" +#include "../cablelist/cablequerywidget.h" #include "../dataBase/ui/elementquerywidget.h" #include "../dataBase/ui/summaryquerywidget.h" #include "../diagramcontent.h" @@ -336,6 +339,31 @@ bool QetScriptApi::exportBom(const QString &output, bool noSlaves, return runFlag(QStringLiteral("--export-bom"), args); } +/** + @brief QetScriptApi::exportCableList + Write the cable list of this project to @p output as CSV -- the same + bytes the "Exporter la liste des câbles au format CSV" action writes, + every column of CableList, every cable of the project. Written from + the project in memory rather than through runFlag(): the rows are + worked out from the cables themselves, there is no CLI flag and no + reopening of the file to do it through. + @param output path of the file to write + @return true when the file was written +*/ +bool QetScriptApi::exportCableList(const QString &output) +{ + if (!m_project) { + log(QStringLiteral("qet.exportCableList: no project")); + return false; + } + QString error; + if (!BomExport::writeCsv(output, CableList::toCsv(m_project), &error)) { + log(QStringLiteral("qet.exportCableList: %1").arg(error)); + return false; + } + return true; +} + bool QetScriptApi::exportWiring(const QString &output) { return runFlag(QStringLiteral("--export-wiring"), {output}); @@ -2962,12 +2990,16 @@ QStringList QetScriptApi::tables(int folioIndex) const file, so one call creates exactly the one table asked for. A script that wants either behaviour can resize the result or add a folio itself. - kind is "nomenclature" (an ElementQueryWidget, over placed elements) or - "summary" (a SummaryQueryWidget, over folios); query is required, since + kind is "nomenclature" (an ElementQueryWidget, over placed elements), + "summary" (a SummaryQueryWidget, over folios) or "cable_list" (a + CableQueryWidget, over the cables of the project); query is required + for the first two, since both widgets otherwise build their own from a set of checkboxes that default to none checked, and "SELECT with no columns" is not a useful table -- query() against element_nomenclature_view or - project_summary_view is the way to find one that is. + project_summary_view is the way to find one that is. For + "cable_list" the query is comma-joined column keys of CableList, and + empty means the default columns. Not undoable: newTable(), which create() calls, calls Diagram::addItem() directly, with no undo command of its own, in the @@ -2991,7 +3023,7 @@ int QetScriptApi::addTable(int folioIndex, const QString &kind, const QString &n log(QStringLiteral("qet.%1: no folio at index %2").arg(caller).arg(folioIndex)); return -1; } - if (query.isEmpty()) { + if (query.isEmpty() && kind != QLatin1String("cable_list")) { // Both widgets build their query from a set of checkboxes that // default to none checked, so "no query" is not "the sensible // default" here the way it might look -- it is SELECT with no @@ -3000,6 +3032,9 @@ int QetScriptApi::addTable(int folioIndex, const QString &kind, const QString &n // instead, over query() -- the same project database and the same // two views this project already exposes, element_nomenclature_view // for a nomenclature table and project_summary_view for a summary. + // A cable list is not read from that database (its rows come + // straight from the cables of the project), so for that kind an + // empty query is allowed and simply means "the default columns". log(QStringLiteral("qet.%1: a query is required -- try qet.query() against " "element_nomenclature_view or project_summary_view first " "to find one that returns what is wanted").arg(caller)); @@ -3015,8 +3050,27 @@ int QetScriptApi::addTable(int folioIndex, const QString &kind, const QString &n auto *w = new SummaryQueryWidget(); w->setQuery(query); content = w; + } else if (kind == QLatin1String("cable_list")) { + auto *w = new CableQueryWidget(); + if (!query.isEmpty()) { + // Comma-joined column keys; keys the list does not know are + // ignored by setFields(), and an empty list of usable keys + // leaves the default columns rather than a blank table. + const QStringList fields = query.split(QLatin1Char(','), Qt::SkipEmptyParts); + w->setFields(fields); + if (w->selectedKeys().isEmpty()) { + w->setFields(CableList::defaultKeys()); + } + } else { + // No query for this kind means the default columns, as + // promised above. The dialog a user opens leaves an empty + // table when nothing is picked, but a script asking for + // "a cable list" asks for the columns everybody gets. + w->setFields(CableList::defaultKeys()); + } + content = w; } else { - log(QStringLiteral("qet.%1: unknown kind '%2'; expected nomenclature or summary").arg(caller, kind)); + log(QStringLiteral("qet.%1: unknown kind '%2'; expected nomenclature, summary or cable_list").arg(caller, kind)); return -1; } diff --git a/sources/scripting/qetscriptapi.h b/sources/scripting/qetscriptapi.h index 2e3f327ac..f6b8b0c0e 100644 --- a/sources/scripting/qetscriptapi.h +++ b/sources/scripting/qetscriptapi.h @@ -189,7 +189,8 @@ class QetGraphicsTableItem; button applies, not a rule reimplemented here. sortTerminalStrip() reorders the strip's physical positions into the canonical order the editor's own sort button computes. - - @b Tables: a BOM/nomenclature or a summary (table of contents) placed + - @b Tables: a BOM/nomenclature, a summary (table of contents) or a + cable list placed on a folio, through QetGraphicsTableFactory::create() -- the same factory call the "add table" menu action makes, minus the modal AddTableDialog it collects its settings from first. That dialog is @@ -201,7 +202,11 @@ class QetGraphicsTableItem; calling addTable() once should create exactly the one table it asked for, not possibly several spread across folios it never asked to add. A script that wants either behaviour can resize the result itself or - add its own folio. + add its own folio. kind is "nomenclature" (over placed elements), + "summary" (over folios) or "cable_list" (over the cables of the + project): the first two require a real SQL query, the last takes + comma-joined column keys instead and accepts an empty query, which + means its default columns. Neither creating nor deleting a table is undoable: QetGraphicsTableFactory::newTable(), which create() calls, calls @@ -386,6 +391,7 @@ class QetScriptApi : public QObject Q_INVOKABLE bool exportWires(const QString &output); Q_INVOKABLE bool exportBom(const QString &output, bool noSlaves = false, bool noJunctions = false); + Q_INVOKABLE bool exportCableList(const QString &output); Q_INVOKABLE bool exportWiring(const QString &output); Q_INVOKABLE bool exportNets(const QString &output); Q_INVOKABLE bool exportLinks(const QString &output); diff --git a/sources/ui/cablenumberingdialog.cpp b/sources/ui/cablenumberingdialog.cpp new file mode 100644 index 000000000..ec833f062 --- /dev/null +++ b/sources/ui/cablenumberingdialog.cpp @@ -0,0 +1,383 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablenumberingdialog.h" + +#include "../autoNum/ui/selectautonumw.h" +#include "../cable/cablerenumber.h" +#include "../cable/editcablecommand.h" +#include "../qetproject.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + @brief CableNumberingDialog::CableNumberingDialog + Build the window around the numbering rule of the project: the rule + itself, the axis the cables are laid out along when the whole + project is numbered again, and the button which does that numbering. + @param project the project whose cables are numbered + @param parent +*/ +CableNumberingDialog::CableNumberingDialog(QETProject *project, QWidget *parent) : + QDialog(parent), + m_project(project) +{ + setWindowTitle(tr("Cable numbering")); + //The rule editor needs room to be read: this window opens with + //the size it needs rather than with whatever its contents + //happen to add up to, so nothing of the rule is cramped from + //the first moment + setMinimumSize(QSize(900, 620)); + + auto *layout = new QVBoxLayout(this); + + auto *note = new QLabel(tr( + "This window shows the automatic numbering rule for the cables " + "of this project and edits it. A rule changed here is the one " + "the project keeps: it is written into the project when you " + "apply it."), this); + note->setWordWrap(true); + layout->addWidget(note); + + m_rule = new SelectAutonumW(3, this); + //One rule only, so the row which picks between several named + //numberings is hidden: what is on show is the project's rule + m_rule->setSingleRuleMode(true); + layout->addWidget(m_rule); + + auto *axis_group = new QGroupBox(tr("Axis priority"), this); + auto *axis_layout = new QHBoxLayout(axis_group); + m_axis_x = new QRadioButton(tr("Priority to the X axis (horizontal)"), axis_group); + m_axis_y = new QRadioButton(tr("Priority to the Y axis (vertical)"), axis_group); + axis_layout->addWidget(m_axis_x); + axis_layout->addWidget(m_axis_y); + layout->addWidget(axis_group); + + auto *axis_note = new QLabel(tr( + "The chosen axis decides the order in which the cables are " + "renumbered: X numbers them from left to right, Y numbers them " + "from top to bottom."), this); + axis_note->setWordWrap(true); + layout->addWidget(axis_note); + + auto *actions = new QHBoxLayout(); + m_renumber_pb = new QPushButton(tr("Renumber all cables"), this); + m_renumber_pb->setToolTip(tr( + "Sets the number of each cable of the project again from the " + "rule, starting at the beginning: a number left missing after " + "a cable is deleted is filled in this way.")); + actions->addWidget(m_renumber_pb); + actions->addStretch(); + + //No confirm button: this window is there to number the cables + //again and to show the rule which does it. What the window + //holds is written by the editor's own Apply button, and by the + //numbering button which writes it before numbering -- so a + //second button only saving and closing would say the same + //thing twice. + m_box = new QDialogButtonBox(this); + m_box->addButton(QDialogButtonBox::Cancel); + m_box->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); + actions->addWidget(m_box); + layout->addLayout(actions); + + connect(m_box, &QDialogButtonBox::rejected, this, &QDialog::reject); + connect(m_renumber_pb, &QPushButton::clicked, this, &CableNumberingDialog::renumber); + //The editor's own buttons are wired the same way the project + //properties wire them, so this window saves exactly what that + //page would have saved + connect(m_rule, &SelectAutonumW::applyPressed, this, &CableNumberingDialog::applyRule); + connect(m_rule, &SelectAutonumW::removeClicked, this, &CableNumberingDialog::removeRule); + //Filling a rule in lights the numbering button up as soon as + //there is something to number with + connect(m_rule, &SelectAutonumW::contextEdited, this, + &CableNumberingDialog::updateEnabling); + + if (m_project) + { + const QString key = m_project->cableCurrentAutoNum(); + const bool has_rule = !key.isEmpty() + && !m_project->cableAutoNum(key).isEmpty(); + m_rule->setContext(has_rule ? m_project->cableAutoNum(key) + : NumerotationContext()); + //The button which takes the rule away is only worth showing + //when there is one, and only while the project may be + //written to + m_rule->setRuleRemovable(has_rule && !m_project->isReadOnly()); + + m_axis_x->setChecked(m_project->cableXAxisFirst()); + m_axis_y->setChecked(!m_project->cableXAxisFirst()); + + if (m_project->isReadOnly()) + { + m_rule->setEnabled(false); + m_axis_x->setEnabled(false); + m_axis_y->setEnabled(false); + } + } + updateEnabling(); +} + +/** + @brief CableNumberingDialog::applyRule + What the editor's own Apply button does: write the rule into the + project and leave the window open, the way that button behaves on + the numbering pages of the settings. +*/ +void CableNumberingDialog::applyRule() +{ + save(); + updateEnabling(); +} + +/** + @brief CableNumberingDialog::save + Write the rule and the axis into the project. Nothing is written + when nothing was changed, so confirming a window which was only + ever looked at leaves the project exactly as it was. + @return true when the window holds nothing which could not be written +*/ +bool CableNumberingDialog::save() +{ + if (!m_project || m_project->isReadOnly()) return false; + + bool changed = false; + + if (m_rule->isModified()) + { + if (!m_rule->isValid()) + { + QMessageBox::warning(this, tr("Cable numbering"), + tr("The rule is not complete yet: " + "there is still an empty field in it.")); + return false; + } + + const QString title = QETProject::cableAutoNumRuleName(); + m_project->addCableAutoNum(title, m_rule->toNumContext()); + m_project->setCurrentCableAutoNum(title); + //What was edited is written now, so there is nothing of it + //left for a second save to write again + m_rule->setContext(m_rule->toNumContext()); + m_rule->setRuleRemovable(true); + changed = true; + } + + const bool axis_first = m_axis_x->isChecked(); + if (m_project->cableXAxisFirst() != axis_first) changed = true; + m_project->setCableXAxisFirst(axis_first); + + if (changed) m_project->setModified(true); + return true; +} + +/** + @brief CableNumberingDialog::removeRule + Take the cable numbering rule out of the project. The project then + numbers its cables by no rule at all -- they are called W until one + is defined again -- and the cable tool asks once more whether one + should be defined. +*/ +void CableNumberingDialog::removeRule() +{ + if (!m_project || m_project->isReadOnly()) return; + + const QString title = m_project->cableCurrentAutoNum(); + if (title.isEmpty()) return; + + m_project->removeCableAutoNum(title); + m_rule->setContext(NumerotationContext()); + //No rule left, so the button which takes one away goes too. And + //having just taken the rule away means numbering cables by hand + //again: the question of defining one comes back the next time a + //cable is drawn, so it is not held back in this project any more. + m_rule->setRuleRemovable(false); + m_project->setCableAskNumbering(true); + m_project->setModified(true); + updateEnabling(); +} + +/** + @brief CableNumberingDialog::updateEnabling + Renumbering needs something to number with: a rule filled in well + enough to be one, and a project which may be written to. +*/ +void CableNumberingDialog::updateEnabling() +{ + if (!m_project || m_project->isReadOnly() || !m_rule) { + m_renumber_pb->setEnabled(false); + return; + } + + const QString key = m_project->cableCurrentAutoNum(); + const bool saved_rule = !key.isEmpty() + && !m_project->cableAutoNum(key).isEmpty(); + //A rule which is still being filled in counts as soon as it is + //written, and the numbering writes it together with the numbers + //it hands out + const bool drawn_rule = m_rule->isModified() && m_rule->isValid() + && !m_rule->toNumContext().isEmpty(); + + m_renumber_pb->setEnabled((saved_rule || drawn_rule) + && m_rule->isValid() + && !m_rule->toNumContext().isEmpty()); +} + +/** + @brief CableNumberingDialog::askAboutHandWritten + Some cables carry a name he typed in himself rather than one the + rule handed out. Taking such a name away is his to allow: yes and + they are numbered like all the others, no and they keep their name + while the rest is numbered around them, and cancelling leaves every + cable exactly where it stands. + @param count how many such names the project holds + @return 1 to number them too, 0 to leave them alone, -1 for nothing +*/ +int CableNumberingDialog::askAboutHandWritten(int count) +{ + if (count <= 0) return 1; + + QMessageBox box(QMessageBox::Question, tr("Cable numbering"), + tr("%n cable(s) of this project were entered by " + "hand.\n\n" + "Do you want to renumber them too?", "", count), + QMessageBox::NoButton, this); + QPushButton *take = box.addButton( + tr("Yes", "Les noms saisis à la main sont remplacés eux aussi."), + QMessageBox::YesRole); + QPushButton *leave = box.addButton( + tr("No", "Les noms saisis à la main sont laissés tels quels."), + QMessageBox::NoRole); + QPushButton *cancel = box.addButton( + tr("Cancel", "Ne renumérote rien du tout."), + QMessageBox::RejectRole); + //Keeping his own names is the safe answer under his finger + box.setDefaultButton(leave); + box.setEscapeButton(cancel); + box.exec(); + + const QAbstractButton *clicked = box.clickedButton(); + if (clicked == take) return 1; + if (clicked == leave) return 0; + return -1; +} + +/** + @brief CableNumberingDialog::renumber + Number every cable of the project again with the rule on show, + from the beginning of that rule and in the order the cables stand + along the chosen axis. One single undo step takes it all back, and + the window closes once the numbering has been written so that he + can see what became of his cables. +*/ +void CableNumberingDialog::renumber() +{ + if (!m_project || m_project->isReadOnly()) return; + + //A rule which is not complete yet is refused before anything is + //worked out at all. What the window holds is written only together + //with the numbering itself, so every way out coming before that + //point -- a rule which does not fit, him saying no, nothing to + //number -- leaves the project exactly as it stands. + const NumerotationContext rule = m_rule->toNumContext(); + if (!m_rule->isValid() || rule.isEmpty()) + { + QMessageBox::warning(this, tr("Cable numbering"), + tr("The rule is not complete yet.")); + return; + } + const bool axis_first = m_axis_x->isChecked(); + + //Whether he lets his own names be taken away or not, a project + //with nothing to number with says so before he is asked + //anything: the rule has to be one first + CableRenumberPlan plan = CableRenumber::plan(m_project, rule, axis_first, + true); + if (!plan.ok()) + { + QMessageBox::warning(this, tr("Cable numbering"), plan.error); + return; + } + + const int answer = askAboutHandWritten(CableRenumber::byHandCount(m_project)); + if (answer < 0) return; + + //Leaving his own names alone means the numbering runs around + //them, which can hand out a number somebody else keeps: that + //is worked out again here and refused if it does not fit + if (answer == 0) + { + plan = CableRenumber::plan(m_project, rule, axis_first, false); + if (!plan.ok()) + { + QMessageBox::warning(this, tr("Cable numbering"), plan.error); + return; + } + } + if (plan.cables.isEmpty()) + { + QMessageBox::information(this, tr("Cable numbering"), + tr("No cable to renumber in this project.")); + return; + } + + //Every cable already carries the number the rule says: there is + //nothing to write, and an undo step which undoes nothing would + //only be in the way + bool changed = false; + for (int i = 0; i < plan.cables.size(); ++i) + { + if (plan.cables.at(i)->designation() != plan.designations.at(i) + || plan.cables.at(i)->designationByHand()) { + changed = true; + break; + } + } + if (!changed) + { + QMessageBox::information(this, tr("Cable numbering"), + tr("All the cables already carry the number " + "that the rule gives them.")); + return; + } + + //The rule on show is written now, right with the numbering it + //belongs to, and the numbering then leaves the counters of that + //rule where the last number was taken from: both go into the + //project with the names, as one single act which undo takes + //back together. Nothing was written before this point, which is + //why he may still back out of here without the project having + //been touched. + if (!save()) return; + + const QString num_key = QETProject::cableAutoNumRuleName(); + if (QUndoStack *stack = m_project->undoStack()) { + stack->push(new RenumberCablesCommand( + plan.cables, plan.designations, m_project, num_key, + m_project->cableAutoNum(num_key), plan.after)); + } + accept(); +} diff --git a/sources/ui/cablenumberingdialog.h b/sources/ui/cablenumberingdialog.h new file mode 100644 index 000000000..c52a65fb9 --- /dev/null +++ b/sources/ui/cablenumberingdialog.h @@ -0,0 +1,86 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#ifndef CABLENUMBERINGDIALOG_H +#define CABLENUMBERINGDIALOG_H + +#include + +class QDialogButtonBox; +class QETProject; +class QPushButton; +class QRadioButton; +class SelectAutonumW; + +/** + @brief The window behind the "Cable numbering" entry of the + numbering menu: the one numbering rule the project numbers its + cables with, the axis those cables are laid out along when the whole + project is numbered again, and the button which does that numbering. + + The rule is the very editor the project properties hold on their + cable tab, read from the project when the window opens and written + back into the project by that editor's own Apply button -- and by + the numbering button, which writes what the window holds before it + numbers, so numbering always happens with the rule on show: a rule + which is changed here is the rule the project keeps, not a rule of + its own. There is no confirm button of this window's own: what the + window holds is either applied by hand or left behind when it is + closed. + + Renumbering works every cable of the project out from the beginning + of that rule, so the hole a deleted cable leaves in the numbering + closes -- and it only happens when he asks for it. +*/ +class CableNumberingDialog : public QDialog +{ + Q_OBJECT + + public: + explicit CableNumberingDialog(QETProject *project, QWidget *parent = nullptr); + + private slots: + ///Put the rule and the axis into the project + void applyRule(); + ///Take the cable numbering rule out of the project + void removeRule(); + ///Number every cable of the project with the rule on show + void renumber(); + ///Let the button say whether there is a rule to number with + void updateEnabling(); + + private: + ///Write what the window holds into the project + bool save(); + /** + Ask what to do with the names he typed in himself. + @param count how many such names the project holds + @return 1 to number them too, 0 to leave them alone, + -1 to do nothing at all + */ + int askAboutHandWritten(int count); + + private: + QETProject *m_project = nullptr; + SelectAutonumW *m_rule = nullptr; + QRadioButton *m_axis_x = nullptr; + QRadioButton *m_axis_y = nullptr; + QPushButton *m_renumber_pb = nullptr; + QDialogButtonBox *m_box = nullptr; +}; + +#endif // CABLENUMBERINGDIALOG_H diff --git a/sources/ui/configpage/configpages.cpp b/sources/ui/configpage/configpages.cpp index 6cba2f872..6144349ea 100644 --- a/sources/ui/configpage/configpages.cpp +++ b/sources/ui/configpage/configpages.cpp @@ -108,19 +108,26 @@ NewDiagramPage::NewDiagramPage(QETProject *project, auto saw_conductor = new SelectAutonumW(1); auto saw_element = new SelectAutonumW(0); auto saw_folio = new SelectAutonumW(2); + auto saw_cable = new SelectAutonumW(3); + //A cable is numbered by one rule and that is all there is: + //the row which lists the available numberings is hidden. + saw_cable->setSingleRuleMode(true); initAutoNumTab(m_autonum_conductor, saw_conductor, QStringLiteral("autonum/conductor")); initAutoNumTab(m_autonum_element, saw_element, QStringLiteral("autonum/element")); initAutoNumTab(m_autonum_folio, saw_folio, QStringLiteral("autonum/folio")); + initAutoNumTab(m_autonum_cable, saw_cable, QStringLiteral("autonum/cable")); + m_autonum_cable.fixed_name = QETProject::cableAutoNumRuleName(); QSettings autonum_settings; loadAutoNumTab(m_autonum_conductor, autonum_settings); loadAutoNumTab(m_autonum_element, autonum_settings); loadAutoNumTab(m_autonum_folio, autonum_settings); + loadAutoNumTab(m_autonum_cable, autonum_settings); // Intercept Return key in the combo line edits so it doesn't // activate the dialog's default button (OK). - for (auto *tab : {&m_autonum_conductor, &m_autonum_element, &m_autonum_folio}) { + for (auto *tab : {&m_autonum_conductor, &m_autonum_element, &m_autonum_folio, &m_autonum_cable}) { if (QComboBox *combo = tab->widget->contextComboBox()) { if (combo->lineEdit()) { combo->lineEdit()->installEventFilter(this); @@ -169,6 +176,7 @@ NewDiagramPage::NewDiagramPage(QETProject *project, autonum_inner_tab->addTab(m_autonum_conductor.widget, tr("Conductors")); autonum_inner_tab->addTab(m_autonum_element.widget, tr("Elements")); autonum_inner_tab->addTab(m_autonum_folio.widget, tr("Sheets")); + autonum_inner_tab->addTab(m_autonum_cable.widget, tr("Cables")); autonum_layout->addWidget(autonum_inner_tab); tab_widget -> addTab (autonum_widget, tr("Auto Numbering")); } @@ -280,6 +288,20 @@ void NewDiagramPage::applyConf() settings.endArray(); // save global auto-numbering defaults + // + // The cable rule is written here as well as by its own Apply + // button. The cable tool asks a project for that rule the + // moment he tries to draw a cable, and a project built out of + // settings he has just filled in and confirmed must not turn + // up without one -- which is what would happen if only the + // Apply button of that one tab could save it. A rule nobody + // has finished filling in is left alone, and a tab he has not + // touched writes nothing at all. + if (m_autonum_cable.widget + && m_autonum_cable.widget->isModified() + && m_autonum_cable.widget->isValid()) { + saveAutoNumContext(m_autonum_cable); + } persistAutonumSettings(); } } @@ -393,6 +415,12 @@ void NewDiagramPage::loadAutoNumTab(AutoNumTab &tab, QSettings &settings) tab.widget->contextComboBox()->setCurrentText(data.second); tab.widget->setContext(tab.contexts.value(data.second)); } + //A tab which keeps one single rule can take it away again with + //a button of its own -- the row the others delete from is + //hidden here -- but only when there really is one to take away. + if (!tab.fixed_name.isEmpty()) { + tab.widget->setRuleRemovable(tab.contexts.contains(tab.fixed_name)); + } } /** @@ -402,15 +430,25 @@ void NewDiagramPage::loadAutoNumTab(AutoNumTab &tab, QSettings &settings) */ void NewDiagramPage::saveAutoNumContext(AutoNumTab &tab) { - QString name = tab.widget->contextComboBox()->currentText().trimmed(); - if (name.isEmpty() || isPlaceholder(tab.widget->contextComboBox(), name)) { - return; + // A tab which keeps one single rule has no visible combo box to name + // it with (the row is hidden): it saves under its fixed name. + QString name = tab.fixed_name; + if (name.isEmpty()) { + name = tab.widget->contextComboBox()->currentText().trimmed(); + if (name.isEmpty() || isPlaceholder(tab.widget->contextComboBox(), name)) { + return; + } } tab.contexts.insert(name, tab.widget->toNumContext()); if (tab.widget->contextComboBox()->findText(name) == -1) { tab.widget->contextComboBox()->addItem(name); } + tab.widget->contextComboBox()->setCurrentText(name); persistAutonumSettings(); + //There is a rule now, so there is something to take away again. + if (!tab.fixed_name.isEmpty()) { + tab.widget->setRuleRemovable(true); + } } /** @@ -419,17 +457,35 @@ void NewDiagramPage::saveAutoNumContext(AutoNumTab &tab) */ void NewDiagramPage::removeAutoNumContext(AutoNumTab &tab) { - QString name = tab.widget->contextComboBox()->currentText().trimmed(); - if (name.isEmpty() || isPlaceholder(tab.widget->contextComboBox(), name)) { - return; + QString name = tab.fixed_name; + if (name.isEmpty()) { + name = tab.widget->contextComboBox()->currentText().trimmed(); + if (name.isEmpty() || isPlaceholder(tab.widget->contextComboBox(), name)) { + return; + } } int idx = tab.widget->contextComboBox()->findText(name); - if (idx == -1) return; + // A name which is not in the list was never saved, so there is + // nothing to take out -- unless it is a single rule, which is + // always under its fixed name whether the combo knows it or not. + if (idx == -1 && tab.fixed_name.isEmpty()) return; + if (idx != -1) { + tab.widget->contextComboBox()->removeItem(idx); + tab.widget->contextComboBox()->setCurrentText(QString()); + } tab.contexts.remove(name); - tab.widget->contextComboBox()->removeItem(idx); - tab.widget->contextComboBox()->setCurrentText(QString()); tab.widget->setContext(NumerotationContext()); persistAutonumSettings(); + + //A tab which keeps one single rule has no list to delete it + //from, so this is where the button of its own goes away too. + //And having just taken the rule away means numbering cables by + //hand again: every project of its own asks once more whether + //one should be defined -- that answer is kept per project, so + //there is nothing to take back here. + if (!tab.fixed_name.isEmpty()) { + tab.widget->setRuleRemovable(false); + } } /** @@ -439,12 +495,21 @@ void NewDiagramPage::removeAutoNumContext(AutoNumTab &tab) void NewDiagramPage::persistAutonumSettings() { QSettings settings; - for (auto *tab : {&m_autonum_conductor, &m_autonum_element, &m_autonum_folio}) { + for (auto *tab : {&m_autonum_conductor, &m_autonum_element, &m_autonum_folio, &m_autonum_cable}) { QString current; - QComboBox *combo = tab->widget->contextComboBox(); - if (!isPlaceholder(combo, combo->currentText().trimmed()) - && tab->contexts.contains(combo->currentText().trimmed())) { - current = combo->currentText().trimmed(); + if (!tab->fixed_name.isEmpty()) { + // The one rule of a single-rule tab is in use as soon as + // it exists: there is nothing to choose between. + if (tab->contexts.contains(tab->fixed_name)) { + current = tab->fixed_name; + } + } + else { + QComboBox *combo = tab->widget->contextComboBox(); + if (!isPlaceholder(combo, combo->currentText().trimmed()) + && tab->contexts.contains(combo->currentText().trimmed())) { + current = combo->currentText().trimmed(); + } } NumerotationContext::saveToSettings(tab->contexts, current, settings, tab->prefix); @@ -462,7 +527,7 @@ bool NewDiagramPage::eventFilter(QObject *obj, QEvent *event) auto *ke = static_cast(event); if ((ke->key() == Qt::Key_Return || ke->key() == Qt::Key_Enter)) { // Check if this is a line edit inside one of our autonum combos - for (auto *tab : {&m_autonum_conductor, &m_autonum_element, &m_autonum_folio}) { + for (auto *tab : {&m_autonum_conductor, &m_autonum_element, &m_autonum_folio, &m_autonum_cable}) { if (QComboBox *combo = tab->widget->contextComboBox()) { if (combo->lineEdit() && combo->lineEdit() == obj) { return true; // eat the event diff --git a/sources/ui/configpage/configpages.h b/sources/ui/configpage/configpages.h index 9ddb2a523..e5676611a 100644 --- a/sources/ui/configpage/configpages.h +++ b/sources/ui/configpage/configpages.h @@ -82,10 +82,16 @@ public slots: SelectAutonumW *widget = nullptr; QHash contexts; QString prefix; + /// When set, this tab keeps one single rule, always saved + /// and read under this name: there is no visible combo box + /// to name a rule with (see SelectAutonumW:: + /// setSingleRuleMode). The cable numbering works that way. + QString fixed_name; }; AutoNumTab m_autonum_conductor; AutoNumTab m_autonum_element; AutoNumTab m_autonum_folio; + AutoNumTab m_autonum_cable; void initAutoNumTab(AutoNumTab &tab, SelectAutonumW *w, const QString &prefix); void loadAutoNumTab(AutoNumTab &tab, QSettings &settings); diff --git a/sources/ui/configpage/generalconfigurationpage.cpp b/sources/ui/configpage/generalconfigurationpage.cpp index b2f7123dd..ccbc24cdd 100644 --- a/sources/ui/configpage/generalconfigurationpage.cpp +++ b/sources/ui/configpage/generalconfigurationpage.cpp @@ -23,6 +23,7 @@ #include "../../qeticons.h" #include "ui_generalconfigurationpage.h" #include "../../materiallist/materiallist.h" +#include "../../cablelist/cabletypelist.h" #include "../../utils/qetsettings.h" #include "../../utils/qetutils.h" #include "../../qetmessagebox.h" @@ -33,6 +34,7 @@ #include "../../ElementsCollection/qetlabelsfile.h" #include "../prefixconfigurationdialog.h" #include "../nokde/kcolorbutton.h" +#include #include #include #include @@ -40,6 +42,35 @@ #include #include +#include "../../diagram.h" +#include "../../qetproject.h" + +namespace { + /** + @brief What one of those font buttons says: the family, the size + and the style, the way it would read on the sheet. + @param font the font that text is written with + @return e.g. "Liberation Sans 8,1 (Regular)" + */ + QString fontButtonLabel(const QFont &font) + { + QString style = font.styleName(); + if (font.bold()) { + style = font.italic() + ? QCoreApplication::translate("GeneralConfigurationPage", + "Bold italic") + : QCoreApplication::translate("GeneralConfigurationPage", "Bold"); + } else if (font.italic()) { + style = QCoreApplication::translate("GeneralConfigurationPage", "Italic"); + } else if (style.isEmpty()) { + style = QCoreApplication::translate("GeneralConfigurationPage", "Normal"); + } + return font.family() + QLatin1Char(' ') + + QString::number(font.pointSizeF(), 'g', 3) + + QLatin1String(" (") + style + QLatin1Char(')'); + } +} + /** @brief GeneralConfigurationPage::GeneralConfigurationPage @param parent @@ -192,6 +223,17 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : font.styleName() + ")"; ui->m_indi_text_font_pb->setText(fontInfos); } else { ui->m_indi_text_font_pb->setText("Liberation Sans 9 (Regular)"); } + + //Cable texts: what every cable writes along its own line when + //it has not been given a font of its own. + ui->m_cable_text_font_pb->setText(fontButtonLabel(QETApp::cableTextsFont())); + ui->m_cable_core_font_pb->setText(fontButtonLabel(QETApp::cableCoreFont())); + + //Where those texts stop in relation to the beginning of their + //own line, for the cables which say nothing about it themselves + const int align_index = int(QETApp::cableTextAlignment()) == int(Qt::AlignLeft) ? 2 + : (int(QETApp::cableTextAlignment()) == int(Qt::AlignHCenter) ? 1 : 0); + ui->m_cable_align_cb->setCurrentIndex(align_index); ui->m_highlight_integrated_elements->setChecked(settings.value("diagrameditor/highlight-integrated-elements", true).toBool()); ui->m_default_elements_info->setPlainText(settings.value("elementeditor/default-informations", "").toString()); @@ -271,6 +313,17 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : .arg(MaterialList::defaultPath())); } + //CABLE TYPE FILE + path = CableTypeList::configuredPath(); + ui->m_cable_type_list_path_le->setText(path); + if (path.isEmpty()) + { + ui->m_cable_type_list_path_le->setPlaceholderText( + tr("Not set (default: %1)", + "hint shown in the cable type file field when no file is configured yet") + .arg(CableTypeList::defaultPath())); + } + fillLang(); } @@ -483,6 +536,30 @@ void GeneralConfigurationPage::applyConf() //kept as chosen even when it doesn't exist yet : the user may well //point QElectroTech at a file he intends to write later. MaterialList::setConfiguredPath(ui->m_material_list_path_le->text().trimmed()); + + //CABLE TYPE FILE + //Same rule as the material file : it is a plain file, kept as + //chosen even when it doesn't exist yet. + CableTypeList::setConfiguredPath(ui->m_cable_type_list_path_le->text().trimmed()); + + //The way a cable lines up its texts at the beginning of its + //line, for every cable which says nothing about it itself -- + //written now, so the sheets drawn again just below show it. + const int align_index = ui->m_cable_align_cb->currentIndex(); + QETApp::setCableTextAlignment(align_index == 2 ? Qt::AlignLeft + : (align_index == 1 + ? Qt::AlignHCenter + : Qt::AlignRight)); + + //Every folio is drawn again: the texts of the cables are written + //from the settings, so that what he just picked reaches the + //sheets without his having to touch anything on them first. + for (QETProject *project : QETApp::registeredProjects()) + { + for (Diagram *diagram : project->diagrams()) { + diagram->update(); + } + } } /** @@ -601,6 +678,45 @@ void GeneralConfigurationPage::on_m_dyn_text_font_pb_clicked() } } +/** + @brief GeneralConfigurationPage::on_m_cable_text_font_pb_clicked + Let him pick the font the texts of a cable are written with by + default: designation, type, installation, location and length. + + Every cable which has not been given a font of its own follows it, + from now on: one which has keeps the one it was given, which is why + those are set on the cable itself rather than here. +*/ +void GeneralConfigurationPage::on_m_cable_text_font_pb_clicked() +{ + bool ok = false; + const QFont font = QFontDialog::getFont(&ok, QETApp::cableTextsFont(), this, + tr("Cable text font")); + if (!ok) return; + + QSettings settings; + settings.setValue("cable-management/cable-text-font", QETUtils::fontToString(font)); + ui->m_cable_text_font_pb->setText(fontButtonLabel(QETApp::cableTextsFont())); +} + +/** + @brief GeneralConfigurationPage::on_m_cable_core_font_pb_clicked + Let him pick the font the colours of the cores are written with by + default -- all of them together, the way they are drawn: one row of + colours beside the line, never set apart from each other. +*/ +void GeneralConfigurationPage::on_m_cable_core_font_pb_clicked() +{ + bool ok = false; + const QFont font = QFontDialog::getFont(&ok, QETApp::cableCoreFont(), this, + tr("Core colors font")); + if (!ok) return; + + QSettings settings; + settings.setValue("cable-management/cable-core-font", QETUtils::fontToString(font)); + ui->m_cable_core_font_pb->setText(fontButtonLabel(QETApp::cableCoreFont())); +} + @@ -838,6 +954,70 @@ void GeneralConfigurationPage::on_m_material_list_create_pb_clicked() ui->m_material_list_path_le->setText(path); } +/** + @brief GeneralConfigurationPage::on_m_cable_type_list_browse_pb_clicked + Let the user pick an existing cable type file. +*/ +void GeneralConfigurationPage::on_m_cable_type_list_browse_pb_clicked() +{ + QString start_dir = ui->m_cable_type_list_path_le->text(); + start_dir = start_dir.isEmpty() + ? QETApp::documentDir() + : QFileInfo(start_dir).absolutePath(); + + const QString path = QFileDialog::getOpenFileName( + this, + tr("Select the cable types file"), + start_dir, + tr("CSV files (*.csv)")); + + if (!path.isEmpty()) { + ui->m_cable_type_list_path_le->setText(path); + } +} + +/** + @brief GeneralConfigurationPage::on_m_cable_type_list_create_pb_clicked + Create the cable type file with its header line, so the columns are + known before the user fills them from his spreadsheet. +*/ +void GeneralConfigurationPage::on_m_cable_type_list_create_pb_clicked() +{ + QString path = ui->m_cable_type_list_path_le->text(); + path = path.isEmpty() + ? CableTypeList::defaultPath() + : QFileInfo(path).absolutePath() + QLatin1Char('/') + CableTypeList::defaultFileName(); + + path = QFileDialog::getSaveFileName( + this, + tr("Create the cable types file"), + path, + tr("CSV files (*.csv)")); + if (path.isEmpty()) { + return; + } + if (QFileInfo(path).suffix().isEmpty()) { + path += QStringLiteral(".csv"); + } + + //An existing file is kept as it is : this button creates the + //header, it never overwrites a catalogue. + if (CableTypeList::isEmptyFile(path)) + { + QString error; + if (!CableTypeList::createFile(path, &error)) + { + QET::QetMessageBox::critical(this, + tr("Cannot be created"), + tr("Cannot create the file:\n%1\n%2") + .arg(path, error)); + return; + } + } + + ui->m_cable_type_list_path_le->setText(path); +} + void GeneralConfigurationPage::on_m_indi_text_font_pb_clicked() { bool ok; diff --git a/sources/ui/configpage/generalconfigurationpage.h b/sources/ui/configpage/generalconfigurationpage.h index 4954a6d3c..e613c7b88 100644 --- a/sources/ui/configpage/generalconfigurationpage.h +++ b/sources/ui/configpage/generalconfigurationpage.h @@ -50,7 +50,11 @@ class GeneralConfigurationPage : public ConfigPage void on_m_prefix_pb_clicked(); void on_m_material_list_browse_pb_clicked(); void on_m_material_list_create_pb_clicked(); + void on_m_cable_type_list_browse_pb_clicked(); + void on_m_cable_type_list_create_pb_clicked(); void on_m_indi_text_font_pb_clicked(); + void on_m_cable_text_font_pb_clicked(); + void on_m_cable_core_font_pb_clicked(); void on_MaxPartsElementEditorList_sb_valueChanged(int value); void on_DiagramEditor_Grid_PointSize_min_sb_valueChanged(int value); void on_ElementEditor_Grid_PointSize_min_sb_valueChanged(int value); diff --git a/sources/ui/configpage/generalconfigurationpage.ui b/sources/ui/configpage/generalconfigurationpage.ui index 3edac907e..4114b51ee 100644 --- a/sources/ui/configpage/generalconfigurationpage.ui +++ b/sources/ui/configpage/generalconfigurationpage.ui @@ -600,6 +600,47 @@ + + + + Cable type list file + + + + + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + + + true + + + Not set + + + + + + + Browse... + + + + + + + Create the cable type list file with its header line + + + Create... + + + + + @@ -864,6 +905,113 @@ + + + + Cable texts + + + + + + Designation, type, plant, location, length : + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + + + + + + Core colors (all of them) : + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + + + + + + Text alignment : + + + true + + + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + + + diff --git a/sources/ui/configpage/projectconfigpages.cpp b/sources/ui/configpage/projectconfigpages.cpp index 4e1c62964..6710fbc3e 100644 --- a/sources/ui/configpage/projectconfigpages.cpp +++ b/sources/ui/configpage/projectconfigpages.cpp @@ -471,9 +471,20 @@ QIcon ProjectAutoNumConfigPage::icon() const /** @brief ProjectAutoNumConfigPage::applyProjectConf + Save what this page has to save when the window is confirmed. + The cable rule is written from here as well as by its own Apply + button: the cable tool asks the project for that rule the moment + he tries to draw a cable, so filling it in and confirming this + window only to be asked once more would be a surprise. A rule he + has not finished filling in is left alone, and a page he has not + touched leaves the project exactly as it was. */ void ProjectAutoNumConfigPage::applyProjectConf() -{} +{ + if (m_saw_cable && m_saw_cable->isModified() && m_saw_cable->isValid()) { + saveContextCable(); + } +} namespace { /** @@ -555,6 +566,12 @@ void ProjectAutoNumConfigPage::initWidgets() m_saw_folio = new SelectAutonumW(2); m_saw_folio->setExplicitNaming(); tab_widget->addTab(schemeTab(m_saw_folio, m_folio_users_box, m_folio_users), tr("Sheets")); + + //Cable tab: one rule only, so the row which lists the available + //numberings stays hidden and there is nothing to choose between. + m_saw_cable = new SelectAutonumW(3); + m_saw_cable->setSingleRuleMode(true); + tab_widget->addTab(m_saw_cable, tr("Cables")); //AutoNumbering Tab m_faw = new FolioAutonumberingW(project()); @@ -589,6 +606,7 @@ void ProjectAutoNumConfigPage::readValuesFromProject() m_saw_conductor->contextComboBox()->clear(); m_saw_element->contextComboBox()->clear(); m_saw_folio->contextComboBox()->clear(); + m_saw_cable->contextComboBox()->clear(); //Conductor Tab refreshSchemes(SchemeKind::Conductor, m_project->conductorCurrentAutoNum()); @@ -598,6 +616,25 @@ void ProjectAutoNumConfigPage::readValuesFromProject() //Folio Tab refreshSchemes(SchemeKind::Folio, QString()); + + //Cable tab: the rule goes straight into the editor, since with the + //row of available numberings hidden he can never pick it out of + //the combo box himself. With no rule at all the editor shows an + //empty one to fill in, exactly like a numbering which has just + //been opened for the first time. + const QStringList strlk(m_project->cableAutoNum().keys()); + m_saw_cable->contextComboBox()->addItems(strlk); + const QString cable_rule = m_project->cableCurrentAutoNum(); + const bool cable_rule_ok = !cable_rule.isEmpty() + && !m_project->cableAutoNum(cable_rule).isEmpty(); + if (cable_rule_ok) { + m_saw_cable->setContext(m_project->cableAutoNum(cable_rule)); + } else { + m_saw_cable->setContext(NumerotationContext()); + } + //The button which takes the rule away is only worth showing when + //there is one, and only clickable when the project allows changes. + m_saw_cable->setRuleRemovable(cable_rule_ok && !m_project->isReadOnly()); //Folio AutoNumbering Tab m_faw->setContext(m_project->folioAutoNum().keys()); @@ -612,6 +649,15 @@ void ProjectAutoNumConfigPage::adjustReadOnly() if (m_import_pb && m_project) { m_import_pb->setDisabled(m_project->isReadOnly()); } + //The button which takes the cable numbering rule away does the + //same thing as the import button: nothing while the project + //cannot be written. + if (m_saw_cable && m_project) { + const QString title = m_project->cableCurrentAutoNum(); + m_saw_cable->setRuleRemovable(!m_project->isReadOnly() + && !title.isEmpty() + && !m_project->cableAutoNum(title).isEmpty()); + } } /** @@ -644,6 +690,11 @@ void ProjectAutoNumConfigPage::buildConnections() connect(m_saw_folio, &SelectAutonumW::renameClicked, this, &ProjectAutoNumConfigPage::renameContextFolio); connect(m_saw_folio->contextComboBox(), &QComboBox::textActivated, this, &ProjectAutoNumConfigPage::updateContextFolio); + //Cable tab: one rule, so there is no name to pick in the hidden + //combo box -- applying always writes the single rule. + connect(m_saw_cable, &SelectAutonumW::applyPressed, this, &ProjectAutoNumConfigPage::saveContextCable); + connect(m_saw_cable, &SelectAutonumW::removeClicked, this, &ProjectAutoNumConfigPage::removeContextCable); + // Auto Folio Numbering connect(m_faw, &FolioAutonumberingW::applyPressed, this, &ProjectAutoNumConfigPage::applyAutoNum); @@ -1034,6 +1085,66 @@ void ProjectAutoNumConfigPage::saveContextElement() } } +/** + @brief ProjectAutoNumConfigPage::saveContextCable + Save the cable numbering rule into the project. + + There is one rule only, and it has no name the user could have typed + (the row which holds those names is hidden): it always goes in under + the fixed name, and it is the rule in use from the moment it exists. +*/ +void ProjectAutoNumConfigPage::saveContextCable() +{ + if (!m_project || m_project->isReadOnly()) return; + + const QString title = QETProject::cableAutoNumRuleName(); + m_project->addCableAutoNum(title, m_saw_cable->toNumContext()); + m_project->setCurrentCableAutoNum(title); + + //Keep the hidden combo box in step with what the project holds, + //so the next reading of this page shows the rule just saved. + if (m_saw_cable->contextComboBox()->findText(title) == -1) { + m_saw_cable->contextComboBox()->addItem(title); + } + m_saw_cable->contextComboBox()->setCurrentText(title); + //There is a rule now, so there is something to take away again. + m_saw_cable->setRuleRemovable(true); + //This is applied straight away rather than at the end of the + //window, so the project has to say so itself: otherwise the rule + //would be dropped by a Cancel which comes after it. + m_project->setModified(true); +} + +/** + @brief ProjectAutoNumConfigPage::removeContextCable + Take the cable numbering rule out of the project. The project then + numbers its cables by no rule at all -- they are called W until one + is defined again -- and the cable tool asks once more whether one + should be defined. +*/ +void ProjectAutoNumConfigPage::removeContextCable() +{ + if (!m_project || m_project->isReadOnly()) return; + + const QString title = m_project->cableCurrentAutoNum(); + if (title.isEmpty()) return; + + m_project->removeCableAutoNum(title); + const int idx = m_saw_cable->contextComboBox()->findText(title); + if (idx != -1) { + m_saw_cable->contextComboBox()->removeItem(idx); + } + m_saw_cable->contextComboBox()->setCurrentText(QString()); + m_saw_cable->setContext(NumerotationContext()); + //No rule left, so the button which takes one away goes too. And + //having just taken the rule away means numbering cables by hand + //again: the question of defining one comes back the next time a + //cable is drawn, so it is not held back in this project any more. + m_saw_cable->setRuleRemovable(false); + m_project->setCableAskNumbering(true); + m_project->setModified(true); +} + /** @brief ProjectAutoNumConfigPage::importFromProject Read the automatic numbering rules stored in another .qet project and @@ -1653,3 +1764,14 @@ void ProjectAutoNumConfigPage::changeToTab(int i) m_tab_widget->setCurrentIndex(i); } } + +/** + @brief ProjectAutoNumConfigPage::changeToCableTab + Show the cable tab -- the one the cable tool opens when it finds out + that the project has no numbering rule yet. +*/ +void ProjectAutoNumConfigPage::changeToCableTab() +{ + //Tabs in order : Management, Conductors, Elements, Folios, Cables + changeToTab(4); +} diff --git a/sources/ui/configpage/projectconfigpages.h b/sources/ui/configpage/projectconfigpages.h index 435df2c62..39df7702f 100644 --- a/sources/ui/configpage/projectconfigpages.h +++ b/sources/ui/configpage/projectconfigpages.h @@ -160,6 +160,9 @@ class ProjectAutoNumConfigPage : public ProjectConfigPage { QIcon icon() const override; void applyProjectConf() override; virtual void changeToTab(int); + ///Jump straight to the cable tab (used when the cable tool + ///asks whether a numbering rule should be defined) + void changeToCableTab(); protected: void initWidgets() override; void initLayout() override {} @@ -177,6 +180,8 @@ class ProjectAutoNumConfigPage : public ProjectConfigPage { void updateContextElement(const QString&);//element void saveContextElement(); void removeContextElement(); + void saveContextCable(); //cable: one rule, no name to pick + void removeContextCable(); void newContextElement(); void renameContextElement(); void refreshElementSchemes(const QString &selected); @@ -219,6 +224,7 @@ class ProjectAutoNumConfigPage : public ProjectConfigPage { SelectAutonumW *m_saw_conductor; SelectAutonumW *m_saw_folio; SelectAutonumW *m_saw_element; + SelectAutonumW *m_saw_cable; QTabWidget *m_tab_widget = nullptr; QGroupBox *m_conductor_users_box = nullptr; QTableWidget *m_conductor_users = nullptr; diff --git a/sources/ui/projectpropertiesdialog.cpp b/sources/ui/projectpropertiesdialog.cpp index f27f71464..81ab0223f 100644 --- a/sources/ui/projectpropertiesdialog.cpp +++ b/sources/ui/projectpropertiesdialog.cpp @@ -94,6 +94,20 @@ void ProjectPropertiesDialog::changeToFolio() autoNumPage->changeToTab(3); } +/** + @brief ProjectPropertiesDialog::changeToCable + Change the current displayed tab to the cable numbering tab. + The caller is the cable tool, which opens this window when it finds + that the project numbers its cables by no rule at all. +*/ +void ProjectPropertiesDialog::changeToCable() +{ + ProjectAutoNumConfigPage *autoNumPage = + static_cast ( + m_properties_dialog->pages.at(2)); + autoNumPage->changeToCableTab(); +} + /** @brief ProjectPropertiesDialog::changeToElement Change the current displayed tab to the element numberings tab. diff --git a/sources/ui/projectpropertiesdialog.h b/sources/ui/projectpropertiesdialog.h index 075423907..e54c9f866 100644 --- a/sources/ui/projectpropertiesdialog.h +++ b/sources/ui/projectpropertiesdialog.h @@ -41,6 +41,8 @@ class ProjectPropertiesDialog : public QObject { void exec(); void setCurrentPage(ProjectPropertiesDialog::Page); void changeToFolio(); + ///Show the automatic numbering page with the cable tab on top + void changeToCable(); void changeToElement(); private: diff --git a/sources/ui/xrefpropertieswidget.cpp b/sources/ui/xrefpropertieswidget.cpp index f3f44d5fa..0ee65331e 100644 --- a/sources/ui/xrefpropertieswidget.cpp +++ b/sources/ui/xrefpropertieswidget.cpp @@ -17,12 +17,16 @@ */ #include +#include #include #include +#include #include "xrefpropertieswidget.h" #include "ui_xrefpropertieswidget.h" #include "qdebug.h" +#include "../qetapp.h" +#include "../utils/qetutils.h" /** @brief XRefPropertiesWidget::XRefPropertiesWidget @@ -37,10 +41,12 @@ XRefPropertiesWidget::XRefPropertiesWidget(QHash prope { ui->setupUi(this); buildUi(); + fillMissingTypes(); connect(ui->m_display_has_cross_rb, &QRadioButton::toggled, ui->m_cross_properties_gb, &QWidget::setEnabled); connect(ui->m_display_has_contacts_rb, &QRadioButton::toggled, ui->m_show_all_slaves_cb, &QWidget::setEnabled); connect(ui->m_type_cb, qOverload(&QComboBox::currentIndexChanged), this, &XRefPropertiesWidget::typeChanged); connect(ui->m_snap_to_cb, qOverload(&QComboBox::currentIndexChanged), this, &XRefPropertiesWidget::enableOffsetSB); + connect(ui->m_font_pb, &QPushButton::clicked, this, &XRefPropertiesWidget::chooseXRefFont); updateDisplay(); } @@ -54,6 +60,7 @@ XRefPropertiesWidget::~XRefPropertiesWidget() disconnect(ui->m_display_has_contacts_rb, &QRadioButton::toggled, ui->m_show_all_slaves_cb, &QWidget::setEnabled); disconnect(ui->m_type_cb, qOverload(&QComboBox::currentIndexChanged), this, &XRefPropertiesWidget::typeChanged); disconnect(ui->m_snap_to_cb, qOverload(&QComboBox::currentIndexChanged), this, &XRefPropertiesWidget::enableOffsetSB); + disconnect(ui->m_font_pb, &QPushButton::clicked, this, &XRefPropertiesWidget::chooseXRefFont); delete ui; } @@ -65,10 +72,33 @@ XRefPropertiesWidget::~XRefPropertiesWidget() void XRefPropertiesWidget::setProperties(const QHash &properties) { m_properties = properties; + fillMissingTypes(); updateDisplay(); m_previous_type_index = ui->m_type_cb->currentIndex(); } +/** + @brief XRefPropertiesWidget::fillMissingTypes + Make sure every type the combo box offers has properties of its own. + + A project built before a type existed does not hold that type, and + neither does a settings file written before it. Without an entry the + form would make one up out of thin air, and for a cable that would be + the very default of the coil ("%f-%l%c"), which reads as a stray dash + behind the folio number and two empty numbers after it. +*/ +void XRefPropertiesWidget::fillMissingTypes() +{ + const QHash defaults = XRefProperties::defaultProperties(); + for (int i = 0; i < ui->m_type_cb->count(); ++i) + { + const QString type = ui->m_type_cb->itemData(i).toString(); + if (!m_properties.contains(type)) { + m_properties.insert(type, defaults.value(type)); + } + } +} + /** @brief XRefPropertiesWidget::properties @return the properties edited by this widget @@ -88,6 +118,9 @@ void XRefPropertiesWidget::setReadOnly(bool ro) { ui->m_type_cb->setDisabled(ro); ui->m_display_gb->setDisabled(ro); ui->m_cross_properties_gb->setDisabled(ro); + //The texts stand on their own since they are needed for a cable + //too, and they are as much a setting as the rest. + ui->m_labels_gb->setDisabled(ro); if (!ro && ui->m_display_has_contacts_rb->isChecked()) { ui->m_cross_properties_gb->setDisabled(true); @@ -100,10 +133,16 @@ void XRefPropertiesWidget::setReadOnly(bool ro) { */ void XRefPropertiesWidget::buildUi() { + //Wording of the master label as the .ui wrote it, kept to put it + //back for every type which does not rename it. + m_master_label_text = ui->label_6->text(); ui -> m_type_cb -> addItem(tr("Coil"), "coil"); ui -> m_type_cb -> addItem(tr("Organ of protection"), "protection"); ui -> m_type_cb -> addItem(tr("Switch / button"), "commutator"); ui -> m_type_cb -> addItem(tr("Programmable Logic Controller (PLC)"), "plc"); + //Not an element: the type of the cross references a cable writes + //in its own label when it runs on several folios. + ui -> m_type_cb -> addItem(tr("Cable"), "cable"); ui -> m_snap_to_cb -> addItem(tr("Footer"), "bottom"); ui -> m_snap_to_cb -> addItem(tr("Under the label of the element"), "label"); @@ -152,6 +191,7 @@ void XRefPropertiesWidget::saveProperties(int index) { xrp.setPrefix("switch", ui->m_switch_prefix_le->text()); xrp.setMasterLabel(ui->m_master_le->text()); xrp.setSlaveLabel(ui->m_slave_le->text()); + xrp.setFont(m_current_font); //The boxes cannot show a value below their minimum (the offset's //minimum is its "Default" entry, standing for the stored 0): keep //the stored value unless the box shows something else. @@ -185,6 +225,10 @@ void XRefPropertiesWidget::updateDisplay() QString master = xrp.masterLabel(); ui->m_master_le->setText(master); + //Which font that type's reference is written with: the button + //offers it for a cable alone, but every type carries its own. + m_current_font = xrp.font(); + QString slave = xrp.slaveLabel(); ui->m_slave_le->setText(slave); @@ -236,8 +280,42 @@ void XRefPropertiesWidget::updateDisplay() ui->m_display_has_cross_rb->setVisible(!is_plc); ui->m_show_terminal_name_cb->setVisible(!is_plc); ui->m_show_all_slaves_cb->setVisible(!is_plc); - ui->m_stack_overlapping_cb->setVisible(!is_plc); - ui->m_cross_properties_gb->setVisible(!is_plc); + + //A cable is not an element: it draws no cross of its own and stands + //at no place of the sheet to be pointed at. Its reference is a line + //of the label of the cable itself, written once per other folio the + //cable runs on, so the whole presentation (where a cross is put, how + //it is drawn) and the text of the slave have no meaning for it: what + //is left is the one text which is written into that line. + const bool is_cable = type == QLatin1String("cable"); + ui->m_display_gb->setVisible(!is_cable); + ui->label_7->setVisible(!is_cable); + ui->m_slave_le->setVisible(!is_cable); + //The wording of every type which is not a cable comes back from + //the .ui, so the label cannot drift away from the designer one. + ui->label_6->setText(is_cable ? tr("Text:") : m_master_label_text); + + //Only a cable writes its reference into its own label, so only a + //cable has a text whose font to choose here: the cross references + //of the elements keep the font they have always been drawn with. + ui->m_font_pb->setVisible(is_cable); + if (m_current_font.isEmpty()) + { + ui->m_font_pb->setToolTip(tr("Font and size: those of the cable texts")); + } + else + { + QFont font; + if (QETUtils::fontFromString(font, m_current_font)) { + ui->m_font_pb->setToolTip(tr("Font and size: %1, %2 pt") + .arg(font.family()).arg(font.pointSizeF())); + } + } + + //A cable stacks the lines of its references by itself, so the + //option is only worth showing for the elements. + ui->m_stack_overlapping_cb->setVisible(!is_plc && !is_cable); + ui->m_cross_properties_gb->setVisible(!is_plc && !is_cable); } /** @@ -267,3 +345,31 @@ void XRefPropertiesWidget::enableOffsetSB(int i){ ui->m_offset_sb->setEnabled(true); ui->m_stack_overlapping_cb->setEnabled(ui->m_offset_sb->isEnabled()); } + +/** + @brief XRefPropertiesWidget::chooseXRefFont + Let him pick the font -- family, size and style, all three at once -- + the reference of a cable is written with. + + The font is only kept when he presses OK: cancelling the dialog + leaves the previous one standing. What he picked is written into the + properties by saveProperties(), the way every other field of this + form is, so leaving the type or pressing OK in the settings window + is what really stores it. +*/ +void XRefPropertiesWidget::chooseXRefFont() +{ + QFont initial; + if (m_current_font.isEmpty() || !QETUtils::fontFromString(initial, m_current_font)) { + initial = QETApp::cableTextsFont(); + } + + bool ok = false; + const QFont font = QFontDialog::getFont(&ok, initial, this, + tr("Font of the cross-reference text")); + if (!ok) return; + + m_current_font = QETUtils::fontToString(font); + ui->m_font_pb->setToolTip(tr("Font and size: %1, %2 pt") + .arg(font.family()).arg(font.pointSizeF())); +} diff --git a/sources/ui/xrefpropertieswidget.h b/sources/ui/xrefpropertieswidget.h index 8bd255b74..12a1a7099 100644 --- a/sources/ui/xrefpropertieswidget.h +++ b/sources/ui/xrefpropertieswidget.h @@ -46,7 +46,9 @@ class XRefPropertiesWidget : public QWidget private: void buildUi(); + void fillMissingTypes(); void saveProperties(int index); + void chooseXRefFont(); private slots: void updateDisplay(); @@ -58,6 +60,10 @@ class XRefPropertiesWidget : public QWidget Ui::XRefPropertiesWidget *ui; QHash m_properties; int m_previous_type_index; + ///The font picked for the type shown, as the settings describe it + QString m_current_font; + ///Wording of the master label, as the .ui gives it + QString m_master_label_text; }; #endif // XREFPROPERTIESWIDGET_H diff --git a/sources/ui/xrefpropertieswidget.ui b/sources/ui/xrefpropertieswidget.ui index 06e3568ca..5e3ac7f71 100644 --- a/sources/ui/xrefpropertieswidget.ui +++ b/sources/ui/xrefpropertieswidget.ui @@ -189,100 +189,110 @@ - - + + + + + + + + + Label cross reference + + - - - Label cross reference - - - - - - - - - 0 - 0 - - - - - 48 - 0 - - - - Master - - - - - - - - - - %f-%l%c - - - - - - - - - - - - 0 - 0 - - - - - 48 - 0 - - - - Slave - - - false - - - - - - - (%f-%l%c) - - - - - - - - - Create your own text using the following variables: + + + + + + 0 + 0 + + + + + 48 + 0 + + + + Master + + + + + + + + + + %f-%l%c + + + + + + + Choose the font and size of the cable cross-reference text + + + Font… + + + + + + + + + + + + 0 + 0 + + + + + 48 + 0 + + + + Slave + + + false + + + + + + + (%f-%l%c) + + + + + + + + + Create your own text using the following variables: %f: the sheet number %F: the sheet label %l: the row number %c: the column number %M: the installation %LM: the location - - - - + - - - + + + diff --git a/sources/undocommand/deleteqgraphicsitemcommand.cpp b/sources/undocommand/deleteqgraphicsitemcommand.cpp index 5de7f90af..521bee8eb 100644 --- a/sources/undocommand/deleteqgraphicsitemcommand.cpp +++ b/sources/undocommand/deleteqgraphicsitemcommand.cpp @@ -18,6 +18,7 @@ #include "deleteqgraphicsitemcommand.h" #include "../wiringrules.h" +#include "../cable/cablemanager.h" #include "../diagram.h" #include "../qetproject.h" #include "addgraphicsobjectcommand.h" @@ -337,6 +338,15 @@ void DeleteQGraphicsItemCommand::undo() } } + //Back on the sheet and linked again: the cables which run over + //this report claim their wire on the other side once more. + for (Element *e : m_removed_contents.m_elements) { + if (e && (e->linkType() & Element::AllReport)) { + CableManager::refreshLabels(m_diagram->project()); + break; + } + } + QUndoCommand::undo(); } @@ -390,5 +400,16 @@ void DeleteQGraphicsItemCommand::redo() for(QGraphicsItem *item : m_removed_contents.items()) m_diagram->removeItem(item); + //A folio report carries a cable core over to the next sheet: + //taking one away (putting it back is undo, below) changes which + //wires belong to which cable, so the cable fields are worked + //out again straight away. + for (Element *e : m_removed_contents.m_elements) { + if (e && (e->linkType() & Element::AllReport)) { + CableManager::refreshLabels(m_diagram->project()); + break; + } + } + QUndoCommand::redo(); } diff --git a/sources/undocommand/linkelementcommand.cpp b/sources/undocommand/linkelementcommand.cpp index 0599eb8ad..e5e2f3162 100644 --- a/sources/undocommand/linkelementcommand.cpp +++ b/sources/undocommand/linkelementcommand.cpp @@ -17,6 +17,7 @@ */ #include "linkelementcommand.h" +#include "../cable/cablemanager.h" #include "../conductorautonumerotation.h" #include "../diagram.h" #include "../diagramposition.h" @@ -59,6 +60,23 @@ static QString plcCrossRefText(Element *master, Element *slave) xrp.slaveLabel(), seq, master->diagram(), master); } +/** + @brief refreshCableLabelsForReport + A folio report carries a cable core over to the next sheet, so + making or breaking such a link changes which wires belong to which + cable. Work the cable fields out again straight away, so the wire + coming out of the linked arrow shows the cable right after the link + is made -- and drops it right after the link is taken away. + @param element the element the link was made or broken on +*/ +static void refreshCableLabelsForReport(Element *element) +{ + if (!element || !(element->linkType() & Element::AllReport)) return; + if (Diagram *diagram = element->diagram()) { + CableManager::refreshLabels(diagram->project()); + } +} + /** @brief LinkElementCommand::LinkElementCommand Constructor @@ -302,6 +320,7 @@ void LinkElementCommand::undo() } makeLink(m_linked_before); + refreshCableLabelsForReport(m_element); QUndoCommand::undo(); } @@ -329,6 +348,7 @@ void LinkElementCommand::redo() } m_first_redo = false; } + refreshCableLabelsForReport(m_element); QUndoCommand::redo(); } diff --git a/tests/qttest/CMakeLists.txt b/tests/qttest/CMakeLists.txt index 3572ed416..d871a96dd 100644 --- a/tests/qttest/CMakeLists.txt +++ b/tests/qttest/CMakeLists.txt @@ -87,6 +87,15 @@ if(Python3_Interpreter_FOUND AND CMAKE_GENERATOR STREQUAL "Ninja") --source ${CMAKE_CURRENT_SOURCE_DIR}/attached_plain_paste_probe.cpp --fixture ${CMAKE_CURRENT_SOURCE_DIR}/fixtures/unlinked_contact_label.qet) set_tests_properties(tst_attachedplainpaste PROPERTIES TIMEOUT 300 RUN_SERIAL TRUE) + # Deleting a cable, undoing the delete twice and then editing anything + # has both cable commands tearing down the same cable. Runs under the + # same objects the application uses, so a second free is caught. + add_test(NAME tst_cableundointegration + COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/run_cable_undo_probe.py + --build ${CMAKE_BINARY_DIR} --binary $ + --source ${CMAKE_CURRENT_SOURCE_DIR}/cable_undo_probe.cpp + --fixture ${CMAKE_CURRENT_SOURCE_DIR}/fixtures/unlinked_contact_label.qet) + set_tests_properties(tst_cableundointegration PROPERTIES TIMEOUT 300 RUN_SERIAL TRUE) endif() if(Python3_Interpreter_FOUND AND CMAKE_GENERATOR STREQUAL "Ninja") add_test(NAME tst_darkimageintegration @@ -254,6 +263,23 @@ add_test(NAME tst_legacyelementtypes COMMAND tst_legacyelementtypes) target_include_directories(tst_legacyelementtypes PRIVATE ${QET_DIR}/sources) target_link_libraries(tst_legacyelementtypes PRIVATE Qt::Test) +# The cable type catalogue is plain data (it reads and writes the CSV file +# holding the cable kinds), so it is compiled here on its own, together with +# the material file helpers it shares and the element information wording. +add_executable( + tst_cabletypelist + tst_cabletypelist.cpp + ${QET_DIR}/sources/cablelist/cabletypelist.cpp + ${QET_DIR}/sources/cablelist/cabletypelist.h + ${QET_DIR}/sources/materiallist/materiallist.cpp + ${QET_DIR}/sources/materiallist/materiallist.h + ${QET_DIR}/sources/qetinformation.cpp + ${QET_DIR}/sources/qetinformation.h) +add_test(NAME tst_cabletypelist COMMAND tst_cabletypelist) +target_include_directories(tst_cabletypelist PRIVATE ${QET_DIR}/sources) +# qetinformation.h uses QRegularExpressionValidator, which lives in QtGui. +target_link_libraries(tst_cabletypelist PRIVATE Qt::Test Qt::Gui) + add_executable( tst_qetpalette tst_qetpalette.cpp diff --git a/tests/qttest/cable_undo_probe.cpp b/tests/qttest/cable_undo_probe.cpp new file mode 100644 index 000000000..b02cc06df --- /dev/null +++ b/tests/qttest/cable_undo_probe.cpp @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// Cable undo ownership regression, linked against the application's objects. +// +// Deleting a cable and undoing the delete twice leaves the cable out of +// the project while AddCableCommand still holds it, and the next edit +// makes the stack throw both commands away. Whoever of the two runs +// first frees the cable; the other one must not follow it into the freed +// memory. A raw pointer there meant freeing the same cable twice, which +// a normal build hides and AddressSanitizer reports as a heap +// use-after-free in ~AddCableCommand. +#include +#include +#include +#include +#include +#include +#include + +#include "../../sources/diagram.h" +#include "../../sources/qetproject.h" +#include "../../sources/qetmessagebox.h" +#include "../../sources/cable/addcablecommand.h" +#include "../../sources/cable/cable.h" +#include "../../sources/cable/cablepart.h" +#include "../../sources/cable/editcablecommand.h" + +static void check(bool value, const char *message) +{ + if (!value) throw std::runtime_error(message); +} + +// Any edit the user makes afterwards: pushing it is what makes the stack +// discard the commands it still holds undone, and that is where the two +// destructors meet the same cable. +struct AnyEdit : QUndoCommand +{ + void redo() override {} + void undo() override {} +}; + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + std::freopen(argv[2], "w", stdout); + + QTemporaryDir settings; + QSettings::setDefaultFormat(QSettings::IniFormat); + QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, settings.path()); + QCoreApplication::setOrganizationName("QETCableUndoRegression"); + QETProject::setBackupEnabled(false); + QET::QetMessageBox::setNonInteractive(true); + QFontDatabase::addApplicationFont(":/fonts/LiberationSans-Regular.ttf"); + + try + { + QETProject project(QString::fromLocal8Bit(argv[1])); + check(project.state() == QETProject::Ok, "fixture opens"); + Diagram *scene = project.diagrams().first(); + + // The state the cable tool leaves behind when it has drawn one + // line and the dialog accepted it: a cable holding the section, + // a line on the folio pointing back at that cable. + CablePartData data; + data.uuid = QUuid::createUuid(); + data.diagram = scene->uuid(); + data.p1 = QPointF(100, 100); + data.p2 = QPointF(300, 100); + + //The cable the create dialog hands over: owned by the project, + //which is the only way it may enter the project's list at all. + auto *cable = project.newCable(); + cable->addPart(data); + auto *item = new CablePart(data); + item->setCable(cable); + scene->addItem(item); + + // Draw the line. + scene->undoStack().push(new AddCableCommand(cable, item, scene, true)); + check(project.cables().contains(cable), "drawn cable is in the project"); + + // Select all and delete. + scene->undoStack().push(new RemoveCableCommand(scene, {item})); + check(!project.cables().contains(cable), "delete took the cable out of the project"); + + // Ctrl+Z, Ctrl+Z: the cable is in nobody's hands now, but both + // commands still stand and both think they may have to clean it up. + scene->undoStack().undo(); + scene->undoStack().undo(); + check(!project.cables().contains(cable), "cable orphaned by two undos"); + + // The next edit of any kind: the stack throws the undone commands + // away, and ~RemoveCableCommand frees the cable before + // ~AddCableCommand gets to look at it. + scene->undoStack().push(new AnyEdit); + + check(project.state() == QETProject::Ok, "project survives the edit"); + std::puts("PASS: deleting a cable, undoing twice and editing again frees it exactly once"); + } + catch (const std::exception &error) + { + std::printf("FAIL: %s\n", error.what()); + return 1; + } + return 0; +} diff --git a/tests/qttest/run_cable_undo_probe.py b/tests/qttest/run_cable_undo_probe.py new file mode 100755 index 000000000..7613ec164 --- /dev/null +++ b/tests/qttest/run_cable_undo_probe.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +"""Link the cable undo integration probe using an existing Ninja app build. + +Reuses app objects without duplicating the app or introducing a core-library +refactor. No application source or existing executable is replaced. The +generated manifest, probe binary, reports and export fixtures stay in build/. +""" +import argparse +import pathlib +import re +import shutil +import subprocess +import sys + +parser = argparse.ArgumentParser() +parser.add_argument('--build', required=True) +parser.add_argument('--binary', required=True) +parser.add_argument('--source', required=True) +parser.add_argument('--fixture', required=True) +args = parser.parse_args() +build = pathlib.Path(args.build).resolve() +binary = pathlib.Path(args.binary).resolve() +source = pathlib.Path(args.source).resolve() +fixture = pathlib.Path(args.fixture).resolve() +manifest = (build / 'build.ninja').read_text(encoding='utf-8') +match = re.search(r'^build (\S*?/sources/main\.cpp\.(?:obj|o)):', manifest, re.MULTILINE) +if not match: + sys.exit('Cannot find the application main object in the Ninja build.') +main_object = match.group(1) +probe_object = main_object.replace('main.cpp.', 'cable_undo_probe.cpp.') +probe_binary = binary.with_name('cable_undo_probe' + binary.suffix) +def escape(path): + return pathlib.Path(path).as_posix().replace('$', '$$').replace(':', '$:').replace(' ', '$ ') +main_source = source.parents[2] / 'sources' / 'main.cpp' +manifest = manifest.replace(main_object, probe_object) +manifest = manifest.replace(escape(main_source), escape(source)) +if binary.suffix: + manifest = manifest.replace(binary.name, probe_binary.name) +else: + old_target = escape(binary.name if binary.parent == build else binary) + new_target = escape(probe_binary.name if probe_binary.parent == build else probe_binary) + manifest = manifest.replace('build ' + old_target + ':', 'build ' + new_target + ':') + old_file = binary.name if binary.parent == build else binary.as_posix() + new_file = probe_binary.name if probe_binary.parent == build else probe_binary.as_posix() + manifest = re.sub(r'^ TARGET_FILE = ' + re.escape(old_file) + r'$', + ' TARGET_FILE = ' + new_file, manifest, flags=re.MULTILINE) +probe_manifest = build / 'cable-undo-probe.ninja' +probe_manifest.write_text(manifest, encoding='utf-8') +ninja = shutil.which('ninja') +if not ninja: + sys.exit('Ninja is required for the integration probe.') +target = probe_binary.name if probe_binary.parent == build else str(probe_binary) +subprocess.run([ninja, '-C', str(build), '-f', probe_manifest.name, target], check=True) +output = build / 'cable-undo' +output.mkdir(exist_ok=True) +report = output / 'results.txt' +result = subprocess.run([str(probe_binary), str(fixture), str(report), str(output)], timeout=90) +if report.exists(): + print(report.read_text(encoding='utf-8', errors='replace')) +sys.exit(result.returncode) diff --git a/tests/qttest/tst_cabletypelist.cpp b/tests/qttest/tst_cabletypelist.cpp new file mode 100644 index 000000000..65f1cb2b1 --- /dev/null +++ b/tests/qttest/tst_cabletypelist.cpp @@ -0,0 +1,205 @@ +/* + Copyright 2006-2026 The QElectroTech Team + This file is part of QElectroTech. + + QElectroTech is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + QElectroTech is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with QElectroTech. If not, see . +*/ +#include "cablelist/cabletypelist.h" + +#include +#include +#include + +/** + The cable type catalogue is read back the way it was written, and the + three columns it really uses are the only ones a new file gets: + + - a catalogue carrying the material file's whole shape (ten columns, + two header lines) reads as ten columns, its machine header line is + not mistaken for a cable, and the type comes out of it : this is + the catalogue a user already has on disk; + - a file the program creates itself holds the two header lines and + the three columns, no more; + - a file written by hand with the label line alone still gives the + type, so dropping the machine header never costs a column; + - and a line of cables is never taken for the machine header, even + when it happens to be written in key shaped words. +*/ +class tst_cabletypelist : public QObject +{ + Q_OBJECT + + QTemporaryDir m_dir; + + QString write(const QString &name, const QString &content) + { + const QString path = m_dir.filePath(name); + QFile file(path); + if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + return {}; + } + file.write(content.toUtf8()); + file.close(); + return path; + } + + bool load(const QString &path, CableTypeListData *data) + { + QString error; + const bool ok = CableTypeList::load(path, data, &error); + if (!ok) { + qWarning("%s", qPrintable(error)); + } + return ok; + } + + private slots: + void tenColumnCatalogueReadsBack() + { + const QString path = write(QStringLiteral("ten.csv"), + QStringLiteral( + "Désignation;Nombre d'âmes;Couleurs des âmes;Section du câble;Couleur du fourreau;Fabricant;Numéro de commande;Fournisseur;Description textuelle;Notes\n" + "designation;cores;core_colors;section;color;manufacturer;manufacturer_reference;supplier;description;notes\n" + "H07V-K 3G1,5;3;wh|bn|bl;1.5;PVC;Nexans;X123;Rexel;courant fort;note\n" + "NYM-J 3G2,5;3;wh|bn|bl;2.5;PVC;;;;;\n")); + QVERIFY(!path.isEmpty()); + + CableTypeListData data; + QVERIFY2(load(path, &data), "the catalogue could not be read"); + + //The machine header line is not one of the cables... + QCOMPARE(data.records.size(), 2); + //... and every column it names is read under that name, even the + //ones this program never gave a meaning to. + QCOMPARE(data.columns, QStringList({ + QStringLiteral("designation"), QStringLiteral("cores"), + QStringLiteral("core_colors"), QStringLiteral("section"), + QStringLiteral("color"), QStringLiteral("manufacturer"), + QStringLiteral("manufacturer_reference"), + QStringLiteral("supplier"), QStringLiteral("description"), + QStringLiteral("notes")})); + + QCOMPARE(CableTypeList::designation(data.records.at(0)), + QStringLiteral("H07V-K 3G1,5")); + QCOMPARE(CableTypeList::coreCount(data.records.at(0)), 3); + QCOMPARE(CableTypeList::coreColors(data.records.at(0)), + QStringList({QStringLiteral("wh"), QStringLiteral("bn"), + QStringLiteral("bl")})); + //A column outside the three the program uses keeps its name and + //its data. + QCOMPARE(data.records.at(0).value(QStringLiteral("section")), + QStringLiteral("1.5")); + QCOMPARE(CableTypeList::designation(data.records.at(1)), + QStringLiteral("NYM-J 3G2,5")); + } + + void newFileHasThreeColumns() + { + const QString path = m_dir.filePath(QStringLiteral("new.csv")); + QVERIFY2(CableTypeList::createFile(path), "the file was not created"); + + CableTypeListData data; + QVERIFY(load(path, &data)); + QCOMPARE(data.columns, QStringList({ + QStringLiteral("designation"), QStringLiteral("cores"), + QStringLiteral("core_colors")})); + QVERIFY(data.records.isEmpty()); + //The label line reads the way the cable form names the type. + QCOMPARE(CableTypeList::translatedHeader(data.columns), QStringList({ + QStringLiteral("Designation"), + QStringLiteral("Number of cores"), + QStringLiteral("Core colors")})); + + CableTypeRecord record; + record.setValue(QStringLiteral("designation"), + QStringLiteral("H07V-K 3G1,5")); + record.setValue(QStringLiteral("cores"), QStringLiteral("3")); + record.setValue(QStringLiteral("core_colors"), + QStringLiteral("wh|bn|bl")); + QVERIFY2(CableTypeList::appendRecord(path, record), + "the record was not appended"); + + CableTypeListData read_back; + QVERIFY(load(path, &read_back)); + QCOMPARE(read_back.columns, data.columns); + QCOMPARE(read_back.records.size(), 1); + QCOMPARE(CableTypeList::designation(read_back.records.first()), + QStringLiteral("H07V-K 3G1,5")); + QCOMPARE(CableTypeList::coreCount(read_back.records.first()), 3); + QCOMPARE(CableTypeList::coreColors(read_back.records.first()), + QStringList({QStringLiteral("wh"), QStringLiteral("bn"), + QStringLiteral("bl")})); + } + + //The folder a cable type file goes into may not exist yet: a fresh + //profile has no documents folder, and a path typed into the settings + //may name one which was never created. The write makes the folder + //rather than failing with a message which says nothing about why. + void aMissingFolderIsCreated() + { + const QString path = m_dir.filePath( + QStringLiteral("not/there/yet/qet_cable_types.csv")); + QVERIFY(!QFile::exists(path)); + + QString error; + QVERIFY2(CableTypeList::createFile(path, &error), qPrintable(error)); + QVERIFY2(QFile::exists(path), "the file was not created"); + + CableTypeListData data; + QVERIFY2(load(path, &data), "the file just created could not be read"); + QVERIFY(data.records.isEmpty()); + } + + void labelLineAloneStillGivesTheType() + { + const QString path = write(QStringLiteral("hand.csv"), + QStringLiteral( + "Désignation;Nombre d'âmes;Couleurs des âmes\n" + "H07V-K 3G1,5;3;wh|bn|bl\n")); + QVERIFY(!path.isEmpty()); + + CableTypeListData data; + QVERIFY2(load(path, &data), "the hand written file could not be read"); + QCOMPARE(data.columns, QStringList({ + QStringLiteral("designation"), QStringLiteral("cores"), + QStringLiteral("core_colors")})); + QCOMPARE(data.records.size(), 1); + QCOMPARE(CableTypeList::designation(data.records.first()), + QStringLiteral("H07V-K 3G1,5")); + QCOMPARE(CableTypeList::coreCount(data.records.first()), 3); + } + + void aCableIsNeverMistakenForTheHeader() + { + //Three cells which all look like column keys, none of which means + //anything here : far more likely to be a cable than a header. + const QString path = write(QStringLiteral("unknown.csv"), + QStringLiteral( + "Désignation;Nombre d'âmes;Couleurs des âmes\n" + "ymj;;wh\n" + "H07V-K 3G1,5;3;wh|bn|bl\n")); + QVERIFY(!path.isEmpty()); + + CableTypeListData data; + QVERIFY2(load(path, &data), "the file could not be read"); + QCOMPARE(data.records.size(), 2); + QCOMPARE(CableTypeList::designation(data.records.first()), + QStringLiteral("ymj")); + QCOMPARE(CableTypeList::designation(data.records.last()), + QStringLiteral("H07V-K 3G1,5")); + } +}; + +QTEST_APPLESS_MAIN(tst_cabletypelist) +#include "tst_cabletypelist.moc" From 78ac5222c0296981c5ec769202c1be590b46f472 Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sun, 11 Oct 2026 05:04:50 +0200 Subject: [PATCH 08/12] Cable: use invalidateFilter() instead of begin/endFilterChange (Qt 6.8 compat) --- sources/cable/cablecreatedialog.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sources/cable/cablecreatedialog.cpp b/sources/cable/cablecreatedialog.cpp index 5b098ff68..dff345851 100644 --- a/sources/cable/cablecreatedialog.cpp +++ b/sources/cable/cablecreatedialog.cpp @@ -63,8 +63,7 @@ void CableFilterProxy::setTokens(const QStringList &tokens) { if (m_tokens == tokens) return; m_tokens = tokens; - beginFilterChange(); - endFilterChange(QSortFilterProxyModel::Direction::Rows); + invalidateFilter(); } /** @@ -78,8 +77,7 @@ void CableFilterProxy::setHideUnsuitable(bool hide) { if (m_hide_unsuitable == hide) return; m_hide_unsuitable = hide; - beginFilterChange(); - endFilterChange(QSortFilterProxyModel::Direction::Rows); + invalidateFilter(); } /** From 6f4171c9269550b1be374fa1261a29a47198c1df Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sun, 11 Oct 2026 05:40:03 +0200 Subject: [PATCH 09/12] Cable: use begin/endFilterChange() on Qt >= 6.9, invalidateFilter() on older Qt --- sources/cable/cablecreatedialog.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sources/cable/cablecreatedialog.cpp b/sources/cable/cablecreatedialog.cpp index dff345851..6ca0fc6d6 100644 --- a/sources/cable/cablecreatedialog.cpp +++ b/sources/cable/cablecreatedialog.cpp @@ -62,8 +62,14 @@ CableFilterProxy::CableFilterProxy(QObject *parent) : void CableFilterProxy::setTokens(const QStringList &tokens) { if (m_tokens == tokens) return; +#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0) + beginFilterChange(); + m_tokens = tokens; + endFilterChange(QSortFilterProxyModel::Direction::Rows); +#else m_tokens = tokens; invalidateFilter(); +#endif } /** @@ -76,8 +82,14 @@ void CableFilterProxy::setTokens(const QStringList &tokens) void CableFilterProxy::setHideUnsuitable(bool hide) { if (m_hide_unsuitable == hide) return; +#if QT_VERSION >= QT_VERSION_CHECK(6, 9, 0) + beginFilterChange(); + m_hide_unsuitable = hide; + endFilterChange(QSortFilterProxyModel::Direction::Rows); +#else m_hide_unsuitable = hide; invalidateFilter(); +#endif } /** From 9f5406bd8c4cdf940d6dfac0248a76674e292068 Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sun, 11 Oct 2026 13:31:30 +0200 Subject: [PATCH 10/12] Terminal strip: add a label filter to the free terminals table --- .../TerminalStrip/ui/freeterminaleditor.cpp | 35 +++++++++++++++---- sources/TerminalStrip/ui/freeterminaleditor.h | 2 ++ .../TerminalStrip/ui/freeterminaleditor.ui | 34 +++++++++++------- 3 files changed, 52 insertions(+), 19 deletions(-) diff --git a/sources/TerminalStrip/ui/freeterminaleditor.cpp b/sources/TerminalStrip/ui/freeterminaleditor.cpp index dc7412141..5044b202e 100644 --- a/sources/TerminalStrip/ui/freeterminaleditor.cpp +++ b/sources/TerminalStrip/ui/freeterminaleditor.cpp @@ -25,6 +25,8 @@ #include "../terminalstrip.h" #include "../UndoCommand/addterminaltostripcommand.h" +#include + /** * @brief FreeTerminalEditor::FreeTerminalEditor * @param project @@ -39,8 +41,23 @@ FreeTerminalEditor::FreeTerminalEditor(QETProject *project, QWidget *parent) : ui->m_table_view->setItemDelegate(new FreeTerminalModelDelegate(ui->m_table_view)); m_model = new FreeTerminalModel(m_project, this); - ui->m_table_view->setModel(m_model); - ui->m_table_view->setCurrentIndex(m_model->index(0,0)); + + //The view works on a filtered proxy of the model. The filter is a plain, + //case insensitive "contains" on the label, so typing Z1 shows Z1:1, Z1:2... + //Not dynamic : an edited label must not vanish from the table while it is typed. + m_proxy_model = new QSortFilterProxyModel(this); + m_proxy_model->setSourceModel(m_model); + m_proxy_model->setFilterKeyColumn(FreeTerminalModel::Label); + m_proxy_model->setFilterCaseSensitivity(Qt::CaseInsensitive); + m_proxy_model->setDynamicSortFilter(false); + ui->m_table_view->setModel(m_proxy_model); + ui->m_table_view->setCurrentIndex(m_proxy_model->index(0,0)); + + connect(ui->m_filter_le, &QLineEdit::textChanged, this, [this](const QString &text) + { + m_proxy_model->setFilterFixedString(text); + selectionChanged(); + }); //Selected rows can be dragged onto a strip of the terminal strip tree ui->m_table_view->setDragEnabled(true); ui->m_table_view->setDragDropMode(QAbstractItemView::DragOnly); @@ -55,8 +72,9 @@ FreeTerminalEditor::FreeTerminalEditor(QETProject *project, QWidget *parent) : connect(ui->m_table_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, &FreeTerminalEditor::selectionChanged); - connect(ui->m_table_view, &QAbstractItemView::doubleClicked, this, [this](const QModelIndex &index) + connect(ui->m_table_view, &QAbstractItemView::doubleClicked, this, [this](const QModelIndex &proxy_index) { + const auto index = m_proxy_model->mapToSource(proxy_index); if (m_model->columnTypeForIndex(index) == FreeTerminalModel::XRef) { auto mrtd = m_model->dataAtRow(index.row()); @@ -176,7 +194,7 @@ void FreeTerminalEditor::on_m_type_cb_activated(int index) for (auto model_index : index_list) { - auto type_index = m_model->index(model_index.row(), FreeTerminalModel::Type, model_index.parent()); + auto type_index = m_model->index(m_proxy_model->mapToSource(model_index).row(), FreeTerminalModel::Type); if (type_index.isValid()) { ElementData::TerminalType override_type; @@ -219,7 +237,7 @@ void FreeTerminalEditor::on_m_function_cb_activated(int index) for (auto model_index : index_list) { - auto function_index = m_model->index(model_index.row(), FreeTerminalModel::Function, model_index.parent()); + auto function_index = m_model->index(m_proxy_model->mapToSource(model_index).row(), FreeTerminalModel::Function); if (function_index.isValid()) { ElementData::TerminalFunction override_function; @@ -248,7 +266,7 @@ void FreeTerminalEditor::on_m_led_cb_activated(int index) for (auto model_index : index_list) { - auto led_index = m_model->index(model_index.row(), FreeTerminalModel::Led, model_index.parent()); + auto led_index = m_model->index(m_proxy_model->mapToSource(model_index).row(), FreeTerminalModel::Led); if (led_index.isValid()) { m_model->setData(led_index, @@ -262,7 +280,10 @@ void FreeTerminalEditor::on_m_led_cb_activated(int index) void FreeTerminalEditor::on_m_move_pb_clicked() { //Get the selected real terminal - const auto index_list = ui->m_table_view->selectionModel()->selectedIndexes(); + QModelIndexList index_list; + for (const auto &proxy_index : ui->m_table_view->selectionModel()->selectedIndexes()) { + index_list.append(m_proxy_model->mapToSource(proxy_index)); + } const auto real_t_vector = m_model->realTerminalForIndex(index_list); if (real_t_vector.isEmpty()) { return; diff --git a/sources/TerminalStrip/ui/freeterminaleditor.h b/sources/TerminalStrip/ui/freeterminaleditor.h index 2320a60ba..99c08d54e 100644 --- a/sources/TerminalStrip/ui/freeterminaleditor.h +++ b/sources/TerminalStrip/ui/freeterminaleditor.h @@ -24,6 +24,7 @@ class RealTerminal; class FreeTerminalModel; class QTableView; +class QSortFilterProxyModel; namespace Ui { class FreeTerminalEditor; @@ -57,5 +58,6 @@ class FreeTerminalEditor : public QWidget Ui::FreeTerminalEditor *ui; QPointer m_project; FreeTerminalModel *m_model {nullptr}; + QSortFilterProxyModel *m_proxy_model {nullptr}; }; #endif // FREETERMINALEDITOR_H diff --git a/sources/TerminalStrip/ui/freeterminaleditor.ui b/sources/TerminalStrip/ui/freeterminaleditor.ui index 2832bf1b5..f4292464a 100644 --- a/sources/TerminalStrip/ui/freeterminaleditor.ui +++ b/sources/TerminalStrip/ui/freeterminaleditor.ui @@ -14,14 +14,24 @@ Form - + + + + Filter by label (e.g. Z1) + + + true + + + + Move to : - + @@ -34,7 +44,7 @@ - + Qt::Vertical @@ -47,35 +57,35 @@ - + true - + Type : - + Function : - + LED : - + Apply displacement @@ -88,14 +98,14 @@ - + Qt::Horizontal - + @@ -149,7 +159,7 @@ - + @@ -168,7 +178,7 @@ - + From 1f70ddb666bdeaed58b5e67010dc20dc09644dda Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sun, 11 Oct 2026 13:40:29 +0200 Subject: [PATCH 11/12] Update TS files --- lang/qet_ar.ts | 4626 +++++++++++++++++++++++++++++++------------- lang/qet_ca.ts | 4491 +++++++++++++++++++++++++++++++------------ lang/qet_cs.ts | 4519 +++++++++++++++++++++++++++++++------------ lang/qet_da.ts | 4505 +++++++++++++++++++++++++++++++------------ lang/qet_de.ts | 4107 +++++++++++++++++++++++++++++----------- lang/qet_el.ts | 4503 +++++++++++++++++++++++++++++++------------ lang/qet_en.ts | 4439 +++++++++++++++++++++++++++++++------------ lang/qet_es.ts | 4515 +++++++++++++++++++++++++++++++------------ lang/qet_fi.ts | 4565 +++++++++++++++++++++++++++++++------------- lang/qet_fr.ts | 4417 ++++++++++++++++++++++++++++++------------ lang/qet_hr.ts | 4630 ++++++++++++++++++++++++++++++++------------- lang/qet_hu.ts | 4465 +++++++++++++++++++++++++++++++------------ lang/qet_it.ts | 4499 +++++++++++++++++++++++++++++++------------ lang/qet_ja.ts | 4493 +++++++++++++++++++++++++++++++------------ lang/qet_ko.ts | 4482 +++++++++++++++++++++++++++++++------------ lang/qet_mn.ts | 4491 +++++++++++++++++++++++++++++++------------ lang/qet_nb.ts | 4505 +++++++++++++++++++++++++++++++------------ lang/qet_nl.ts | 4499 +++++++++++++++++++++++++++++++------------ lang/qet_nl_BE.ts | 4475 +++++++++++++++++++++++++++++++------------ lang/qet_no.ts | 4565 +++++++++++++++++++++++++++++++------------- lang/qet_pl.ts | 4122 +++++++++++++++++++++++++++++----------- lang/qet_pt.ts | 4608 +++++++++++++++++++++++++++++++------------- lang/qet_pt_BR.ts | 4501 +++++++++++++++++++++++++++++++------------ lang/qet_ro.ts | 4608 +++++++++++++++++++++++++++++++------------- lang/qet_rs.ts | 4581 +++++++++++++++++++++++++++++++------------- lang/qet_ru.ts | 4521 +++++++++++++++++++++++++++++++------------ lang/qet_sk.ts | 4581 +++++++++++++++++++++++++++++++------------- lang/qet_sl.ts | 4597 +++++++++++++++++++++++++++++++------------- lang/qet_sr.ts | 4581 +++++++++++++++++++++++++++++++------------- lang/qet_sv.ts | 4497 +++++++++++++++++++++++++++++++------------ lang/qet_tr.ts | 4481 +++++++++++++++++++++++++++++++------------ lang/qet_uk.ts | 4519 +++++++++++++++++++++++++++++++------------ lang/qet_zh.ts | 4469 +++++++++++++++++++++++++++++++------------ 33 files changed, 106807 insertions(+), 41650 deletions(-) diff --git a/lang/qet_ar.ts b/lang/qet_ar.ts index 21c5762d4..6b855297f 100644 --- a/lang/qet_ar.ts +++ b/lang/qet_ar.ts @@ -403,7 +403,7 @@ Edit - + تحرير @@ -1190,6 +1190,27 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + + + + Delete + حذف + + BorderPropertiesWidget @@ -1219,7 +1240,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + تنسيق : @@ -1245,16 +1266,1107 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + مُخصّص Landscape - + مشهد أفقي Portrait + مشهد عمودي + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + نوع + + + + Cores + + + + + Plant + تركيب + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + حفظ باسم... + + + + CSV files (*.csv) + ملفات csv (*.csv) + + + + Error + خطأ + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + نوع + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + خطّ : + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + نص عريض + + + + Italic + نص مائل + + + + Bold italic + + + + + Style: + نمط : + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + اصطفاف : + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1301,13 +2413,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption تغيير خاصيات الموصل - + Edit the properties of several conductors undo caption تغيير خاصيات موصلات متعددة @@ -1363,7 +2475,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor color - + لون الموصل @@ -1964,7 +3076,7 @@ Continue? Diagram - + Change the depth تغيير العمق @@ -2101,6 +3213,27 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + + + + DiagramEventAddElement @@ -2112,7 +3245,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2120,7 +3253,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2243,224 +3376,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image صورة - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... تحديد صورة ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error خطأ - + Unable to load the image. إستحالة تحميل الصورة . - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2491,106 +3654,143 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + لون الموصل DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip في هذه المنطقة تحتفظون بمخططاتكم للإضافة إليها عناصر أخرى و لوضع موصلات بين أطرافها. كما يُمكنكم إضافة نصوص مستقلّة. - + Paste Here context menu action لصق هنا - + Multiple paste لصق متعدد - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + ترحيل الصفحة + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams بدون عنوان - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error خطأ - + The file could not be written. - + Choose the new color for this conductor إختيار اللون الجديد لهذا الموصل - + Edit conductor properties undo caption تغيير خاصيات موصل @@ -2835,7 +4035,7 @@ Hold Shift and drag to move this text on its own Edit - + تحرير @@ -3009,7 +4209,7 @@ Hold Shift and drag to move this text on its own px - + px بيكسل @@ -3191,7 +4391,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3699,8 +4899,8 @@ Continue? - - + + Type نوع @@ -3783,8 +4983,8 @@ Continue? - - + + Function وظيفة @@ -3816,7 +5016,7 @@ Continue? - + Simple مفردة @@ -3857,19 +5057,19 @@ Continue? - + Switch normally open عادة مفتوح - + Switch normally closed عادة مُغلق - + switch عاكس @@ -3885,25 +5085,25 @@ Continue? - + Power switch قدرة - + Switch-on delayed مُؤقت للتشغيل - + Switch-off delayed مُؤقت للتوقف - + Switch-on and off delayed @@ -3929,7 +5129,7 @@ Continue? - + Generic @@ -3948,164 +5148,189 @@ Continue? Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase طور - + Neutral محايد - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation تعليق - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None لا شيئ - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5094,7 +6319,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title تصدير @@ -5467,97 +6692,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : طراز : - + Function : وظيفة : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground أرضي - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase طور - + Neutral محايد - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5625,18 +6880,18 @@ that you create. Text and number inputs are د - + Highlight freshly integrated elements in the panel إبراز العناصر المُدمجة حديثا في اللوحة - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: ضمّن لكل عنصر معلومات حول مؤلفيه أو ترخيصه أو أي معلومات أخرى تراها مفيدة في حقل مجاني. يمكنك هنا تحديد القيمة الافتراضية لهذا الحقل للعناصر التي ستقوم بإنشائها: - + Applied to the next launch of QElectroTech يُطبّق عند الإطلاق التالي لـ QElectroTech @@ -5724,6 +6979,7 @@ that you create. Text and number inputs are + Browse... @@ -5897,8 +7153,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5909,179 +7168,247 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management إدارة العناصر - + Languages - + texts نصوص - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: خطّ : - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List @@ -6091,280 +7418,316 @@ that you create. Text and number inputs are السماح بالتصغير لما بعد الصفحة - + + Bold italic + + + + + Bold + نص عريض + + + + Italic + نص مائل + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + مُعطّل - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title عام - + System النظام - + Arabic العربية - + Brazilian البرازيلي - + Catalan الكتالونية - + Czech التشيكية - + German الألمانية - + Danish دنماركية - + Greek اليونانية - + English الإنجليزية - + Spanish الإسبانية - + French الفرنسية - + Croatian الكرواتية - + Italian الإيطالية - + Japanese - + Korean - + Polish البولندية - + Portuguese البرتغالية - + Romanian الرومانية - + Russian الروسية - + Slovenian السلوفينية - + Dutch هولندا - + Norwegian - + Belgium-Flemish بلجيكا- فلامون - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6373,50 +7736,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) ملفات csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6426,6 +7807,353 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + يسار + + + + Right + يمين + + + + Top + أعلى + + + + Bottom + أسفل + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + اسم + + + + Function + وظيفة + + + + Type + نوع + + + + Add terminal + + + + + Add gap + + + + + Delete + حذف + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6553,135 +8281,37 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - شكل + شكل - Display - عرض + عرض - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None لا شيئ - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - TextLabel - علامة نصيّة + علامة نصيّة - - Header - - - - - - Margin - - - - - Alignment : - - - - - Left - يسار + يسار - - Center - مركزي + مركزي - - Right - يمين + يمين - - - Font - - - - - Table - - - - Alignment: - اصطفاف : - - - - Content - + اصطفاف : @@ -6798,6 +8428,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6857,7 +8510,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + علامة @@ -7013,80 +8666,22 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - شكل + شكل - - X : - - - - - Advanced Editor - - - - - Size : - - - - Angle: - الزاوية : + الزاوية : - - - px - px بيكسل + px بيكسل - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - Text - نص + نص - @@ -7528,7 +9123,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + طباعة @@ -7550,7 +9145,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &إلغاء @@ -7923,6 +9518,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8026,63 +9629,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet صفحة - + Conductor موصل - + Sheet references ترحيل صفحات - + Cross-references مراجع مُتقاطعة - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - - Auto Numbering + + Cables - + + Auto Numbering + ترقيم آلي + + + New sheet configuration page title صفحة جديدة - + New project configuration page title مشروع جديد @@ -8212,133 +9820,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 عدد 1 - - - - + + + + number format 01 عدد 01 - - - - - + + + + + number format 001 عدد 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text نص - - - - + + + + Sheet no. رقم الصفحة - - - - + + + + Sheet صفحة - - - - + + + + number format 1 - Sheet رقم 1 - صفحة - - - - + + + + number format 01 - Sheet رقم 01- صفحة - - - - + + + + number format 001 - Sheet رقم 001 - صفحة - - - - + + + + Location Locmach - - - - + + + + Plant تركيب - - - + + + Element Line عنصر صف - - - + + + Element Column عنصر عمود - - - + + + Element Prefix عنصر بداية @@ -8425,7 +10033,7 @@ Do you still want to link this slave contact? Change a rectangle - + تعديل مُستطيل @@ -8439,12 +10047,12 @@ Do you still want to link this slave contact? PartText - + Move a text تحريك نص - + Edit the text field تعديل حقل نصّي @@ -8452,12 +10060,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8866,7 +10474,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title طباعة @@ -8877,104 +10485,109 @@ Its copy was kept as: Auto Numbering - + ترقيم آلي - + Management إدارة - - + + Conductors - + No. - + Name اسم - + Sheet صفحة - + Element العنصر - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - - Sheet Auto Numbering + + Cables - + + Sheet Auto Numbering + صفحة ترقيم آلي + + + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8986,7 +10599,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8998,49 +10611,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9052,21 +10665,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9079,7 +10692,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9091,7 +10704,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9103,13 +10716,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering حذف الترقيم - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9122,12 +10735,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9139,12 +10752,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9156,7 +10769,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9169,80 +10782,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) مشروع QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9263,19 +10876,12 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - شكل + شكل - - Request - - - - Reload - إعادة التحميل + إعادة التحميل @@ -9596,7 +11202,7 @@ Give them another numbering first. Page layout - + تخطيط الصفحة @@ -9772,127 +11378,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption تحميل ... تهيئة ذاكرة التخزين المؤقت لأصناف العناصر - + Loading... Sheets editor splash screen caption تحميل ... مُحرّر مُخطط - + Loading... Opening files splash screen caption تحميل ... فتح الملفات - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR RTL - + QET title blocks title of the title block templates collection provided by QElectroTech إطارات تعريف QET - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection إطارات تعريف المستعمل - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning مخطط - + Electric Normal example text - translate length, not meaning كهربائي - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title إعدادات برنامج QElectrotech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title خطأ - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9901,152 +11509,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption تحميل ... - + Loading... Systray icon splash screen caption تحميل ...ايقونة systray - + QElectroTech systray menu title QElectroTech - + &Quit &إنهاء - + &Hide &حجب - + &Show ا&سترجاع - + &Hide diagram editor &حجب كلّ محرري المخططات - + &Show diagram editors &استرجاع كل محرري المخطط - + &Hide element editor &احجب كلّ محرري العنصر - + &Show element editor &استرجع كلّ محرري العنصر - + &Hide title block template editor systray submenu entry &احجب كلّ محرري إطار التعريف - + &Show title block template editors systray submenu entry &استرجع كلّ محرري إطار التعريف - + &New diagram editor &محرر تخطييط جديد - + &New element editor &محرّر عنصر جديد - + Closes QElectroTech إغلاق تطبيق QElectrotech - + Reduces QElectroTech into the systray خفض QElectrotech في systray - + Restore QElectroTech إسترجاع QElectrotech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors محرري المخططات - + Element editors محرري العناصر - + Title block template editors systray menu entry محرري إطار التعريف - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: إستعمال : - + [options] [file]... [خيارات] [ rملف]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -10062,32 +11727,32 @@ Available options: - الترخيص ......................... عرض الترخيص - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR عرّف مجلد صنف العناصر - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR عرّف مجلد مجموعة نماذج إطارات التعريف - + --config-dir=DIR Define configuration directory --config-dir=DIR عرّف مجلد الإعدادات - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR عرّف المجلد المحتوي على ملفات اللغة @@ -10096,953 +11761,1047 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectrotech - + Undo dock title إلغاءات - + No modification لا تغيير - + Click an action to get back in the changes you made to your diagram Status tip انقر على فعل للرجوع إلى الخلف في تحرير مخططتكم - + &New &جديد - + &Open &فتح - - + + &Close &غلق - + &Save &حفظ - + Save as حفظ باسم - + &Export &تصدير - + Projects dock title مشاريع - + Collections مجموعات - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip هذه اللافتة تُعدّد مُختلف الاجراءات المتّخذة على الصفحة الحالية . الظغط على إجراء يسمح بالرجوع إلى حالة المُخطط مُباشرة قبل تنفيذه . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + محرري المخططات - + Print طباعة - + Export in pdf - + Export one or more sheets of the current project status bar tip - + &Quit إ&نهاء - + Undo إلغاء - + Redo إعادة - + Cu&t &قص - + &Copy &نسخ - + &Paste &لصق - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid عرض الشبكة - + Display or hide the grid of sheet عرض أو إخفاء شبكة الصفخات - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + مُعطّل - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show اعرض - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references مراجع مُتقاطعة - + See Display > Show - + Sheet properties خصائص الصفحة - + Add a sheet إضافة صفحة - - - + + + Delete this sheet حذف الصفحة - + Export to CSV - + Add a nomenclature - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + Creates a new project status bar tip إحداث مشروع جديد - + Opens an existing project status bar tip فتح مشروع قائم - + Closes the current project status bar tip غلق المشروع الحالي - + Saves the current project and all its sheets status bar tip حفظ المشروع الحالي بكلّ صفحاته - + Saves the current project with a different file name status bar tip حفظ المشروع الحالي باسم ملف آخر - + Add row Add row اضافة سطر - + Remove a row Remove row إزالة صف - + Add a column to the sheet status bar tip إضافة عمود للصفحة - + Remove a column from the sheet status bar tip نزع عمود من الصفحة - + Expands the sheet height status bar tip تكبير ارتفاع الصفحة - + Shrinks the sheet height status bar tip تقليص ارتفاع الصفحة - + Rotate the group - + Horizontal mirror - + Vertical mirror - + Group selected texts - - + + Group fr: Grouper - + مجموعة - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip نزع العناصر المُحدّدة في الصفحة - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All تحديد الكل - + Select none إلغاء تحديد الكل - + Invert selection اعكس التحديد - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + اضافة قوس دائري - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Depth toolbar title العمق - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth العمق - - + + Scripts - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11055,7 +12814,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11068,24 +12827,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11100,23 +12859,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group مجموعة - + %n items aligned @@ -11128,32 +12887,32 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11165,7 +12924,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11177,7 +12936,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11189,18 +12948,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11209,28 +12968,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11242,12 +13001,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11261,53 +13020,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11319,501 +13078,501 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Delete حذف - + Rotate دوران محوري - + Choose texts orientation توجيه النصوص - + Find in the panel إيجاد في اللوحة - + Reset conductors إعادة تهيئة الموصلات - + Add a textfield إضافة حقل نصي - + Add a column إضافة عمود - + Add a picture إضافة صورة - + Remove a column إزالة عمود - + Project properties خصائص المشروع - + Clean project تنظيف المشروع - + Add a summary إضافة مُلخص - + Zoom In تكبير - + Zoom Out تصغير - + Zoom content تكبير المحتوى - + Fit in view تهيئة تكبير/تصغير - + Reset zoom بدون تكبير/تصغير - + using tabs باستعمال الزوايا الطرفية - + using windows باستعمال النوافذ - + Select أسلوب التحديد - + Move أسلوب العرض - + &Tile &فسيفساء - + &Cascade &تتالي - + Next project المشروع التالي - + Previous project المشروع السابق - + Selects all elements on the sheet status bar tip تحديد كلّ عناصر الصفحة - + Deselect all elements on the sheet status bar tip إلغاء تحديد كلّ عناصر الصفحة - + Expand the sheet status bar tip تكبير الصفحة - + Shrinks the sheet status bar tip تقليص الصفحة - + Adjusts the zoom to display all the contents of sheet regardless of context مُوائمة التكبير لعرض كلّ مُحتوى الصفحة بغضّ النظر عن الاطار - + Adjusts the zoom on exactly the part of the sheet status bar tip موائمة التكبير بالظبط على إطار الصفحة - + Add a rectangle اضافة مستطيل - + Add an ellipse اضافة اهليج - + Add a polygon إضافة مُتعدد أضلع - + Find the selected item in the panel status bar tip إيجاد العنصر المُحدّد في اللوحة - + Exports the current sheet to another format status bar tip تصدير الصفحة الحالية في شكل آخر - + Prints one or more sheet of the current project status bar tip طباعة صفحة أو صفحات من المشروع الحالي - + Pastes elements from the clipboard into the sheet status bar tip وضع العناصر المخزنة بالحافظة على الصفحة - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip تحرير خاصيات الصفحة (مقاسات, معلومات إطار التعريف, خاصيات المُوصلات ...) - + Allows to view the sheet without modifying it status bar tip يسمح بعرض الصفحة دون القدرة على تغييرها - - + + Project %1 registered in the directory: %2. مشروع %1 محفوظ في الدليل: %2. - - + + Unable to open file message box title إستحالة فتح الملف - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. يبدو أنّ الملف %1 الذي تُحاول فتحه غير موجود . - + Opening the file read-only message box title فتح المشروع للقراءة فقط - + Edit the selected item تحرير العنصر المُحدّد - + Closes QElectroTech status bar tip غلق تطبيق QElectrotech - + Undoes the previous action status bar tip إلغاء الفعل السابق - + Restores the undone action status bar tip استرجاع الفعل الملغى - + Puts selected elements into the clipboard status bar tip نقل العناصر المحددة داخل الحافظة - + Copies selected elements status bar tip نسخ التحديد ووضعه في الحافظة - + Inverts selection of elements status bar tip الغاء تحديد العناصر المحددة و تحديد العناصر الغير محددة - + Rotate selected elements and texts status bar tip تدوير العناصر والنصوص المُحدّدة - + Rotate selected texts to a specific angle status bar tip تدوير النصوص المُحدّدة بزاوية مُعيّنة - + Reset the conductors path ignoring the user changes status bar tip إعادة حساب مسارات الأسلاك الموصلة دون الأخذ في الإعتبار التغييرات - + Automatic creation conductor (s) Tool tip of auto conductor إحداث آلي لموصلات - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor استخدم الاحداث الآلي للموصلات كلّما كان ذلك مُمكنا - + Restores default zoom level status bar tip استرجاع تكبير / تصغير الإفتراضي - + Add line Draw line اضافة سطر - + Shows the various opened projects in windows status bar tip يُقدّم مختلف المشاريع المفتوحة في النوافذ الثانوية - + Shows the various opened projects in tabs status bar tip تقديم مختلف المشاريع المفتوحة في علامات - + Allows to select elements status bar tip يسمح بتحديد العناصر - + Arranges windows in a tile pattern status bar tip يُنظم النوافذ على هيئة فسيفساء - + Arranges windows in a cascade pattern status bar tip يُنظم النوافذ على التتالي - + Activates the next project status bar tip تفعيل المشروع التالي - + Activates the previous project status bar tip تفعيل المشروع السابق - + &File &ملف - + &Edit &تحرير - + &Project &مشروع - + Displ&ay عر&ض - + Wi&ndows نوا&فذ - + &Latest files &مفتوح حديثا - + Display or hide the main toolbar عرض أو لا لشريط الأدوات الرئيسي - + Display or hide the Display toolbar عرض أو لا لشريط أدوات العرض - + Display or hide the Diagram toolbar عرض أو لا شريط أدوات المخطط - + Show or hide the elements panel عرض أو لا للوحة الأجهزة - + Display or hide the undo list عرض أو لا لقائمة التحويرات - + Display projects عرض المشاريع - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) مشاريع QElectroTech (*.qet);ملفات XML (*.xml);;كلّ الملفات (*) - + An error occurred while opening file %1. message box content - + Activates the project « %1 » تنشيط المشروع « %1 » + - Tools أدوات + - Display عرض + - Diagram مخطط + - Add إضافة - + Open a file فتح ملف - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. يبدو أنّ الملف التي تُحاول فتحه لا يُمكن الوصول إليه للقراءة وبالتالي يستحيل فتحه. الرجاء التثبت من تراخيص الملف. - + The project you try to open does not seem writable. It will be opened read-only. يبدو أنّ المشروع التي تحاول فتحه, غير قابل للوصول إليه للكتابة. وبالتالي لايُمكن فتحه إلا للقراءة فقط. - - + + Unable to open project message box title فشل فتح المشروع - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content يبدو أنّ الملف %1 ليس بملف مشروع QElectrotech. ;وبالتالي لا يمكن فتحه. - + %n items put back on the grid @@ -11825,12 +13584,12 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + The selection is already on the grid - + (%n locked objects left in place) @@ -11842,68 +13601,68 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + Edit the element edit element تحرير العنصر - + Edit the text field edit text field تحرير الحقل النصّي - + Edit the image edit image تحرير الصورة - + Edit conductor edit conductor تحرير الموصل - + Edit the selected object edit selected item تحرير الكائن المُحدّد - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title خطأ @@ -12544,7 +14303,7 @@ please wait while importing... Element editors - + محرري العناصر @@ -12906,52 +14665,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path مشروع « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name مشروع %1 - + Untitled project displayed title for a project-less, file-less project مشروع بدون عنوان - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [قراءة فقط] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [مُتغيّر] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12959,56 +14718,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message حدث خطأ أثناء الإدماج. - + Warning message box title تنبيه - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>جاري فتح المشروع ...</b><br/>إنشاء الصفحات</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>جاري فتح المشروع ...</b><br/>وضع المرجعيات المتقاطعة</p> @@ -13034,178 +14793,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title حفظ النموذج الحالي؟ - + Do you wish to save the template %1? dialog content - %1 is a title block template name هل تريد حفظ النموذج %1 ؟ - + new_template template name suggestion when duplicating the default one نموذج_جديد - + Duplicate a title block template input dialog title تكرار نموذج اطار التعريف - + In order to duplicate this template, please enter a name for its copy input dialog text لتكرار هذا النموذج, ادخل الاسم لمطلوب لنسخته - + &New menu entry &جديد - + &Open menu entry &فتح - + Open from a file menu entry فتح من ملف - + &Save menu entry &حفظ - + Save as menu entry حفظ باسم - + Save to a file menu entry حفظ إلى ملف - + &Quit menu entry &انهاء - + Manage logos menu entry إدارة الشعارات - + Zoom In menu entry تكبير - + Zoom out menu entry تصغير - + Fit in view menu entry تهيئة تكبير / تصغير - + Reset zoom menu entry بدون تكبير - + Save as dialog title حفظ باسم - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension نماذج اطارات تعريف QElectrotech (*%1) - + &Merge cells menu entry &ادماج الخلايا - + Cu&t menu entry &قص - + &Copy menu entry &نسخ - + &Paste menu entry &لصق - + Edit extra information menu entry تحرير المعلومات الإضافية - + Add a &row menu entry إضافة &صفّ - + Add a &column menu entry إضافة &عمود - + &Split cells menu entry &فصل الخلايا - - - - - - - - - - @@ -13215,144 +14964,154 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + محرري إطار التعريف - + &File menu title &عرض - + &Edit menu title &تحرير - + Displ&ay menu title عر&ض - + Tools toolbar title أدوات - + Edit toolbar title تحرير - + Display toolbar title عرض - + No modification label displayed in the undo list when empty لا تغيير - + Undo dock title الغاءات - + Cell properties dock title خصائص الخليّة - + [Changed] window title tag [مُعدّل] - + [Read only] window title tag [للقراءة فقط] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectrotech -محرر نموذج اطار التعريف - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title خطأ - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title فتح نموذج - + Open a file dialog title فتح ملف - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension نماذج اطارات تعريف QElectrotech (*%1);;ملفات XML (*.xml);;كلّ الملفات (*) - + Save template as dialog window title حفظ النموذج باسم - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title تحرير المعلومات الإضافية - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. يُمكنكم إستعمال هذا الحقل الحر لذكر مؤلفي إطار التعريف , ترخيصه, أو أيّ معلومة أخرى ترونها مفيدة. @@ -13375,7 +15134,7 @@ What do you wish to do ? QObject - + Warning: the element has been saved with a more recent version of QElectroTech. : تحذير حّفظ العنصر بإصدار لاحق من QElectrotech. @@ -13396,7 +15155,7 @@ What do you wish to do ? - + delete %1 undo caption - %1 is a sentence listing the removed content حذف %1 @@ -13959,7 +15718,7 @@ What do you wish to do ? - + Title العنوان @@ -13975,18 +15734,18 @@ What do you wish to do ? خصائص المشروع - + Select an image ... تحديد صورة ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) ملفات صور (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13995,7 +15754,7 @@ What do you wish to do ? خطأ - + Unable to load the image. إستحالة تحميل الصورة . @@ -14036,8 +15795,8 @@ What do you wish to do ? نهاية توصيل - + Text نص @@ -14053,7 +15812,7 @@ What do you wish to do ? - + Edit the cross reference edite the cross reference تحرير المراجع المتقاطعة @@ -14142,12 +15901,12 @@ the translated name of this folder could not be read, so its folder name is disp مجموعة - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14223,8 +15982,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14399,45 +16158,45 @@ Do you want to replace it ? - + - + Type نوع - + - + Address - - - - + + + + Annotation تعليق - - - - + + + + Cross-reference - - - - + + + + Function وظيفة @@ -14747,35 +16506,45 @@ Do you want to replace it ? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin حدث خطأ أثناء تشغيل المكون الإضافي qet_tb_generator - + Add a nomenclature - + Add a summary إضافة مُلخص + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14787,83 +16556,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type أرضي - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function طور - + Neutral neutral terminal element function محايد - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14873,10 +16672,10 @@ Do you want to replace it ? - + + - - + @@ -14933,7 +16732,7 @@ Do you want to replace it ? - + Default layout @@ -15159,8 +16958,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15345,88 +17144,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 إضافة %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form تعديل سطر الشكل - + Edit filling a form تعديل تعبئة الشكل - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text تعديل نصّ العنصر - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15486,7 +17285,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet صفحة @@ -15535,24 +17334,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15611,12 +17410,12 @@ nothing has been changed. QetShapeItem - + an shape شكل - + a line سطر @@ -15887,78 +17686,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 تعديل %1 - + rectangle مستطيل - + an ellipse اهليج - + an arc - + polyline مُتعدد أضلع - + a curve @@ -16007,6 +17806,14 @@ nothing has been changed. تعديل مُستطيل + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -16045,6 +17852,21 @@ nothing has been changed. العنصر « %1 » موجود سابقا . ما المطلوب فعله ؟ + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + + + + RenumberElementsDialog @@ -16237,7 +18059,7 @@ nothing has been changed. Voltage / Protocol : - + جهد / بروتوكول: @@ -16330,7 +18152,7 @@ nothing has been changed. Edit - + تحرير @@ -16614,7 +18436,7 @@ Create your own text using the following variables: &Delete - + &حذف @@ -17065,28 +18887,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window صفحة ترقيم آلي - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17103,13 +18935,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window ترقيم آلي للموصل - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17131,13 +18963,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17159,12 +19019,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -20074,22 +21934,22 @@ The other fields are not used. TerminalStripEditor - + Properties خاصيات - + Name: - + Comment : - + Plant: تركيب : @@ -20135,7 +21995,7 @@ The other fields are not used. - + Generic @@ -20160,72 +22020,117 @@ The other fields are not used. أرضي - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : - + Phase طور - + Neutral محايد - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Location : - + Description - + Function : وظيفة : - + Independent terminals - + Modify terminal strip properties @@ -20294,12 +22199,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20364,12 +22269,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20432,55 +22377,60 @@ The other fields are not used. TerminalStripModel - + Position موضع - + Stage - + Label علامة - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type نوع - + Function وظيفة - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21612,7 +23562,7 @@ The following variables can be used: CSV files (*.csv) - + ملفات csv (*.csv) @@ -21796,32 +23746,42 @@ The following variables can be used: عرض بالصليب - + Label cross reference علامة المراجع المتقاطعة - + Master قائد - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave مُنقاد - + (%f-%l%c) %f-%l%c - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21838,115 +23798,141 @@ The following variables can be used: %LM لم: الموقع - + Option display cross خيارالعرضبالصليب - + Show the power contacts in the cross عرض ملامسات القدرة في الصليب - + Prefix of power contacts : بادئة مُلامسات القدرة : - + Prefix delayed contacts : بادئة المُلامسات المُؤقتة : - + Prefix changeover contacts : بادئة المُلامسات العاكسة : - + Coil ملف - + Organ of protection عضو حماية - + Switch / button مُبدّل / زر - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer في أسفل الصفحة - + Under the label of the element تحت تسمية العنصر - + Top - + أعلى - + Bottom - + أسفل - + Left - + يسار - + Right - + يمين - + Text alignment - + Text field + + + Text: + نص : + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_ca.ts b/lang/qet_ca.ts index 10fa0d312..edf4e3c3c 100644 --- a/lang/qet_ca.ts +++ b/lang/qet_ca.ts @@ -1158,6 +1158,23 @@ Nota: Aquestes opcions NO permeten ni bloquegen les numeracions automàtiques, n + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Suprimeix + + BorderPropertiesWidget @@ -1187,7 +1204,7 @@ Nota: Aquestes opcions NO permeten ni bloquegen les numeracions automàtiques, n Format: - + Format : @@ -1213,16 +1230,1067 @@ Nota: Aquestes opcions NO permeten ni bloquegen les numeracions automàtiques, n Custom - + Personalitzades Landscape - + Apaïsat Portrait + Retrat + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Cable + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Instal·lació (=) + + + + Location (+) + Localització (+) + + + + Type + Tipus + + + + Cores + + + + + Plant + Instal·lació + + + + Location + Localització + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Incloure les capçaleres + + + + Preview + + + + + cable_list_ + + + + + Save As... + Desa com a... + + + + CSV files (*.csv) + + + + + Error + Error + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Longitud + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Sí + + + + No + Les noms saisis à la main sont laissés tels quels. + No + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Sí + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + No + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Cable + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Cable + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Tipus + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Instal·lació (=) + + + + Location (+) + Localització (+) + + + + Length + Longitud + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Tipus de lletra : + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + Text en negreta + + + + Italic + Text en itàlica + + + + Bold italic + + + + + Style: + Estil : + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Alineació : + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Vista prèvia : + + + + Reset + Restablir + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1269,13 +2337,13 @@ Nota: Aquestes opcions NO permeten ni bloquegen les numeracions automàtiques, n Conductor - + Edit conductor properties undo caption Edita les propietats d'un conductor - + Edit the properties of several conductors undo caption Edita les propietats de diversos conductors @@ -1331,7 +2399,7 @@ Nota: Aquestes opcions NO permeten ni bloquegen les numeracions automàtiques, n Conductor color - + Color del conductor @@ -1917,7 +2985,7 @@ Continue? Diagram - + Change the depth Canvia la profunditat @@ -2054,6 +3122,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2065,7 +3150,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. Clic: estableix la mida original. Clic i arrossega: posiciona i canvia la mida. Clic amb el botó dret: gira 90°. Ctrl + roda del ratolí: ajusta la mida. @@ -2073,7 +3158,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2196,224 +3281,254 @@ Continue? DiagramImageItem - + resize canvia la mida - + rotate/skew gira/inclinació - + + crop + + + + Click: mode %1 Clic: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Arrossega una cantonada o una vora: canvia la mida (Ctrl = des del centre, Maj = manté les proporcions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Arrossega una cantonada: gira (Maj = increments de 15°); arrossega una aresta: inclina (Maj = increments de 15°); punt vermell: mou el centre de rotació - + -- %1: mode %2 -- %1 : mode %2 - + Click Fer clic - + Drag: resize (Shift = keep proportions, Ctrl = from center) Arrossega: canvia la mida (Maj = manté la proporció, Ctrl = des del centre) - + Drag: rotate (Shift = 15° steps) Arrossega: gira (Maj = increments de 15°) - + Drag: skew (Shift = 15° steps) Arrossega: inclina (Maj = increments de 15°) - + Drag: move the rotation center Arrossega: mou el centre de rotació - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center Mou el centre de rotació d'una imatge - + Edit an image Edita una imatge - + Restore an image's proportions Restaura les proporcions d'una imatge - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) Imatge SVG (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image una imatge - + Replace the image... Substitueix la imatge... - + Transparent color... Color transparent... - + + Crop on the folio + + + + Crop... Retalla... - + + Reset crop + + + + Horizontal mirror Mirall horitzontal - + Vertical mirror Mirall vertical - + Restore proportions Restaura les proporcions - + + Properties... + + + + Select an image ... Selecciona una imatge ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Fitxers d'imatge (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Error - + Unable to load the image. No es pot carregar la imatge. - + Replace an image Substitueix una imatge - + Horizontal mirror of an image Mirall horitzontal d'una imatge - + Vertical mirror of an image Mirall veritcal d'una imatge - + Set a transparent color Estableix un color transparent - + Crop an image Retalla una imatge @@ -2445,108 +3560,141 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Color del conductor DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip "Què és això?" Aquesta és l'àrea on dissenyeu els esquemes afegint elements i col·locant conductors entre els seus borns. També és possible afegir text independent. - + Paste Here context menu action Enganxa aquí - + Multiple paste Enganxament múltiple - + Create a template context menu action Crea una plantilla - + Make a cabinet thumbnail context menu action - + Sheet reference + Informe del full + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Connecteu els borns seleccionats - + Untitled what to display for untitled diagrams Sense títol - + + Remove this core from the line + + + + Registered template Plantilla desada - + The template has been successfully saved as : %1 La plantilla s'ha desat correctament com a: %1 - + Error Error - + The file could not be written. No s'ha pogut escriure el fitxer. - + Choose the new color for this conductor Tria un nou color per a aquest conductor - + Edit conductor properties undo caption Edita les propietats d'un conductor @@ -2965,7 +4113,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3147,7 +4295,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Numera automàticament un element @@ -3643,8 +4791,8 @@ Continue? - - + + Type Tipus @@ -3727,8 +4875,8 @@ Continue? - - + + Function Funció @@ -3760,7 +4908,7 @@ Continue? - + Simple Unifilar @@ -3801,19 +4949,19 @@ Continue? - + Switch normally open Normalment obert - + Switch normally closed Normalment tancat - + switch Inversor @@ -3829,25 +4977,25 @@ Continue? - + Power switch Potència - + Switch-on delayed Temporitzador a la connexió - + Switch-off delayed Temporitzador a la desconnexió - + Switch-on and off delayed Temporitzador a la connexió i a la desconnexió @@ -3873,7 +5021,7 @@ Continue? - + Generic Genèric @@ -3892,164 +5040,189 @@ Continue? Diode Díode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutre - - - - - + + + + + T%1 T%1 - + Other fr: Autre Altres - + PLC Configuration Configuració del PLC - + + + - + - - - - + + Address Adreça - - + + Annotation Comentari - + Cross-reference Referència creuada - - + + Nb. Nombre. - + T1 T1 - + Header font Tipus de lletra de la capçalera - + Set the font for column headers Configura la font de la capçalera de la columna - + Text font Tipus de lletra - + Set the text font in the cells Configura el tipus de lletra del text a les cel·les - + Show headers on the sheet Mostra les capçaleres al full - + Show or hide the column headings of the PLC table on the sheet Mostra o amaga les capçaleres de columna de la taula PLC al full - + Jump to %1 after: Omet %1 després de: - + None Cap - + Line H: Línia H: - - + + mm mm - + Ref. Ref. - + Custom column name (blank = default) Nom de columna personalitzat (buit = per defecte) - + Visible Visible - + Paste from the clipboard Enganxa des del porta-retalls - - + + Heading font size: %1 %2pt Tipus de lletra de la capçalera: %1 %2 pt - - + + Font size: %1 %2pt Tipus de lletra: %1 %2 pt - + Column header formatting Tipus de lletra de la capçalera de la columna - + Cell text font Tipus de lletra del text de la cel·la @@ -5054,7 +6227,7 @@ En importar aquest fitxer, confirmeu que: ExportConfigPage - + Export configuration page title Exporta @@ -5441,97 +6614,127 @@ Les entrades de text i nombres també + Filter by label (e.g. Z1) + + + + Move to : Mou a : - + Type : Tipus: - + Function : Funció: - + LED : LED : - + Apply displacement Aplica el desplaçament - - + + Generic Genèric - + Fuse Fusible - + Sectionable Seccionable - + Diod Díode - + Ground Terra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutre - + Without Sense - + With Amb - + Modify terminal strip properties Edita les propietats del bloc de borns - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5587,7 +6790,7 @@ Les entrades de text i nombres també Utilitza els gestos del ratolí tàctil - + Highlight freshly integrated elements in the panel Ressalta els elements recentment integrats al panell @@ -5681,6 +6884,7 @@ Les entrades de text i nombres també + Browse... Navega... @@ -5854,8 +7058,11 @@ Les entrades de text i nombres també + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5866,190 +7073,258 @@ Les entrades de text i nombres també + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management Gestió dels elements - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Cada element conté informació sobre els seus autors, la llicència i qualsevol altra informació que considereu útil en un camp lliure. Podeu especificar el valor per defecte d'aquest camp per als elements que creeu aquí: - + Languages Llengües - + Applied to the next launch of QElectroTech S'aplicarà al proper llançament de QElectroTech - + texts Textos - + Here you can define the default appearance of the different texts of QElectroTech Aquí podeu definir l'aspecte per defecte dels diferents textos de QElectroTech - + Elements texts Textos d'elements - - - + + + Font: Tipus de lletra : - - + + ° ° - + Length : Longitud : - - + + Rotation : Rotació : - + Independent texts Textos independents - + Other texts Altres textos - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard Graella i teclat - + Grid: 1 - 30 Graella de l'editor d'esquemes - + DiagramEditor yGrid Distància entre punts en vertical : 1-30 - + The Grid must be active to see the changes. La quadrícula ha d'estar activa per veure els canvis. - + DiagramEditor xGrid Distància entre punts en horitzontal : 1-30 - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Desplaçament per la graella de l'editor d'esquemes utilitzant el teclat - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Distància desplaçada amb les tecles esquerra i dreta en horitzontal : 1-30 - + DiagramEditor (key: up / down) yGrid Distància desplaçada amb les tecles amunt i avall en vertical : 1-30 - + Keyboard movement with the ALT key: 1 - 9 Desplaçament per la graella de l'editor d'esquemes utilitzant el teclat amb la tecla ALT - + DiagramEditor (key: left / right) xGrid Distància desplaçada amb les tecles esquerra i dreta en horitzontal : 1-9 - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Distància desplaçada amb les tecles amunt i avall en vertical : 1-9 - + View grid Vista de quadrícula - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Mida del punt de la quadrícula de l'editor de diagrames: 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Mida del punt de la quadrícula de l'editor d'elements: 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Màxim de peces a la llista de l'editor d'elements @@ -6064,280 +7339,316 @@ Podeu especificar el valor per defecte d'aquest camp per als elements que c Permet allunyar més enllà de la mida del full - + + Bold italic + + + + + Bold + Text en negreta + + + + Italic + Text en itàlica + + + + Normal + Normal + + + Rounding up for 0.5 and more Arrodoneix cap amunt per 0,5 o més - + Always top rounding Sempre arrodonit cap amunt - + Always rounded down Sempre arrodonit cap avall - + Rounding up for 0.75 and more Arrodoneix cap amunt per 0,75 o més - + No rounding Sense arrodoniment - + Disabled fr: Désactivée - + Inhabilitat - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title General - + System Sistema - + Arabic Àrab - + Brazilian Brasiler - + Catalan Català - + Czech Txec - + German Alemany - + Danish Danès - + Greek Grec - + English Anglès - + Spanish Castellà - + French Francès - + Croatian Croat - + Italian Italià - + Japanese Japonès - + Korean Coreà - + Polish Polonès - + Portuguese Portuguès - + Romanian Romanès - + Russian Rus - + Slovenian Eslovè - + Dutch Països Baixos - + Norwegian Noruec - + Belgium-Flemish Bèlgica-Flamenc - + Turkish Turc - + Hungarian Hongarès - + Mongolian Mongol - + Ukrainian Ucraïnès - + Chinese Xinès - + Swedish Suec - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection Ruta de la col·lecció compartida - + Company collection path Ruta de la col·lecció d'empresa - + User Collection Path Ruta de la col·lecció d'usuari - + Company title-blocks Ruta dels caixetins d'empresa - + User Title blocks Path Ruta dels caixetins d'usuaris - + User macro path Camí de la macro d'usuari - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6346,50 +7657,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Fitxers csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Valors massa alts poden provocar bloquejos de l'aplicació. - + Experimental feature Funcionalitat experimental - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6404,6 +7733,345 @@ Qualsevol configuració que no sigui «Sense arrodoniment» pot provocar errors 3 - L'edició del projecte en un altre ordinador i/o pantalla que no tingui la mateixa configuració per als punts 1 i 2. + + GenericDevice + + + Left + Esquerra + + + + Right + Dreta + + + + Top + Superior + + + + Bottom + Inferior + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Borns + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Borns + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Nom + + + + Function + Funció + + + + Type + Tipus + + + + Add terminal + + + + + Add gap + + + + + Delete + Suprimeix + + + + Up + Superior + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Genèric + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6533,135 +8201,105 @@ Qualsevol configuració que no sigui «Sense arrodoniment» pot provocar errors GraphicsTablePropertiesEditor - Table properties - Formulari + Formulari - Display - Visualització + Visualització - Table name - Nom de la taula + Nom de la taula - Geometry and lines - Geometria i línies + Geometria i línies - All - Totes + Totes - Next table - Taula següent + Taula següent - None Cap - Fit table to sheet - Ajusta la taula al full + Ajusta la taula al full - Y : - Y : + Y : - X : - X : + X : - Previous table - Taula anterior + Taula anterior - Apply geometry to all tables linked to this one - Aplica la geometria a totes les taules enllaçades a aquesta + Aplica la geometria a totes les taules enllaçades a aquesta - Previous table : - Taula anterior : + Taula anterior : - Lines to display : - Línies a mostrar : + Línies a mostrar : - TextLabel - Etiqueta de text + Etiqueta de text - Header - Al capdavant + Al capdavant - - Margin - Marge + Marge - Alignment : - Alineació : + Alineació : - - Left - Esquerra + Esquerra - - Center - Centrat + Centrat - - Right - Dreta + Dreta - - Font - Font + Font - Table - Taula + Taula - Alignment: - Alineació : + Alineació : - Content - Contingut + Contingut @@ -6779,6 +8417,29 @@ Falten %1 línies per mostrar tota la informació Torna a la imatge completa, sense retallar-la + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6838,7 +8499,7 @@ Falten %1 línies per mostrar tota la informació Label - + Etiqueta @@ -6994,81 +8655,52 @@ Falten %1 línies per mostrar tota la informació IndiTextPropertiesWidget - Form - Formulari + Formulari - X : - X : + X : - Advanced Editor - Editor avançat + Editor avançat - Size : - Mida : + Mida : - Angle: - Angle : + Angle : - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - El contingut del text, la mida i la font no es poden editar, ja que estan formatats en HTML. + El contingut del text, la mida i la font no es poden editar, ja que estan formatats en HTML. Si us plau, feu servir l'editor avançat per a això. - Click here to cancel html formatting - Feu clic aquí per cancel·lar el format HTML + Feu clic aquí per cancel·lar el format HTML - Text - Text + Text - @@ -7510,7 +9142,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Imprimeix @@ -7528,7 +9160,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Cancel·lar @@ -7897,6 +9529,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8000,63 +9640,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Full - + Conductor Conductor - + Sheet references Informe del full - + Cross-references Referències creuades - + Guides Guies - + Set the default automatic numbering rules for new projects: - + Conductors Conductors - + Elements Elements - + Sheets Fulls - + + Cables + + + + Auto Numbering Numeració automàtica - + New sheet configuration page title Nou full - + New project configuration page title Nou projecte @@ -8187,133 +9832,133 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 Digit 1 - - - - + + + + number format 01 Digit 01 - - - - - + + + + + number format 001 Digit 001 - - - - - + + + + + Cyclic (modulo) Cíclic (mòdul) - - - - - + + + + + Alphabetical Alfabètic - - - - - + + + + + Text Text - - - - + + + + Sheet no. Num. full - - - - + + + + Sheet Full - - - - + + + + number format 1 - Sheet Digit 1 - Full - - - - + + + + number format 01 - Sheet Digit 01 - Full - - - - + + + + number format 001 - Sheet Digit 001 - Full - - - - + + + + Location Localització - - - - + + + + Plant Instal·lació - - - + + + Element Line Element Linía - - - + + + Element Column Element Columna - - - + + + Element Prefix Element Prefix @@ -8400,7 +10045,7 @@ Do you still want to link this slave contact? Change a rectangle - + Modifica un rectangle @@ -8414,12 +10059,12 @@ Do you still want to link this slave contact? PartText - + Move a text Mou un text - + Edit the text field Edita un camp de text @@ -8427,12 +10072,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8835,7 +10480,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Impressió @@ -8849,101 +10494,106 @@ Its copy was kept as: Numeració automàtica - + Management Administració - - + + Conductors Conductors - + No. - + Name Nom - + Sheet Full - + Element Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Elements - - + + Sheets Fulls - + + Cables + + + + Sheet Auto Numbering Numeració automàtica de fulls - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8951,7 +10601,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8959,49 +10609,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9009,21 +10659,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9032,7 +10682,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9040,7 +10690,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9048,13 +10698,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Suprimeix la numeració - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9063,12 +10713,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9076,12 +10726,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9089,7 +10739,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9098,80 +10748,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Projecte QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9192,19 +10842,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Formulari + Formulari - Request - Sol·licitud + Sol·licitud - Reload - Recarregar + Recarregar @@ -9701,127 +11348,129 @@ Vol desar els canvis? QETApp - + Loading... Initializing the elements collection cache splash screen caption Carregant... Posada en marxa del memòria cau de la col·lecció d'elements - + Loading... Sheets editor splash screen caption Carregant... Editor d'esquemes - + Loading... Opening files splash screen caption Carregant... Obrint els fitxers - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Caixetins QET - + Company title-blocks title of the company's title block templates collection Caixetins d'empresa - + User title blocks title of the user's title block templates collection Caixetins personals - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Esquema - + Electric Normal example text - translate length, not meaning Elèctric - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configura QElectroTech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Error - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9830,146 +11479,203 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Carregant... - + Loading... Systray icon splash screen caption Carregant... icona de la safata del sistema - + QElectroTech systray menu title QElectroTech - + &Quit &Sortir - + &Hide &Amagar - + &Show &Restaurar - + &Hide diagram editor Amaga tots els editors d'&esquemes - + &Show diagram editors Restaura tots els editors d'&esquemes - + &Hide element editor &Amaga tots els editors d'elements - + &Show element editor &Restaura tots els editors d'elements - + &Hide title block template editor systray submenu entry Amaga tots els editors de &caixetins - + &Show title block template editors systray submenu entry Restaura tots els editors de &caixetins - + &New diagram editor &Nou editor d'esquemes - + &New element editor &Nou editor d'elements - + Closes QElectroTech Tanca el programa QElectroTech - + Reduces QElectroTech into the systray Minimitza QEletectroTech a la safata del sistema - + Restore QElectroTech Restaura QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Editors d'esquemes - + Element editors Editors d'elements - + Title block template editors systray menu entry Editors de caixetins - + Crash report Informe d'error - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech no es va tancar correctament durant la seva última execució. Aquí teniu els darrers missatges enregistrats abans de l'apagada; podeu desar-los per adjuntar-los a un informe d'errors. - + Diagnostic report Informe de diagnòstic - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Això conté els missatges de registre més recents d'aquesta sessió. Reviseu-ne el contingut abans d'adjuntar-lo a un informe d'error públic. - + Usage: Ús : - + [options] [file]... @@ -9978,7 +11684,7 @@ Aquí teniu els darrers missatges enregistrats abans de l'apagada; podeu de - + QElectroTech, an application to design electric diagrams. Available options: @@ -9995,35 +11701,35 @@ Opcions disponibles: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Definir la carpeta de la col·lecció d'elements - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definir la carpeta de la col·lecció de caixetins - + --config-dir=DIR Define configuration directory --config-dir=DIR Definir la carpeta de configuració - + --data-dir=DIR Define data directory --data-dir=DIR Defineix la carpeta de dades - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Definir la carpeta amb els fitxers de llengua @@ -10033,883 +11739,977 @@ Opcions disponibles: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Desfés - + No modification Cap canvi - + Click an action to get back in the changes you made to your diagram Status tip Trieu una acció per retrocedir en l'edició de l'esquema - + &New &Nou - + &Open &Obre - - + + &Close &Tanca - + &Save &Desa - + Save as Desa com a - + &Export E&xporta - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Aquest panell mostra les diferents accions realitzades en el full actual. Faci clic en una acció per tornar a l'estat del full just després de l'acció. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Editor d'esquemes - + Print Imprimeix - + Export in pdf Exporta com a pdf - + Export one or more sheets of the current project status bar tip Exporta un o més fulls del projecte actual - + &Quit &Surt - + Undo Desfés - + Redo Refés - + Cu&t Re&talla - + &Copy Cop&ia - + &Paste En&ganxa - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Desconnexió automàtica del/s conductor/s - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Tallar automàticament els conductors existents en col·locar un element - + Display the grid Mostra la quadrícula - + Display or hide the grid of sheet Mostra o oculta la quadrícula - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Inhabilitat - + View the guides Mostra les guies - + Shows or hides the guides Mostra o amaga les guies - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Mostra - + Element texts - + Conductor texts - + Text fields - + Camps de text - + Shapes - + Pictures - + Tables - + Cross-references Referències creuades - + See Display > Show - + Sheet properties Propietats del full - + Add a sheet Afegeix un full - - - + + + Delete this sheet Suprimeix un full - + Export to CSV Exporta en format CSV - + Add a nomenclature Afegeix una nomenclatura - + Terminal block manager (DEV) Gestor de blocs de borns (DEV) - + Launch the terminal block creation plugin Inicieu el connector de creació de blocs de borns - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Exporta la llista de noms de conductors - + Export the wiring diagram Exporta l'esquema de cablejat - + Wiring list (database) - + Automatic numbering of terminals Numeració automàtica de borns - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Exporta la base de dades interna del projecte - + Creates a new project status bar tip Crea un nou projecte - + Opens an existing project status bar tip Obre un projecte existent - + Closes the current project status bar tip Tanca el projecte actual - + Saves the current project and all its sheets status bar tip Desa el projecte actual i tots els seus fulls - + Saves the current project with a different file name status bar tip Desa el projecte actual amb un altre nom de fitxer - + Add row Add row Afegeix una línia - + Remove a row Remove row Suprimeix una línia - + Add a column to the sheet status bar tip Afegeix una columna al full - + Remove a column from the sheet status bar tip Suprimeix una columna al full - + Expands the sheet height status bar tip Augmenta l'altura del full - + Shrinks the sheet height status bar tip Disminueix l'altura del full - + Rotate the group Gira el grup - + Horizontal mirror - + Mirall horitzontal - + Vertical mirror - + Mirall vertical - + Group selected texts Agrupa els textos seleccionats - - + + Group fr: Grouper - + Grup - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Suprimeix els elements seleccionats del full - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Gira la selecció com a grup al voltant del seu centre, en lloc de girar cada element al seu lloc - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Selecciona-ho tot - + Select none Desselecciona-ho tot - + Invert selection Inverteix la selecció - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF Afegeix un PDF - + Add an arc - + Afegeix un arc - + Add a curve Afegeix una corba - + Add a fillet - + Add a terminal plan Afegeix un pla de borns - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Afegeix un camp de text al full actual - + Add an image to the current sheet Afegeix una imatge al full actual - + Adds a PDF page to the current sheet Afegeix una pàgina PDF al foli actual - + Add a line to the current sheet Afegeix una fila al full actual - + Adds a rectangle on the current sheet Afegeix un rectangle al full actual - + Add an ellipse to the current sheet Afegeix una el·lipse al full actual - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Afegeix un polígon al full actual - + Adds a Bézier curve to the current sheet Afegeix una corba de Bézier al foli actual - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Afegeix un pla de borns al full actual - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace Cerca i reemplaça - + Navigate to an element Accedir a un element - + Quickly search for and select an element in the sheet status bar tip Cerca i selecciona ràpidament un element del foli - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Sí + + + + No + no + No + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Depth toolbar title Profunditat - + Scripts toolbar title - - + + Scripts - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -10920,7 +12720,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n items aligned @@ -10928,32 +12728,32 @@ If you save the project, these conductors will disappear from the file. Close it - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -10961,7 +12761,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -10969,7 +12769,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -10977,18 +12777,18 @@ If you save the project, these conductors will disappear from the file. Close it - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -10997,28 +12797,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11026,12 +12826,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11041,53 +12841,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11095,323 +12895,323 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Delete Suprimeix - + Rotate Gira - + Choose texts orientation Orienta els textos - + Find in the panel Cerca al panell - + Reset conductors Reinicia els conductors - + Add a textfield Afegeix un camp de text - + Add a column Afegeix una columna - + Add a picture Afegeix una imatge - + Remove a column Suprimeix una columna - + Project properties Propietats del projecte - + Clean project Neteja el projecte - + Add a summary Afegeix un resum - + Zoom In Apropa - + Zoom Out Allunya - + Zoom content Amplia el contingut - + Fit in view Zoom adaptat - + Reset zoom Sense zoom - + using tabs En pestanyes - + using windows En finestres - + Select Mode Selecció - + Move Mode Visualització - + &Tile &Mosaic - + &Cascade &Cascada - + Next project Projecte següent - + Previous project Projecte anterior - + Selects all elements on the sheet status bar tip Selecciona tots els elements del full - + Deselect all elements on the sheet status bar tip Deselecciona tots els elements del full - + Expand the sheet status bar tip Augmenta la mida del full - + Shrinks the sheet status bar tip Disminueix la mida del full - + Adjusts the zoom to display all the contents of sheet regardless of context Ajusta el zoom per mostrar tot el contingut del full independentment del marc - + Adjusts the zoom on exactly the part of the sheet status bar tip Ajusta el zoom exactament al marc del full - + Add a rectangle Afegeix un rectangle - + Add an ellipse Afegeix una el·lipse - + Add a polygon Afegeix un polígon - + Find the selected item in the panel status bar tip Troba l'element seleccionat en el panell - + Exports the current sheet to another format status bar tip Exporta el full actual a un altre format - + Prints one or more sheet of the current project status bar tip Imprimeix un o més fulls del projecte actual - + Paste at the original position - - + + Paste element information - + Pastes elements from the clipboard into the sheet status bar tip Enganxa els elements del porta-retalls al full - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Edita les propietats del full (dimensions, informació del caixetí, propietats dels conductors, etc.) - + Allows to view the sheet without modifying it status bar tip Permet veure el full sense poder modificar-lo - + &Add - + Selection - + Align - + Rows and columns - + Depth Profunditat - - + + Project %1 registered in the directory: %2. Projecte %1 desat al directori: %2. - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Projectes QElectroTech (* .qet);; Arxius XML (* .xml);; Tots els fitxers (*) - - + + Unable to open file message box title Impossible obrir el fitxer - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Sembla que el fitxer %1 que estàs intentant obrir no existeix. - + Opening the file read-only message box title Obertura del projecte en mode de només lectura - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11420,7 +13220,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11429,13 +13229,13 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + Project fonts message box title Tipografies del projecte - + %n items put back on the grid @@ -11443,12 +13243,12 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + The selection is already on the grid - + (%n locked objects left in place) @@ -11456,344 +13256,344 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + An error occurred while opening file %1. message box content S'ha produït un error en obrir el fitxer %1. - + Activates the project « %1 » Activa el projecte « %1 » - + Are you sure you want to delete this sheet? Esteu segur que voleu eliminar aquest foli? - + Delete the sheets Elimina els números de pàgina - + Are you sure you want to delete the selected %1 sheets ? Esteu segur que voleu suprimir els %1 folis seleccionats? - + Delete %1 sheets Suprimeix %1 fulls - - - - - - - + + + + + + + Move the sheets Mou els fulls - + Error message box title Error - + Closes QElectroTech status bar tip Tanca el programa QElectroTech - + Undoes the previous action status bar tip Desfer l'acció anterior - + Restores the undone action status bar tip Restaura l'acció desfeta - + Puts selected elements into the clipboard status bar tip Transfereix els elements seleccionats al porta-retalls - + Copies selected elements status bar tip Copia els elements seleccionats al porta-retalls - + Inverts selection of elements status bar tip Desselecciona els elements seleccionats i selecciona els elements no seleccionats - + Reset the conductors path ignoring the user changes status bar tip Recalcula les rutes dels conductors sense tenir en compte els canvis - + Rotate selected elements and texts status bar tip Gira els elements i textos seleccionats - + Edit the selected item Edita l'element seleccionat - + Rotate selected texts to a specific angle status bar tip Gira els textos seleccionats a un angle específic - + Automatic creation conductor (s) Tool tip of auto conductor Creació automàtica de conductors - + Projects dock title Projectes - + Collections Col·leccions - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Utilitza la creació automàtica de conductor (s) sempre que sigui possible - + Restores default zoom level status bar tip Restaura el nivell de zoom per defecte - + Add line Draw line Afegeix una línia - + Shows the various opened projects in windows status bar tip Mostra els projectes oberts en subfinestres - + Shows the various opened projects in tabs status bar tip Mostra els projectes oberts en pestanyes - + Allows to select elements status bar tip Permet seleccionar els elements - + Arranges windows in a tile pattern status bar tip Disposa les finestres en mosaic - + Arranges windows in a cascade pattern status bar tip Disposa les finestres en cascada - + Activates the next project status bar tip Activa el projecte següent - + Activates the previous project status bar tip Activa el projecte anterior - + &File &Fitxer - + &Edit &Edita - + &Project &Projecte - + Displ&ay &Visualitza - + Wi&ndows Fi&nestres - + &Latest files &Obre'n un de recent - + Display or hide the main toolbar Mostra o amaga la barra d'eines principal - + Display or hide the Display toolbar Mostra o amaga la barra d'eines de visualització - + Display or hide the Diagram toolbar Mostra o amaga la barra d'eines d'esquema - + Show or hide the elements panel Mostra o amaga el panell d'elements - + Display or hide the undo list Mostra o amaga la llista de canvis - + Display projects Mostra els projectes + - Tools Eines + - Display Visualitza + - Diagram Esquema + - Add Afegeix - + Open a file Obre un fitxer - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Sembla que el fitxer que intentes obrir no és llegible. Per tant, no es pot obrir. Si us plau, comprova els permisos del fitxer. - + The project you try to open does not seem writable. It will be opened read-only. Sembla que el projecte que intentes obrir no és accessible en mode d'escriptura. Per tant serà obert en mode de només lectura. - - + + Unable to open project message box title Impossible obrir el projecte - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Sembla que el fitxer %1 no és un fitxer de projecte QElectroTech. Per tant no es pot obrir. - + Unable to delete the terminal No es pot suprimir el born - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted No es pot dur a terme l'eliminació perquè la selecció inclou un o més borns que estan connectats amb ponts i/o pertanyen a un born multinivell. Retireu els ponts i/o elimineu els nivells dels borns afectats per tal de poder-los eliminar - + Group Grup - + Edit the element edit element Edita l'element - + Edit the text field edit text field Edita el camp de text - + Edit the image edit image Edita la imatge - + Edit conductor edit conductor Edita el conductor - + Edit the selected object edit selected item Edita l'objecte seleccionat @@ -12781,52 +14581,52 @@ Les condicions requerides no són vàlides QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projecte « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projecte %1 - + Untitled project displayed title for a project-less, file-less project Projecte sense títol - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [només lectura] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modificat] - + Renumber elements - + Renumber elements (%1) - + Modified contact system Sistema de contactes modificat - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12837,19 +14637,19 @@ Els elements esclaus existents no s'assignaran automàticament. Haureu d&ap Voleu continuar? - + An error occurred during the template integration. error message S'ha produït un error mentre s'integrava el model. - + Warning message box title Avís - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12858,7 +14658,7 @@ You are currently using QElectroTech in version %2 Actualment esteu utilitzant la versió %2 de QElectroTech - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12867,32 +14667,32 @@ Aleshores és possible que l'obertura de tot o part d'aquest document Què voleu fer? - + Warning message box title Avís - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. El projecte que esteu intentant obrir és parcialment compatible amb la vostra versió %1 de QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Perquè sigui totalment compatible, obriu aquest mateix projecte amb la versió 0.8 o 0.80 de QElectroTech, deseu el projecte i torneu-lo a obrir amb aquesta versió. Què voleu fer? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Obrint el projecte actual...</b><br/>Creant els folis</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Obrint el projecte actual...</b><br/>Configurant referències creuades</p> @@ -12918,178 +14718,168 @@ Què voleu fer? QETTitleBlockTemplateEditor - + Save current template? dialog title Desar el model actual? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Vols desar el model %1? - + new_template template name suggestion when duplicating the default one model_nou - + Duplicate a title block template input dialog title Duplica un model de caixetí - + In order to duplicate this template, please enter a name for its copy input dialog text Per duplicar aquesta plantilla, introduïu el nom que vulgueu per a la seva còpia - + &New menu entry &Nou - + &Open menu entry &Obre - + Open from a file menu entry Obre des d'un fitxer - + &Save menu entry &Desa - + Save as menu entry Desa com a - + Save to a file menu entry Desa en un fitxer - + &Quit menu entry &Surt - + Manage logos menu entry Gestiona logos - + Zoom In menu entry Zoom - apropa - + Zoom out menu entry Zoom - allunya - + Fit in view menu entry Zoom adaptat - + Reset zoom menu entry Sense zoom - + Save as dialog title Desa com a - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Models de caixetins QElectroTech (*%1) - + &Merge cells menu entry &Fusiona les cel·les - + Cu&t menu entry Re&talla - + &Copy menu entry Cop&ia - + &Paste menu entry En&ganxa - + Edit extra information menu entry Edita la informació complementària - + Add a &row menu entry Afegeix una &línia - + Add a &column menu entry Afegeix una &columna - + &Split cells menu entry &Separa les cel·les - - - - - - - - - - @@ -13099,144 +14889,154 @@ Què voleu fer? + + + + + + + + + + Title block template editors Editor de caixetins - + &File menu title &Fitxer - + &Edit menu title &Edita - + Displ&ay menu title &Visualitza - + Tools toolbar title Eines - + Edit toolbar title Edita - + Display toolbar title Visualitza - + No modification label displayed in the undo list when empty Cap canvi - + Undo dock title Cancel·lacions - + Cell properties dock title Propietats de la cel·la - + [Changed] window title tag [Modificat] - + [Read only] window title tag [Només lectura] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Editor de caixetins - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Error - + Unable to save the template ‘%1’. message box content - %1 is a title block template name No s'ha pogut desar la plantilla «%1». - + Open a title block template File > open dialog window title Obre un model - + Open a file dialog title Obre un fitxer - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Models de caixetins QElectroTech (*%1);; Fitxers XML (*.xml);;Tots els fitxers (*) - + Save template as dialog window title Desa el model com a - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name El nom «%1» no és vàlid: no ha de contenir els caràcters següents: \ / : * ? " < > | - + Edit extra information window title Edita la informació complementària - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Pot emprar aquest camp lliure per esmentar els autors del caixetí, la llicència, o qualsevol dada que consideri útil. @@ -13261,7 +15061,7 @@ Què voleu fer? QObject - + Warning: the element has been saved with a more recent version of QElectroTech. Avís: l'element ha estat desat amb una versió posterior del QElectroTech. @@ -13282,7 +15082,7 @@ Què voleu fer? un element gràfic - + delete %1 undo caption - %1 is a sentence listing the removed content suprimeix %1 @@ -13805,7 +15605,7 @@ Què voleu fer? - + Title Títol @@ -13821,18 +15621,18 @@ Què voleu fer? Propietats del projecte - + Select an image ... Selecciona una imatge ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Els fitxers d'imatge (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13841,7 +15641,7 @@ Què voleu fer? Error - + Unable to load the image. No es pot carregar la imatge. @@ -13882,8 +15682,8 @@ Què voleu fer? Born - + Text Text @@ -13899,7 +15699,7 @@ Què voleu fer? Edita les propietats de diversos elements - + Edit the cross reference edite the cross reference Edita la referència creuada @@ -13989,12 +15789,12 @@ the translated name of this folder could not be read, so its folder name is disp Col·lecció - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14011,8 +15811,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14145,45 +15945,45 @@ the translated name of this folder could not be read, so its folder name is disp - + - + Type Tipus - + - + Address Adreça - - - - + + + + Annotation Comentari - - - - + + + + Cross-reference Referència creuada - - - - + + + + Function Funció @@ -14493,15 +16293,25 @@ the translated name of this folder could not be read, so its folder name is disp Fórmula de text - + Add a nomenclature Afegeix una nomenclatura - + Add a summary Afegeix un resum + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14513,83 +16323,113 @@ the translated name of this folder could not be read, so its folder name is disp Compilació: - - + + Generic generic terminal element type Genèric - + Fuse fuse terminal element type Fusible - + Sectionable sectional terminal element type Seccionable - + Diode diode terminal element type Díode - + Ground ground terminal element type Terra - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Genèric - + Phase phase terminal element function Fase - + Neutral neutral terminal element function Neutre - - + + Digital input Entrada digital - + Digital output Sortida digital - + Analogue input Entrada analògica - + Analogue output Sortida analògica - + Universal input Entrada universal - + Universal output Sortida universal @@ -14599,10 +16439,10 @@ the translated name of this folder could not be read, so its folder name is disp %p% fet (%v de %m) - + + - - + @@ -14682,22 +16522,22 @@ Voleu substituir-la? Importa la configuració de text : %1 - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Per instal·lar el connector qet_tb_generator<br>Visiteu:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requereix python 3.5 o superior.<br><B><U> Primera instal·lació a Windows</B></U><br>1. Instal·leu, si cal, python 3.5 o superior<br> Visiteu:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Actualització a Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>L'usuari podria iniciar aquest script en un terminal en aquest directori<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Per instal·lar el connector qet_tb_generator<br>Visiteu:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Primera instal·lació a macOSX</B></U><br>1. Instal·leu, si cal, només el paquet python 3.11, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Executeu l'script Profile.command<br>perquè el programa utilitza el PATH codificat per localitzar el connector qet-tb-generator <br> Visiteu:<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>com fer-ho</a><br>2. instal·lació de qet_tb_generator amb pip3<br><B><U> Actualització a macOSX</B></U><br> instal·lació de pip3 --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Per instal·lar el connector qet_tb_generator<br>Visiteu:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requereix python 3.5 o superior.<br><br><B><U> Primera instal·lació a Linux</B></U><br>1. comproveu que teniu pip3 instal·lat: pip3 --version<br>Si no, instal·leu-lo amb: sudo apt-get install python3-pip<br>2. Instal·leu el programa: sudo pip3 install qet_tb_generator<br>3. Executeu el programa: qet_tb_generator<br><br><B><U> Actualització a Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Error en iniciar el connector qet_tb_generator @@ -14727,7 +16567,7 @@ Voleu substituir-la? Cerca i reemplaça avançat - + Default layout Disseny per defecte @@ -14995,8 +16835,8 @@ Si us plau, descarregueu-lo des de l'enllaç següent i descomprimiu-lo a l - - + + Move %1 @@ -15141,88 +16981,88 @@ Si us plau, descarregueu-lo des de l'enllaç següent i descomprimiu-lo a l - + insert %1 Afegeix %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Canvia el color d'un text - + Rotate a text - + Edit line of a form Canvia el traç d'una forma - + Edit filling a form Canvia l'emplenament d'una forma - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Edita el text d'un element - + Automatically number an element Numera automàticament un element - + Renumber elements (%1) - + Search and replace - + Script @@ -15274,7 +17114,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Full @@ -15297,12 +17137,12 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ Horizontal mirror - + Mirall horitzontal Vertical mirror - + Mirall vertical @@ -15323,26 +17163,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. La informació que es mostrarà supera la quantitat màxima que poden mostrar les taules. Afegiu una taula nova o ajusteu les taules existents per mostrar la quantitat completa d'informació. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. La informació que es mostrarà supera la quantitat màxima que es pot mostrar a la taula. Afegiu una taula nova o ajusteu la taula existent per mostrar la quantitat completa d'informació. - + Table limitation Limitació de la taula - + Modify the geometry of a table Canvia la geometria d'una taula @@ -15401,12 +17241,12 @@ nothing has been changed. QetShapeItem - + an shape una forma - + a line una línia @@ -15677,78 +17517,78 @@ nothing has been changed. Canvia el tipus d'un node - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center Mou el centre de rotació - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Modifica %1 - + rectangle un rectangle - + an ellipse una el·lipse - + an arc un arc - + polyline un polígon - + a curve una corba @@ -15797,6 +17637,14 @@ nothing has been changed. Modifica un rectangle + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15835,6 +17683,17 @@ nothing has been changed. L'element « %1 » ja existeix, què vols fer? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16395,7 +18254,7 @@ Creeu el vostre propi text utilitzant les variables següents: &Delete - + &Suprimeix @@ -16846,28 +18705,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Numeració automàtica del full - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16898,13 +18767,13 @@ Si el número definit al camp Valor té menys dígits que el tipus escollit, ani - + Numbering conductors title window Numeració automàtica del conductor - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16942,13 +18811,41 @@ The other fields are not used. -El tipus "Full" representa el nom del full actual. Els altres camps no s'utilitzen. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Numeració automàtica de l'element - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16986,12 +18883,12 @@ The other fields are not used. -El tipus "Full" representa el nom del full actual. Els altres camps no s'utilitzen. - + New numbering… - + Rename numbering… @@ -17436,7 +19333,7 @@ The other fields are not used. Action - + Acció @@ -19893,22 +21790,22 @@ The other fields are not used. TerminalStripEditor - + Properties Propietats - + Name: Nom: - + Comment : Comentari : - + Plant: Instal·lació : @@ -19954,7 +21851,7 @@ The other fields are not used. - + Generic Genèric @@ -19979,72 +21876,117 @@ The other fields are not used. Terra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Desplaçar-se dins : - + Phase Fase - + Neutral Neutre - + Automatic position Posició automàtica - + Group the terminals Agrupa els borns - + Ungroup the terminals Desagrupa els borns - + Bridging the terminals Puntegeu dels borns - + Unbridge the terminals Traieu el pont dels borns - + Location : Localització : - + Description Descripció - + Function : Funció: - + Independent terminals Borns independents - + Modify terminal strip properties Edita les propietats del bloc de borns @@ -20113,12 +22055,12 @@ The other fields are not used. Born de nivell 0 : - + Headser : A la part superior : - + Bridge point Punt de pont @@ -20183,12 +22125,52 @@ The other fields are not used. Referència creuada - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Alçada - + Preview: Vista prèvia : @@ -20251,55 +22233,60 @@ The other fields are not used. TerminalStripModel - + Position Posició - + Stage Nivell - + Label Etiqueta - + Number wire Número de conductor - + Cross-reference Referència creuada - + Cable Cable - + Color / wire number of the cable Color / número de fil del cable - + Type Tipus - + Function Funció - + led led + + + Shield + + TerminalStripProjectConfigPage @@ -21618,32 +23605,42 @@ associar el nom "volta" amb el valor "1745" substituirà %{v Mostra en creu - + Label cross reference Etiqueta de referència creuada - + Master Mestre - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Esclau - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21660,115 +23657,141 @@ associar el nom "volta" amb el valor "1745" substituirà %{v %LM : Ubicació - + Option display cross Opció de visualització en creu - + Show the power contacts in the cross Mostra els contactes de potència a la creu - + Prefix of power contacts : Prefix dels contactes de potència: - + Prefix delayed contacts : Prefix dels contactes temporitzats : - + Prefix changeover contacts : Prefix dels contactes inversors : - + Coil Bobina - + Organ of protection Unitat de protecció - + Switch / button Commutador / botó - + Programmable Logic Controller (PLC) Autòmat programable (PLC) - + + Cable + Cable + + + Footer A la part inferior de la pàgina - + Under the label of the element Sota l'etiqueta de l'element - + Top Superior - + Bottom Inferior - + Left Esquerra - + Right Dreta - + Text alignment Alineació del text - + Text field + + + Text: + Text : + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Exporta la base de dades interna del projecte - + untitled sense_nom diff --git a/lang/qet_cs.ts b/lang/qet_cs.ts index 8c10f0458..cefe4f3fd 100644 --- a/lang/qet_cs.ts +++ b/lang/qet_cs.ts @@ -1166,6 +1166,24 @@ Poznámka: tyto volby automatické číslování ani NEPOVOLÍ ani nezakáží, + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + Smazat + + BorderPropertiesWidget @@ -1190,7 +1208,7 @@ Poznámka: tyto volby automatické číslování ani NEPOVOLÍ ani nezakáží, Format: - + Formát: @@ -1221,16 +1239,1077 @@ Poznámka: tyto volby automatické číslování ani NEPOVOLÍ ani nezakáží, Custom - + Vlastní Landscape - + Na šířku Portrait + Na výšku + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kabel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Instalace (=) + + + + Location (+) + Umístění (+) + + + + Type + Typ + + + + Cores + + + + + Plant + Instalace + + + + Location + Umístění + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Zahrnout záhlaví + + + + Preview + Náhled + + + + cable_list_ + + + + + Save As... + Uložit jako... + + + + CSV files (*.csv) + Soubory csv (*.csv) + + + + Error + Chyba + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Zpět + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Zpět + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Zpět + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + Kabel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kabel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Typ + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Instalace (=) + + + + Location (+) + Umístění (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Písmo: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + Bold italic + + + + + Style: + Styl: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Zarovnání: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Náhled: + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Zpět + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1277,13 +2356,13 @@ Poznámka: tyto volby automatické číslování ani NEPOVOLÍ ani nezakáží, Conductor - + Edit conductor properties undo caption Upravit vlastnosti vodiče - + Edit the properties of several conductors undo caption Upravit vlastnosti více vodičů @@ -1339,7 +2418,7 @@ Poznámka: tyto volby automatické číslování ani NEPOVOLÍ ani nezakáží, Conductor color - + Barva vodiče @@ -1803,13 +2882,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Jiné Unknown - + Neznámý @@ -1928,7 +3007,7 @@ Continue? Diagram - + Change the depth Změnit hloubku @@ -2065,6 +3144,24 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2076,7 +3173,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2084,7 +3181,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2207,224 +3304,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image Obrázek - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Vybrat obrázek... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Chyba - + Unable to load the image. Obrázek nelze nahrát. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2455,106 +3582,140 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Barva vodiče DiagramView - + Paste Here context menu action Vložit zde - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Toto je oblast, ve které plodíte své výkresy přidáváním prvků a umísťováním vodičů mezi jejich svorkami. Také můžete přidat nezávislé texty. - + Multiple paste Vícenásobné vložení - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + Odkazování listu + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Spojit vybrané svorky - + Untitled what to display for untitled diagrams Bez názvu - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Chyba - + The file could not be written. - + Choose the new color for this conductor Vybrat novou barvu pro tento vodič - + Edit conductor properties undo caption Upravit vlastnosti vodiče @@ -2993,7 +4154,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3155,7 +4316,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3650,8 +4811,8 @@ Continue? - - + + Type Typ @@ -3734,8 +4895,8 @@ Continue? - - + + Function Funkce @@ -3767,7 +4928,7 @@ Continue? - + Simple Jednoduchý @@ -3808,19 +4969,19 @@ Continue? - + Switch normally open Přepínač normálně otevřený - + Switch normally closed Přepínač normálně zavřený - + switch Přepínač @@ -3836,25 +4997,25 @@ Continue? - + Power switch Příkon - + Switch-on delayed Zpoždění při zapnutí - + Switch-off delayed Zpoždění při vypnutí - + Switch-on and off delayed Zpoždění při zapnutí a při vypnutí @@ -3880,7 +5041,7 @@ Continue? - + Generic Obecný @@ -3899,164 +5060,189 @@ Continue? Diode Dioda + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fáze - + Neutral Nulový - - - - - + + + + + T%1 - + Other fr: Autre - + Jiné - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Poznámka - + Cross-reference - + Křížový odkaz - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5046,7 +6232,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Vyvedení @@ -5429,97 +6615,127 @@ textu a čísel. + Filter by label (e.g. Z1) + + + + Move to : Přesunout do: - + Type : Typ: - + Function : Funkce: - + LED : LED: - + Apply displacement Použít přesunutí - - + + Generic Obecný - + Fuse Pojistka - + Sectionable Oddílový - + Diod Dioda - + Ground Země - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fáze - + Neutral Nulový - + Without Bez - + With S - + Modify terminal strip properties Upravit vlastnosti svorkovnic - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5565,17 +6781,17 @@ textu a čísel. Používat systémové barvy - + User Collection Path Cesta k vlastní sbírce - + User Title blocks Path Cesta k vlastním záhlavím výkresů - + Path of the Common Collection Cesta ke společné sbírce @@ -5597,6 +6813,7 @@ textu a čísel. + Browse... Procházet... @@ -5638,18 +6855,18 @@ textu a čísel. min - + Highlight freshly integrated elements in the panel Zvýraznit v panelu čerstvě začleněné prvky - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Prvky mohou zahrnout údaje o jejich autorech, licenci, nebo veškeré další užitečné informace, které shledáte prospěšnými. Stanovte výchozí hodnotu textového pole pro nové prvky níže: - + Applied to the next launch of QElectroTech Použito při příštím spuštění QElectroTechu @@ -5689,32 +6906,32 @@ Stanovte výchozí hodnotu textového pole pro nové prvky níže: Adresář s vlastními záhlavími výkresů - + Elements management Správa prvků - + Here you can define the default appearance of the different texts of QElectroTech Zde můžete stanovit výchozí vzhled různých textů v QElectroTechu - + Grid + Keyboard Mřížka a klávesnice - + Grid: 1 - 30 Mřížka: 1 - 30 - + DiagramEditor xGrid Souřadnice x mřížky editoru výkresu - + DiagramEditor yGrid Souřadnice y mřížky editoru výkresu @@ -5898,8 +7115,11 @@ Stanovte výchozí hodnotu textového pole pro nové prvky níže: + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5910,149 +7130,217 @@ Stanovte výchozí hodnotu textového pole pro nové prvky níže: + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Jazyky - + texts Texty - + Elements texts Texty prvků - - - + + + Font: Písmo: - - + + ° ° - + Length : Délka: - - + + Rotation : Otočení: - + Independent texts Nezávislé texty - + Other texts Jiné texty - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Aby byly změny vidět, mřížka musí být zapnuta. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Posunutí předmětu v mřížce pomocí klávesnice: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Posun v mřížce editoru výkresu, souřadnice x: klávesa šipky vlevo/vpravo - + DiagramEditor (key: up / down) yGrid Posun v mřížce editoru výkresu, souřadnice y: klávesa šipky nahoru/dolů - + Keyboard movement with the ALT key: 1 - 9 Posunutí předmětu v mřížce pomocí klávesnice při stisknutí klávesy Alt: 1 - 9 - + DiagramEditor (key: left / right) xGrid Posun v mřížce editoru výkresu, souřadnice x: klávesa šipky vlevo/vpravo - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Posun v mřížce editoru výkresu, souřadnice y: klávesa šipky nahoru/dolů - + View grid Zobrazit mřížku - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Velikost bodu v editoru diagramů: 1–5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Velikost bodu v editoru prvků: 1–5 - + Editor Editor - + Max. parts in Element Editor List Největší počet dílů v seznamu editoru prvků @@ -6067,265 +7355,301 @@ Stanovte výchozí hodnotu textového pole pro nové prvky níže: Povolit zrušení zvětšení mimo list - + + Bold italic + + + + + Bold + Tučné + + + + Italic + Kurzíva + + + + Normal + + + + Rounding up for 0.5 and more Zaokrouhlení nahoru pro 0,5 a více - + Always top rounding Vždy zaokrouhlení nahoru - + Always rounded down Vždy zaokrouhlení dolů - + Rounding up for 0.75 and more Zaokrouhlení nahoru pro 0,75 a více - + No rounding Bez zaokrouhlení - + Disabled fr: Désactivée - + Zakázáno - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Obecné - + System Systém - + Arabic Arabština - + Brazilian Brazilština - + Catalan Katalánština - + Czech Čeština - + German Němčina - + Danish Dánština - + Greek Řečtina - + English Angličtina - + Spanish Španělština - + French Francouzština - + Croatian Chorvatština - + Italian Italština - + Japanese Japonština - + Korean - + Polish Polština - + Portuguese Portugalština - + Romanian Rumunština - + Russian Ruština - + Slovenian Slovinština - + Dutch Nizozemština - + Norwegian Norština - + Belgium-Flemish Belgičtina vlámština - + Turkish Turečtina - + Hungarian Maďarština - + Mongolian Mongolština - + Ukrainian Ukrajinština - + Chinese Čínština - + Swedish Švédština - + + Cable text font + + + + + Core colors font + + + + Company collection path Cesta k podnikové sbírce - + Company title-blocks Cesta k podnikovým záhlavím výkresů - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6334,50 +7658,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Soubory csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Příliš vysoké hodnoty mohou způsobit pád aplikace. - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6387,6 +7729,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Vlevo + + + + Right + Vpravo + + + + Top + Nahoře + + + + Bottom + Dole + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + Informace + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Název: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Název + + + + Function + Funkce + + + + Type + Typ + + + + Add terminal + + + + + Add gap + + + + + Delete + Smazat + + + + Up + Nahoře + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Obecný + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6514,135 +8197,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Formulář + Formulář - Display - Zobrazení + Zobrazení - Table name - Název tabulky + Název tabulky - None Žádný - All - Vše + Vše - Lines to display : - Řádky k zobrazení: + Řádky k zobrazení: - Y : - Y: + Y: - Next table - Další tabulka + Další tabulka - X : - X: + X: - Previous table - Předchozí tabulka + Předchozí tabulka - Previous table : - Předchozí tabulka: + Předchozí tabulka: - Geometry and lines - Sestavení a řádky + Sestavení a řádky - Apply geometry to all tables linked to this one - Použít sestavení na všechny s touto spojené tabulky + Použít sestavení na všechny s touto spojené tabulky - Fit table to sheet - Přizpůsobit tabulku listu + Přizpůsobit tabulku listu - TextLabel - Textový štítek + Textový štítek - Header - Záhlaví + Záhlaví - - Margin - Okraj + Okraj - Alignment : - Zarovnání: + Zarovnání: - - Left - Vlevo + Vlevo - - Center - Na střed + Na střed - - Right - Vpravo + Vpravo - - Font - Písmo + Písmo - Table - Tabulka + Tabulka - Alignment: - Zarovnání: + Zarovnání: - Content - Obsah + Obsah @@ -6760,6 +8413,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6819,7 +8495,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Štítek @@ -6975,76 +8651,48 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Formulář + Formulář - X : - X: + X: - Advanced Editor - Pokročilý editor + Pokročilý editor - Size : - Velikost: + Velikost: - Angle: - Úhel: + Úhel: - - - px - px + px - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Obsah, velikost a písmo textu nelze změnit, protože je formátován v HTML. + Obsah, velikost a písmo textu nelze změnit, protože je formátován v HTML. Na toto , prosím, použijte pokročilý editor. - Text - Text + Text - @@ -7052,9 +8700,8 @@ Na toto , prosím, použijte pokročilý editor. Písmo - Click here to cancel html formatting - Formátování HTML zrušte klepnutím sem + Formátování HTML zrušte klepnutím sem @@ -7491,7 +9138,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Tisk @@ -7510,7 +9157,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + Z&rušit @@ -7710,7 +9357,7 @@ Do you still want to link this slave contact? Cross-reference - + Křížový odkaz @@ -7880,6 +9527,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7983,64 +9638,69 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet List - + Conductor Vodič - + Sheet references Odkazy na listy - + Cross-references Křížové odkazy - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Vodiče - + Elements Prvky - + Sheets Listy - + + Cables + + + + Auto Numbering Automatické číslování - + New sheet configuration page title Nový list - + New project configuration page title Nový projekt @@ -8170,133 +9830,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Číslo 1 - - - - + + + + number format 01 Číslo 01 - - - - - + + + + + number format 001 Číslo 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Text - - - - + + + + Sheet no. Číslo listu - - - - + + + + Sheet List - - - - + + + + number format 1 - Sheet Formát čísla 1 - list - - - - + + + + number format 01 - Sheet Formát čísla 01 - list - - - - + + + + number format 001 - Sheet Formát čísla 001 - list - - - - + + + + Location Umístění - - - - + + + + Plant Instalace - - - + + + Element Line Prvek řádek - - - + + + Element Column Prvek sloupec - - - + + + Element Prefix Prvek předpona @@ -8383,7 +10043,7 @@ Do you still want to link this slave contact? Change a rectangle - + Upravit obdélník @@ -8397,12 +10057,12 @@ Do you still want to link this slave contact? PartText - + Move a text Přesunout text - + Edit the text field Upravit textové pole @@ -8410,12 +10070,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8822,7 +10482,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Tisk @@ -8837,101 +10497,106 @@ Its copy was kept as: číslování - + Management Správa - - + + Conductors Vodiče - + No. - + Name Název - + Sheet List - + Element Prvek - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Prvky - - + + Sheets Listy - + + Cables + + + + Sheet Auto Numbering Automatické číslování listů - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8940,7 +10605,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8949,49 +10614,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9000,21 +10665,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9024,7 +10689,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9033,7 +10698,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9042,13 +10707,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Smazat číslování - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9058,12 +10723,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9072,12 +10737,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9086,7 +10751,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9096,80 +10761,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Projekt QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9190,19 +10855,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Formulář + Formulář - Request - Žádost + Žádost - Reload - Nahrát znovu + Nahrát znovu @@ -9699,73 +11361,75 @@ Chcete uložit změny? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR Zleva doprava - + QET title blocks title of the title block templates collection provided by QElectroTech Záhlaví výkresů QET - + Company title-blocks title of the company's title block templates collection Podniková záhlaví výkresu - + User title blocks title of the user's title block templates collection Vlastní záhlaví výkresů - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Chyba - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9774,121 +11438,178 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Ukončit - + &Hide &Skrýt - + &Show &Ukázat - + &Hide diagram editor &Skrýt všechny editory výkresů - + &Show diagram editors &Ukázat všechny editory výkresů - + &Hide element editor &Skrýt všechny editory prvků - + &Show element editor &Ukázat všechny editory prvků - + &Hide title block template editor systray submenu entry &Skrýt všechny editory záhlaví výkresu - + &Show title block template editors systray submenu entry &Ukázat všechny editory záhlaví výkresu - + &New diagram editor &Nový editor výkresu - + &New element editor &Nový editor prvku - + Closes QElectroTech Uzavřít QElectroTech - + Reduces QElectroTech into the systray Zmenší QElectroTech do systémové oblasti panelu - + Restore QElectroTech Ukázat QElectroTech - + Diagram editors Editory výkresů - + Element editors Editory prvků - + Title block template editors systray menu entry Editory záhlaví výkresu - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Použití: - + QElectroTech, an application to design electric diagrams. Available options: @@ -9905,7 +11626,7 @@ Dostupné volby: - + [options] [file]... @@ -9914,113 +11635,113 @@ Dostupné volby: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Stanovit adresář pro sbírku s prvky - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Stanovit adresář pro sbírku se vzory záhlaví výkresů - + --config-dir=DIR Define configuration directory --config-dir=DIR Stanovit adresář s nastavením - + --data-dir=DIR Define data directory --data-dir=DIR Stanovit adresář s daty - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Stanovit adresář s jazykovými soubory - + Loading... Initializing the elements collection cache splash screen caption Nahrává se... Spouští se vyrovnávací paměť sbírky s prvky - + Loading... Sheets editor splash screen caption Nahrává se... Editor listů - + Loading... Opening files splash screen caption Nahrává se... Otevření souborů - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Výkres - + Electric Normal example text - translate length, not meaning Elektrický - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Nastavení QElectroTechu - + Loading... splash screen caption Nahrává se... - + Loading... Systray icon splash screen caption Nahrává se... Ikona v systémové oblasti panelu - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -10029,1401 +11750,1495 @@ Dostupné volby: QETDiagramEditor - + Displ&ay Po&hled - + Show or hide the elements panel Zobrazit/Nezobrazit panel s prvky - + Add a column Přidat sloupec - + &Cascade &Překrývat - + &Paste &Vložit - + &Copy &Kopírovat - + Cu&t &Vyjmout - + Select none Zrušit výběr - + &Edit Úp&ravy - + Remove a column Odstranit sloupec - + &Save &Uložit - + Save as Uložit jako - + &Export &Vyvést - + Wi&ndows &Okna - - + + &Close &Zavřít - + &File &Soubor - + Print Tisk - + Invert selection Obrátit výběr - + Select Výběrový režim - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Tento panel uvádí různé změny použité na nynější list. Klepnutí na změnu dovolí vrácení listu do stavu hned po jejím použití. - + Display the grid Zobrazit mřížku - + Display or hide the grid of sheet Zobrazit/Skrýt mřížku listů - + Sheet properties Vlastnosti listu - + Add a sheet Přidat list - - - + + + Delete this sheet Smazat list - + Move Pohledový režim - + &Tile Klást &vedle sebe - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Editory výkresů - + Export in pdf Vyvést do PDF - + Export one or more sheets of the current project status bar tip Vyvést jeden nebo několik listů nynějšího projektu - + View the guides - + Shows or hides the guides - + Export to CSV Vyvést do formátu CSV - + Terminal block manager (DEV) Správce svorkovnic (DEV) - + Launch the terminal block creation plugin Spustit přídavný modul na vytváření svorkovnic - + Export the list of names of wires Vyvést seznam názvů vodičů - + Export the wiring diagram - + Automatic numbering of terminals - + Export the internal project database Vyvést vnitřní projektovou databázi - + &New &Nový - + Creates a new project status bar tip Vytvořit nový projekt - + Opens an existing project status bar tip Otevřít stávající projekt - + Closes the current project status bar tip Zavřít nynější projekt - + Saves the current project and all its sheets status bar tip Uloží nynější projekt a všechny jeho listy - + Saves the current project with a different file name status bar tip Uloží nynější projekt pod jiným souborovým názvem - + Add row Add row Přidat řádek - + Remove a row Remove row Odstranit řádek - + Add a column to the sheet status bar tip Přidat do listu sloupec - + Remove a column from the sheet status bar tip Odstranit z listu sloupec - + Expands the sheet height status bar tip Zvětšit výšku listu - + Shrinks the sheet height status bar tip Zmenšit výšku listu - + Removes selected elements from the sheet status bar tip Odstraní vybrané prvky z listu - + Selects all elements on the sheet status bar tip Vybere všechny prvky na listu - + Deselect all elements on the sheet status bar tip Zruší výběr všech prvků na listu - + Expand the sheet status bar tip Zvětší list - + Shrinks the sheet status bar tip Zmenší list - + Adjusts the zoom to display all the contents of sheet regardless of context Přizpůsobí zvětšení tak, že je zobrazován obsah bez ohledu na rámec - + Adjusts the zoom on exactly the part of the sheet status bar tip Upraví zvětšení tak, že je zobrazena přesně určitá část listu - + Add line Draw line Přidat čáru - + Add a rectangle Přidat obdélník - + Add an ellipse Přidat elipsu - + Add a polygon Přidat mnohoúhelník - + Exports the current sheet to another format status bar tip Vyvede nynější list do jiného formátu - + Prints one or more sheet of the current project status bar tip Vytiskne jeden nebo více listů nynějšího projektu + - Depth toolbar title Hloubka - + Group Skupina - + Pastes elements from the clipboard into the sheet status bar tip Vloží prvky ze schránky do listu - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Upraví vlastnosti listu (rozměry, údaje v záhlaví výkresu, vlastnosti vodičů...) - + Allows to view the sheet without modifying it status bar tip Dovolí zobrazení listu, aniž by jej bylo možné upravovat + - Tools Nástroje - + &Open &Otevřít - + Open a file Otevřít soubor - + Reset zoom Obnovit výchozí zvětšení - + Rotate Otočit - + &Quit &Ukončit - + Delete Smazat - + Select All Vybrat vše - + Fit in view Přizpůsobit přiblížení - + Zoom Out Oddálit - + Zoom In Přiblížit - + Undo Zpět - + Redo Znovu - + Reset conductors Obnovit výchozí vodiče - + Display or hide the main toolbar Zobrazit/Skrýt hlavní pruh s nástroji - + Display or hide the Display toolbar Zobrazit/Skrýt pruh s nástroji pro zobrazení - + Display or hide the Diagram toolbar Zobrazit/Skrýt pruh s nástroji pro výkres + - Display Zobrazení + - Diagram Výkres - + Add a textfield Přidat textové pole - + No modification Žádná úprava - + Display or hide the undo list Zobrazit/Skrýt seznam kroků zpět - + Edit the selected item Upravit vybranou položku - + Group selected texts Seskupit vybrané texty - + Rotate selected elements and texts status bar tip Otáčí vybrané prvky a texty - + Rotate selected texts to a specific angle status bar tip Otáčí vybrané texty v přesném úhlu - + Search / Replace Hledat/Nahradit - + &Project &Projekt - + &Latest files &Nedávno otevřené - - + + Project %1 registered in the directory: %2. Projekt 1% uložený v adresáři: %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Nezdá se, že by byl soubor, který se pokoušíte otevřít, čitelný. A nelze jej otevřít. Zkontrolujte, prosím, oprávnění k souboru. - + The project you try to open does not seem writable. It will be opened read-only. Zdá se, že projekt, který se pokoušíte otevřít, není zapisovatelný. Bude tedy otevřen pouze pro čtení. - + using tabs Používat karty - + using windows Používat okna - + Display projects Zobrazení projektů - + Project properties Vlastnosti projektu - + Clean project Vyčistit projekt - - + + Unable to open project message box title Projekt nelze otevřít - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Zdá se, že soubor %1 není souborem projektu QElectroTech. Nemůže být tedy otevřen. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Zpět - + Click an action to get back in the changes you made to your diagram Status tip Klepněte na některý z kroků pro návrat zpět ve změnách udělaných ve vašem výkresu - + Choose texts orientation Natočit texty - + Find in the panel Najít v panelu - + Add a picture Přidat obrázek - + Add a summary Přidat souhrn - + Zoom content Přiblížit obsah - + Closes QElectroTech status bar tip Zavře aplikaci QElectroTech - + Undoes the previous action status bar tip Vrátí předchozí krok zpět - + Restores the undone action status bar tip Znovu zavede krok vrácený zpět - + Puts selected elements into the clipboard status bar tip Přenese vybrané prvky do schránky - + Copies selected elements status bar tip Zkopíruje vybrané prvky do schránky - + Inverts selection of elements status bar tip Zruší výběr vybraných prvků a vybere nevybrané prvky - + Find the selected item in the panel status bar tip Najde prvek vybraný v panelu - + Reset the conductors path ignoring the user changes status bar tip Nastaví znovu cesty vodičů bez ohledu na uživatelem provedené změny - + Automatic creation conductor (s) Tool tip of auto conductor Automatické vytvoření vodiče(ů) - + Projects dock title Projekty - + Collections Sbírky - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Použít automatické vytvoření vodiče(ů), když je to možné - + Restores default zoom level status bar tip Obnoví výchozí úroveň přiblížení - + Shows the various opened projects in windows status bar tip Ukáže různé otevřené projekty v podoknech - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Zakázáno - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Zobrazení - + Element texts - + Conductor texts - + Text fields - + Textová pole - + Shapes - + Pictures - + Tables - + Cross-references Křížové odkazy - + See Display > Show - + Add a nomenclature Přidat seznam součástí - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Wiring list (database) - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip Ukáže různé otevřené projekty v kartách - + Allows to select elements status bar tip Dovolí výběr prvků - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Skupina - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + Přidat oblouk kruhu - + Add a curve - + Add a fillet - + Add a terminal plan Přidat plán svorek - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Přidat textové pole do nynějšího listu - + Add an image to the current sheet Přidat obrázek do nynějšího listu - + Adds a PDF page to the current sheet - + Add a line to the current sheet Přidat čáru do nynějšího listu - + Adds a rectangle on the current sheet Přidat obdélník do nynějšího listu - + Add an ellipse to the current sheet Přidat elipsu do nynějšího listu - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Přidat lomenou čáru do nynějšího listu - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Přidat plán svorek do nynějšího listu - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Zpět + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add Přidání - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth Hloubka - - + + Scripts - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Projekty QElectroTech (*.qet);;Soubory XML (*.xml);;Všechny soubory (*) - - + + Unable to open file message box title Soubor nelze otevřít - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Zdá se, že soubor %1, který se pokoušíte otevřít, už neexistuje. - + Opening the file read-only message box title Otevření souboru pouze pro čtení - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11433,7 +13248,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11443,24 +13258,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11472,18 +13287,18 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + %n items put back on the grid @@ -11492,7 +13307,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11501,22 +13316,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11525,100 +13340,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Upravit prvek - + Edit the text field edit text field Upravit textové pole - + Edit the image edit image Upravit obrázek - + Edit conductor edit conductor Upravit vodič - + Edit the selected object edit selected item Upravit vybraný předmět - + An error occurred while opening file %1. message box content Během otevírání souboru %1 se vyskytla chyba. - + Activates the project « %1 » Spustí projekt « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Chyba - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11627,7 +13442,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11636,7 +13451,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11645,18 +13460,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11665,28 +13480,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11695,12 +13510,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11711,53 +13526,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11766,41 +13581,41 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Arranges windows in a tile pattern status bar tip Uspořádá okna tím způsobem, že je položí vedle sebe - + Arranges windows in a cascade pattern status bar tip Uspořádá okna tím způsobem, že je položí v kaskádě pod sebe - + Next project Další projekt - + Previous project Předchozí projekt - + Activates the next project status bar tip Spustí další projekt - + Activates the previous project status bar tip Spustí předchozí projekt @@ -12385,7 +14200,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Element editors - + Editory prvků @@ -12795,58 +14610,58 @@ podmínky nejsou platné QETProject - + Warning message box title Varování - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Untitled project displayed title for a project-less, file-less project Nepojmenovaný projekt - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [pouze pro čtení] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [změněno] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12854,13 +14669,13 @@ Do you wish to continue? - + An error occurred during the template integration. error message Během začleňování vzoru se vyskytla chyba. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12869,7 +14684,7 @@ Ta je novější než vaše verze! V současné době používáte QElectroTech ve verzi %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12878,32 +14693,32 @@ Pak je možné, že se otevření celého dokumentu nebo jeho části nezdaří. Co si přejete udělat ? - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Projekt, který se snažíte otevřít, je částečně kompatibilní s vaší verzí %1 programu QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Aby byl projekt plně kompatibilní, otevřete jej s verzí 0.8 nebo 0.80 programu QElectroTech, uložte jej a otevřete znovu s touto verzí. Co si přejete udělat? - + Warning message box title Varování - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Otevírá se projekt ...</b><br/>Vytváří se listy</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Otevírá se projekt ...</b><br/>Nastavují se křížové odkazy</p> @@ -12929,178 +14744,168 @@ Co si přejete udělat? QETTitleBlockTemplateEditor - + Save current template? dialog title Uložit nynější vzor? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Chcete uložit vzor %1? - + new_template template name suggestion when duplicating the default one Nový vzor - + Duplicate a title block template input dialog title Zdvojit vzor záhlaví výkresu - + In order to duplicate this template, please enter a name for its copy input dialog text Pro zdvojení tohoto vzoru zadejte, prosím, název pro jeho kopii - + &New menu entry &Nový - + &Open menu entry &Otevřít - + Open from a file menu entry Otevřít ze souboru - + &Save menu entry &Uložit - + Save as menu entry Uložit jako - + Save to a file menu entry Uložit do souboru - + &Quit menu entry &Ukončit - + Manage logos menu entry Spravovat loga - + Zoom In menu entry Přiblížit - + Zoom out menu entry Oddálit - + Fit in view menu entry Přizpůsobit přiblížení - + Reset zoom menu entry Obnovit výchozí zvětšení - + Save as dialog title Uložit jako - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Vzory záhlaví výkresu QElectroTech (*%1) - + &Merge cells menu entry &Sloučit buňky - + Cu&t menu entry &Vyjmout - + &Copy menu entry &Kopírovat - + &Paste menu entry &Vložit - + Edit extra information menu entry Upravit doplňující údaje - + Add a &row menu entry Přidat řá&dek - + Add a &column menu entry Přidat &sloupec - + &Split cells menu entry &Rozdělit buňky - - - - - - - - - - @@ -13110,144 +14915,154 @@ Co si přejete udělat? + + + + + + + + + + Title block template editors - + Editory záhlaví výkresu - + &File menu title &Soubor - + &Edit menu title Úp&ravy - + Displ&ay menu title &Zobrazení - + Tools toolbar title Nástroje - + Edit toolbar title Úpravy - + Display toolbar title Pohled - + No modification label displayed in the undo list when empty Žádná úprava - + Undo dock title Zpět - + Cell properties dock title Vlastnosti buňky - + [Changed] window title tag [Změněno] - + [Read only] window title tag [Pouze pro čtení] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Editor vzoru záhlaví výkresu - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Chyba - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Otevřít vzor - + Open a file dialog title Otevřít soubor - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Vzory záhlaví výkresu QElectroTech (*%1);;Soubory XML (*.xml);;Všechny soubory (*) - + Save template as dialog window title Uložit vzor jako - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title Upravit doplňující údaje - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Toto pole můžete využít volně pro zmínění autorů výkresu, jeho licence, nebo cokoli dalšího, co považujete za užitečné. @@ -13287,7 +15102,7 @@ Co si přejete udělat? Textový soubor obsahující licenci GNU/GPL existuje, ale nepodařilo se jej otevřít - nicméně, znáte ji srdcem, že ano? - + Warning: the element has been saved with a more recent version of QElectroTech. Varování: prvek byl uložen se starší verzí QElectroTechu. @@ -13308,7 +15123,7 @@ Co si přejete udělat? Grafický prvek - + delete %1 undo caption - %1 is a sentence listing the removed content Smazat %1 @@ -13826,7 +15641,7 @@ Co si přejete udělat? - + Title Název @@ -13842,18 +15657,18 @@ Co si přejete udělat? Vlastnosti projektu - + Select an image ... Vybrat obrázek... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Obrázkové soubory (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13862,7 +15677,7 @@ Co si přejete udělat? Chyba - + Unable to load the image. Obrázek nelze nahrát. @@ -13903,8 +15718,8 @@ Co si přejete udělat? Svorka - + Text Text @@ -13920,7 +15735,7 @@ Co si přejete udělat? Upravit údaje více prvků - + Edit the cross reference edite the cross reference Upravit křížový odkaz @@ -14019,12 +15834,12 @@ the translated name of this folder could not be read, so its folder name is disp Sbírka - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14094,8 +15909,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14277,45 +16092,45 @@ Chcete je nahradit? - + - + Type Typ - + - + Address - - - - + + + + Annotation Poznámka - - - - + + + + Cross-reference - + Křížový odkaz - - - - + + + + Function Funkce @@ -14650,45 +16465,55 @@ Chcete je nahradit? Vytvoření vodičů - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Pro nainstalování přídavného modulu qet_tb_generator<br>navštivte :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>vyžaduje python 3.5 nebo novější.<br><B><U> Nejprve nainstalujte v OS Windows</B></U><br>1. V případě potřeby nainstalujte python 3.5 nebo novější<br> Navštivte:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Aktualizace na OS Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>uživatel tento skript může spustit v terminálu v tomto adresáři<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Pro nainstalování přídavného modulu qet_tb_generator<br>navštivte:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Nejprve nainstalujte v macOSX</B></U><br>1. V případě potřeby nainstalujte python 3.11 nebo novější<br> Navštivte:<br><a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Spusťte skript Profile.command<br><B><U> Aktualizujte na macOSX</B></U><br>pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Pro nainstalování přídavného modulu qet_tb_generator<br>navštivte :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>vyžaduje python 3.5 nebo novější.<br><B><U> Nejprve instalace v OS Linux</B></U><br>1. Ověřte, že máte nainstalován pip3: pip3 --version<br>Pokud ne, nainstalujte pomocí: sudo apt-get install python3-pip<br>2. Nainstalujte program: sudo pip3 install qet_tb_generator<br>3. Spusťte program: qet_tb_generator<br><br><B><U> Aktualizace v OS Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Chyba při spouštění přídavného modulu qet_tb_generator - + Add a nomenclature Přidat seznam součástí - + Add a summary Přidat souhrn + + + Add a cable list + + + + + Cable list + + Paste Vložit - + + - - + @@ -14729,83 +16554,113 @@ Chcete je nahradit? Seřadit svorkovnici %1 - - + + Generic generic terminal element type Obecný - + Fuse fuse terminal element type Pojistka - + Sectionable sectional terminal element type Oddílový - + Diode diode terminal element type Dioda - + Ground ground terminal element type Země - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Obecný - + Phase phase terminal element function Fáze - + Neutral neutral terminal element function Nulový - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14840,7 +16695,7 @@ Chcete je nahradit? Zavést soubor DXF - + Default layout Výchozí rozložení @@ -15019,8 +16874,8 @@ Stáhněte si jej podle tohoto odkazu a rozbalte jej do instalační složky. - - + + Move %1 @@ -15175,88 +17030,88 @@ Stáhněte si jej podle tohoto odkazu a rozbalte jej do instalační složky. - + insert %1 vložit %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Upravit barvu textu - + Rotate a text - + Edit line of a form Upravit čáru tvaru - + Edit filling a form Upravit výplň tvaru - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Upravit text prvku - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15310,7 +17165,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet List @@ -15359,26 +17214,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Informace, které se mají zobrazit, jsou větší než maximální množství, které lze zobrazit v tabulkách. Přidejte novou tabulku nebo upravte stávající tabulky tak, aby zobrazovaly všechny informace. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Informace, které se mají zobrazit, jsou větší než maximální množství, které lze zobrazit v tabulce. Přidejte novou tabulku nebo upravte stávající tabulku tak, aby zobrazovala všechny informace. - + Table limitation Omezení tabulky - + Modify the geometry of a table Změnit sestavení tabulky @@ -15437,12 +17292,12 @@ nothing has been changed. QetShapeItem - + an shape tvar - + a line čáru @@ -15713,78 +17568,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Upravit %1 - + rectangle obdélník - + an ellipse elipsu - + an arc - + polyline mnohoúhelník - + a curve @@ -15833,6 +17688,14 @@ nothing has been changed. Upravit obdélník + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15871,6 +17734,18 @@ nothing has been changed. Prvek « %1 » již existuje. Co si přejete udělat? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16435,7 +18310,7 @@ Vytvořte svůj vlastní text pomocí následujících proměnných: &Delete - + &Smazat @@ -16886,28 +18761,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Automatické číslování listů - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16934,7 +18819,7 @@ Pokud má číslice vymezená v poli Hodnota méně číslic než vybraný typ, Pole „Přírůstek“ se nepoužívá. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16972,13 +18857,41 @@ Ostatní pole se nepoužívají. Ostatní pole se nepoužívají. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Automatické číslování prvků - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17016,17 +18929,17 @@ Ostatní pole se nepoužívají. Ostatní pole se nepoužívají. - + New numbering… - + Rename numbering… - + Numbering conductors title window Automatické číslování vodičů @@ -19936,42 +21849,42 @@ Ostatní pole se nepoužívají. Rozmístění - + Bridging the terminals Propojit svorky - + Unbridge the terminals Rozpojit svorky - + Properties Vlastnosti - + Name: Název: - + Comment : Poznámka: - + Description Popis - + Plant: Instalace: - + Location : Umístění: @@ -19981,13 +21894,13 @@ Ostatní pole se nepoužívají. Typ: - + Ungroup the terminals Zrušit skupinu svorek - + Generic Obecný @@ -20027,22 +21940,67 @@ Ostatní pole se nepoužívají. Země - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Přesunout do: - + Phase Fáze - + Neutral Nulový - + Automatic position Automatická poloha @@ -20052,12 +22010,12 @@ Ostatní pole se nepoužívají. Stupeň: - + Group the terminals Seskupit svorky - + Function : Funkce: @@ -20072,17 +22030,17 @@ Ostatní pole se nepoužívají. S - + LED : LED: - + Independent terminals Nezávislé svorky - + Modify terminal strip properties Upravit vlastnosti svorkovnic @@ -20151,12 +22109,12 @@ Ostatní pole se nepoužívají. Svorka úrovně 0: - + Headser : Hlavička: - + Bridge point Bod přemostění @@ -20198,7 +22156,7 @@ Ostatní pole se nepoužívají. Header text - + Text záhlaví @@ -20218,15 +22176,55 @@ Ostatní pole se nepoužívají. Cross-reference + Křížový odkaz + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Výška - + Preview: Náhled: @@ -20289,52 +22287,57 @@ Ostatní pole se nepoužívají. TerminalStripModel - + Position Poloha - + Stage Stupeň - + Label Štítek - + Cross-reference Křížový odkaz - + Cable Kabel - + Color / wire number of the cable Barva/Číslo vodiče kabelu - + Type Typ - + Function Funkce - + led led - + + Shield + + + + Number wire Číslo vodiče @@ -21465,7 +23468,7 @@ Přiřazení názvu "volta" a hodnoty "1745" v záhlaví vý CSV files (*.csv) - + Soubory csv (*.csv) @@ -21649,32 +23652,42 @@ Přiřazení názvu "volta" a hodnoty "1745" v záhlaví vý Zobrazit křížek - + Label cross reference Štítek křížových odkazů - + Master Nadřízený - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Podřízený - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21691,115 +23704,141 @@ Přiřazení názvu "volta" a hodnoty "1745" v záhlaví vý %LM: umístění - + Option display cross Volba pro zobrazení křížku - + Show the power contacts in the cross Zobrazit výkonové kontakty v křížku - + Prefix of power contacts : Předpona výkonových kontaktů: - + Prefix delayed contacts : Předpona zpožděných kontaktů: - + Prefix changeover contacts : Předpona přepínacích kontaktů: - + Coil Cívka - + Organ of protection Ochrana - + Switch / button Přepínač/Tlačítko - + Programmable Logic Controller (PLC) - + + Cable + Kabel + + + Footer Zápatí - + Under the label of the element Pod označením prvku - + Top Nahoře - + Bottom Dole - + Left Vlevo - + Right Vpravo - + Text alignment Zarovnání textu - + Text field + + + Text: + Text: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Vyvést vnitřní projektovou databázi - + untitled Bez názvu diff --git a/lang/qet_da.ts b/lang/qet_da.ts index dc9d83f36..96aa13a5c 100644 --- a/lang/qet_da.ts +++ b/lang/qet_da.ts @@ -1158,6 +1158,23 @@ Bemærk: Disse muligheder VIL IKKE tillade eller blokere autonummereringer, kun + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Slet + + BorderPropertiesWidget @@ -1182,7 +1199,7 @@ Bemærk: Disse muligheder VIL IKKE tillade eller blokere autonummereringer, kun Format: - + Format: @@ -1213,16 +1230,1067 @@ Bemærk: Disse muligheder VIL IKKE tillade eller blokere autonummereringer, kun Custom - + Brugertilpasset Landscape - + Landskab Portrait + Portræt + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kabel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Installering (=) + + + + Location (+) + Placering (+) + + + + Type + Type + + + + Cores + + + + + Plant + Installere + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + inkludere overskrifter + + + + Preview + Oversigt + + + + cable_list_ + + + + + Save As... + Gem som... + + + + CSV files (*.csv) + CSV filer (*.csv) + + + + Error + Fejl + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Kabel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kabel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Type + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Installering (=) + + + + Location (+) + Placering (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Skrifttype: + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + Tekst fed + + + + Italic + Tekst skrå + + + + Bold italic + + + + + Style: + Typografi: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1269,13 +2337,13 @@ Bemærk: Disse muligheder VIL IKKE tillade eller blokere autonummereringer, kun Conductor - + Edit conductor properties undo caption Ændre leder egenskab - + Edit the properties of several conductors undo caption Ændre egenskab for flere ledere @@ -1331,7 +2399,7 @@ Bemærk: Disse muligheder VIL IKKE tillade eller blokere autonummereringer, kun Conductor color - + Leder farve @@ -1793,13 +2861,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Andet Unknown - + Ukendt @@ -1917,7 +2985,7 @@ Continue? Diagram - + Change the depth Diagram @@ -2054,6 +3122,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2065,7 +3150,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2073,7 +3158,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2196,224 +3281,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image et billede - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Vælg billede... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Fejl - + Unable to load the image. Kan ikke indlæse billede. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2444,106 +3559,139 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Leder farve DiagramView - + Paste Here context menu action Indsæt her - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Område hvor diagrammer designes ved at tilføje symboler og leder mellem terminaler. Det er også muligt at tilføje selvstændige tekster. - + Multiple paste Flere sammensætninger - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + Ark rapport + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Tilslutte valgte terminaler - + Untitled what to display for untitled diagrams Ikke navngivet - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Fejl - + The file could not be written. - + Choose the new color for this conductor Vælg ny farve til leder - + Edit conductor properties undo caption Ændre leder egenskab @@ -2982,7 +4130,7 @@ Hold Shift and drag to move this text on its own px - + piksel @@ -3144,7 +4292,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3639,8 +4787,8 @@ Continue? - - + + Type Type @@ -3723,8 +4871,8 @@ Continue? - - + + Function Funktion @@ -3756,7 +4904,7 @@ Continue? - + Simple Enkel @@ -3797,19 +4945,19 @@ Continue? - + Switch normally open Normal åben - + Switch normally closed Normal lukket - + switch Omskifter @@ -3825,25 +4973,25 @@ Continue? - + Power switch Effektbryder - + Switch-on delayed Forsinket tiltræk - + Switch-off delayed Forsinket frafald - + Switch-on and off delayed Forsinket tiltræk & frafald @@ -3869,7 +5017,7 @@ Continue? - + Generic Generisk @@ -3888,164 +5036,189 @@ Continue? Diode Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + Andet - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Kommentar - + Cross-reference - + Referencekors - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Ingen - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5034,7 +6207,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Eksport @@ -5418,97 +6591,127 @@ Tekst og nummer inddata er også tilgængelig. + Filter by label (e.g. Z1) + + + + Move to : Flyt til: - + Type : Type: - + Function : Funktion: - + LED : LED: - + Apply displacement Udfør flytning - - + + Generic Generisk - + Fuse Sikring - + Sectionable Sektionsbar - + Diod Diode - + Ground Jord - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutral - + Without Uden - + With Med - + Modify terminal strip properties Ænfre terminalrække egenskaber - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5554,17 +6757,17 @@ Tekst og nummer inddata er også tilgængelig. Brug systemfarver - + User Collection Path Sti til brugertilpasset samling - + User Title blocks Path Sti til brugertilpasset titelblok - + Path of the Common Collection Sti til fælles samling @@ -5586,6 +6789,7 @@ Tekst og nummer inddata er også tilgængelig. + Browse... Gennemse... @@ -5627,18 +6831,18 @@ Tekst og nummer inddata er også tilgængelig. min. - + Highlight freshly integrated elements in the panel Vis seneste integrerede symboler i panelet - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Hvert symbol indeholder oplysninger om forfattere, licens og andre oplysninger, som anses for nyttige i et frit felt. Her kan standardværdien angives for dette felt for de oprettede symboler: - + Applied to the next launch of QElectroTech Kræver QElectroTech genstart @@ -5678,32 +6882,32 @@ Her kan standardværdien angives for dette felt for de oprettede symboler:Katalog over brugertilpasset titelblokke - + Elements management Symbol håndtering - + Here you can define the default appearance of the different texts of QElectroTech Her kan standard udseende for de forskellige tekster i QElectroTech bestemmes - + Grid + Keyboard Gitter + tastatur - + Grid: 1 - 30 Gitter: 1 - 30 - + DiagramEditor xGrid Diagram redigering x gitter - + DiagramEditor yGrid Diagram redigering y gitter @@ -5887,8 +7091,11 @@ Her kan standardværdien angives for dette felt for de oprettede symboler: + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5899,149 +7106,217 @@ Her kan standardværdien angives for dette felt for de oprettede symboler: + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Sprog - + texts Tekster - + Elements texts Symbol tekste - - - + + + Font: Skrifttype: - - + + ° ° - + Length : Længde: - - + + Rotation : Rotere: - + Independent texts Uafhængige tekste - + Other texts Andre tekste - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Gitter skal være aktivt for at se ændringer. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Tastaturbevægelse: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Diagram redigering (taste: venstre/højre) x-gitter - + DiagramEditor (key: up / down) yGrid Diagram redigering (taste: op/ned) y-gitter - + Keyboard movement with the ALT key: 1 - 9 Tastaturbevægelse med ALT-tasten: 1 - 9 - + DiagramEditor (key: left / right) xGrid Diagram redigering (taste: venstre/højre) x-gitter - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Diagram redigering (taste: op/ned) x-gitter - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List @@ -6056,265 +7331,301 @@ Her kan standardværdien angives for dette felt for de oprettede symboler:Tillad visning ud over ark - + + Bold italic + + + + + Bold + Tekst fed + + + + Italic + Tekst skrå + + + + Normal + Normal + + + Rounding up for 0.5 and more Afrund til 0,5 og over - + Always top rounding Afrund altid op - + Always rounded down Afrund altid ned - + Rounding up for 0.75 and more Afrund til 0,75 og over - + No rounding Ingen afrunding - + Disabled fr: Désactivée - + Deaktiveret - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Generelt - + System System - + Arabic Arabisk - + Brazilian Brasiliansk - + Catalan Catalansk - + Czech Tjekkisk - + German Tysk - + Danish Dansk - + Greek Græsk - + English Engelsk - + Spanish Spansk - + French Fransk - + Croatian Kroatisk - + Italian Italiens - + Japanese Japansk - + Korean - + Polish Polsk - + Portuguese Portugisisk - + Romanian Rumænsk - + Russian Russisk - + Slovenian Slovensk - + Dutch Hollansk - + Norwegian Norsk - + Belgium-Flemish Belgisk-Flamsk - + Turkish Tyrkisk - + Hungarian Ungarsk - + Mongolian Mongolsk - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Company collection path - + Company title-blocks - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6323,50 +7634,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) CSV filer (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6376,6 +7705,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Venstre + + + + Right + Højre + + + + Top + Top + + + + Bottom + Bund + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Navn: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Navn + + + + Function + Funktion + + + + Type + Type + + + + Add terminal + + + + + Add gap + + + + + Delete + Slet + + + + Up + Top + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Generisk + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6503,135 +8171,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Formular + Formular - Display - Vise + Vise - Table name - Tabel navn + Tabel navn - None Ingen - All - Alle + Alle - Lines to display : - Synlige linjer: + Synlige linjer: - Y : - Y: + Y: - Next table - Følgende tabel + Følgende tabel - X : - X: + X: - Previous table - Forrige tabel + Forrige tabel - Previous table : - Nuværende tabel: + Nuværende tabel: - Geometry and lines - Geometri og linjer + Geometri og linjer - Apply geometry to all tables linked to this one - Anvend geometri på alle tilknyttede tabeller + Anvend geometri på alle tilknyttede tabeller - Fit table to sheet - Justere tabel til ark + Justere tabel til ark - TextLabel - Tekst etiket + Tekst etiket - Header - Hoved + Hoved - - Margin - Margin + Margin - Alignment : - Juster: + Juster: - - Left - Venstre + Venstre - - Center - Centrer + Centrer - - Right - Højre + Højre - - Font - Skrifttype + Skrifttype - Table - Tabel + Tabel - Alignment: - Juster: + Juster: - Content - Indhold + Indhold @@ -6749,6 +8387,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6808,7 +8469,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Etiket @@ -6964,76 +8625,48 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Formular + Formular - X : - X: + X: - Advanced Editor - Avanceret redigering + Avanceret redigering - Size : - Størrelse: + Størrelse: - Angle: - Vinkel: + Vinkel: - - - px - piksel + piksel - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Indhold, størrelse og skrifttype på tekst kan ikke ændres, da den er HTML formateret. + Indhold, størrelse og skrifttype på tekst kan ikke ændres, da den er HTML formateret. Brug avanceret redigering til dette. - Text - Tekst + Tekst - @@ -7041,9 +8674,8 @@ Brug avanceret redigering til dette. Skrifttype - Click here to cancel html formatting - Klik her for at annullere HTML formatering + Klik her for at annullere HTML formatering @@ -7480,7 +9112,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Udskriv @@ -7498,7 +9130,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Annuller @@ -7697,7 +9329,7 @@ Do you still want to link this slave contact? Cross-reference - + Referencekors @@ -7867,6 +9499,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7970,63 +9610,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Ark - + Conductor Leder - + Sheet references Ark rapport - + Cross-references Referencekors - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Leder - + Elements Symboler - + Sheets Ark - + + Cables + + + + Auto Numbering Autonummerering - + New sheet configuration page title Nyt ark - + New project configuration page title Nyt projekt @@ -8156,133 +9801,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Nummer format 1 - - - - + + + + number format 01 Nummer format 01 - - - - - + + + + + number format 001 Nummer format 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Tekst - - - - + + + + Sheet no. Ark nummer - - - - + + + + Sheet Ark - - - - + + + + number format 1 - Sheet Nummer format 1 - Ark - - - - + + + + number format 01 - Sheet Nummer format 01 - Ark - - - - + + + + number format 001 - Sheet Nummer format 001 - Ark - - - - + + + + Location Maskine placering - - - - + + + + Plant Installere - - - + + + Element Line Symbol linje - - - + + + Element Column Symbol kolonne - - - + + + Element Prefix Symbol præfiks @@ -8369,7 +10014,7 @@ Do you still want to link this slave contact? Change a rectangle - + Ændre rektangel @@ -8383,12 +10028,12 @@ Do you still want to link this slave contact? PartText - + Move a text Flyt tekst - + Edit the text field Ændre tekstfelt @@ -8396,12 +10041,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8804,7 +10449,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Udskriv @@ -8818,101 +10463,106 @@ Its copy was kept as: Autonummerering - + Management Håndtering - - + + Conductors Leder - + No. - + Name Navn - + Sheet Ark - + Element Symbol - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Symboler - - + + Sheets Ark - + + Cables + + + + Sheet Auto Numbering Ark autonummerering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8920,7 +10570,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8928,49 +10578,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8978,21 +10628,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9001,7 +10651,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9009,7 +10659,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9017,13 +10667,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Slet nummerering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9032,12 +10682,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9045,12 +10695,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9058,7 +10708,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9067,80 +10717,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Projekt QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9161,19 +10811,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Formular + Formular - Request - Forespørgsel + Forespørgsel - Reload - Genindlæs + Genindlæs @@ -9670,73 +11317,75 @@ Skal ændringer gemmes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET titelblokke - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Brugertilpasset titelblokke - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Fejl - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9745,121 +11394,178 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Afslut - + &Hide &Skjul - + &Show &Vis - + &Hide diagram editor &Skjul diagram redigering - + &Show diagram editors &Vis diagram redigering - + &Hide element editor &Skjul symbol redigering - + &Show element editor &Vis symbol redigering - + &Hide title block template editor systray submenu entry &Skjul titelblok redigering - + &Show title block template editors systray submenu entry &Vis titelblok redigering - + &New diagram editor &Nyt diagram redigering - + &New element editor &Nyt symbol redigering - + Closes QElectroTech Luk QElectroTech - + Reduces QElectroTech into the systray Minimer QElectroTech i statusfelt - + Restore QElectroTech Vis QElectroTech - + Diagram editors Diagram redigering - + Element editors Symbol redigering - + Title block template editors systray menu entry Titelblok redigering - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Brug: - + QElectroTech, an application to design electric diagrams. Available options: @@ -9876,7 +11582,7 @@ Kommandovalg: - + [options] [file]... @@ -9885,112 +11591,112 @@ Kommandovalg: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Angiv mappe for symbol samling - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Angiv mappe for titelblokke skabelon samling - + --config-dir=DIR Define configuration directory --config-dir=DIR Angiv mappe for opsætning - + Loading... Initializing the elements collection cache splash screen caption Indlæser... Initialiser mellemlager for symbol samlinger - + Loading... Sheets editor splash screen caption Indlæser... Diagram redigering - + Loading... Opening files splash screen caption Indlæser... Åbning af filer - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Diagram - + Electric Normal example text - translate length, not meaning Elektrisk - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Opsæt QElectroTech - + Loading... splash screen caption Indlæser... - + Loading... Systray icon splash screen caption Indlæser... Ikon til statusfelt - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Mappe med sprogfiler @@ -10000,1401 +11706,1495 @@ Kommandovalg: QETDiagramEditor - + Displ&ay &Vis - + Show or hide the elements panel Vis eller skjul symbol panel - + Add a column Tilføj kolonne - + &Cascade &Overlappet - + &Paste &Indsæt - + &Copy K&opier - + Cu&t &Klip - + Select none Vælg ingen - + &Edit &Redigere - + Remove a column Slet kolonne - + &Save &Gem - + Save as Gem som - + &Export &Eksport - + Wi&ndows &Vinduer - - + + &Close &Luk - + &File &Filer - + Print Udskriv - + Invert selection Vælg modsat - + Select Vælg - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Vinduet viser de forskellige ændringer, der udføres på nuværende ark. Klik på en ænding for at vende tilbage til tidligere tilstand. - + Display the grid Vis gitter - + Display or hide the grid of sheet Vis eller skjul ark gitter - + Sheet properties Ark egenskab - + Add a sheet Tilføj ark - - - + + + Delete this sheet Slet ark - + Move Vise - + &Tile &Side om side - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Diagram redigering - + Export in pdf Eksportere som PDF - + Export one or more sheets of the current project status bar tip Eksportere et eller flere ark fra nuværende projekt - + View the guides - + Shows or hides the guides - + Export to CSV Eksportere som CSV format - + Terminal block manager (DEV) Terminalrække håndtering (DEV) - + Launch the terminal block creation plugin Starte udvidelsesmodul til opretning af terminalblokke - + Export the list of names of wires Eksportere liste med navne på ledere - + Export the wiring diagram - + Automatic numbering of terminals - + Export the internal project database Eksportere intern projekt database - + &New &Ny - + Creates a new project status bar tip Opret nyt projekt - + Opens an existing project status bar tip Åbn eksisterende projekt - + Closes the current project status bar tip Luk nuværende projekt - + Saves the current project and all its sheets status bar tip Gem nuværende projekt og alle ark - + Saves the current project with a different file name status bar tip Gem nuværende projekt under andet filnavn - + Add row Add row Tilføj linje - + Remove a row Remove row Slet linje - + Add a column to the sheet status bar tip Tilføj kolonne til ark - + Remove a column from the sheet status bar tip Slet kolonne fra ark - + Expands the sheet height status bar tip Udvid ark højde - + Shrinks the sheet height status bar tip Indskrænk ark højde - + Removes selected elements from the sheet status bar tip Slet symbol fra ark - + Selects all elements on the sheet status bar tip Væg alle symboler på ark - + Deselect all elements on the sheet status bar tip Vælg ingen symboler på ark - + Expand the sheet status bar tip Udvid ark - + Shrinks the sheet status bar tip Indskrænk ark - + Adjusts the zoom to display all the contents of sheet regardless of context Tilpas visning til indhold uanset ark ramme - + Adjusts the zoom on exactly the part of the sheet status bar tip Tilpas visning til ark - + Add line Draw line Tilføj linje - + Add a rectangle Tilføj rektangel - + Add an ellipse Tilføj cirkel - + Add a polygon Tilføj flerkant - + Exports the current sheet to another format status bar tip Eksportere nuværende ark til andet format - + Prints one or more sheet of the current project status bar tip Udskriv et eller flere ark fra nuværende projekt + - Depth toolbar title Placeringsniveau - + Group Gruppe - + Pastes elements from the clipboard into the sheet status bar tip Indsæt symboler fra udklipsholder på ark - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Rediger ark egenskab (størrelse, titelblok information, leder egenskab etc.) - + Allows to view the sheet without modifying it status bar tip Tillader skrivebeskyttet ark visning + - Tools Værktøjer - + &Open &Åbn - + Open a file Åbn fil - + Reset zoom Nulstil - + Rotate Roter - + &Quit &Afslut - + Delete Slet - + Select All Vælg alle - + Fit in view Tilpas ark - + Zoom Out Formindsk - + Zoom In Forstør - + Undo Fortryd - + Redo Gendan - + Reset conductors Nulstil leder - + Display or hide the main toolbar Vis eller skjul værktøjslinje - + Display or hide the Display toolbar Vis eller skjul værktøjslinjen Vis - + Display or hide the Diagram toolbar Vis eller skjul værktøjslinjen Diagram + - Display Vise + - Diagram Diagram - + Add a textfield Tilføj tekstfelt - + No modification Ingen ændring - + Display or hide the undo list Vis eller skjul gendan liste - + Edit the selected item Rediger emne - + Group selected texts Gruppere valgte tekste - + Rotate selected elements and texts status bar tip Roter symbol og tekst - + Rotate selected texts to a specific angle status bar tip Roter tekst til vinkel - + Search / Replace Søg/erstat - + &Project &Projekter - + &Latest files &Senest åbnet - - + + Project %1 registered in the directory: %2. Projekt %1 registreret i bibliotek: %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Skrivebeskyttet fil forsøgt åbnet. Kontroller fil rettigheder. - + The project you try to open does not seem writable. It will be opened read-only. Projekt åbnes skrivebeskyttet. - + using tabs faneblade - + using windows vinduer - + Display projects Vis projekt - + Project properties Projekt egenskab - + Clean project Ryd op i projekt - - + + Unable to open project message box title Projekt kan ikke åbnes - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content %1 er ikke en QElectroTech projekt fil. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Annuleringer - + Click an action to get back in the changes you made to your diagram Status tip Klik på en ændring for at komme tilbage i diagram ændringer - + Choose texts orientation Vælg tekst retning - + Find in the panel Find i panel - + Add a picture Tilføj billede - + Add a summary Tilføj oversigt - + Zoom content Tilpas indhold - + Closes QElectroTech status bar tip Luk QElectroTech - + Undoes the previous action status bar tip Fortryd foregående handling - + Restores the undone action status bar tip Gendan fortrudt handling - + Puts selected elements into the clipboard status bar tip Kopier symboler til udklipsholder - + Copies selected elements status bar tip Kopier symboler fra udklipsholder - + Inverts selection of elements status bar tip Vælger modsat - + Find the selected item in the panel status bar tip Find symbol i panel - + Reset the conductors path ignoring the user changes status bar tip Genberegn leder rute uanset ændringer - + Automatic creation conductor (s) Tool tip of auto conductor Opret automatisk leder - + Projects dock title Projekter - + Collections Samlinger - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Brug automatisk opret af leder hvor det er muligt - + Restores default zoom level status bar tip Gendan standard visning - + Shows the various opened projects in windows status bar tip Vis åbne projekter i vinduer - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Deaktiveret - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Vis - + Element texts - + Conductor texts - + Text fields - + Tekstfelter - + Shapes - + Pictures - + Tables - + Cross-references Referencekors - + See Display > Show - + Add a nomenclature Tilføje en BOM - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Wiring list (database) - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip Vis åbne projekter i faneblade - + Allows to select elements status bar tip Tillader symbol valg - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Gruppe - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + Tilføj cirkelbue - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Tilføje tekstfelt til det aktuelle ark - + Add an image to the current sheet Tilføje billede til det aktuelle ark - + Adds a PDF page to the current sheet - + Add a line to the current sheet Tilføje linje til det aktuelle ark - + Adds a rectangle on the current sheet Tilføje rektangel til det aktuelle ark - + Add an ellipse to the current sheet Tilføje elipse til det aktuelle ark - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Tilføje flerkant til det aktuelle ark - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add Tilføj - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth Placeringsniveau - - + + Scripts - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech projekter (*.qet);; XML-filer (*.xml);; Alle filer (*) - - + + Unable to open file message box title Kan ikke åbne filen - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Fil %1 findes ikke. - + Opening the file read-only message box title Projekt åbnes skrivebeskyttet - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11403,7 +13203,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11412,24 +13212,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11440,18 +13240,18 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + %n items put back on the grid @@ -11459,7 +13259,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11467,22 +13267,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11490,100 +13290,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Rediger symbol - + Edit the text field edit text field Rediger tekstfelt - + Edit the image edit image Rediger billede - + Edit conductor edit conductor Rediger leder - + Edit the selected object edit selected item Rediger objekt - + An error occurred while opening file %1. message box content Der opstod en fejl under åbning af fil %1. - + Activates the project « %1 » Aktiver projekt « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Fejl - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11591,7 +13391,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11599,7 +13399,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11607,18 +13407,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11627,28 +13427,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11656,12 +13456,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11671,53 +13471,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11725,41 +13525,41 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Arranges windows in a tile pattern status bar tip Arranger vinduer side om side - + Arranges windows in a cascade pattern status bar tip Arranger vinduer overlappet - + Next project Næste projekt - + Previous project Foregående projekt - + Activates the next project status bar tip Aktiver næste projekt - + Activates the previous project status bar tip Aktiver foregående projekt @@ -12337,7 +14137,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Element editors - + Symbol redigering @@ -12747,58 +14547,58 @@ betingelser ikke gyldig QETProject - + Warning message box title Advarsel - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Untitled project displayed title for a project-less, file-less project Ikke navngivet projekt - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [skrivebeskyttet] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [ændret] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12806,50 +14606,50 @@ Do you wish to continue? - + An error occurred during the template integration. error message Der opstod fejl under integration af skabelon. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title Advarsel - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Åbning af projekt...</b><br/>Oprettelse af ark:</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Åbning af igangværende projekt...</b><br/>Opsætning af referencekors</p> @@ -12875,178 +14675,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Gem nuværende skabelon? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Gem skabelon %1? - + new_template template name suggestion when duplicating the default one ny_skabelon - + Duplicate a title block template input dialog title Dupliker titelblok skabelon - + In order to duplicate this template, please enter a name for its copy input dialog text For at duplikér skabelon indtast et navn for kopi - + &New menu entry &Ny - + &Open menu entry &Åbn - + Open from a file menu entry Åbn fra fil - + &Save menu entry &Gem - + Save as menu entry Gem som - + Save to a file menu entry Gem til fil - + &Quit menu entry &Afslut - + Manage logos menu entry Rediger logo - + Zoom In menu entry Forstør - + Zoom out menu entry Formindsk - + Fit in view menu entry Tilpas ark - + Reset zoom menu entry Nulstil - + Save as dialog title Gem som - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech titelblokke skabeloner (*%1) - + &Merge cells menu entry &Flet celler - + Cu&t menu entry &Klip - + &Copy menu entry K&opier - + &Paste menu entry &Indsæt - + Edit extra information menu entry Rediger informationer - + Add a &row menu entry Tilføj &linje - + Add a &column menu entry Tilføj &kolonne - + &Split cells menu entry &Adskil celler - - - - - - - - - - @@ -13056,145 +14846,155 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Titelblok redigering - + &File menu title &Filer - + &Edit menu title &Rediger - + Displ&ay menu title &Vise - + Tools toolbar title Værktøjer - + Edit toolbar title Rediger - + Display toolbar title Vise - + No modification label displayed in the undo list when empty Ingen ændring - + Undo dock title Funktion beskrivende oversættelse Redigeringshistorik - + Cell properties dock title Celle egenskab - + [Changed] window title tag [Ændret] - + [Read only] window title tag [Skrivebeskyttet] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Titelblok skabelon redigering - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Fejl - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Åbne skabelon - + Open a file dialog title Åbne fil - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech titelblokke skabeloner (*%1);;XML filer (*.xml);;Alle filer (*) - + Save template as dialog window title Gem skabelon som - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title Rediger informationer - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Feltet kan bruges til titelblok forfatter, licens eller andre relevante informationer. @@ -13234,7 +15034,7 @@ What do you wish to do ? Tekst fil indeholdende GNU/GPL licens kunne ikke findes? - + Warning: the element has been saved with a more recent version of QElectroTech. Advarsel: symbol er gemt med nyere version af QElectroTech. @@ -13255,7 +15055,7 @@ What do you wish to do ? et grafik symbol - + delete %1 undo caption - %1 is a sentence listing the removed content Slette %1 @@ -13763,7 +15563,7 @@ What do you wish to do ? - + Title Titel @@ -13779,18 +15579,18 @@ What do you wish to do ? Projekt egenskab - + Select an image ... Vælg billede... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Billedfiler (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13799,7 +15599,7 @@ What do you wish to do ? Fejl - + Unable to load the image. Kan ikke indlæse billede. @@ -13840,8 +15640,8 @@ What do you wish to do ? Terminal - + Text Tekst @@ -13857,7 +15657,7 @@ What do you wish to do ? Rediger oplysninger for flere symboler - + Edit the cross reference edite the cross reference Rediger referencekors @@ -13957,12 +15757,12 @@ the translated name of this folder could not be read, so its folder name is disp Samling - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14030,8 +15830,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14212,45 +16012,45 @@ Do you want to replace it ? - + - + Type Type - + - + Address - - - - + + + + Annotation Kommentar - - - - + + + + Cross-reference - + Referencekors - - - - + + + + Function Funktion @@ -14585,45 +16385,55 @@ Do you want to replace it ? Oprette ledere - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> For at installere udvidelsesmodul qet_tb_generator<br>Besøg: <a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Kræver python 3.5 eller over.<br><B><U>Første installering på Windows</B></U><br>1. Installere, hvis påkrævet, python 3.5 eller over<br>Besøg:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip installere qet_tb_generator<br><B><U>Opdatere på Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>brugeren kan i en terminal udføre dette skript i følgende mappe<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> For at installere udvidelsesmodulet qet_tb_generator<br>Besøg:<br> <a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a> <br> <br>Kræver python 3.5 eller nyere.<br> <br> <B> <U>Første installation på Linux</B> </U> <br>1. kontrllere, at pip3 er installeret: pip3 --version<br>Hvis ikke, installere med: sudo apt-get install python3-pip<br>2. installere programmet: sudo pip3 install qet_tb_generator<br>3. kør programmet: qet_tb_generator<br> <br> <B> <U>Opdatering på Linux</B> </U> <br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Fejl ved opstart af qet_tb_generator udvidelsesmodul - + Add a nomenclature Tilføje en BOM - + Add a summary Tilføj oversigt + + + Add a cable list + + + + + Cable list + + Paste Indsæt - + + - - + @@ -14664,83 +16474,113 @@ Do you want to replace it ? Sorter terminalrække %1 - - + + Generic generic terminal element type Generisk - + Fuse fuse terminal element type Sikring - + Sectionable sectional terminal element type Sektionsbar - + Diode diode terminal element type Diode - + Ground ground terminal element type Jord - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Generisk - + Phase phase terminal element function Fase - + Neutral neutral terminal element function Neutral - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14775,7 +16615,7 @@ Do you want to replace it ? Importer dxf fil - + Default layout @@ -14948,8 +16788,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15094,88 +16934,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 Tilføj %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Ændre tekstfelt farve - + Rotate a text - + Edit line of a form Ændre streg i form - + Edit filling a form Ændre fyld i form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Ændre symbol tekst - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15227,7 +17067,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Ark @@ -15276,26 +17116,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Oplysninger, der skal vises, er større end maksimal mængde, der kan vises i tabel. Tilføj ny tabel, eller juster eksisterende tabel for at vise alle oplysninger. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Oplysninger, der skal vises, er større end maksimal mængde, der kan vises i tabel. Tilføj ny tabel, eller juster eksisterende tabel for at vise alle oplysninger. - + Table limitation Tabel begrænsning - + Modify the geometry of a table Ændre tabel geometri @@ -15354,12 +17194,12 @@ nothing has been changed. QetShapeItem - + an shape en figur - + a line streg @@ -15630,78 +17470,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Ændre %1 - + rectangle rektangel - + an ellipse cirkel - + an arc - + polyline en flerkant - + a curve @@ -15750,6 +17590,14 @@ nothing has been changed. Ændre rektangel + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15788,6 +17636,17 @@ nothing has been changed. Symbol « %1 » findes allerede. Hvad skal ske? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16348,7 +18207,7 @@ Opret tekst ved hjælp af følgende variabler: &Delete - + &Slet @@ -16800,28 +18659,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Ark autonummerering - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16850,7 +18719,7 @@ Feltet "Incrementation" anvendes ikke. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16889,13 +18758,41 @@ De andre felter anvendes ikke. De andre felter anvendes ikke. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16917,17 +18814,17 @@ The other fields are not used. - + New numbering… - + Rename numbering… - + Numbering conductors title window Leder autonummerering @@ -19835,42 +21732,42 @@ The other fields are not used. Arrangement - + Bridging the terminals Terminal bro - + Unbridge the terminals Fjern terminaler - + Properties Egenskaber - + Name: Navn: - + Comment : Kommentar: - + Description Beskrivelse - + Plant: Installeret: - + Location : Placering: @@ -19880,13 +21777,13 @@ The other fields are not used. Type: - + Ungroup the terminals Opret terminalgruppe - + Generic Generisk @@ -19926,22 +21823,67 @@ The other fields are not used. Jord - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Flyt til: - + Phase Fase - + Neutral Neutral - + Automatic position Automatisk position @@ -19951,12 +21893,12 @@ The other fields are not used. Lag: - + Group the terminals Grupper terminaler - + Function : Funktion: @@ -19971,17 +21913,17 @@ The other fields are not used. Med - + LED : LED: - + Independent terminals Uafhængige terminaler - + Modify terminal strip properties Ænfre terminalrækker egenskaber @@ -20050,12 +21992,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20097,7 +22039,7 @@ The other fields are not used. Header text - + Overskrift tekst @@ -20117,15 +22059,55 @@ The other fields are not used. Cross-reference + Referencekors + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20188,52 +22170,57 @@ The other fields are not used. TerminalStripModel - + Position Placering - + Stage Lag - + Label Etiket - + Cross-reference Referencekors - + Cable Kabel - + Color / wire number of the cable Ledningsfarve/-nummer - + Type Type - + Function Funktion - + led LED - + + Shield + + + + Number wire Leder nummer @@ -21362,7 +23349,7 @@ Eksempel: forbind navn "volta" og værdi "1745" erstat %{vol CSV files (*.csv) - + CSV filer (*.csv) @@ -21546,32 +23533,42 @@ Eksempel: forbind navn "volta" og værdi "1745" erstat %{vol Vis kors - + Label cross reference Referencekors etiket - + Master Overordnet - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Underordnet - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21588,115 +23585,141 @@ Eksempel: forbind navn "volta" og værdi "1745" erstat %{vol %LM: placering - + Option display cross Vis kors indstillinger - + Show the power contacts in the cross Vis hovedkontakter i kors - + Prefix of power contacts : Præfiks hovedkontakter: - + Prefix delayed contacts : Præfiks tidskontakter: - + Prefix changeover contacts : Præfiks skiftekontakter: - + Coil Relæ - + Organ of protection Person beskyttelse - + Switch / button Kontakt / knap - + Programmable Logic Controller (PLC) - + + Cable + Kabel + + + Footer Sidefod - + Under the label of the element Under symbol etiket - + Top Top - + Bottom Bund - + Left Venstre - + Right - + Højre - + Text alignment Justere tekst - + Text field + + + Text: + Tekst: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Eksportere intern projekt database - + untitled ikke_navngivet diff --git a/lang/qet_de.ts b/lang/qet_de.ts index 6eefdced3..a98faa095 100644 --- a/lang/qet_de.ts +++ b/lang/qet_de.ts @@ -1163,6 +1163,23 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.%1 (die neueste) + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Löschen + + BorderPropertiesWidget @@ -1231,6 +1248,1059 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren.Hochformat + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kabel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + Suchen: + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + Neuer Eintrag + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Anlage (=) + + + + Location (+) + Ort (+) + + + + Type + Typ + + + + Cores + + + + + Plant + Anlage + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + In die Datei konnte nicht geschrieben werden: +%1 +%2 + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Überschriften einschließen + + + + Preview + Vorschau + + + + cable_list_ + + + + + Save As... + Speichern unter... + + + + CSV files (*.csv) + + + + + Error + Fehler + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + Nr. + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Länge + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Abbrechen + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Ja + + + + No + Les noms saisis à la main sont laissés tels quels. + Nein + + + + Cancel + Ne renumérote rien du tout. + Abbrechen + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Ja + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Nein + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Abbrechen + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Kabel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kabel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Typ + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Anlage (=) + + + + Location (+) + Ort (+) + + + + Length + Länge + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + x: + + + + Y : + y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Schriftart: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + fett + + + + Italic + kursiv + + + + Bold italic + + + + + Style: + Stil: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Ausrichtung: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Vorschau: + + + + Reset + Zurücksetzen + + + + CableTypeEntryDialog + + + New entry + Neuer Eintrag + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + Speichern + + + + Cancel + Abbrechen + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + Die Datei existiert bereits und ist nicht leer. + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1274,13 +2344,13 @@ Bemerkung: diese Optionen verhindern NICHT das automatische Nummerieren. Conductor - + Edit conductor properties undo caption Leitereigenschaften ändern - + Edit the properties of several conductors undo caption Eigenschaften von mehreren Leitern ändern @@ -1926,7 +2996,7 @@ Fortfahren? Diagram - + Change the depth Ebene der Auswahl bearbeiten @@ -2063,6 +3133,23 @@ Fortfahren? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2082,7 +3169,7 @@ Fortfahren? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Klicken Sie, um einzufügen, ESC oder rechte Maustaste zum Abbrechen. @@ -2205,224 +3292,254 @@ Fortfahren? DiagramImageItem - + resize Größe anpassen - + rotate/skew drehen/neigen - + + crop + + + + Click: mode %1 Klicken: Modus %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Eine Ecke/Kante ziehen: Größe ändern (Strg = vom Mittelpunkt aus, Umschalt = Proportionen beibehalten) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Eine Ecke verschieben: drehen (Umschalt = in 15°-Schritten); eine Kante verschieben: neigen (Umschalt = in 15°-Schritten); roter Punkt: Drehpunkt verschieben - + -- %1: mode %2 -- %1: Modus %2 - + Click Klicken - + Drag: resize (Shift = keep proportions, Ctrl = from center) Ziehen: Größe ändern (Umschalt = Proportionen beibehalten, Strg = vom Mittelpunkt aus) - + Drag: rotate (Shift = 15° steps) Ziehen: Drehen (Umschalt = in 15°-Schritten) - + Drag: skew (Shift = 15° steps) Ziehen: Neigung ändern (Umschalt = in 15°-Schritten) - + Drag: move the rotation center Ziehen: Den Drehpunkt verschieben - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image Die Größe eines Bildes ändern - + Rotate an image Ein Bild drehen - + Skew an image Ein Bild neigen - + Move an image's rotation center Den Drehpunkt eines Bildes verschieben - + Edit an image Ein Bild bearbeiten - + Restore an image's proportions Die Proportionen eines Bildes wiederherstellen - - + + Save image as... Bild speichern unter... - - + + Save original image as... Das Originalbild speichern unter... - + PNG image (*.png) PNG-Bild (*.png) - + JPEG image (*.jpg *.jpeg) JPEG-Bild (*.jpg *.jpeg) - + BMP image (*.bmp) BMP-Bild (*.bmp) - + SVG image (*.svg) SVG-Bild (*.svg) - + All files (*) Alle Dateien (*) - + Transparency not preserved Transparenz nicht erhalten - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? Dieses Format unterstützt keine Transparenz: Das Bild wird so gespeichert, wie es vor dem Anwenden der transparenten Farbe aussah. Möchten Sie fortfahren? - + Saving failed Die Registrierung ist fehlgeschlagen - + Unable to save the image to this location. Das Bild kann an diesem Speicherort nicht gespeichert werden. - + image eines Bildes - + Replace the image... Bild ersetzen... - + Transparent color... Transparente Farbe... - + + Crop on the folio + + + + Crop... Zuschneiden... - + + Reset crop + + + + Horizontal mirror Horizontaler spiegeln - + Vertical mirror vertikal spiegeln - + Restore proportions Proportionen wiederherstellen - + + Properties... + + + + Select an image ... Ein Bild auswählen... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Bilddateien (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Fehler - + Unable to load the image. Laden vom Bild fehlgeschlagen. - + Replace an image Ein Bild ersetzen - + Horizontal mirror of an image Horizontale Spiegelung eines Bildes - + Vertical mirror of an image Vertikale Spiegelung eines Bildes - + Set a transparent color Eine transparente Farbe festlegen - + Crop an image Ein Bild zuschneiden @@ -2454,22 +3571,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size Größe der Griffe - + Text grid Textraster - + Sheet background color Hintergrundfarbe der Seite - + Conductor color Leiterfarbe @@ -2477,46 +3594,51 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip In diesem Bereich entwerfen Sie Ihre Schaltpläne, indem Sie Elemente hinzufügen und Leiter zwischen Anschlüssen verlegen. Es ist auch möglich, unabhängige Texte hinzuzufügen. - + Paste Here context menu action Hier einfügen - + Multiple paste Mehrfach einfügen - + Create a template context menu action Vorlage erstellen - + Make a cabinet thumbnail context menu action Schaltschrank-Miniaturansicht erzeugen - + Sheet reference Seitenverweis - + + %1: %2 + + + + Add an image Ein Bild hinzufügen - + Add %n image(s) %n Bild hinzufügen @@ -2524,60 +3646,65 @@ Hold Shift and drag to move this text on its own - + Images not added Bilder nicht hinzugefügt - + These files could not be added: Diese Dateien konnten nicht hinzugefügt werden: - + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Ausgewählte Anschlüsse verbinden - + Untitled what to display for untitled diagrams Ohne Titel - + + Remove this core from the line + + + + Registered template Vorlage erstellt - + The template has been successfully saved as : %1 Die Vorlage wurde erfolgreich gespeichert unter %1 - + Error Fehler - + The file could not be written. Die Datei konnte nicht geschrieben werden. - + Choose the new color for this conductor Neue Leiterfarbe wählen - + Edit conductor properties undo caption Leitereigenschaften ändern @@ -3178,7 +4305,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Ein Element automatisch nummerieren @@ -3682,8 +4809,8 @@ Fortfahren? - - + + Type Typ @@ -3766,8 +4893,8 @@ Fortfahren? - - + + Function Funktion @@ -3799,7 +4926,7 @@ Fortfahren? - + Simple Einzelbauteil @@ -3840,19 +4967,19 @@ Fortfahren? - + Switch normally open Schliesser - + Switch normally closed Öffner - + switch Wechsler @@ -3868,25 +4995,25 @@ Fortfahren? - + Power switch Leistung - + Switch-on delayed anzugverzögert - + Switch-off delayed abfallverzögert - + Switch-on and off delayed Anzug- und Abfallverzögert @@ -3912,7 +5039,7 @@ Fortfahren? - + Generic Generisch @@ -3931,164 +5058,189 @@ Fortfahren? Diode Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Phase - + Neutral Neutralleiter - - - - - + + + + + T%1 T%1 - + Other fr: Autre Andere - + PLC Configuration SPS-Konfiguration - + + + - + - - - - + + Address Adresse - - + + Annotation Kommentar - + Cross-reference Querverweis - - + + Nb. Anzahl - + T1 T1 - + Header font Schriftart der Überschriften - + Set the font for column headers Schriftart für Spaltenüberschriften festlegen - + Text font Schriftart des Textes - + Set the text font in the cells Schriftart des Textes in den Zellen festlegen - + Show headers on the sheet Kopfzeilen auf dem Blatt anzeigen - + Show or hide the column headings of the PLC table on the sheet Spaltenüberschriften der SPS-Tabelle auf dem Blatt anzeigen oder ausblenden - + Jump to %1 after: Sprung %1 danach: - + None Keine - + Line H: Zeilenhöhe: - - + + mm mm - + Ref. Querverweis - + Custom column name (blank = default) Benutzerdefinierter Spaltenname (leer = Standard) - + Visible Sichtbar - + Paste from the clipboard Aus der Zwischenablage einfügen - - + + Heading font size: %1 %2pt Schriftgröße der Überschriften: %1 %2pt - - + + Font size: %1 %2pt Schriftgröße: %1 %2pt - + Column header formatting Schriftart der Spaltenüberschriften - + Cell text font Schriftart des Zelltextes @@ -5093,7 +6245,7 @@ Mit dem Import dieser Datei bestätigen Sie, dass: ExportConfigPage - + Export configuration page title Exportieren @@ -5477,97 +6629,127 @@ Texte und Zahlen sind ebenso erlaubt. + Filter by label (e.g. Z1) + + + + Move to : Verschieben nach: - + Type : Typ: - + Function : Funktion: - + LED : LED: - + Apply displacement Verschieben anwenden - - + + Generic Generisch - + Fuse mit Sicherung - + Sectionable Trennklemme - + Diod Diode - + Ground Erde - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Aussenleiter - + Neutral Neutralleiter - + Without ohne - + With mit - + Modify terminal strip properties Eigenschaften der Klemmleiste ändern - + The project has no terminal strip: create one with the + button Das Projekt hat keine Klemmenleiste: Erstellen Sie eine mit der Schaltfläche + - + Apply or cancel the current changes before moving Übernehmen oder verwerfen Sie die aktuellen Änderungen, bevor Sie den Ordner verschieben - + Select the terminals to move in the table Wählen Sie in der Tabelle die zu verschiebenden Klemmen aus - + Move the selected terminals to the chosen terminal block Die ausgewählten Klemmen an die ausgewählte Klemmenleiste verschieben @@ -5613,17 +6795,17 @@ Texte und Zahlen sind ebenso erlaubt. Farben vom Betriebssystem verwenden - + User Collection Path Pfad zur Benutzersammlung - + User Title blocks Path Pfad zu den Benutzer-Schriftfeldern - + Path of the Common Collection Pfad zur QET Sammlung @@ -5645,6 +6827,7 @@ Texte und Zahlen sind ebenso erlaubt. + Browse... Auswählen... @@ -5686,18 +6869,18 @@ Texte und Zahlen sind ebenso erlaubt. min - + Highlight freshly integrated elements in the panel Neu zum Projekt hinzugefügte Bauteile in der Sammlung hervorheben - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Jedes Bauteil enthält Informationen über den Autor, die Lizenz und weiteren nützlichen Hinweise in einem frei definierbaren Textfeld. Hier unten kann der Standardwert dieses Textfeldes für Ihre eigenen Bauteile definiert werden: - + Applied to the next launch of QElectroTech Wirksam nach einem Neustart von QElectroTech @@ -5737,32 +6920,32 @@ Hier unten kann der Standardwert dieses Textfeldes für Ihre eigenen Bauteile de Pfad zu den Benutzer-Schriftfeldern - + Elements management Bauteilverwaltung - + Here you can define the default appearance of the different texts of QElectroTech Einstellungen für die Standarddarstellung der verschiedenen Texte - + Grid + Keyboard Raster & Tastatur - + Grid: 1 - 30 Raster: 1 - 30 - + DiagramEditor xGrid Schaltplaneditor, Schrittweite x - + DiagramEditor yGrid Schaltplaneditor, Schrittweite y @@ -5946,8 +7129,11 @@ Hier unten kann der Standardwert dieses Textfeldes für Ihre eigenen Bauteile de + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet Nicht konfiguriert @@ -5958,149 +7144,217 @@ Hier unten kann der Standardwert dieses Textfeldes für Ihre eigenen Bauteile de + Create... Erstellen... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Sprachen - + texts Texte - + Elements texts Bauteiltexte - - - + + + Font: Schriftart: - - + + ° ° - + Length : Länge: - - + + Rotation : Drehung: - + Independent texts Unabhängige Textfelder - + Other texts Sonstige Texte - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Änderungen sind nur sichtbar, wenn das Raster aktiviert ist. - + Grid for texts moved with the mouse Raster der mit der Maus verschobenen Texte - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Rasterteil der Seiten. Halten Sie beim Verschieben die Strg-Taste gedrückt, um die Elemente frei zu platzieren. - + Keyboard movement: 1 - 30 Bewegung mittels Tastatur: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Schaltplaneditor (rechts/links Tasten), Schrittweite x - + DiagramEditor (key: up / down) yGrid Schaltplaneditor (hoch/runter Tasten), Schrittweite y - + Keyboard movement with the ALT key: 1 - 9 Bewegung mittels Tastatur und ALT Taste: 1 - 9 - + DiagramEditor (key: left / right) xGrid Schaltplaneditor (rechts/links Tasten), Schrittweite x - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Schaltplaneditor (hoch/runter Tasten), Schrittweite y - + View grid Anzeige Raster - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). Beim Speichern eines Bauteils: zwei Anschlüsse mit demselben Namen ablehnen und Anschlüsse ohne Namen melden (IEC 61666). - + Check terminal names when saving Anschlussnamen beim Speichern prüfen - + Point-size in diagram-editor: 1 - 5 Punktgröße im Schaltplaneditor: 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Punktgröße im Element-Editor: 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Max. Anzahl in der Element Editor Liste @@ -6115,220 +7369,256 @@ Hier unten kann der Standardwert dieses Textfeldes für Ihre eigenen Bauteile de Ansicht verkleinern über die Seite hinaus erlauben - + + Bold italic + + + + + Bold + fett + + + + Italic + kursiv + + + + Normal + + + + Rounding up for 0.5 and more ab 0,5 aufrunden - + Always top rounding immer aufrunden - + Always rounded down immer abrunden - + Rounding up for 0.75 and more ab 0,75 aufrunden - + No rounding nicht runden - + Disabled fr: Désactivée Deaktiviert - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Wird durch die Umgebungsvariable QET_ENABLE_SCRIPTING aktiviert; diese Einstellung hat keine Auswirkung, solange sie gesetzt ist. - + Not set (default: %1) hint shown in the material file field when no file is configured yet Nicht konfiguriert (Standard: %1) - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + Nicht konfiguriert (Standard: %1) + + + General configuration page title Allgemein - + System System - + Arabic Arabisch - + Brazilian Brasilianisch - + Catalan Katalanisch - + Czech Tschechisch - + German Deutsch - + Danish Dänisch - + Greek Grieschisch - + English Englisch - + Spanish Spanisch - + French Französisch - + Croatian Kroatisch - + Italian Italienisch - + Japanese Japanisch - + Korean Koreanisch - + Polish Polnisch - + Portuguese Portugesisch - + Romanian Rumänisch - + Russian Russisch - + Slovenian Slowenisch - + Dutch Niederländisch - + Norwegian Norwegisch - + Belgium-Flemish Belgien-Flandern - + Turkish Türkisch - + Hungarian Ungarisch - + Mongolian Mongolisch - + Ukrainian Ukrainisch - + Chinese Chinesisch - + Swedish Schwedisch - + + Cable text font + + + + + Core colors font + + + + Company collection path Pfad zur Firmen-Sammlung - + Company title-blocks Firmen-Schriftfelder - + User macro path Pfad zu den Benutzer-Vorlagen - + Folder not found Verzeichnis nicht gefunden - + The user collection folder: %1 does not exist and could not be created. @@ -6337,12 +7627,12 @@ does not exist and could not be created. existiert nicht und konnte nicht erstellt werden. - + No subfolder Kein Unterordner - + The user collection: %1 has no subfolder, so there is no prefix to configure. @@ -6351,34 +7641,34 @@ has no subfolder, so there is no prefix to configure. enthält keinen Unterordner: Es gibt also kein Präfix zu konfigurieren. - + Prefix file cannot be read Präfixdatei nicht lesbar - + Prefix file damaged Präfixdatei beschädigt - + The file %1 is not a valid XML file: %2 Die Datei %1 ist keine gültige XML-Datei: %2 - + Fix the file Datei korrigieren - + Rebuild Neu aufbauen - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6391,33 +7681,36 @@ enthält keinen Unterordner: Es gibt also kein Präfix zu konfigurieren. - + File: %1 Datei: %1 - + Select the materials list file Datei der Materialliste auswählen - - + + + + CSV files (*.csv) csv-Datei (*.csv) - + Create the materials list file Datei der Materialliste erstellen - + Cannot create Erstellen nicht möglich - + + Cannot create the file: %1 %2 @@ -6426,17 +7719,32 @@ enthält keinen Unterordner: Es gibt also kein Präfix zu konfigurieren. - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Zu große Werte können zum Absturz der Applikation führen - + Experimental feature Experimentelle Funktion - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6451,6 +7759,345 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren 3 – Bearbeitung des Projekts auf einem anderen Computer und/oder Bildschirm, der nicht über die gleichen Einstellungen wie unter Punkt 1 und 2 verfügt. + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Name: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Anschlüsse + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Anschlüsse + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Name + + + + Function + Funktion + + + + Type + Typ + + + + Add terminal + + + + + Add gap + + + + + Delete + Löschen + + + + Up + Oberhalb + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Generisch + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6578,135 +8225,105 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren GraphicsTablePropertiesEditor - Display - Darstellung + Darstellung - Table name - Name der Tabelle + Name der Tabelle - None Keine - All - Alles + Alles - Lines to display : - Anzuzeigende Zeilen: + Anzuzeigende Zeilen: - Y : - y: + y: - Next table - Nächste Tabelle + Nächste Tabelle - X : - x: + x: - Previous table - Vorherige Tabelle + Vorherige Tabelle - Previous table : - Vorherige Tabelle: + Vorherige Tabelle: - Geometry and lines - Geometrie und Linien + Geometrie und Linien - Apply geometry to all tables linked to this one - Geometrie auf alle hiermit verknüpften Tabellen anwenden + Geometrie auf alle hiermit verknüpften Tabellen anwenden - Fit table to sheet - Tabelle an Seitengröße anpassen + Tabelle an Seitengröße anpassen - Table properties - Eigenschaften Tabelle + Eigenschaften Tabelle - TextLabel - TextLabel + TextLabel - Header - Kopfzeile + Kopfzeile - - Margin - Rand + Rand - Alignment : - Ausrichtung: + Ausrichtung: - - Left - Linksbündig + Linksbündig - - Center - Zentriert + Zentriert - - Right - Rechtsbündig + Rechtsbündig - - Font - Schriftart + Schriftart - Table - Tabelleninhalt + Tabelleninhalt - Alignment: - Ausrichtung: + Ausrichtung: - Content - Inhalt + Inhalt @@ -6828,22 +8445,22 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren ImageDrop - + not a file keine Datei - + the file is larger than 10 MB die Datei ist größer als 10 MB - + the image has too many pixels das Bild hat zu viele Pixel - + unable to read the image das Bild kann nicht gelesen werden @@ -7063,75 +8680,59 @@ Alle Einstellungen außer „Keine Rundung“ können je nach folgenden Faktoren IndiTextPropertiesWidget - Form - Form + Form - X : - x: + x: - Advanced Editor - Fortgeschrittener Editor + Fortgeschrittener Editor - Size : - Größe: + Größe: - Angle: - Winkel: + Winkel: - - - px - px + px - ° - ° + ° - Y : - y: + y: - Width: - Breite: + Breite: - Text width; the text wraps at this width. Auto: no automatic line wrap - Breite des Textes, der Text wird umgebrochen. Auto: kein automatischer Zeilenumbruch + Breite des Textes, der Text wird umgebrochen. Auto: kein automatischer Zeilenumbruch - Auto - Auto + Auto - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Inhalt, Größe und Schriftart vom Text können nur im fortgeschrittenen Editor geändert werden (wegen html Formatierung). + Inhalt, Größe und Schriftart vom Text können nur im fortgeschrittenen Editor geändert werden (wegen html Formatierung). - Text - Text + Text - @@ -7139,9 +8740,8 @@ Please use the advanced editor for this. Schriftart - Click here to cancel html formatting - html Formatierung entfernen + html Formatierung entfernen @@ -7977,6 +9577,14 @@ Möchten Sie diesen Slave-Kontakt trotzdem verbinden? %2 + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8080,63 +9688,68 @@ Möchten Sie diesen Slave-Kontakt trotzdem verbinden? NewDiagramPage - + Sheet Seiteneigenschaften - + Conductor Leitereigenschaften - + Sheet references Seitenverweise - + Cross-references Querverweise - + Guides Hilfslinien - + Set the default automatic numbering rules for new projects: Standardregeln für die automatische Nummerierung neuer Projekte festlegen: - + Conductors Leiter - + Elements Bauteile - + Sheets Seiten - + + Cables + + + + Auto Numbering Auto-Nummerierung - + New sheet configuration page title Neue Seite - + New project configuration page title Neues Projekt @@ -8266,133 +9879,133 @@ Möchten Sie diesen Slave-Kontakt trotzdem verbinden? 0 - - - - - + + + + + number format 1 Zahlenformat 1 - - - - + + + + number format 01 Zahlenformat 01 - - - - - + + + + + number format 001 Zahlenformat 001 - - - - - + + + + + Cyclic (modulo) Zyklisch (Modul) - - - - - + + + + + Alphabetical Alphabetisch - - - - - + + + + + Text Text - - - - + + + + Sheet no. Seitennummer - - - - + + + + Sheet Seite - - - - + + + + number format 1 - Sheet Zahlenformat 1 - Seite - - - - + + + + number format 01 - Sheet Zahlenformat 01 - Seite - - - - + + + + number format 001 - Sheet Zahlenformat 001 - Seite - - - - + + + + Location Ort - - - - + + + + Plant Anlage - - - + + + Element Line Zeile vom Bauteil - - - + + + Element Column Spalte vom Bauteil - - - + + + Element Prefix Präfix vom Bauteil @@ -8506,12 +10119,12 @@ Möchten Sie diesen Slave-Kontakt trotzdem verbinden? PasteNumberingImport - + Numbering missing from this project Nummerierung in diesem Projekt nicht vorhanden - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8923,7 +10536,7 @@ Ihre Kopie wurde aufbewahrt unter: PrintConfigPage - + Printing configuration page title Druck @@ -8937,101 +10550,106 @@ Ihre Kopie wurde aufbewahrt unter: Auto-Nummerierung - + Management Aktualisierungsrichtlinien - - + + Conductors Leiter - + No. Nr. - + Name Name - + Sheet Seite - + Element Bauteil - + Frozen Eingefroren - + Assign a free number… Freie Nummer zuweisen… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. Dem ausgewählten Bauteil eine Nummer geben, die niemand hat: Es behält seine Nummerierung, nur seine Nummer ändert sich. - - + + Elements Bauteile - - + + Sheets Seiten - + + Cables + + + + Sheet Auto Numbering Seiten-Auto-Nummerierung - + Import from another project... Aus einem anderen Projekt importieren... - + Reuse the automatic numbering saved in another project Die in einem anderen Projekt gespeicherten automatischen Nummerierungen übernehmen - + frozen eingefroren - + — free — — frei — - + no element has this number (deleted or renumbered) kein Bauteil hat diese Nummer (gelöscht oder neu nummeriert) - + No element follows this numbering Kein Bauteil folgt dieser Nummerierung - + %n elements follow this numbering, %1 with a frozen name %n Bauteil folgt dieser Nummerierung, davon %1 mit eingefrorenem Namen @@ -9039,7 +10657,7 @@ Ihre Kopie wurde aufbewahrt unter: - + ; %n numbers without an element ; %n Nummer ohne Bauteil @@ -9047,49 +10665,49 @@ Ihre Kopie wurde aufbewahrt unter: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. Diese Nummerierung hat mehrere Nummern (oder eine Nummer pro Seite): Es kann keine von Hand gewählt werden. - + Assign a free number Freie Nummer zuweisen - + This element's name is frozen: unfreeze it first. Der Name dieses Bauteils ist eingefroren: Geben Sie ihn zuerst frei. - + No number is free. Keine Nummer ist frei. - + %1 → %2 %1 → %2 - + Free number for element “%1” (%2): Freie Nummer für das Bauteil „%1“ (%2): - - + + Numbering name: Name der Nummerierung: - - + + Modify numbering Nummerierung ändern - + %n elements follow this numbering and will change formula and name. %n Bauteil folgt dieser Nummerierung und wird Formel und Namen ändern. @@ -9097,21 +10715,21 @@ Ihre Kopie wurde aufbewahrt unter: - - - - + + + + New numbering Neue Nummerierung - - + + Rename numbering Nummerierung umbenennen - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9122,7 +10740,7 @@ Geben Sie sie zuerst frei (siehe Liste), oder benennen Sie die Nummerierung nur - + %n numberings followed by elements with a frozen name were not replaced. %n Nummerierung, der Bauteile mit eingefrorenem Namen folgen, wurde nicht ersetzt. @@ -9130,7 +10748,7 @@ Geben Sie sie zuerst frei (siehe Liste), oder benennen Sie die Nummerierung nur - + %n elements changed formula. %n Bauteil hat die Formel gewechselt. @@ -9138,13 +10756,13 @@ Geben Sie sie zuerst frei (siehe Liste), oder benennen Sie die Nummerierung nur - - + + Delete numbering Nummerierungsregel löschen - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9155,12 +10773,12 @@ Geben Sie ihnen zuerst eine andere Nummerierung oder einen festen Namen. - + No sheet names this numbering Keine Seite nennt diese Nummerierung - + %n sheets name this numbering %n Seite nennt diese Nummerierung @@ -9168,12 +10786,12 @@ Geben Sie ihnen zuerst eine andere Nummerierung oder einen festen Namen. - + No sheet follows this numbering Keine Seite folgt dieser Nummerierung - + %n sheets follow this numbering %n Seite folgt dieser Nummerierung @@ -9181,7 +10799,7 @@ Geben Sie ihnen zuerst eine andere Nummerierung oder einen festen Namen. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9192,80 +10810,80 @@ Geben Sie ihnen zuerst eine andere Nummerierung. - + Import numbering from a project Nummerierungen aus einem Projekt importieren - + Project QElectroTech (*.qet) QElectroTech-Projekt (*.qet) - - + + Import not possible Import nicht möglich - + Unable to open %1 %1 kann nicht geöffnet werden - + %1 is not a valid QElectroTech project. %1 ist kein gültiges QElectroTech-Projekt. - - + + No numbering Keine Nummerierungvvvvvv - - + + This project does not contain any automatic numbering. Dieses Projekt enthält keine automatische Nummerierung. - + Numbering to import Zu importierende Nummerierungen - + Numbering found in %1: In %1 gefundene Nummerierungen: - + %1: %2 (already exists) %1: %2 (existiert bereits) - + Replace numbering with the same name Nummerierungen mit demselben Namen ersetzen - + Import numberings Nummerierungen importieren - + Import complete Import abgeschlossen - + %1 numbering(s) imported, %2 kept unchanged. %1 Nummerierung(en) importiert, %2 unverändert beibehalten. - + %1 numbering(s) imported. %1 importierte Nummerierung(en). @@ -9286,19 +10904,16 @@ Geben Sie ihnen zuerst eine andere Nummerierung. ProjectDBModelPropertiesWidget - Form - Formular + Formular - Request - Datenauswahl ändern + Datenauswahl ändern - Reload - Daten neu laden + Daten neu laden @@ -9836,87 +11451,87 @@ Do you want to save changes? Benutzer-Schriftfelder - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Seite - + Electric Normal example text - translate length, not meaning Elektrik - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech Einstellungen - - + + Save settings as... dialog title Konfiguration speichern unter... - - + + QElectroTech settings (*.conf) file dialog filter QElectroTech-Konfigurationen (*.conf) - - + + Error message box title Fehler - + Cannot save the settings to “%1”. Die Konfiguration konnte nicht in „%1“ gespeichert werden. - + Load settings... dialog title Konfiguration laden... - + “%1” is not a settings file saved by QElectroTech. „%1“ ist keine von QElectroTech gespeicherte Konfiguration. - - + + Load settings message box title Konfiguration laden - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9929,37 +11544,37 @@ QElectroTech wird anschließend beendet. Starten Sie es neu, um die neue Konfigu Möchten Sie fortfahren? - + Toolbars, keyboard shortcuts, mouse and trackpad gestures Werkzeugleisten, Tastenkürzel, Maus- und Trackpad-Gesten - + Defaults for new projects: folio, title block, wires, numbering Vorgaben für neue Projekte: Seite, Schriftfeld, Leiter, Nummerierung - + All other settings: appearance, grid, language... Alle anderen Einstellungen: Darstellung, Raster, Sprache... - + Folders of the collections Ordner der Sammlungen - + Settings to save: Zu speichernde Einstellungen: - + The folders of your collections are saved only when every part is ticked. Die Ordner Ihrer Sammlungen werden nur gespeichert, wenn alle Teile angehakt sind. - + These settings will replace your current ones for: %1 All your other settings are kept. @@ -9968,166 +11583,166 @@ All your other settings are kept. Alle anderen Einstellungen bleiben erhalten. - + QElectroTech will then close. Start it again to use the new settings. QElectroTech wird anschließend beendet. Starten Sie es neu, um die neuen Einstellungen zu verwenden. - + Projects already open keep their own defaults. Bereits geöffnete Projekte behalten ihre eigenen Vorgaben. - + Do you want to continue? Möchten Sie fortfahren? - + The settings are loaded. They are used for the next new project. Die Einstellungen sind geladen. Sie gelten für das nächste neue Projekt. - + Loading... splash screen caption Lade... - + Loading... Systray icon splash screen caption Lade... Symbole des Systemsbenachrichtigungsfelds - + QElectroTech systray menu title QElectroTech - + &Quit &Beenden - + &Hide &Verstecken - + &Show &Zeigen - + &Hide diagram editor &Verstecke alle Schaltplaneditoren - + &Show diagram editors &Zeige alle Schaltplaneditoren - + &Hide element editor &Verstecke alle Bauteileditoren - + &Show element editor &Zeige alle Bauteileditoren - + &Hide title block template editor systray submenu entry &Verstecke alle Schriftfeld-Editoren - + &Show title block template editors systray submenu entry &Zeige alle Schriftfeld-Editoren - + &New diagram editor &Neuer Schaltplaneditor - + &New element editor &Neuer Bauteileditor - + Closes QElectroTech Anwendung QElectroTech schließen - + Reduces QElectroTech into the systray QElectroTech in Systembenachrichtigungsfeld minimieren - + Restore QElectroTech QElectroTech wiederherstellen - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Schaltplaneditor - + Element editors Bauteileditor - + Title block template editors systray menu entry Schriftfeld-Editor - + Crash report Absturzbericht - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech wurde bei der letzten Ausführung nicht ordnungsgemäß beendet. Hier sind die letzten Meldungen, die vor dem Beenden aufgezeichnet wurden – Sie können sie speichern, um sie einem Fehlerbericht beizufügen. - + Diagnostic report Diagnosebericht - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Hier finden Sie die neuesten Protokolleinträge dieser Sitzung. Überprüfen Sie den Inhalt, bevor Sie ihn einem öffentlichen Fehlerbericht beifügen. - + Usage: Verwendung: - + [options] [file]... @@ -10136,7 +11751,7 @@ Hier sind die letzten Meldungen, die vor dem Beenden aufgezeichnet wurden – Si - + QElectroTech, an application to design electric diagrams. Available options: @@ -10153,35 +11768,35 @@ Verfügbare Optionen: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Setzt Pfad zur Bauteilsammlung - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Pfad zur Schriftfeld-Sammlung setzen - + --config-dir=DIR Define configuration directory --config-dir=DIR Setzt Pfad zur Konfiguration - + --data-dir=DIR Define data directory --data-dir=DIR Setzt Pfad zu den Daten - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Setzt Pfad zu den Sprachdateien @@ -10191,1326 +11806,1420 @@ Verfügbare Optionen: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Rückgängig Arbeitsschritte - + No modification Keine Änderungen - + Click an action to get back in the changes you made to your diagram Status tip Klicken Sie auf eine Aktion, um die Bearbeitung rückgängig zu machen - + &New &Neu - + &Open &Öffnen - - + + &Close &Schließen - + &Save &Speichern - + Save as Speichern unter - + &Export &Exportieren - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Diese Liste protokolliert alle auf der aktuellen Seite ausgeführten Änderungen. Die Auswahl eines Eintrags führt die Änderungen bis zu diesem Eintrag zurück. - + Print Drucken - + &Quit &Beenden - + Undo Rückgängig - + Redo Wiederholen - + Cu&t &Ausschneiden - + &Copy Kop&ieren - + &Paste E&infügen - + Sheet properties Seiteneigenschaften - + Add a sheet Neue Seite hinzufügen - - - + + + Delete this sheet Seite löschen - + Add a nomenclature Betriebsmittelverzeichnis einfügen - + Launch the terminal block creation plugin Klemmenplan-Plugin starten - + Creates a new project status bar tip Erstellt ein neues Projekt - + Opens an existing project status bar tip Öffnet ein existierendes Projekt - + Closes the current project status bar tip Schliesst das aktuelle Projekt - + Saves the current project and all its sheets status bar tip Speichert das aktuelle Projekt und alle seine Seiten - + Saves the current project with a different file name status bar tip Speichert das aktuelle Projekt unter einem anderen Dateinamen - + Add a column to the sheet status bar tip Fügt eine neue Spalte zur Seite hinzu - + Remove a column from the sheet status bar tip Löscht eine Spalte der Seite - + Expands the sheet height status bar tip Vergrössert die Höhe der Seite - + Shrinks the sheet height status bar tip Verkleinert die Höhe der Seite - + Group selected texts Ausgewählte Texte gruppieren - + Removes selected elements from the sheet status bar tip Entfernt die ausgewählten Bauteile von der Seite - + Select All Alles auswählen - + Select none Auswahl aufheben - + Invert selection Auswahl umkehren - + Delete Löschen - + Rotate Drehen - + Choose texts orientation Texte drehen - + Find in the panel Bauteil in Sammlung suchen - + Reset conductors Leiter zurücksetzen - + Add a textfield Textfeld einfügen - + Edit the selected item Auswahl bearbeiten - + Add a column Spalte einfügen - + Add a picture Bild einfügen - + Remove a column Spalte entfernen - + Project properties Projekteigenschaften - + Clean project Projekt bereinigen - + Add a summary Inhaltsverzeichnis einfügen - + Zoom In Vergrößern - + Zoom Out Verkleinern - + Zoom content Auf Inhalt einpassen - + Fit in view Seite einpassen - + Reset zoom Kein Zoom - + using tabs mittels Reiter - + using windows mittels Fenster - + Select Auswahlmodus - + Move Ansichtmodus - + &Tile &Kacheln - + &Cascade &Überlappende Fenster - + Next project Nächstes Projekt - + Previous project Vorheriges Projekt - + Selects all elements on the sheet status bar tip Wählt alle Bauteile der Seite aus - + Deselect all elements on the sheet status bar tip Wählt alle Bauteile der Seite ab - + Expand the sheet status bar tip Vergrössert die Seite - + Shrinks the sheet status bar tip Verkleinert die Seite - + Adjusts the zoom to display all the contents of sheet regardless of context Passt die Ansicht auf den Inhalt der Seite an, unabhängig vom Seitenrahmen - + Adjusts the zoom on exactly the part of the sheet status bar tip Passt die Ansicht genau auf den Seitenrahmen an - + Add a rectangle Rechteck einfügen - + Add an ellipse Ellipse einfügen - + Add a polygon Polylinie einfügen - + Closes QElectroTech status bar tip schließt QElectroTech - + Undoes the previous action status bar tip bricht die letzte Aktion ab - + Restores the undone action status bar tip stellt die abgebrochene Aktion wieder her - + Puts selected elements into the clipboard status bar tip verschiebt die Auswahl in die Zwischenablage - + Copies selected elements status bar tip kopiert die Auswahl in die Zwischenablage - + Inverts selection of elements status bar tip kehrt die Auswahl um - + Rotate selected elements and texts status bar tip dreht die Auswahl - + Rotate selected texts to a specific angle status bar tip dreht die ausgewählten Texte in einem bestimmten Winkel - + Find the selected item in the panel status bar tip Sucht das Bauteil in der Sammlung - + Reset the conductors path ignoring the user changes status bar tip zeichnet die Leiter neu, ohne die Änderungen zu berücksichtigen - + Automatic creation conductor (s) Tool tip of auto conductor Automatische Leiterverbindung aktivieren - + Projects dock title Projektdaten - + Collections Bauteilsammlungen - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Wenn möglich, automatische Leiterverbindung benutzen - + Display the grid Raster anzeigen - + Display or hide the grid of sheet Zeige den Hintergrundsraster der Seiten an - + Add row Add row Zeile einfügen - + Remove a row Remove row Zeile entfernen - + Restores default zoom level status bar tip Standardansicht wiederherstellen - + Add line Draw line Linie einfügen - + Shows the various opened projects in windows status bar tip zeige die geöffneten Projekte in Fenstern an - + Shows the various opened projects in tabs status bar tip zeige die geöffneten Projekte in Reitern an - + Allows to select elements status bar tip wählt Bauteile aus - + Arranges windows in a tile pattern status bar tip ordnet die Fenster in Kacheln an - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Diagramm-Editor - + Export in pdf Als PDF speichern - + Export one or more sheets of the current project status bar tip Eine oder mehrere Seiten des aktuellen Projekts exportieren - + Paste at the original position Am Ursprungspunkt einfügen - - + + Paste element information Bauteilinformationen einfügen - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip Fügt die Bauteile der Zwischenablage an ihrer ursprünglichen Position ein und bewegt den Cursor zu diesem Punkt - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip Kopiert die ausgefüllten Informationen des Bauteils in der Zwischenablage auf die ausgewählten Bauteile - + &Duplicate Duplizieren - + Copies the selection, offset by the configured spacing status bar tip Kopiert die Auswahl, versetzt um den festgelegten Abstand - + Configure duplication... Duplizierung einrichten... - + Choose the spacing and direction used by Duplicate status bar tip Abstand und Richtung für „Duplizieren“ auswählen - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Automatische Unterbrechung der Leitung(en) - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Vorhandene Leiter beim Platzieren eines Elements automatisch abschneiden - + Text grid Textübersicht - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Raster zum Ausrichten von Texten, die mit der Maus verschoben werden. Halten Sie während des Verschiebens die Strg-Taste gedrückt, um die Texte frei zu platzieren. - + Disabled Deaktiviert - + View the guides Hilfslinien anzeigen - + Shows or hides the guides Zeigt die Hilfslinien an oder blendet sie aus - + Keep headers visible Kopfzeilen sichtbar lassen - + Keeps the sheet's column numbers and row letters visible at the edge of the view Lass die Spaltennummern und Zeilenbuchstaben des Folios am Rand der Ansicht sichtbar bleiben - + Show cell boundaries Rahmen anzeigen - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Zeichne die Begrenzungslinien der Spalten und Zeilen des Folios auf der Zeichnung ein – allerdings nur auf dem Bildschirm - + Show Anzeigen - + Element texts Texte der Bauteile - + Conductor texts Texte der Leiter - + Text fields Textfelder - + Shapes Formen - + Pictures Bilder - + Tables Tabellen - + Cross-references Querverweise - + See Display > Show Siehe Ansicht > Anzeigen - + Export to CSV Als CSV-Datei exportieren - + Terminal block manager (DEV) Klemmleisten-Manager (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Leiterbeschriftungen exportieren - + Export the wiring diagram Verdrahtungsplan erstellen - + Wiring list (database) Verdrahtungsliste (Datenbank) - + Automatic numbering of terminals Automatische Nummerierung der Klemmen - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings Zeichnungen der Elemente neu laden - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Jedes platzierte Element wird entsprechend seiner aktuellen Definition neu gezeichnet, ohne dass das Projekt geschlossen und erneut geöffnet werden muss (Aktion kann nicht rückgängig gemacht werden) - + Run a script... Ein Skript ausführen... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Führt ein JavaScript-Skript für das aktuelle Projekt aus (siehe „qet.*“ im Skript für die verfügbare API) - + Record a macro Makro aufzeichnen - + Records what you do on the project, for an AI assistant to make a script of; click again to stop Zeichnet auf, was Sie am Projekt tun, damit ein KI-Assistent ein Skript daraus macht; erneut klicken zum Beenden - + Manage scripts… Skripte verwalten… - + Write a script and make it a button with an icon Ein Skript schreiben und daraus eine Schaltfläche mit Symbol machen - + Open the scripts folder Skriptordner öffnen - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button Jede .js-Datei in diesem Ordner, die mit einer Kopfzeile // ==QETScript== beginnt, wird zu einer Schaltfläche - + Export the internal project database Interne Datenbank exportieren - + Arranges windows in a cascade pattern status bar tip ordnet die Fenster überlappend an - + Activates the next project status bar tip wechselt zum nächsten Projekt - + Activates the previous project status bar tip wechselt zum vorherigen Projekt - + Rotate the group Auswahl als Gruppe drehen - + Horizontal mirror Horizontal spiegeln - + Vertical mirror vertikal spiegeln - - + + Group fr: Grouper Gruppieren - + Ungroup Gruppierung aufheben - + Insert the last element Das letzte Element einfügen - + Places the last inserted element again status bar tip Füge das zuletzt eingefügte Element erneut ein - + Search for a command… Einen Befehl suchen… - + Type part of a command name and press Enter to launch it status bar tip Geben Sie einen Teil des Befehlsnamens ein und drücken Sie die Eingabetaste, um den Befehl auszuführen - + Insert an element… Ein Element einfügen… - + Opens the element picker at the cursor position status bar tip Öffnet die Elementauswahl an der Cursorposition - + Shortcut bar Schnellzugriffsleiste - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Öffnet an der Cursorposition die für die Auswahl nützlichen Befehle sowie die Elementauswahl - + Repeat the last command Den letzten Befehl wiederholen - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Das zuletzt verwendete Zeichenwerkzeug oder die zuletzt eingefügte Komponente erneut aufrufen (Eingabe auf dem Folio) - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Dreht die Auswahl um den Mittelpunkt der Gruppe der ausgewählten Teile - + Flips the selected elements from left to right status bar tip Spiegelt die ausgewählten Bauteile von links nach rechts - + Flips the selected elements from top to bottom status bar tip Spiegelt die ausgewählten Bauteile von oben nach unten - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip Gruppiert die ausgewählten Bauteile, Texte, Formen und Bilder: Sie werden gemeinsam ausgewählt, verschoben und kopiert - + Breaks up the selected groups status bar tip Löst die ausgewählten Gruppen auf - + Align to grid Am Raster ausrichten - + Puts the selected elements, images and texts back on the grid status bar tip Setzt die ausgewählten Elemente, Bilder und Texte wieder auf das Raster - + Align left Linksbündig ausrichten - + Aligns the left edges of the selected items status bar tip Richtet die linken Kanten der ausgewählten Objekte aus - + Centre horizontally Horizontal zentrieren - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip Richtet die ausgewählten Objekte auf einer gemeinsamen Senkrechten aus, Bauteile an ihrem Ursprungspunkt - + Align right Rechtsbündig ausrichten - + Aligns the right edges of the selected items status bar tip Richtet die rechten Kanten der ausgewählten Objekte aus - + Align top Oben ausrichten - + Aligns the top edges of the selected items status bar tip Richtet die oberen Kanten der ausgewählten Objekte aus - + Centre vertically Vertikal zentrieren - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip Richtet die ausgewählten Objekte auf einer gemeinsamen Waagerechten aus, Bauteile an ihrem Ursprungspunkt - + Align bottom Unten ausrichten - + Aligns the bottom edges of the selected items status bar tip Richtet die unteren Kanten der ausgewählten Objekte aus - + Select all conductors Alle Leiter auswählen - + Select all text fields Alle Textfelder auswählen - + Selects all conductors on the sheet, deselects the rest status bar tip Wählt alle Leiter des Seite aus, hebt die Auswahl der übrigen auf - + Selects all text fields on the sheet, deselects the rest status bar tip Wählt alle Textfelder des Seite aus, hebt die Auswahl der übrigen Felder auf - + Centre on the cursor Auf den Cursor zentrieren - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip Zentriert die Seite auf den Punkt unter dem Mauszeiger, ohne den Zoom zu ändern - + Add a PDF PDF hinzufügen - + Add an arc Bogen hinzufügen - + Add a curve Kurve hinzufügen - + Add a fillet Abrundung hinzufügen - + Add a terminal plan Klemmenplan hinzufügen - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Fügt ein Textfeld auf die aktuelle Seite ein - + Add an image to the current sheet Fügt ein Bild auf die aktuelle Seite ein - + Adds a PDF page to the current sheet Fügt eine PDF-Seite zur aktuellen Seite hinzu - + Add a line to the current sheet Fügt eine Linie auf die aktuelle Seite ein - + Adds a rectangle on the current sheet Fügt ein Rechteck auf die aktuelle Seite ein - + Add an ellipse to the current sheet Fügt eine Ellipse auf die aktuelle Seite ein - + Adds an arc on the current sheet Fügt einen Bogen auf der aktuellen Seite ein - + Adds a polyline to the current sheet Fügt eine Polylinie auf die aktuelle Seite ein - + Adds a Bézier curve to the current sheet Fügt eine Bézier-Kurve auf dem aktuellen Folio ein - + Rounds the corner between two lines of the current sheet Rundet die Ecke zwischen zwei Linien der aktuellen Seite ab - + Adds a terminal plan to the current sheet Klemmenplan auf aktueller Seite einfügen - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace Suchen/ersetzen - + Navigate to an element Zu einem Element navigieren - + Quickly search for and select an element in the sheet status bar tip Ein Element im Folio schnell suchen und auswählen - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + Autom. Nummerierung + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Ja + + + + No + no + Nein + + + + Cancel + cancel + Abbrechen + + + + Edit the cable + edit cable + + + + Remembered after a restart Bleibt nach einem Neustart erhalten + - Depth toolbar title Ebene - + Scripts toolbar title Skripte - + &File &Datei - + &Edit B&earbeiten - + &Project &Projekt - + Displ&ay &Anzeige - + Wi&ndows Fe&nster - + &Latest files &Zuletzt geöffnet - + &Add Hinzufügen - + Selection Auswahl - + Align Ausrichten - + Rows and columns Zeilen und Spalten - + Depth Ebene - - + + Scripts Skripte - + Display or hide the main toolbar Zeigt oder versteckt die Hauptwerkzeugsleiste - + Display or hide the Display toolbar Zeigt oder versteckt die Anzeigeleiste - + Display or hide the Diagram toolbar Zeigt oder versteckt die Schaltplan-Werkzeugsleiste - + Show or hide the elements panel Zeigt oder versteckt die Bauteilsammlung - + Display or hide the undo list Zeigt oder versteckt die Änderungsliste - + Display projects Projekte anzeigen - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech-Projekte (*.qet);;XML-Dateien (*.xml);;Alle Dateien (*) - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11519,7 +13228,7 @@ Halten Sie während des Verschiebens die Strg-Taste gedrückt, um die Texte frei - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11528,24 +13237,24 @@ Halten Sie während des Verschiebens die Strg-Taste gedrückt, um die Texte frei - + Project fonts message box title Schriftarten des Projekts - + Sheet %1: %2 Seite %1: %2 - + Conductors not loaded message box title Leiter nicht geladen - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11560,24 +13269,24 @@ Wenn Sie das Projekt speichern, verschwinden diese Leiter aus der Datei. Schlie - + Unable to delete the terminal Klemme kann nicht gelöscht werden - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted Die Löschung kann nicht durchgeführt werden, da die Auswahl eine oder mehrere Klemmen enthält, die überbrückt sind und/oder zu einer Klemme mit mehreren Ebenen gehören. Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffenen Klemmen, um sie löschen zu können - + Group Gruppe - + %n items put back on the grid %n Objekt auf das Raster gesetzt @@ -11585,7 +13294,7 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene - + %n items aligned %n Objekt ausgerichtet @@ -11593,22 +13302,22 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene - + The selection is already on the grid Die Auswahl steht bereits in der Startaufstellung - + Select at least two unlocked elements, images, texts, shapes or groups Wählen Sie mindestens zwei nicht gesperrte Bauteile, Bilder, Texte, Formen oder Gruppen aus - + The selection is already aligned, to the nearest grid step Die Auswahl ist bereits ausgerichtet, bis auf das Raster - + (%n locked objects left in place) (%n gesperrtes Objekt wurde an Ort und Stelle belassen) @@ -11616,33 +13325,33 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene - + An error occurred while opening file %1. message box content Ein Fehler ist beim Öffnen der Datei %1 aufgetreten. - + Activates the project « %1 » Aktiviert das Projekt "%1" - + Repeat: insert "%1" Wiederholen: „%1“ einfügen - + Repeat: %1 Wiederholen: %1 - + sheet %1 Seite %1 - + %n elements redrawn. %n Element wurde neu gezeichnet. @@ -11650,7 +13359,7 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene - + %n elements for which no definition could be found or which were illegible: their current design has been retained. %n Element, dessen Definition nicht gefunden werden konnte oder unlesbar ist: Seine aktuelle Darstellung wurde beibehalten. @@ -11658,7 +13367,7 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n nicht neu gezeichnetes Element: Seine Größe, sein Griffpunkt oder seine Anschlüsse haben sich geändert (Anschluss hinzugefügt, gelöscht oder verschoben). @@ -11666,18 +13375,18 @@ Entfernen Sie die Überbrückung und/oder löschen Sie die Ebenen der betroffene - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. Um sie zu aktualisieren, müssen sie gelöscht und anschließend erneut eingefügt werden. Achtung: Bei diesem Vorgang werden die bereits mit diesen Elementen verbundenen Leiter gelöscht, die dann neu verbunden werden müssen. - - + + Run a script Skript ausführen - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11690,28 +13399,28 @@ Ein Skript wird mit Ihren Berechtigungen ausgeführt: Es kann das geöffnete Pro Skripte aktivieren? Diese Einstellung kann unter „QElectroTech konfigurieren“ > „Allgemein“ > „Projekte“ geändert werden. - + JavaScript scripts (*.js);;All files (*) JavaScript-Skripte (*.js);;Alle Dateien (*) - + Ignored: %1 Ignoriert: %1 - - + + Stop Stopp - + Stop recording the macro Makroaufzeichnung beenden - + ● Recording: %n steps ● Aufzeichnung: %n Schritt @@ -11719,12 +13428,12 @@ Skripte aktivieren? Diese Einstellung kann unter „QElectroTech konfigurieren - + Macro recorded Makro aufgezeichnet - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11738,53 +13447,53 @@ Um daraus ein Skript zu machen, bitten Sie Ihren KI-Assistenten: Die Schaltfläc - + &Copy the request for the assistant Anfrage für den Assistenten &kopieren - + &Open the folder &Ordner öffnen - + Request copied: paste it into the assistant's window Anfrage kopiert: Fügen Sie sie im Fenster des Assistenten ein - + Close the assistant's connection for the rest of the session Verbindung des Assistenten für den Rest der Sitzung trennen - + Live mode: assistant connected Direktmodus: Assistent verbunden - + Live mode: waiting for an assistant Direktmodus: Warten auf einen Assistenten - - + + Assistant Assistent - + Ask before running a script the assistant wrote Vor dem Ausführen eines vom Assistenten geschriebenen Skripts fragen - + Live mode: %1 %2 at %3 Direktmodus: %1 %2 um %3 - + %n kinds of items hidden %n Objekttyp ausgeblendet @@ -11792,180 +13501,180 @@ Um daraus ein Skript zu machen, bitten Sie Ihren KI-Assistenten: Die Schaltfläc - - + + Texts %1 Texte %1 + - Tools Werkzeuge - + Exports the current sheet to another format status bar tip Aktuelle Seite in ein anderes Format exportieren - + Prints one or more sheet of the current project status bar tip Druckt eine oder mehrere Seiten des aktuellen Projekts - + Pastes elements from the clipboard into the sheet status bar tip Inhalt der Zwischenablage auf Seite einfügen - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Bearbeitet die Seiteneigenschaften (Maße, Schriftfeld-Daten, Leitereigenschaften...) - + Allows to view the sheet without modifying it status bar tip Wechselt in das Ansichtsmodus, in dem die Seite nicht bearbeitet werden kann + - Display Anzeige + - Diagram Schaltplan + - Add Einfügen - - + + Project %1 registered in the directory: %2. Projekt %1 gespeichert im Pfad: %2. - + Open a file Datei öffnen - - + + Unable to open file message box title Öffnen der Datei nicht möglich - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Die zu öffnende Datei %1 existiert nicht. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Die zu öffnende Datei kann zum Lesen nicht zugegriffen werden. Prüfen Sie die Zugriffsrechte der Datei. - + Opening the file read-only message box title Projekt wird schreibgeschützt geöffnet - + The project you try to open does not seem writable. It will be opened read-only. Es sind keine Schreibrechte für das zu öffnende Projekt vorhanden. Es wird trotzdem schreibgeschützt geöffnet. - - + + Unable to open project message box title Öffnen des Projekts gescheitert - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Die Datei %1 ist vermutlich keine QElectroTech-Projektdatei. Sie kann nicht geöffnet werden. - + Edit the element edit element Bauteil bearbeiten - + Edit the text field edit text field Textfeld bearbeiten - + Edit the image edit image Bild bearbeiten - + Edit conductor edit conductor Leitereigenschaften bearbeiten - + Edit the selected object edit selected item Auswahl bearbeiten - + Are you sure you want to delete this sheet? Möchten Sie diese Seite wirklich löschen? - + Delete the sheets Seiten löschen - + Are you sure you want to delete the selected %1 sheets ? Möchten Sie die ausgewählten %1 Seiten wirklich löschen? - + Delete %1 sheets %1 Seiten löschen - - - - - - - + + + + + + + Move the sheets Folios verschieben - + Error message box title Fehler @@ -12952,52 +14661,52 @@ Die erforderlichen Bedingungen wurden nicht erfüllt QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt "%1: %2" - + Project %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Untitled project displayed title for a project-less, file-less project Projekt ohne Titel - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [schreibgeschützt] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [geändert] - + Renumber elements Elemente neu nummerieren - + Renumber elements (%1) Elemente neu nummerieren (%1) - + Modified contact system Modifiziertes Kontaktsystem - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -13008,19 +14717,19 @@ Bestehende Slave-Elemente werden nicht automatisch zugeordnet. Sie müssen die S Möchten Sie fortfahren? - + An error occurred during the template integration. error message Ein Fehler ist beim Einfügen der Vorlage aufgetreten. - + Warning message box title Warnung - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -13028,7 +14737,7 @@ You are currently using QElectroTech in version %2 Sie verwenden derzeit QElectroTech Version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -13036,32 +14745,32 @@ What do you wish to do ? Was möchten Sie tun? - + Warning message box title Warnung - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Das Projekt, das Sie zu öffnen versuchen, ist teilweise mit Ihrer Version %1 von QElectroTech kompatibel. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Um es vollständig kompatibel zu machen, öffnen Sie bitte das gleiche Projekt mit der QElectroTech-Version 0.8 oder 0.80, speichern Sie das Projekt und öffnen Sie es erneut mit dieser Version. Was möchten Sie tun? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Öffnen des Projekts...</b><br/>Seiten werden erstellt</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Öffnen des Projekts...</b><br/>Querverweise werden eingelesen</p> @@ -13430,7 +15139,7 @@ Was möchten Sie tun? QObject - + Warning: the element has been saved with a more recent version of QElectroTech. Warnung: das Bauteil wurde mit einer neueren Version von QElectroTech gespeichert. @@ -13451,7 +15160,7 @@ Was möchten Sie tun? ein grafisches Element - + delete %1 undo caption - %1 is a sentence listing the removed content %1 löschen @@ -13974,7 +15683,7 @@ Was möchten Sie tun? - + Title Titel @@ -14051,8 +15760,8 @@ Was möchten Sie tun? Anschluss - + Text Text @@ -14068,7 +15777,7 @@ Was möchten Sie tun? Bearbeite Informationen mehrerer Elemente - + Edit the cross reference edite the cross reference Querverweise bearbeiten @@ -14169,12 +15878,12 @@ Der QET-Name dieses Ordners konnte nicht gelesen werden; stattdessen wird der Or Sammlung - + This group cannot be moved: the position of one of its elements is locked. Diese Gruppe kann nicht verschoben werden: Die Position eines ihrer Bauteile ist gesperrt. - + Add %n conductors add a numbers of conductor one or more @@ -14242,8 +15951,8 @@ Der QET-Name dieses Ordners konnte nicht gelesen werden; stattdessen wird der Or - + Rotate %1 Drehen %1 @@ -14425,45 +16134,45 @@ Möchten Sie sie ersetzen? - + - + Type Typ - + - + Address Adresse - - - - + + + + Annotation Kommentar - - - - + + + + Cross-reference Querverweis - - - - + + + + Function Funktion @@ -14798,45 +16507,55 @@ Möchten Sie sie ersetzen? Leiter erstellen - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Installation des Plugins qet_tb_generator:<br>Besuche <br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Erfordert Python 3.5 oder höher.<br><B><U> Erstinstallation unter Windows</B></U><br>1. Falls erforderlich, installiere Python 3.5 oder höher<br> Besuche :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Aktualisierung unter Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>Der Benutzer kann in einem Terminal dieses Skript in folgendem Verzeichnis ausführen:<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Installation des Plugins qet_tb_generator:<br>Besuche <br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Erstinstallation unter macOSX</B></U><br>1. Falls erforderlich, installiere das Python 3.11-Bundle: <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Führe das Skript Profile.command aus<br>da das Programm einen festgelegten PATH zur Lokalisierung des Plugins qet-tb-generator verwendet.<br>Besuche :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>Anleitung</a><br>3. pip3 install qet_tb_generator<br><B><U> Aktualisierung unter macOS</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Installation des Plugins qet_tb_generator:<br>Besuche <br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Erfordert Python 3.5 oder höher.<br><br><B><U> Erstinstallation unter Linux</B></U><br>1. Überprüfe, ob pip3 installiert ist: pip3 --version<br>Falls nicht, installiere es mit: sudo apt-get install python3-pip<br>2. Installiere das Programm: sudo pip3 install qet_tb_generator<br>3. Starte das Programm: qet_tb_generator<br><br><B><U> Aktualisierung unter Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Fehler beim Ausführen vom Plugin qet_tb_generator - + Add a nomenclature Betriebsmittelverzeichnis einfügen - + Add a summary Inhaltsverzeichnis einfügen + + + Add a cable list + + + + + Cable list + + Paste Einfügen - + + - - + @@ -14877,83 +16596,113 @@ Möchten Sie sie ersetzen? Klemme entfernen - - + + Generic generic terminal element type Generisch - + Fuse fuse terminal element type Sicherungsklemme - + Sectionable sectional terminal element type Trennklemme - + Diode diode terminal element type Diode - + Ground ground terminal element type Erde - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Generisch - + Phase phase terminal element function Aussenleiter - + Neutral neutral terminal element function Neutralleiter - - + + Digital input Digitaler Eingang - + Digital output Digitaler Ausgang - + Analogue input Analoger Eingang - + Analogue output Analoger Ausgang - + Universal input Universeller Eingang - + Universal output Universeller Ausgang @@ -14988,7 +16737,7 @@ Möchten Sie sie ersetzen? DXF-Datei importieren - + Default layout Standard-Layout @@ -15165,8 +16914,8 @@ Bitte laden Sie diese über den Link herunter und entpacken Sie sie in den Insta - - + + Move %1 %1 verschieben @@ -15311,88 +17060,88 @@ Bitte laden Sie diese über den Link herunter und entpacken Sie sie in den Insta - + insert %1 Einfügen von .%1 - + Edit the conductor properties Eigenschaften des Leiters bearbeiten - + Edit a text Einen Text bearbeiten - + Change the color of a text Farbe eines Texts ändern - + Rotate a text Einen Text drehen - + Edit line of a form Linie einer Form ändern - + Edit filling a form Füllung einer Form ändern - + Rotate a shape Eine Form drehen - - + + Change the shape of %1 Form von %1 ändern - + Close/Open %1 %1 schließen/öffnen - + Resize an image Die Größe eines Bildes ändern - + Rotate an image Ein Bild drehen - + Edit element text Text eines Bauteils bearbeiten - + Automatically number an element Ein Element automatisch nummerieren - + Renumber elements (%1) Bauteile neu nummerieren (%1) - + Search and replace Suchen und Ersetzen - + Script @@ -15448,7 +17197,7 @@ So aktivieren Sie sie: QElectroTech konfigurieren > Allgemein > Projekte, Namen des Bauteils freigeben - + Sheet Seite @@ -15497,26 +17246,26 @@ So aktivieren Sie sie: QElectroTech konfigurieren > Allgemein > Projekte, QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Die anzuzeigenden Informationen sind größer als die maximale Menge, die von den Tabellen angezeigt werden kann. Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandenen Tabellen an, um alle Informationen anzuzeigen. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Die anzuzeigenden Informationen sind größer als die maximale Menge, die von der Tabelle angezeigt werden kann. Bitte fügen Sie eine neue Tabelle hinzu oder passen Sie die vorhandene Tabelle an, um alle Informationen anzuzeigen. - + Table limitation Tabellenbeschränkung - + Modify the geometry of a table Tabellengeometrie ändern @@ -15978,6 +17727,14 @@ Es wurde nichts geändert. Rechteck ändern + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -16016,6 +17773,17 @@ Es wurde nichts geändert. Das Bauteil "%1" ist schon vorhanden. Wie möchten Sie vorgehen? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -17031,28 +18799,38 @@ qet.addText(f, "Text", 40, 40); Zur gespeicherten Definition zurückkehren - + Move this variable up Diese Variable nach oben - + Move this variable down Diese Variable nach unten - + Delete this variable Diese Variable löschen - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Automatische Seitennummerierung - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17080,7 +18858,7 @@ In diesem Fall wird das Feld "Inkrementierung" ignoriert. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17118,13 +18896,41 @@ Andere Felder werden nicht verwendet. Andere Felder werden nicht verwendet. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Automatische Elementnummerierung - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17162,17 +18968,17 @@ Andere Felder werden nicht verwendet. Andere Felder werden nicht verwendet. - + New numbering… Neue Nummerierung… - + Rename numbering… Nummerierung umbenennen… - + Numbering conductors title window Automatische Nummerierung der Leiter @@ -20081,42 +21887,42 @@ Andere Felder werden nicht verwendet. Anordnung - + Bridging the terminals Klemmen brücken - + Unbridge the terminals Brücker entfernen - + Properties Eigenschaften - + Name: Name: - + Comment : Kommentar: - + Description Beschreibung - + Plant: Anlage: - + Location : Ort: @@ -20126,13 +21932,13 @@ Andere Felder werden nicht verwendet. Typ: - + Ungroup the terminals Gruppierung aufheben - + Generic Generisch @@ -20172,42 +21978,67 @@ Andere Felder werden nicht verwendet. Erdungsklemme - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Cable : Kabel: - + Name of the cable of the selected terminals Name des Kabels der ausgewählten Klemmen - + Set the cable name to all the selected terminals Den Kabelnamen allen ausgewählten Klemmen zuweisen - + Apply the cable to the selection Kabel der Auswahl zuweisen - + Move to : verschieben nach: - + Phase Phase - + Neutral Neutralleiter - + Automatic position automatisch anordnen @@ -20217,12 +22048,12 @@ Andere Felder werden nicht verwendet. Etage: - + Group the terminals Klemmen gruppieren - + Function : Funktion: @@ -20237,7 +22068,7 @@ Andere Felder werden nicht verwendet. Mit - + LED : LED: @@ -21861,32 +23692,42 @@ die Variable "volta" kombiniert mit dem Wert "1745" lässt i als Tabelle anzeigen - + Label cross reference Querverweistexte - + Master Master - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Slave - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21903,115 +23744,141 @@ die Variable "volta" kombiniert mit dem Wert "1745" lässt i %LM: Ort - + Option display cross Optionen für die Darstellung als Tabelle - + Show the power contacts in the cross Leistungskontakte anzeigen - + Prefix of power contacts : Präfix für Leistungskontakte: - + Prefix delayed contacts : Präfix für zeitverzögerte Kontakte: - + Prefix changeover contacts : Präfix für Wechslerkontakte: - + Coil Spule - + Organ of protection Schutzeinrichtung - + Switch / button Druck-/Drehschalter - + Programmable Logic Controller (PLC) Speicherprogrammierbare Steuerung (SPS) - + + Cable + Kabel + + + Footer Im unteren Bereich der Seite - + Under the label of the element Unter dem Betriebsmittelkennzeichen - + Top oben - + Bottom unten - + Left links - + Right rechts - + Text alignment Textausrichtung - + Text field Textfeld + + + Text: + Text: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. Die Abfrage ist leer. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Es ist nur eine SELECT-Abfrage zulässig (das Zeichen „;“ darf nur ganz am Ende stehen). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Es sind ausschließlich Leseabfragen (SELECT oder WITH ... SELECT) zulässig. - + Export the internal project database Interne Projekt-Datenbank exportieren - + untitled unbenannt diff --git a/lang/qet_el.ts b/lang/qet_el.ts index 7c4a703bd..a5a957f72 100644 --- a/lang/qet_el.ts +++ b/lang/qet_el.ts @@ -1158,6 +1158,23 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Διαγραφή + + BorderPropertiesWidget @@ -1182,7 +1199,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + Μορφή: @@ -1213,16 +1230,1067 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + Προσαρμοσμένο Landscape - + Οριζόντια Portrait + Κάθετα + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Καλώδιο + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Εγκατάσταση (=) + + + + Location (+) + Τοποθεσία (+) + + + + Type + Τύπος + + + + Cores + + + + + Plant + Εγκατάσταση + + + + Location + Θέση + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Συμπερίληψη επικεφαλίδων + + + + Preview + Προεπισκόπηση + + + + cable_list_ + + + + + Save As... + Αποθήκευση ως... + + + + CSV files (*.csv) + Αρχεία csv (*.csv) + + + + Error + Σφάλμα + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Αναίρεση + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Αναίρεση + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Αναίρεση + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Καλώδιο + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Καλώδιο + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Τύπος + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Εγκατάσταση (=) + + + + Location (+) + Τοποθεσία (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Γραμματοσειρά: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Έντονα + + + + Italic + Πλάγια + + + + Bold italic + + + + + Style: + Τεχνοτροπία: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Στοίχιση: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Αναίρεση + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1269,13 +2337,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption Επεξεργασία των ιδιοτήτων ενός αγωγού - + Edit the properties of several conductors undo caption Επεξεργασία των ιδιοτήτων πολλών αγωγών @@ -1331,7 +2399,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor color - + Χρώμα αγωγού @@ -1793,13 +2861,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Άλλο Unknown - + Άγνωστο @@ -1917,7 +2985,7 @@ Continue? Diagram - + Change the depth Μετατροπή του βάθους @@ -2054,6 +3122,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2065,7 +3150,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2073,7 +3158,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2196,224 +3281,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image εικόνα - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Επιλογή εικόνας... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Σφάλμα - + Unable to load the image. Αδυναμία φόρτωσης της εικόνας - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2444,106 +3559,139 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Χρώμα αγωγού DiagramView - + Paste Here context menu action Επικόλληση εδώ - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Σε αυτή την περιοχή σχεδιάζετε τα διαγράμματά σας προσθέτοντας στοιχεία και αγωγούς μεταξύ των ακροδεκτών. Μπορείτε επίσης να προσθέσετε ανεξάρτητα κείμενα. - + Multiple paste Πολλαπλή επικόλληση - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + Αναφορά σελίδας + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Σύνδεση των επιλεγμένων ακροδεκτών - + Untitled what to display for untitled diagrams Ανώνυμο - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Σφάλμα - + The file could not be written. - + Choose the new color for this conductor Επιλέξτε το νέο χρώμα αυτού του αγωγού - + Edit conductor properties undo caption Επεξεργασία ιδιοτήτων του αγωγού @@ -3144,7 +4292,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3639,8 +4787,8 @@ Continue? - - + + Type Τύπος @@ -3723,8 +4871,8 @@ Continue? - - + + Function Λειτουργία @@ -3756,7 +4904,7 @@ Continue? - + Simple Απλό @@ -3797,19 +4945,19 @@ Continue? - + Switch normally open Κανονικά ανοικτή - + Switch normally closed Κανονικά κλειστή - + switch Μεταγωγική @@ -3825,25 +4973,25 @@ Continue? - + Power switch Ισχύος - + Switch-on delayed Καθυστέρηση ενεργοποίησης - + Switch-off delayed Καθυστέρηση απενεργοποίησης - + Switch-on and off delayed Καθυστέρηση ενεργοποίησης & απενεργοποίησης @@ -3869,7 +5017,7 @@ Continue? - + Generic Γενικό @@ -3888,164 +5036,189 @@ Continue? Diode Δίοδος + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Φάση - + Neutral Ουδέτερος - - - - - + + + + + T%1 - + Other fr: Autre - + Άλλο - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Σχόλιο - + Cross-reference - + Διασταυρούμενη αναφορά - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Κανένα - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5034,7 +6207,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Εξαγωγή @@ -5418,97 +6591,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : Μετακίνηση σε: - + Type : Τύπος: - + Function : Λειτουργία: - + LED : - + Apply displacement Εφαρμογή μετατόπισης - - + + Generic Γενικό - + Fuse Ασφάλεια - + Sectionable - + Diod Δίοδος - + Ground Γείωση - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Φάση - + Neutral Ουδέτερος - + Without Χωρίς - + With Με - + Modify terminal strip properties Επεξεργασία των ιδιοτήτων της σειράς ακροδεκτών - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5554,17 +6757,17 @@ that you create. Text and number inputs are Χρήση των χρωμάτων του συστήματος - + User Collection Path Διαδρομή της συλλογής χρήστη - + User Title blocks Path Διαδρομή των πινακίδων χρήστη - + Path of the Common Collection Διαδρομή της κοινής συλλογής @@ -5586,6 +6789,7 @@ that you create. Text and number inputs are + Browse... Πλοήγηση @@ -5627,18 +6831,18 @@ that you create. Text and number inputs are λεπτά - + Highlight freshly integrated elements in the panel Επισήμανση των προσφάτως ενσωματωμένων στοιχείων στον πίνακα - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Κάθε στοιχείο περιέχει πληροφορίες σχετικά με τους δημιουργούς του, την άδειά του ή οποιεσδήποτε άλλες πληροφορίες που θεωρείτε χρήσιμες σε ένα ελεύθερο πεδίο. Μπορείτε να καθορίσετε εδώ την προεπιλεγμένη τιμή αυτού του πεδίου για τα στοιχεία που θα δημιουργήσετε: - + Applied to the next launch of QElectroTech Εφαρμογή στην επόμενη εκκίνηση του QElectroTech) @@ -5678,32 +6882,32 @@ that you create. Text and number inputs are Κατάλογος των πινακίδων χρήστη - + Elements management Διαχείριση των στοιχείων - + Here you can define the default appearance of the different texts of QElectroTech Εδώ μπορείτε να ορίσετε την προεπιλεγμένη εμφάνιση των διαφόρων κειμένων του QElectroTech - + Grid + Keyboard Δικτύωμα + Πληκτρολόγιο - + Grid: 1 - 30 Δικτύωμα: 1 - 30 - + DiagramEditor xGrid Επεξεργαστής διαγραμμάτων xGrid - + DiagramEditor yGrid Επεξεργαστής διαγραμμάτων yGrid @@ -5887,8 +7091,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5899,149 +7106,217 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Γλώσσες - + texts Κείμενα - + Elements texts Κείμενα στοιχείων - - - + + + Font: Γραμματοσειρά: - - + + ° ° - + Length : Μήκος: - - + + Rotation : Περιστροφή: - + Independent texts Ανεξάρτητα κείμενα - + Other texts Άλλα Κείμενα - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Το δικτύωμα πρέπει να είναι ενεργό για να δείτε τις αλλαγές. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Μετακίνηση πληκτρολογίου: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Επεξεργαστής διαγραμμάτων (πλήκτρο: αριστερά / δεξιά) xGrid - + DiagramEditor (key: up / down) yGrid Επεξεργαστής διαγραμμάτων (πλήκτρο: επάνω / κάτω) yGrid - + Keyboard movement with the ALT key: 1 - 9 Μετακίνηση πληκτρολογίου με το πλήκτρο ALT: 1 - 9 - + DiagramEditor (key: left / right) xGrid Επεξεργαστής διαγραμμάτων (πλήκτρο: αριστερά / δεξιά) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Επεξεργαστής διαγραμμάτων (πλήκτρο: επάνω / κάτω) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List @@ -6056,265 +7331,301 @@ that you create. Text and number inputs are Δυνατότητα αποεστίασης πέρα από τη σελίδα - + + Bold italic + + + + + Bold + Έντονα + + + + Italic + Πλάγια + + + + Normal + + + + Rounding up for 0.5 and more Στρογγυλοποίηση για 0,5 και περισσότερο - + Always top rounding Πάντα στρογγυλοποίηση προς τα επάνω - + Always rounded down Πάντα στρογγυλοποίηση προς τα κάτω - + Rounding up for 0.75 and more Στρογγυλοποίηση για 0,75 και περισσότερο - + No rounding Χωρίς στρογγυλοποίηση - + Disabled fr: Désactivée - + Απενεργοποιημένο - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Γενικές - + System Σύστημα - + Arabic Αραβικά - + Brazilian Βραζιλιάνικα - + Catalan Καταλανικά - + Czech Τσέχικα - + German Γερμανικά - + Danish Δανικά - + Greek Ελληνικά - + English Αγγλικά - + Spanish Ισπανικά - + French Γαλλικά - + Croatian Κροατικά - + Italian Ιταλικά - + Japanese Ιαπωνικά - + Korean - + Polish Πολωνικά - + Portuguese Πορτογαλικά - + Romanian Ρουμανικά - + Russian Ρώσικα - + Slovenian Σλοβενικά - + Dutch Ολλανδικά - + Norwegian Νορβηγικά - + Belgium-Flemish Φλαμανδικά - + Turkish Τουρκικά - + Hungarian Ουγγρικά - + Mongolian Μογγολικά - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Company collection path - + Company title-blocks - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6323,50 +7634,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Αρχεία csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6376,6 +7705,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Αριστερά + + + + Right + Δεξιά + + + + Top + + + + + Bottom + Κάτω + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Όνομα: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Όνομα + + + + Function + Λειτουργία + + + + Type + Τύπος + + + + Add terminal + + + + + Add gap + + + + + Delete + Διαγραφή + + + + Up + Επάνω + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Γενικό + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6503,135 +8171,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Φόρμα + Φόρμα - Display - Προβολή + Προβολή - Table name - Όνομα πίνακα + Όνομα πίνακα - None Κανένα - All - Όλες + Όλες - Lines to display : - Γραμμές προς εμφάνιση: + Γραμμές προς εμφάνιση: - Y : - Y : + Y : - Next table - Επόμενος πίνακας + Επόμενος πίνακας - X : - X : + X : - Previous table - Προηγούμενος πίνακας + Προηγούμενος πίνακας - Previous table : - Προηγούμενος πίνακας: + Προηγούμενος πίνακας: - Geometry and lines - Γεωμετρία και γραμμές + Γεωμετρία και γραμμές - Apply geometry to all tables linked to this one - Εφαρμογή γεωμετρίας σε όλους τους πίνακες που συνδέονται με αυτόν + Εφαρμογή γεωμετρίας σε όλους τους πίνακες που συνδέονται με αυτόν - Fit table to sheet - Εφαρμογή πίνακα στη σελίδα + Εφαρμογή πίνακα στη σελίδα - TextLabel - κείμενο + κείμενο - Header - Επικεφαλίδα + Επικεφαλίδα - - Margin - Περιθώριο + Περιθώριο - Alignment : - Στοίχιση: + Στοίχιση: - - Left - Αριστερά + Αριστερά - - Center - Κέντρο + Κέντρο - - Right - Δεξιά + Δεξιά - - Font - Γραμματοσειρά + Γραμματοσειρά - Table - Πίνακας + Πίνακας - Alignment: - Στοίχιση: + Στοίχιση: - Content - Περιεχόμενο + Περιεχόμενο @@ -6749,6 +8387,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6808,7 +8469,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Ετικέτα @@ -6964,76 +8625,48 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Φόρμα + Φόρμα - X : - X : + X : - Advanced Editor - Σύνθετος επεξεργαστής + Σύνθετος επεξεργαστής - Size : - Μέγεθος: + Μέγεθος: - Angle: - Γωνία: + Γωνία: - - - px - πξ + πξ - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Το περιεχόμενο, το μέγεθος και η γραμματοσειρά του κειμένου δεν μπορεί να αλλαχθεί επειδή είναι μορφοποιημένο σε html. + Το περιεχόμενο, το μέγεθος και η γραμματοσειρά του κειμένου δεν μπορεί να αλλαχθεί επειδή είναι μορφοποιημένο σε html. Παρακαλώ χρησιμοποιήστε τον προηγμένο επεξεργαστή για αυτό. - Text - Κείμενο + Κείμενο - @@ -7041,9 +8674,8 @@ Please use the advanced editor for this. Γραμματοσειρά - Click here to cancel html formatting - Πατήστε εδώ για ακύρωση της μορφοποίησης html + Πατήστε εδώ για ακύρωση της μορφοποίησης html @@ -7480,7 +9112,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Εκτύπωση @@ -7498,7 +9130,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Ακύρωση @@ -7697,7 +9329,7 @@ Do you still want to link this slave contact? Cross-reference - + Διασταυρούμενη αναφορά @@ -7867,6 +9499,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7970,63 +9610,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Φύλλο - + Conductor Αγωγός - + Sheet references Αναφορές φύλλου - + Cross-references Διασταυρούμενες αναφορές - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Αγωγοί - + Elements Στοιχεία - + Sheets Σελίδες - + + Cables + + + + Auto Numbering Αυτόματη αρίθμηση - + New sheet configuration page title Νέα σελίδα - + New project configuration page title Νέο έργο @@ -8156,133 +9801,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Αριθμοί 1 - - - - + + + + number format 01 Αριθμοί 01 - - - - - + + + + + number format 001 Αριθμοί 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Κείμενο - - - - + + + + Sheet no. N° σελίδας - - - - + + + + Sheet Φύλλο - - - - + + + + number format 1 - Sheet Αριθμοί 1 - σελίδα - - - - + + + + number format 01 - Sheet Αριθμοί 01 - σελίδα - - - - + + + + number format 001 - Sheet Αριθμοί 001 - σελίδα - - - - + + + + Location Θέση - - - - + + + + Plant Εγκατάσταση - - - + + + Element Line Γραμμή στοιχείου - - - + + + Element Column Στήλη στοιχείου - - - + + + Element Prefix Πρόθεμα στοιχείου @@ -8369,7 +10014,7 @@ Do you still want to link this slave contact? Change a rectangle - + Επεξεργασία ορθογωνίου @@ -8383,12 +10028,12 @@ Do you still want to link this slave contact? PartText - + Move a text Μετακίνηση ενός κειμένου - + Edit the text field Επεξεργασία πεδίου κειμένου @@ -8396,12 +10041,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8802,7 +10447,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Εκτύπωση @@ -8816,101 +10461,106 @@ Its copy was kept as: Αυτόματη αρίθμηση - + Management Διαχείριση - - + + Conductors Αγωγοί - + No. - + Name Όνομα - + Sheet Φύλλο - + Element Στοιχείο - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Στοιχεία - - + + Sheets Σελίδες - + + Cables + + + + Sheet Auto Numbering Αυτόματη αρίθμηση σελίδων - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8918,7 +10568,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8926,49 +10576,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8976,21 +10626,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8999,7 +10649,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9007,7 +10657,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9015,13 +10665,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Διαγραφή της αρίθμησης - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9030,12 +10680,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9043,12 +10693,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9056,7 +10706,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9065,80 +10715,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Έργο QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9159,19 +10809,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Φόρμα + Φόρμα - Request - Αίτηση + Αίτηση - Reload - Επαναφόρτωση + Επαναφόρτωση @@ -9668,73 +11315,75 @@ Do you want to save changes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Πινακίδες QET - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Πινακίδες χρήστη - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Σφάλμα - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9743,121 +11392,178 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Τερματισμός - + &Hide Από&κρυψη - + &Show &Εμφάνιση - + &Hide diagram editor &Απόκρυψη όλων των επεξεργαστών διαγραμμάτων - + &Show diagram editors Εμ&φάνιση όλων των επεξεργαστών διαγραμμάτων - + &Hide element editor Από&κρυψη όλων των επεξεργαστών στοιχείων - + &Show element editor Προ&βολή όλων των επεξεργαστών στοιχείων - + &Hide title block template editor systray submenu entry Α&πόκρυψη όλων των επεξεργαστών πινακίδων - + &Show title block template editors systray submenu entry Ε&μφάνιση όλων των επεξεργαστών πινακίδων - + &New diagram editor &Νέος επεξεργαστής διαγραμμάτων - + &New element editor &Νέος επεξεργαστής στοιχείου - + Closes QElectroTech Κλείσιμο του QElectroTech - + Reduces QElectroTech into the systray Ελαχιστοποιεί το QElectroTech στο πλαίσιο συστήματος - + Restore QElectroTech Επαναφορά του QElectroTech - + Diagram editors Επεξεργαστές διαγραμμάτων - + Element editors Επεξεργαστές στοιχείων - + Title block template editors systray menu entry Επεξεργαστές πινακίδων - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Χρήση: - + QElectroTech, an application to design electric diagrams. Available options: @@ -9873,7 +11579,7 @@ Available options: --license προβολή της άδειας χρήσης - + [options] [file]... @@ -9882,112 +11588,112 @@ Available options: - + Configure QElectroTech window title Ρύθμιση του QElectroTech - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=ΚΑΤΑΛΟΓΟΣ Προσδιορίστε τον κατάλογο της συλλογής στοιχείων - + --common-tbt-dir=DIR Define the title block templates collection directory --common-elements-dir=ΚΑΤΑΛΟΓΟΣ Προσδιορίστε τον κατάλογο της συλλογής πινακίδων - + --config-dir=DIR Define configuration directory --config-dir=ΚΑΤΑΛΟΓΟΣ Προσδιορίστε τον κατάλογο των ρυθμίσεων - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=ΚΑΤΑΛΟΓΟΣ Προσδιορίστε τον κατάλογο των αρχείων γλώσσας - + Loading... Initializing the elements collection cache splash screen caption Φόρτωση... Αρχικοποίηση της προσωρινής μνήμης συλλογής στοιχείων - + Loading... Sheets editor splash screen caption Φόρτωση ... Επεξεργαστής διαγραμμάτων - + Loading... Opening files splash screen caption Φόρτωση... Ανοίγουν τα αρχεία - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Διάγρα - + Electric Normal example text - translate length, not meaning Ηλεκτρικ - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Loading... splash screen caption Φόρτωση... - + Loading... Systray icon splash screen caption Φόρτωση ... Εικονίδιο πλαισίου συστήματος - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -9996,1001 +11702,1095 @@ Available options: QETDiagramEditor - + Displ&ay Προβο&λή - + Show or hide the elements panel Εμφανίζει (ή όχι) το πλαίσιο στοιχείων - + Add a column Προσθήκη στήλης - + &Cascade &Κλιμάκωση - + &Paste Επι&κόλληση - + &Copy Αντι&γραφή - + Cu&t Α&ποκοπή - + Select none Αποεπιλογή όλων - + &Edit Ε&πεξεργασία - + Remove a column Απομάκρυνση στήλης - + &Save &Αποθήκευση - + Save as Αποθήκευση ως - + &Export Ε&ξαγωγή - + Wi&ndows Παρά&θυρα - - + + &Close &Κλείσιμο - + &File &Αρχείο - + Print Εκτύπωση - + Invert selection Αντιστροφή της επιλογής - + Select Κατάσταση Λειτουργίας Επιλογής - + Move Κατάσταση Λειτουργίας Προβολής - + &Tile &Μωσαϊκό - + &New &Νέο + - Tools Εργαλεία - + &Open Άν&οιγμα - + Open a file Άνοιγμα αρχείου - + Reset zoom Επαναφορά της εστίασης - + Rotate Περιστροφή - + &Quit &Τερματισμός - + Delete Διαγραφή - + Select All Επιλογή Όλων - + Fit in view Εστίαση ώστε να χωράει - + Zoom Out Αποεστίαση - + Zoom In Εστίαση - + Undo Αναίρεση - + Redo Επαναφορά - + Reset conductors Επαναφορά των αγωγών - + Display or hide the main toolbar Προβολή ή απόκρυψη της κύριας γραμμής εργαλείων - + Display or hide the Display toolbar Προβολή ή απόκρυψη της γραμμής εργαλείων Προβολής - + Display or hide the Diagram toolbar Προβολή ή απόκρυψη της γραμμής εργαλείων Διαγραμμάτων + - Display Προβολή + - Diagram Διάγραμμα - + Add a textfield Προσθήκη πεδίου κειμένου - + No modification Καμία αλλαγή - + Display or hide the undo list Προβολή ή απόκρυψη του καταλόγου αναιρέσεων - + Edit the selected item Επεξεργασία του επιλεγμένου αντικειμένου - + Launch the terminal block creation plugin Έναρξη του προσθέτου δημιουργίας ακροδεκτών - + Group selected texts Ομαδοποίηση επιλεγμένων κειμένων - + Rotate selected elements and texts status bar tip Περιστροφή των επιλεγμένων στοιχείων και των επιλεγμένων κειμένων - + Rotate selected texts to a specific angle status bar tip Περιστροφή των επιλεγμένων κειμένων κατά μία συγκεκριμένη γωνία - + Search / Replace Αναζήτηση / Αντικατάσταση - + &Project Έρ&γο - + &Latest files Προσφάτως ανοιγμένα - - + + Project %1 registered in the directory: %2. Το έργο %1 αποθηκεύτηκε στον κατάλογο: %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Το αρχείο, το όποιο προσπαθείτε να ανοίξετε, δεν φαίνεται να είναι αναγνώσιμο και δεν μπορεί να ανοιχτεί. Παρακαλώ, ελέγξτε τα δικαιώματα του αρχείου. - + The project you try to open does not seem writable. It will be opened read-only. Το έργο, το οποίο προσπαθείτε να ανοίξετε, δεν φαίνεται να είναι εγγράψιμο. Θα ανοιχτεί μόνο για ανάγνωση. - + using tabs χρήση καρτελών - + using windows χρήση παραθύρων - + Display projects Προβολή των έργων - + Project properties Ιδιότητες του έργου - + Clean project Καθαρισμός του έργου - - + + Unable to open project message box title Αδυναμία ανοίγματος του έργου - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Το αρχείο %1 δεν δείχνει να είναι αρχείο έργου QElectroTech. Κατά συνέπεια, δεν μπορεί να ανοιχτεί. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Αναιρέσεις - + Click an action to get back in the changes you made to your diagram Status tip Επιλέξτε μια ενέργεια για να επαναφέρετε τις αλλαγές που κάνατε στο διάγραμμα σας - + Choose texts orientation Προσανατολισμός των κειμένων - + Find in the panel Εύρεση στο πλαίσιο - + Add a picture Προσθήκη εικόνας - + Add a summary Προσθήκη περίληψης - + Zoom content Εστίαση στο περιεχόμενο - + Closes QElectroTech status bar tip Κλείνει το QElectroTech - + Undoes the previous action status bar tip Αναιρεί την προηγούμενη πράξη - + Restores the undone action status bar tip Επαναφέρει την προηγούμενη αναίρεση - + Puts selected elements into the clipboard status bar tip Τοποθετεί τα επιλεγμένα στοιχεία στο πρόχειρο αντιγραφής - + Copies selected elements status bar tip Αντιγράφει τα επιλεγμένα στοιχεία - + Inverts selection of elements status bar tip Αποεπιλέγει όσα στοιχεία είναι επιλεγμένα, και επιλέγει όσα δεν ήταν επιλεγμένα - + Find the selected item in the panel status bar tip Εύρεση του επιλεγμένου στοιχείου στον πίνακα - + Reset the conductors path ignoring the user changes status bar tip Επαναφορά της διαδρομής των αγωγών, αγνοώντας τις αλλαγές του χρήστη - + Automatic creation conductor (s) Tool tip of auto conductor Αυτόματη δημιουργία αγωγών - + Projects dock title Έργα - + Collections Συλλογές - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Χρήση της αυτόματης δημιουργίας αγωγών όταν αυτό είναι δυνατόν - + Restores default zoom level status bar tip Επαναφέρει το προκαθορισμένο μέγεθος εστίασης - + Shows the various opened projects in windows status bar tip Εμφανίζει τα διάφορα ανοιγμένα έργα, σε παράθυρα - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Απενεργοποιημένο - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Προβολή - + Element texts - + Conductor texts - + Text fields - + Πεδία κειμένου - + Shapes - + Pictures - + Tables - + Cross-references Διασταυρούμενες αναφορές - + See Display > Show - + Add a nomenclature Προσθήκη ονοματολογίας - - - + + Add a cable list + + + + + Export the cable list to CSV format + + + + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip Εμφανίζει τα διάφορα ανοιγμένα έργα, σε καρτέλες - + Allows to select elements status bar tip Επιτρέπει την επιλογή στοιχείων - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Ομάδα - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add an arc - + Προσθήκη τόξου - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Προσθέτει ένα πεδίο κειμένου στην τρέχουσα σελίδα - + Add an image to the current sheet Προσθήκη εικόνας στην τρέχουσα σελίδα - + Adds a PDF page to the current sheet - + Add a line to the current sheet Προσθήκη γραμμής στην τρέχουσα σελίδα - + Adds a rectangle on the current sheet Προσθήκη ορθογώνιου στην τρέχουσα σελίδα - + Add an ellipse to the current sheet Προσθήκη έλλειψης στην τρέχουσα σελίδα - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Προσθήκη πολυγραμμής στην τρέχουσα σελίδα - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Αναίρεση + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add Προσθήκη - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth Βάθος - - + + Scripts - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -10999,7 +12799,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11008,24 +12808,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11036,18 +12836,18 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + %n items put back on the grid @@ -11055,7 +12855,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11063,22 +12863,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11086,100 +12886,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Επεξεργασία του στοιχείου - + Edit the text field edit text field Επεξεργασία του πεδίου κειμένου - + Edit the image edit image Επεξεργασία εικόνας - + Edit conductor edit conductor Επεξεργασία αγωγού - + Edit the selected object edit selected item Επεξεργασία του επιλεγμένου αντικειμένου - + An error occurred while opening file %1. message box content Παρουσιάστηκε σφάλμα κατά το άνοιγμα του αρχείου %1. - + Activates the project « %1 » Ενεργοποιεί το έργο « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Σφάλμα - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11187,7 +12987,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11195,7 +12995,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11203,18 +13003,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11223,28 +13023,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11252,12 +13052,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11267,53 +13067,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11321,441 +13121,441 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Arranges windows in a tile pattern status bar tip Διαρρυθμίζει τα παράθυρα σαν πλακίδια - + Arranges windows in a cascade pattern status bar tip Διαρρύθμιση των παραθύρων σε κλιμακωτή διάταξη - + Next project Επόμενο έργο - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Αυτό το παράθυρο εμφανίζει τις διάφορες δράσεις που γίνονται στην τρέχουσα σελίδα. Πατήστε σε μια δράση για να επιστρέψετε στην κατάσταση της σελίδας αμέσως μετά την εφαρμογή. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Επεξεργαστές διαγραμμάτων - + Export in pdf Εξαγωγή ως pdf - + Export one or more sheets of the current project status bar tip Εξάγει μία ή περισσότερες σελίδες του τρέχοντος έργου - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid Εμφάνιση του δικτυώματος - + Display or hide the grid of sheet Εμφάνιση ή απόκρυψη του δικτυώματος της σελίδας - + View the guides - + Shows or hides the guides - + Sheet properties Ιδιότητες σελίδας - + Add a sheet Προσθήκη σελίδας - - - + + + Delete this sheet Διαγραφή σελίδας - + Export to CSV Εξαγωγή ως CSV - + Terminal block manager (DEV) Διαχειριστής ακροδεκτών (DEV) - + Export the list of names of wires Εξαγωγή της λίστας των ονομάτων των αγωγών - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - + Export the internal project database Εξαγωγή της εσωτερικής βάσης δεδομένων έργου - + Previous project Προηγούμενο έργο - + Creates a new project status bar tip Δημιουργία νέου έργου - + Opens an existing project status bar tip Άνοιγμα υπάρχοντος έργου - + Closes the current project status bar tip Κλείσιμο τρέχοντος έργου - + Saves the current project and all its sheets status bar tip Αποθήκευση τρέχοντος έργου - + Saves the current project with a different file name status bar tip Αποθήκευση του τρέχοντος έργου με διαφορετικό όνομα αρχείου - + Add row Add row Προσθήκη γραμμής - + Remove a row Remove row Αφαίρεση γραμμής - + Add a column to the sheet status bar tip Προσθήκη στήλης στη σελίδα - + Remove a column from the sheet status bar tip Απομάκρυνση στήλης από τη σελίδα - + Expands the sheet height status bar tip Επεκτείνει το ύψος της σελίδας - + Shrinks the sheet height status bar tip Συρρικνώνει το ύψος της σελίδας - + Rotate the group - + Removes selected elements from the sheet status bar tip Διαγράφει τα επιλεγμένα στοιχεία από τη σελίδα - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Selects all elements on the sheet status bar tip Επιλέγει όλα τα στοιχεία τις σελίδας - + Deselect all elements on the sheet status bar tip Αποεπιλέγει όλα τα στοιχεία τις σελίδας - + Expand the sheet status bar tip Επεκτείνει τη σελίδα - + Shrinks the sheet status bar tip Συρρικνώνει τη σελίδα - + Adjusts the zoom to display all the contents of sheet regardless of context Προσαρμογή της εστίασης έτσι ώστε να εμφανιστούν όλα τα περιεχόμενα της σελίδας ανεξάρτητα από το πλαίσιο - + Adjusts the zoom on exactly the part of the sheet status bar tip Προσαρμογή της εστίασης στο μέγεθος του πλαισίου της σελίδας - + Add a PDF - + Add line Draw line Προσθήκη γραμμής - + Add a rectangle Προσθήκη παραλληλόγραμμου - + Add an ellipse Προσθήκη έλλειψης - + Add a polygon Προσθήκη πολυγραμμής - + Exports the current sheet to another format status bar tip Εξάγει την τρέχουσα σελίδα σε διαφορετική μορφή - + Prints one or more sheet of the current project status bar tip Εκτυπώνει μία ή περισσότερες σελίδες του τρέχοντος έργου + - Depth toolbar title Βάθος - + Group Ομάδα - + Pastes elements from the clipboard into the sheet status bar tip Επικολλάει τα περιεχόμενα του προχείρου στη σελίδα - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Επεξεργαστείτε τις ιδιότητες της σελίδας (διαστάσεις, πληροφορίες πινακίδας, ιδιότητες αγωγών...) - + Allows to view the sheet without modifying it status bar tip Επιτρέπει την προβολή της σελίδας χωρίς να είναι δυνατή η μετατροπή της - + Activates the next project status bar tip Ενεργοποιεί το επόμενο έργο - + Activates the previous project status bar tip Ενεργοποιεί το προηγούμενο έργο - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Έργα QElectroTech (*.qet);;Αρχεία XML (*.xml);;Όλα τα αρχεία (*) - - + + Unable to open file message box title Αδυναμία ανοίγματος του αρχείου - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Φαίνεται ότι το αρχείο 1% που προσπαθείτε να ανοίξετε δεν υπάρχει. - + Opening the file read-only message box title Άνοιγμα του αρχείου μόνο για ανάγνωση @@ -12333,7 +14133,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Element editors - + Επεξεργαστές στοιχείων @@ -12743,64 +14543,64 @@ the conditions are not valid QETProject - + An error occurred during the template integration. error message Παρουσιάστηκε σφάλμα κατά την ενσωμάτωση του προτύπου. - + Warning message box title Προειδοποίηση - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Έργο « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Έργο %1 - + Untitled project displayed title for a project-less, file-less project Ανώνυμο έργο - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [μόνο-για-ανάγνωση] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [Αλλαγμένο] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12808,44 +14608,44 @@ Do you wish to continue? - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title Προειδοποίηση - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Άνοιγμα του έργου...</b><br/>Δημιουργία των σελίδων</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Άνοιγμα του τρέχοντος έργου ...</b><br/>Εφαρμογή των παραπομπών</p> @@ -12871,166 +14671,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Αποθήκευση του παρόντος προτύπου; - + Do you wish to save the template %1? dialog content - %1 is a title block template name Θέλετε να γίνει αποθήκευση του προτύπου %1; - + new_template template name suggestion when duplicating the default one νέο_πρότυπο - + Duplicate a title block template input dialog title Αναπαραγωγή ενός προτύπου πινακίδας - + In order to duplicate this template, please enter a name for its copy input dialog text Για να αναπαραγάγετε αυτό το πρότυπο, εισάγετε το επιθυμητό όνομα για το αντίγραφο - + &New menu entry &Νέο - + &Open menu entry Άν&οιγμα - + Open from a file menu entry Άνοιγμα από ένα αρχείο - + &Save menu entry &Αποθήκευση - + Save as menu entry Αποθήκευση ως - + Save to a file menu entry Αποθήκευση σε αρχείο - + &Quit menu entry &Τερματισμός - + Cu&t menu entry Α&ποκοπή - + &Copy menu entry Αντι&γραφή - + &Paste menu entry Επι&κόλληση - + Manage logos menu entry Διαχείριση λογότυπων - + Edit extra information menu entry μετατροπή των πρόσθετων πληροφοριών - + Zoom In menu entry Μεγέθυνση - + Zoom out menu entry Σμίκρυνση - + Fit in view menu entry Ταιριαστή προβολή - + Reset zoom menu entry Επαναφορά της εστίασης - + Add a &row menu entry Προσθήκη γραμμής - + Add a &column menu entry Προσθήκη στήλης - + &Merge cells menu entry Συγχώνευση κελιών - + &Split cells menu entry Διαίρεση κελιών - - - - - - - - - - @@ -13040,156 +14830,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Επεξεργαστές πινακίδων - + &File menu title &Αρχείο - + &Edit menu title Ε&πεξεργασία - + Displ&ay menu title Προβο&λή - + Tools toolbar title Εργαλεία - + Edit toolbar title Επεξεργασία - + Display toolbar title Προβολή - + No modification label displayed in the undo list when empty Καμία αλλαγή - + Undo dock title Αναιρέσεις - + Cell properties dock title Ιδιότητες του κελιού - + [Changed] window title tag [Αλλαγμένο] - + [Read only] window title tag [Μόνο για ανάγνωση] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Επεξεργαστής προτύπου πινακίδας - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Σφάλμα - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Άνοιγμα ενός προτύπου - + Open a file dialog title Άνοιγμα ενός αρχείου - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Πρότυπα πινακίδων του QElectroTech (*%1);;Αρχεία XML (*.xml);;Όλα τα αρχεία (*) - + Save template as dialog window title Αποθήκευση προτύπου ως - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Αποθήκευση ως - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Πρότυπα πινακίδων QElectroTech (*%1) - + Edit extra information window title Επεξεργασία των πρόσθετων πληροφοριών - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Μπορείτε να ορίσετε σε αυτό το πεδίο, τον συγγραφέα αυτής της πινακίδας, την άδεια χρήσης, ή όποια άλλη πληροφορία θεωρείτε χρήσιμη. @@ -13229,7 +15029,7 @@ What do you wish to do ? Το αρχείο κειμένου που περιέχει την άδεια GNU/GPL υπάρχει αλλά δεν μπορεί να ανοιχτεί - αλλά ούτως ή άλλως την έχετε στην καρδιά σας, έτσι δεν είναι; - + Warning: the element has been saved with a more recent version of QElectroTech. Προσοχή: Το στοιχείο έχει αποθηκευτεί με μια νεότερη έκδοση του QElectroTech. @@ -13250,7 +15050,7 @@ What do you wish to do ? ένα γραφικό στοιχείο - + delete %1 undo caption - %1 is a sentence listing the removed content διαγραφή %1 @@ -13758,7 +15558,7 @@ What do you wish to do ? - + Title Τίτλος @@ -13774,18 +15574,18 @@ What do you wish to do ? Ιδιότητες του έργου - + Select an image ... Επιλογή εικόνας... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Αρχεία εικόνων (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13794,7 +15594,7 @@ What do you wish to do ? Σφάλμα - + Unable to load the image. Αδυναμία φόρτωσης της εικόνας @@ -13835,8 +15635,8 @@ What do you wish to do ? Ακροδέκτης - + Text Κείμενο @@ -13852,7 +15652,7 @@ What do you wish to do ? Επεξεργασία πληροφοριών πολλών στοιχείων - + Edit the cross reference edite the cross reference Επεξεργασία διασταυρούμενων αναφορών @@ -13952,12 +15752,12 @@ the translated name of this folder could not be read, so its folder name is disp Συλλογή - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14025,8 +15825,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14208,45 +16008,45 @@ Do you want to replace it ? - + - + Type Τύπος - + - + Address - - - - + + + + Annotation Σχόλιο - - - - + + + + Cross-reference - + Διασταυρούμενη αναφορά - - - - + + + + Function Λειτουργία @@ -14581,45 +16381,55 @@ Do you want to replace it ? Δημιουργία αγωγών - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Για να εγκαταστήσετε το πρόσθετο qet_tb_generator<br>Επισκεφθείτε το:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generator</a><br> Απαιτεί python 3.5 ή παραπάνω <br> <B> <U> Πρώτη εγκατάσταση στα Windows </B> </U> <br> 1. Εγκατάσταση, εάν απαιτείται, python 3.5 ή παραπάνω <br> Επισκεφθείτε το: <br> <a href='https://www.python.org/downloads/'> python.org </a> <br> 2. pip install qet_tb_generator <br> <B> <U> Ενημέρωση στα Windows </B> </U> <br> python -m pip install --upgrade qet_tb_generator <br>>> Ο χρήστης θα μπορούσε να ξεκινήσει σε ένα τερματικό αυτό το σενάριο σε αυτό τον κατάλογο <br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Για να εγκαταστήσετε το πρόσθετο qet_tb_generator<br>Επισκεφθείτε το:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generator</a><br><br> Απαιτεί python 3.5 ή παραπάνω <br><br> <B> <U> Πρώτη εγκατάσταση στο Linux </B> </U> <br> 1. ελέγχτε αν έχετε εγκατεστημένο το pip3: pip3 --version<br>αν οχι, εγκαταστήστε το με: sudo apt-get install python3-pip<br>2. Εγκαταστήστε την εφαρμογή: sudo pip3 install qet_tb_generator<br>3. Εκκινήστε την εφαρμογή: qet_tb_generator<br><br><B><U> Αναβάθμιση σε Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Σφάλμα εκκίνησης του προσθέτου qet_tb_generator - + Add a nomenclature Προσθήκη ονοματολογίας - + Add a summary Προσθήκη περίληψης + + + Add a cable list + + + + + Cable list + + Paste Επικόλληση - + + - - + @@ -14655,83 +16465,113 @@ Do you want to replace it ? Επεξεργασία των ιδιοτήτων μιας ομάδας ακροδεκτών - - + + Generic generic terminal element type Γενικό - + Fuse fuse terminal element type Ασφάλεια - + Sectionable sectional terminal element type - + Diode diode terminal element type Δίοδος - + Ground ground terminal element type Γείωση - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Γενικό - + Phase phase terminal element function Φάση - + Neutral neutral terminal element function Ουδέτερος - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14751,7 +16591,7 @@ Do you want to replace it ? Εισαγωγή ενος αρχείου dxf - + Default layout @@ -14944,8 +16784,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15090,88 +16930,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 Προσθήκη %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Επεξεργασία του χρώματος ενός κειμένου - + Rotate a text - + Edit line of a form Επεξεργασία της γραμμής μιας φόρμας - + Edit filling a form Επεξεργασία του γεμίσματος μιας φόρμας - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Επεξεργασία κειμένου του στοιχείου - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15223,7 +17063,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Φύλλο @@ -15272,24 +17112,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation Περιορισμός πίνακα - + Modify the geometry of a table Επεξεργασία της γεωμετρίας ενος πίνακα @@ -15348,12 +17188,12 @@ nothing has been changed. QetShapeItem - + an shape σχήμα - + a line γραμμής @@ -15624,78 +17464,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Επεξεργασία %1 - + rectangle ορθογώνιου - + an ellipse έλειψης - + an arc - + polyline πολυγραμμής - + a curve @@ -15744,6 +17584,14 @@ nothing has been changed. Επεξεργασία ορθογωνίου + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15782,6 +17630,17 @@ nothing has been changed. Το στοιχείο «% 1» υπάρχει ήδη. Τι θα θέλατε να κάνετε; + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16341,7 +18200,7 @@ Create your own text using the following variables: &Delete - + &Διαγραφή @@ -16792,28 +18651,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Αυτόματη αρίθμηση σελίδων - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16841,7 +18710,7 @@ The "Incrementation" field is not used. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16879,13 +18748,41 @@ The other fields are not used. Τα άλλα πεδία δεν χρησιμοποιούνται. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16907,17 +18804,17 @@ The other fields are not used. - + New numbering… - + Rename numbering… - + Numbering conductors title window Αυτόματη αρίθμηση αγωγών @@ -19820,42 +21717,42 @@ The other fields are not used. TerminalStripEditor - + Bridging the terminals Γεφύρωση των ακροδεκτών - + Unbridge the terminals Απογεφύρωση των ακροδεκτών - + Properties Ιδιότητες - + Name: Όνομα: - + Comment : Σχόλιο: - + Description Περιγραφή - + Plant: Εγκατάσταση - + Location : Τοποθεσία : @@ -19865,13 +21762,13 @@ The other fields are not used. Τύπος: - + Ungroup the terminals Αποομαδοποίηση των ακροδεκτών - + Generic Γενικό @@ -19916,27 +21813,72 @@ The other fields are not used. Γείωση - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Μετακίνηση σε: - + Phase Φάση - + Neutral Ουδέτερος - + Automatic position Αυτόματη θέση @@ -19946,12 +21888,12 @@ The other fields are not used. Στάδιο: - + Group the terminals Ομαδοποίηση των ακροδεκτών - + Function : Λειτουργία: @@ -19966,12 +21908,12 @@ The other fields are not used. Με - + Independent terminals Ανεξάρτητοι ακροδέκτες - + Modify terminal strip properties Επεξεργασία των ιδιοτήτων των ακροδεκτών @@ -20040,12 +21982,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20087,7 +22029,7 @@ The other fields are not used. Header text - + Κείμενο επικεφαλίδας @@ -20107,15 +22049,55 @@ The other fields are not used. Cross-reference + Διασταυρούμενη αναφορά + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20178,55 +22160,60 @@ The other fields are not used. TerminalStripModel - + Position Θέση - + Stage Στάδιο - + Label Ετικέτα - + Number wire - + Cross-reference Διασταυρούμενη αναφορά - + Cable Καλώδιο - + Color / wire number of the cable Χρώμα / αριθμός αγωγού του καλωδίου - + Type Τύπος - + Function Λειτουργία - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21351,7 +23338,7 @@ The following variables can be used: CSV files (*.csv) - + Αρχεία csv (*.csv) @@ -21535,32 +23522,42 @@ The following variables can be used: Προβολή σε σταυρό - + Label cross reference Ετικέτα διασταυρούμενων αναφορών - + Master Κύριο - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Βοηθητικό - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21577,115 +23574,141 @@ The following variables can be used: % LM: Τοποθεσία - + Option display cross Επιλογές εμφάνισης στο σταυρό - + Show the power contacts in the cross Εμφάνιση των επαφών ισχύος στο σταυρό - + Prefix of power contacts : Πρόθεμα των επαφών ισχύος: - + Prefix delayed contacts : Πρόθεμα των επαφών χρονικού: - + Prefix changeover contacts : Πρόθεμα των επαφών διακόπτη: - + Coil Πηνίο - + Organ of protection Συσκευή προστασίας - + Switch / button Διακόπτης/ Κουμπί - + Programmable Logic Controller (PLC) - + + Cable + Καλώδιο + + + Footer Στο κάτω μέρος της σελίδας - + Under the label of the element Κάτω από την ετικέτα του στοιχείου - + Top Πάνω - + Bottom Κάτω - + Left Αριστερά - + Right - + Δεξιά - + Text alignment Στοίχιση κειμένου - + Text field + + + Text: + Κείμενο: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Εξαγωγή της εσωτερικής βάσης δεδομένων έργου - + untitled ανώνυμο diff --git a/lang/qet_en.ts b/lang/qet_en.ts index 7bfeaffe1..21fc759ac 100644 --- a/lang/qet_en.ts +++ b/lang/qet_en.ts @@ -1160,6 +1160,23 @@ Note: these options DO NOT allow or block auto numberings, only their update pol %1 (newest) + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Delete + + BorderPropertiesWidget @@ -1228,6 +1245,1059 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Portrait + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Cable + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + Search: + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + New entry + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Plant (=) + + + + Location (+) + Location (+) + + + + Type + Type + + + + Cores + + + + + Plant + Plant + + + + Location + Location + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + Cannot write to the file: +%1 +%2 + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + include headers + + + + Preview + Preview + + + + cable_list_ + + + + + Save As... + Save As... + + + + CSV files (*.csv) + CSV files (*.csv) + + + + Error + Error + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + No. + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Length + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Cancel + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Yes + + + + No + Les noms saisis à la main sont laissés tels quels. + No + + + + Cancel + Ne renumérote rien du tout. + Cancel + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Yes + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + No + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Cancel + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Cable + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Cable + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Type + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Plant (=) + + + + Location (+) + Location (+) + + + + Length + Length + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Font: + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + Bold + + + + Italic + Italic + + + + Bold italic + + + + + Style: + Style: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Alignment: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Preview: + + + + Reset + Reset + + + + CableTypeEntryDialog + + + New entry + New entry + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + Save + + + + Cancel + Cancel + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + The file already exists and is not empty. + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1271,13 +2341,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption Edit conductor properties - + Edit the properties of several conductors undo caption Edit the properties of several conductors @@ -1923,7 +2993,7 @@ Continue? Diagram - + Change the depth Change the depth @@ -2060,6 +3130,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2071,7 +3158,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2079,7 +3166,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Click to place the pasted content, Esc or right-click to cancel @@ -2202,224 +3289,254 @@ Continue? DiagramImageItem - + resize resize - + rotate/skew rotate/skew - + + crop + + + + Click: mode %1 Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 -- %1: mode %2 - + Click Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) Drag: skew (Shift = 15° steps) - + Drag: move the rotation center Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image Resize an image - + Rotate an image Rotate an image - + Skew an image Skew an image - + Move an image's rotation center Move an image's rotation center - + Edit an image Edit an image - + Restore an image's proportions Restore an image's proportions - - + + Save image as... Save image as... - - + + Save original image as... Save original image as... - + PNG image (*.png) PNG image (*.png) - + JPEG image (*.jpg *.jpeg) JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) BMP image (*.bmp) - + SVG image (*.svg) SVG image (*.svg) - + All files (*) All files (*) - + Transparency not preserved Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed Saving failed - + Unable to save the image to this location. Unable to save the image to this location. - + image image - + Replace the image... Replace the image... - + Transparent color... Transparent color... - + + Crop on the folio + + + + Crop... Crop... - + + Reset crop + + + + Horizontal mirror Horizontal mirror - + Vertical mirror Vertical mirror - + Restore proportions Restore proportions - + + Properties... + + + + Select an image ... Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Error - + Unable to load the image. Unable to load the image. - + Replace an image Replace an image - + Horizontal mirror of an image Horizontal mirror of an image - + Vertical mirror of an image Vertical mirror of an image - + Set a transparent color Set a transparent color - + Crop an image Crop an image @@ -2451,22 +3568,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size Handle size - + Text grid Text grid - + Sheet background color Sheet background color - + Conductor color Conductor color @@ -2474,41 +3591,51 @@ Hold Shift and drag to move this text on its own DiagramView - + Paste Here context menu action Paste Here - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. - + Multiple paste Multiple paste - + Create a template context menu action Create a template - + Make a cabinet thumbnail context menu action Make a cabinet thumbnail - + Sheet reference Sheet reference + + + %1: %2 + + + + + Add an image + + - + Add %n image(s) Add %n image @@ -2516,50 +3643,65 @@ Hold Shift and drag to move this text on its own - + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Connect the selected terminals - + Untitled what to display for untitled diagrams Untitled - + + Remove this core from the line + + + + Registered template Registered template - + The template has been successfully saved as : %1 The template has been successfully saved as : %1 - + Error Error - + The file could not be written. The file could not be written. - + Choose the new color for this conductor Choose the new color for this conductor - + Edit conductor properties undo caption Edit conductor properties @@ -3160,7 +4302,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Automatically number an element @@ -3664,8 +4806,8 @@ Continue? - - + + Type Type @@ -3748,8 +4890,8 @@ Continue? - - + + Function Function @@ -3781,7 +4923,7 @@ Continue? - + Simple Simple @@ -3822,19 +4964,19 @@ Continue? - + Switch normally open Switch normally open - + Switch normally closed Switch normally closed - + switch switch @@ -3850,25 +4992,25 @@ Continue? - + Power switch Power switch - + Switch-on delayed Switch-on delayed - + Switch-off delayed Switch-off delayed - + Switch-on and off delayed Switch-on and off delayed @@ -3894,7 +5036,7 @@ Continue? - + Generic Generic @@ -3913,164 +5055,189 @@ Continue? Diode Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Phase - + Neutral Neutral - - - - - + + + + + T%1 T%1 - + Other fr: Autre Other - + PLC Configuration PLC Configuration - + + + - + - - - - + + Address Address - - + + Annotation Annotation - + Cross-reference Cross-reference - - + + Nb. Nb. - + T1 T1 - + Header font Header font - + Set the font for column headers Set the font for column headers - + Text font Text font - + Set the text font in the cells Set the text font in the cells - + Show headers on the sheet Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: Jump to %1 after: - + None None - + Line H: Line H: - - + + mm mm - + Ref. Ref. - + Custom column name (blank = default) Custom column name (blank = default) - + Visible Visible - + Paste from the clipboard Paste from the clipboard - - + + Heading font size: %1 %2pt Heading font size: %1 %2pt - - + + Font size: %1 %2pt Font size: %1 %2pt - + Column header formatting Column header formatting - + Cell text font Cell text font @@ -5072,7 +6239,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Export @@ -5456,97 +6623,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : Move to : - + Type : Type : - + Function : Function : - + LED : LED : - + Apply displacement Apply displacement - - + + Generic Generic - + Fuse Fuse - + Sectionable Sectionable - + Diod Diod - + Ground Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Phase - + Neutral Neutral - + Without Without - + With With - + Modify terminal strip properties Modify terminal strip properties - + The project has no terminal strip: create one with the + button The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving Apply or cancel the current changes before moving - + Select the terminals to move in the table Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block Move the selected terminals to the chosen terminal block @@ -5592,17 +6789,17 @@ that you create. Text and number inputs are Use system colors - + User Collection Path User Collection Path - + User Title blocks Path User Title blocks Path - + Path of the Common Collection Path of the Common Collection @@ -5624,6 +6821,7 @@ that you create. Text and number inputs are + Browse... Browse... @@ -5665,17 +6863,17 @@ that you create. Text and number inputs are min - + Highlight freshly integrated elements in the panel Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Applied to the next launch of QElectroTech Applied to the next launch of QElectroTech @@ -5715,32 +6913,32 @@ that you create. Text and number inputs are User title blocks directory - + Elements management Elements management - + Here you can define the default appearance of the different texts of QElectroTech Here you can define the default appearance of the different texts of QElectroTech - + Grid + Keyboard Grid + Keyboard - + Grid: 1 - 30 Grid: 1 - 30 - + DiagramEditor xGrid DiagramEditor xGrid - + DiagramEditor yGrid DiagramEditor yGrid @@ -5924,8 +7122,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet Not set @@ -5936,149 +7137,217 @@ that you create. Text and number inputs are + Create... Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Languages - + texts texts - + Elements texts Elements texts - - - + + + Font: Font: - - + + ° ° - + Length : Length : - - + + Rotation : Rotation : - + Independent texts Independent texts - + Other texts Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. The Grid must be active to see the changes. - + Grid for texts moved with the mouse Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid DiagramEditor (key: up / down) yGrid - + View grid View grid - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Point-size in diagram-editor: 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Point-size in element-editor: 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Max. parts in Element Editor List @@ -6093,220 +7362,256 @@ that you create. Text and number inputs are Allow unzoom beyond the sheet - + + Bold italic + + + + + Bold + Bold + + + + Italic + Italic + + + + Normal + Normal + + + Rounding up for 0.5 and more Rounding up for 0.5 and more - + Always top rounding Always top rounding - + Always rounded down Always rounded down - + Rounding up for 0.75 and more Rounding up for 0.75 and more - + No rounding No rounding - + Disabled fr: Désactivée Disabled - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet Not set (default: %1) - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + Not set (default: %1) + + + General configuration page title General - + System System - + Arabic Arabic - + Brazilian Brazilian - + Catalan Catalan - + Czech Czech - + German German - + Danish Danish - + Greek Greek - + English English - + Spanish Spanish - + French French - + Croatian Croatian - + Italian Italian - + Japanese Japanese - + Korean Korean - + Polish Polish - + Portuguese Portuguese - + Romanian Romanian - + Russian Russian - + Slovenian Slovenian - + Dutch Dutch - + Norwegian Norwegian - + Belgium-Flemish Belgium-Flemish - + Turkish Turkish - + Hungarian Hungarian - + Mongolian Mongolian - + Ukrainian Ukrainian - + Chinese Chinese - + Swedish Swedish - + + Cable text font + + + + + Core colors font + + + + Company collection path Company collection path - + Company title-blocks Company title-blocks - + User macro path User macro path - + Folder not found Folder not found - + The user collection folder: %1 does not exist and could not be created. @@ -6315,12 +7620,12 @@ does not exist and could not be created. does not exist and could not be created. - + No subfolder No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. @@ -6329,34 +7634,34 @@ has no subfolder, so there is no prefix to configure. has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read Prefix file cannot be read - + Prefix file damaged Prefix file damaged - + The file %1 is not a valid XML file: %2 The file %1 is not a valid XML file: %2 - + Fix the file Fix the file - + Rebuild Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6369,33 +7674,36 @@ has no subfolder, so there is no prefix to configure. “Rebuild”: the folder tree is made again, but all the current prefixes are lost. The current file is kept as qet_labels.xml.bak before it is replaced. - + File: %1 File: %1 - + Select the materials list file Select the materials list file - - + + + + CSV files (*.csv) CSV files (*.csv) - + Create the materials list file Create the materials list file - + Cannot create Cannot create - + + Cannot create the file: %1 %2 @@ -6404,17 +7712,32 @@ has no subfolder, so there is no prefix to configure. %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Values that are too high might cause the application to crash - + Experimental feature Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6429,6 +7752,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje 3 - editing the project on another computer and/or screen that does not have the same settings as in points 1 and 2. + + GenericDevice + + + Left + Left + + + + Right + Right + + + + Top + Top + + + + Bottom + Bottom + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Information + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Name: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Terminals + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Terminals + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Name + + + + Function + Function + + + + Type + Type + + + + Add terminal + + + + + Add gap + + + + + Delete + Delete + + + + Up + Up + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Generic + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6556,135 +8218,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Table properties + Table properties - Display - Display + Display - Table name - Table name + Table name - None None - All - All + All - Lines to display : - Lines to display : + Lines to display : - Y : - Y : + Y : - Next table - Next table + Next table - X : - X : + X : - Previous table - Previous table + Previous table - Previous table : - Previous table : + Previous table : - Geometry and lines - Geometry and lines + Geometry and lines - Apply geometry to all tables linked to this one - Apply geometry to all tables linked to this one + Apply geometry to all tables linked to this one - Fit table to sheet - Fit table to sheet + Fit table to sheet - TextLabel - TextLabel + TextLabel - Header - Header + Header - - Margin - Margin + Margin - Alignment : - Alignment : + Alignment : - - Left - Left + Left - - Center - Center + Center - - Right - Right + Right - - Font - Font + Font - Table - Table + Table - Alignment: - Alignment: + Alignment: - Content - Content + Content @@ -6802,6 +8434,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje Return to the full image, without cropping + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -7017,76 +8672,60 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Form + Form - X : - X : + X : - Advanced Editor - Advanced Editor + Advanced Editor - Size : - Size : + Size : - Angle: - Angle: + Angle: - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - Width: - Width: + Width: - Text width; the text wraps at this width. Auto: no automatic line wrap - Text width; the text wraps at this width. Auto: no automatic line wrap + Text width; the text wraps at this width. Auto: no automatic line wrap - Auto - Auto + Auto - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - The contents, the size and the font of the text can not be modified because formatted in html. + The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Text - Text + Text - @@ -7094,9 +8733,8 @@ Please use the advanced editor for this. Font - Click here to cancel html formatting - Click here to cancel html formatting + Click here to cancel html formatting @@ -7932,6 +9570,14 @@ Do you still want to link this slave contact? %2 + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8035,63 +9681,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Sheet - + Conductor Conductor - + Sheet references Sheet references - + Cross-references Cross-references - + Guides Guides - + Set the default automatic numbering rules for new projects: Set the default automatic numbering rules for new projects: - + Conductors Conductors - + Elements Elements - + Sheets Sheets - + + Cables + + + + Auto Numbering Auto Numbering - + New sheet configuration page title New sheet - + New project configuration page title New project @@ -8221,133 +9872,133 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 number format 1 - - - - + + + + number format 01 number format 01 - - - - - + + + + + number format 001 number format 001 - - - - - + + + + + Cyclic (modulo) Cyclic (modulo) - - - - - + + + + + Alphabetical Alphabetical - - - - - + + + + + Text Text - - - - + + + + Sheet no. Sheet no. - - - - + + + + Sheet Sheet - - - - + + + + number format 1 - Sheet number format 1 - Sheet - - - - + + + + number format 01 - Sheet number format 01 - Sheet - - - - + + + + number format 001 - Sheet number format 001 - Sheet - - - - + + + + Location Location - - - - + + + + Plant Plant - - - + + + Element Line Element Line - - - + + + Element Column Element Column - - - + + + Element Prefix Element Prefix @@ -8448,12 +10099,12 @@ Do you still want to link this slave contact? PartText - + Move a text Move a text - + Edit the text field Edit the text field @@ -8461,12 +10112,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8879,7 +10530,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Printing @@ -8893,101 +10544,106 @@ Its copy was kept as: Auto Numbering - + Management Management - - + + Conductors Conductors - + No. No. - + Name Name - + Sheet Sheet - + Element Element - + Frozen Frozen - + Assign a free number… Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Elements - - + + Sheets Sheets - + + Cables + + + + Sheet Auto Numbering Sheet Auto Numbering - + Import from another project... Import from another project... - + Reuse the automatic numbering saved in another project Reuse the automatic numbering saved in another project - + frozen frozen - + — free — — free — - + no element has this number (deleted or renumbered) no element has this number (deleted or renumbered) - + No element follows this numbering No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name %n element follows this numbering, %1 with a frozen name @@ -8995,7 +10651,7 @@ Its copy was kept as: - + ; %n numbers without an element ; %n number without an element @@ -9003,49 +10659,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number Assign a free number - + This element's name is frozen: unfreeze it first. This element's name is frozen: unfreeze it first. - + No number is free. No number is free. - + %1 → %2 %1 → %2 - + Free number for element “%1” (%2): Free number for element “%1” (%2): - - + + Numbering name: Numbering name: - - + + Modify numbering Modify numbering - + %n elements follow this numbering and will change formula and name. %n element follows this numbering and will change formula and name. @@ -9053,21 +10709,21 @@ Its copy was kept as: - - - - + + + + New numbering New numbering - - + + Rename numbering Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9078,7 +10734,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. %n numbering followed by elements with a frozen name was not replaced. @@ -9086,7 +10742,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. %n element changed formula. @@ -9094,13 +10750,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9111,12 +10767,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering No sheet names this numbering - + %n sheets name this numbering %n sheet names this numbering @@ -9124,12 +10780,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering No sheet follows this numbering - + %n sheets follow this numbering %n sheet follows this numbering @@ -9137,7 +10793,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9148,80 +10804,80 @@ Give them another numbering first. - + Import numbering from a project Import numbering from a project - + Project QElectroTech (*.qet) Project QElectroTech (*.qet) - - + + Import not possible Import not possible - + Unable to open %1 Unable to open %1 - + %1 is not a valid QElectroTech project. %1 is not a valid QElectroTech project. - - + + No numbering No numbering - - + + This project does not contain any automatic numbering. This project does not contain any automatic numbering. - + Numbering to import Numbering to import - + Numbering found in %1: Numbering found in %1: - + %1: %2 (already exists) %1: %2 (already exists) - + Replace numbering with the same name Replace numbering with the same name - + Import numberings Import numberings - + Import complete Import complete - + %1 numbering(s) imported, %2 kept unchanged. %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. %1 numbering(s) imported. @@ -9242,19 +10898,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Form + Form - Request - Request + Request - Reload - Reload + Reload @@ -9751,73 +11404,75 @@ Do you want to save changes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET title blocks - + Company title-blocks title of the company's title block templates collection Company title-blocks - + User title blocks title of the user's title block templates collection User title blocks - + + Save settings as... dialog title Save settings as... - - + + QElectroTech settings (*.conf) file dialog filter QElectroTech settings (*.conf) - - + + Error message box title Error - + Cannot save the settings to “%1”. Cannot save the settings to “%1”. - + Load settings... dialog title Load settings... - + “%1” is not a settings file saved by QElectroTech. “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title Load settings - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9830,122 +11485,179 @@ QElectroTech will then close. Start it again to use the new settings. Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Quit - + &Hide &Hide - + &Show &Show - + &Hide diagram editor &Hide diagram editor - + &Show diagram editors &Show diagram editors - + &Hide element editor &Hide element editor - + &Show element editor &Show element editor - + &Hide title block template editor systray submenu entry &Hide title block template editor - + &Show title block template editors systray submenu entry &Show title block template editors - + &New diagram editor &New diagram editor - + &New element editor &New element editor - + Closes QElectroTech Closes QElectroTech - + Reduces QElectroTech into the systray Reduces QElectroTech into the systray - + Restore QElectroTech Restore QElectroTech - + Diagram editors Diagram editors - + Element editors Element editors - + Title block template editors systray menu entry Title block template editors - + Crash report Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Usage: - + QElectroTech, an application to design electric diagrams. Available options: @@ -9962,7 +11674,7 @@ Available options: - + [options] [file]... @@ -9971,114 +11683,114 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Define the language files directory - + Loading... Initializing the elements collection cache splash screen caption Loading... Initializing the elements collection cache - + Loading... Sheets editor splash screen caption Loading... Sheets editor - + Loading... Opening files splash screen caption Loading... Opening files - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Diagram - + Electric Normal example text - translate length, not meaning Electric - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configure QElectroTech - + Loading... splash screen caption Loading... - + Loading... Systray icon splash screen caption Loading... Systray icon - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -10087,1397 +11799,1447 @@ Available options: QETDiagramEditor - + Displ&ay Displ&ay - + Show or hide the elements panel Show or hide the elements panel - + Add a column Add a column - + &Cascade &Cascade - + &Paste &Paste - + &Copy &Copy - + Cu&t Cu&t - + Select none Select none - + &Edit &Edit - + Remove a column Remove a column - + &Save &Save - + Save as Save as - + &Export &Export - + Wi&ndows Wi&ndows - - + + &Close &Close - + &File &File - + Print Print - + Invert selection Invert selection - + Select Select - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. - + Display the grid Display the grid - + Display or hide the grid of sheet Display or hide the grid of sheet - + Sheet properties Sheet properties - + Add a sheet Add a sheet - - - + + + Delete this sheet Delete this sheet - + Move Move - + &Tile &Tile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Diagram editors - + Export in pdf Export in pdf - + Export one or more sheets of the current project status bar tip Export one or more sheets of the current project - + View the guides View the guides - + Shows or hides the guides Shows or hides the guides - + Export to CSV Export to CSV - + Terminal block manager (DEV) Terminal block manager (DEV) - + Launch the terminal block creation plugin Launch the terminal block creation plugin - + Export the list of names of wires Export the list of names of wires - + Export the wiring diagram Export the wiring diagram - + Automatic numbering of terminals Automatic numbering of terminals - + Export the internal project database Export the internal project database - + &New &New - + Creates a new project status bar tip Creates a new project - + Opens an existing project status bar tip Opens an existing project - + Closes the current project status bar tip Closes the current project - + Saves the current project and all its sheets status bar tip Saves the current project and all its sheets - + Saves the current project with a different file name status bar tip Saves the current project with a different file name - + Add row Add row Add row - + Remove a row Remove row Remove a row - + Add a column to the sheet status bar tip Add a column to the sheet - + Remove a column from the sheet status bar tip Remove a column from the sheet - + Expands the sheet height status bar tip Expands the sheet height - + Shrinks the sheet height status bar tip Shrinks the sheet height - + Removes selected elements from the sheet status bar tip Removes selected elements from the sheet - + Selects all elements on the sheet status bar tip Selects all elements on the sheet - + Deselect all elements on the sheet status bar tip Deselect all elements on the sheet - + Expand the sheet status bar tip Expand the sheet - + Shrinks the sheet status bar tip Shrinks the sheet - + Adjusts the zoom to display all the contents of sheet regardless of context Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip Adjusts the zoom on exactly the part of the sheet - + Add line Draw line Add line - + Add a rectangle Add a rectangle - + Add an ellipse Add an ellipse - + Add a polygon Add a polygon - + Exports the current sheet to another format status bar tip Exports the current sheet to another format - + Prints one or more sheet of the current project status bar tip Prints one or more sheet of the current project + - Depth toolbar title Depth - + Group Group - + Pastes elements from the clipboard into the sheet status bar tip Pastes elements from the clipboard into the sheet - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Edits the properties of the sheet (size, title block information, conductor properties...) - + Allows to view the sheet without modifying it status bar tip Allows to view the sheet without modifying it + - Tools Tools - + &Open &Open - + Open a file Open a file - + Reset zoom Reset zoom - + Rotate Rotate - + &Quit &Quit - + Delete Delete - + Select All Select All - + Fit in view Fit in view - + Zoom Out Zoom Out - + Zoom In Zoom In - + Undo Undo - + Redo Redo - + Reset conductors Reset conductors - + Display or hide the main toolbar Display or hide the main toolbar - + Display or hide the Display toolbar Display or hide the Display toolbar - + Display or hide the Diagram toolbar Display or hide the Diagram toolbar + - Display Display + - Diagram Diagram - + Add a textfield Add a textfield - + No modification No modification - + Display or hide the undo list Display or hide the undo list - + Edit the selected item Edit the selected item - + Group selected texts Group selected texts - + Rotate selected elements and texts status bar tip Rotate selected elements and texts - + Rotate selected texts to a specific angle status bar tip Rotate selected texts to a specific angle - + Search / Replace Search / Replace - + &Project &Project - + &Latest files &Latest files - - + + Project %1 registered in the directory: %2. Project %1 registered in the directory: %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + The project you try to open does not seem writable. It will be opened read-only. The project you try to open does not seem writable. It will be opened read-only. - + using tabs using tabs - + using windows using windows - + Display projects Display projects - + Project properties Project properties - + Clean project Clean project - - + + Unable to open project message box title Unable to open project - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Undo - + Click an action to get back in the changes you made to your diagram Status tip Click an action to get back in the changes you made to your diagram - + Choose texts orientation Choose texts orientation - + Find in the panel Find in the panel - + Add a picture Add a picture - + Add a summary Add a summary - + Zoom content Zoom content - + Closes QElectroTech status bar tip Closes QElectroTech - + Undoes the previous action status bar tip Undoes the previous action - + Restores the undone action status bar tip Restores the undone action - + Puts selected elements into the clipboard status bar tip Puts selected elements into the clipboard - + Copies selected elements status bar tip Copies selected elements - + Inverts selection of elements status bar tip Inverts selection of elements - + Find the selected item in the panel status bar tip Find the selected item in the panel - + Reset the conductors path ignoring the user changes status bar tip Reset the conductors path ignoring the user changes - + Automatic creation conductor (s) Tool tip of auto conductor Automatic creation conductor (s) - + Projects dock title Projects - + Collections Collections - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Using the automatic creation of conductor (s) when possible - + Restores default zoom level status bar tip Restores default zoom level - + Shows the various opened projects in windows status bar tip Shows the various opened projects in windows - + Paste at the original position Paste at the original position - - + + Paste element information Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip Places the clipboard's items at their original position and moves the cursor to that point - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip Copies the filled-in information of the element on the clipboard to the selected elements - + &Duplicate &Duplicate - + Copies the selection, offset by the configured spacing status bar tip Copies the selection, offset by the configured spacing - + Configure duplication... Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip Choose the spacing and direction used by Duplicate - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Automatic disconnection of conductor(s) - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Automatically cut existing conductors when placing an element - + Text grid Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled Disabled - + Keep headers visible Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Show - + Element texts Element texts - + Conductor texts Conductor texts - + Text fields Text fields - + Shapes Shapes - + Pictures Pictures - + Tables Tables - + Cross-references Cross-references - + See Display > Show See Display > Show - + Add a nomenclature Add a nomenclature - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Wiring list (database) Wiring list (database) - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… Manage scripts… - + Write a script and make it a button with an icon Write a script and make it a button with an icon - + Open the scripts folder Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip Shows the various opened projects in tabs - + Allows to select elements status bar tip Allows to select elements - + Rotate the group Rotate the group - + Horizontal mirror Horizontal mirror - + Vertical mirror Vertical mirror - - + + Group fr: Grouper Group - + Ungroup Ungroup - + Insert the last element Insert the last element - + Places the last inserted element again status bar tip Places the last inserted element again - + Search for a command… Search for a command… - + Type part of a command name and press Enter to launch it status bar tip Type part of a command name and press Enter to launch it - + Insert an element… Insert an element… - + Opens the element picker at the cursor position status bar tip Opens the element picker at the cursor position - + Shortcut bar Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Opens, at the cursor position, the commands useful for the selection, and the element picker - + Repeat the last command Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Relaunches the last drawing tool or element insertion (Enter on the sheet) - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Rotates the selection as a group around its centre, rather than each element in place - + Flips the selected elements from left to right status bar tip Flips the selected elements from left to right - + Flips the selected elements from top to bottom status bar tip Flips the selected elements from top to bottom - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip Groups the selected elements, texts, shapes and images: they are selected, moved and copied together - + Breaks up the selected groups status bar tip Breaks up the selected groups - + Align to grid Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip Puts the selected elements, images and texts back on the grid - + Align left Align left - + Aligns the left edges of the selected items status bar tip Aligns the left edges of the selected items - + Centre horizontally Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip Aligns the selected items on one vertical line, by their origin point for elements - + Align right Align right - + Aligns the right edges of the selected items status bar tip Aligns the right edges of the selected items - + Align top Align top - + Aligns the top edges of the selected items status bar tip Aligns the top edges of the selected items - + Centre vertically Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip Aligns the selected items on one horizontal line, by their origin point for elements - + Align bottom Align bottom - + Aligns the bottom edges of the selected items status bar tip Aligns the bottom edges of the selected items - + Select all conductors Select all conductors - + Select all text fields Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip Selects all conductors on the sheet, deselects the rest - + Selects all text fields on the sheet, deselects the rest status bar tip Selects all text fields on the sheet, deselects the rest - + Centre on the cursor Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip Centres the sheet on the point under the mouse cursor, without changing the zoom - + Add a PDF Add a PDF - + Add an arc Add an arc - + Add a curve Add a curve - + Add a fillet Add a fillet - + Add a terminal plan Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Adds a text field to the current sheet - + Add an image to the current sheet Add an image to the current sheet - + Adds a PDF page to the current sheet Adds a PDF page to the current sheet - + Add a line to the current sheet Add a line to the current sheet - + Adds a rectangle on the current sheet Adds a rectangle on the current sheet - + Add an ellipse to the current sheet Add an ellipse to the current sheet - + Adds an arc on the current sheet Adds an arc on the current sheet - + Adds a polyline to the current sheet Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element Navigate to an element - + Quickly search for and select an element in the sheet status bar tip Quickly search for and select an element in the sheet + - Add Add - + Scripts toolbar title Scripts - + + Numbering + + + + + Lists + + + + &Add &Add - + Selection Selection - + Align Align - + Rows and columns Rows and columns - + Depth Depth - - + + Scripts Scripts - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title Unable to open file - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + Opening the file read-only message box title Opening the file read-only - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11486,7 +13248,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11495,24 +13257,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title Project fonts - + Sheet %1: %2 Sheet %1: %2 - + Conductors not loaded message box title Conductors not loaded - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11527,19 +13289,57 @@ If you save the project, these conductors will disappear from the file. Close it - + + Automatic numbering + window title + Automatic numbering + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Yes + + + + No + no + No + + + + Cancel + cancel + Cancel + + + Unable to delete the terminal Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + %n items put back on the grid %n item put back on the grid @@ -11547,7 +13347,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned %n item aligned @@ -11555,22 +13355,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) (%n locked object left in place) @@ -11578,100 +13378,106 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Edit the element - + Edit the text field edit text field Edit the text field - + Edit the image edit image Edit the image - + + Edit the cable + edit cable + + + + Edit conductor edit conductor Edit conductor - + Edit the selected object edit selected item Edit the selected object - + An error occurred while opening file %1. message box content An error occurred while opening file %1. - + Activates the project « %1 » Activates the project « %1 » - + Are you sure you want to delete this sheet? Are you sure you want to delete this sheet? - + Delete the sheets Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets Delete %1 sheets - - - - - - - + + + + + + + Move the sheets Move the sheets - + Error message box title Error - + Repeat: insert "%1" Repeat: insert "%1" - + Repeat: %1 Repeat: %1 - + sheet %1 sheet %1 - + %n elements redrawn. %n element redrawn. @@ -11679,7 +13485,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. %n element for which no definition could be found or which were illegible: their current design has been retained. @@ -11687,7 +13493,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n element not redrawn: its size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11695,18 +13501,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11719,33 +13525,33 @@ A script runs with your permissions: it can read and modify the open project and Enable scripts? This setting can be changed in Configure QElectroTech > General > Projects. - + Remembered after a restart Remembered after a restart - + JavaScript scripts (*.js);;All files (*) JavaScript scripts (*.js);;All files (*) - + Ignored: %1 Ignored: %1 - - + + Stop Stop - + Stop recording the macro Stop recording the macro - + ● Recording: %n steps ● Recording: %n step @@ -11753,12 +13559,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11772,53 +13578,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant &Copy the request for the assistant - + &Open the folder &Open the folder - + Request copied: paste it into the assistant's window Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session Close the assistant's connection for the rest of the session - + Live mode: assistant connected Live mode: assistant connected - + Live mode: waiting for an assistant Live mode: waiting for an assistant - - + + Assistant Assistant - + Ask before running a script the assistant wrote Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 Live mode: %1 %2 at %3 - + %n kinds of items hidden %n kind of item hidden @@ -11826,41 +13632,41 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 Texts %1 - + Arranges windows in a tile pattern status bar tip Arranges windows in a tile pattern - + Arranges windows in a cascade pattern status bar tip Arranges windows in a cascade pattern - + Next project Next project - + Previous project Previous project - + Activates the next project status bar tip Activates the next project - + Activates the previous project status bar tip Activates the previous project @@ -12848,58 +14654,58 @@ the conditions are not valid QETProject - + Warning message box title Warning - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Project « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Project %1 - + Untitled project displayed title for a project-less, file-less project Untitled project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [read-only] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modified] - + Renumber elements Renumber elements - + Renumber elements (%1) Renumber elements (%1) - + Modified contact system Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12910,13 +14716,13 @@ Existing slave elements will not be automatically assigned. You will need to lin Do you wish to continue? - + An error occurred during the template integration. error message An error occurred during the template integration. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12925,7 +14731,7 @@ You are currently using QElectroTech in version %2 You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12934,32 +14740,32 @@ What do you wish to do ? What do you wish to do ? - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + Warning message box title Warning - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12985,178 +14791,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Save current template? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Do you wish to save the template %1? - + new_template template name suggestion when duplicating the default one new_template - + Duplicate a title block template input dialog title Duplicate a title block template - + In order to duplicate this template, please enter a name for its copy input dialog text In order to duplicate this template, please enter a name for its copy - + &New menu entry &New - + &Open menu entry &Open - + Open from a file menu entry Open from a file - + &Save menu entry &Save - + Save as menu entry Save as - + Save to a file menu entry Save to a file - + &Quit menu entry &Quit - + Manage logos menu entry Manage logos - + Zoom In menu entry Zoom In - + Zoom out menu entry Zoom out - + Fit in view menu entry Fit in view - + Reset zoom menu entry Reset zoom - + Save as dialog title Save as - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech title block templates (*%1) - + &Merge cells menu entry &Merge cells - + Cu&t menu entry Cu&t - + &Copy menu entry &Copy - + &Paste menu entry &Paste - + Edit extra information menu entry Edit extra information - + Add a &row menu entry Add a &row - + Add a &column menu entry Add a &column - + &Split cells menu entry &Split cells - - - - - - - - - - @@ -13166,144 +14962,154 @@ What do you wish to do ? + + + + + + + + + + Title block template editors Title block template editors - + &File menu title &File - + &Edit menu title &Edit - + Displ&ay menu title Displ&ay - + Tools toolbar title Tools - + Edit toolbar title Edit - + Display toolbar title Display - + No modification label displayed in the undo list when empty No modification - + Undo dock title Undo - + Cell properties dock title Cell properties - + [Changed] window title tag [Changed] - + [Read only] window title tag [Read only] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Title block template editor - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Error - + Unable to save the template ‘%1’. message box content - %1 is a title block template name Unable to save the template ‘%1’. - + Open a title block template File > open dialog window title Open a title block template - + Open a file dialog title Open a file - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) - + Save template as dialog window title Save template as - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | - + Edit extra information window title Edit extra information - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13343,7 +15149,7 @@ What do you wish to do ? The text file containing the GNU/GPL license exists but could not be opened - however, you know it by heart, don't you? - + Warning: the element has been saved with a more recent version of QElectroTech. Warning: the element has been saved with a more recent version of QElectroTech. @@ -13364,7 +15170,7 @@ What do you wish to do ? a graphic element - + delete %1 undo caption - %1 is a sentence listing the removed content delete %1 @@ -13872,7 +15678,7 @@ What do you wish to do ? - + Title Title @@ -13888,18 +15694,18 @@ What do you wish to do ? Project properties - + Select an image ... Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13908,7 +15714,7 @@ What do you wish to do ? Error - + Unable to load the image. Unable to load the image. @@ -13949,8 +15755,8 @@ What do you wish to do ? Terminal - + Text Text @@ -13966,7 +15772,7 @@ What do you wish to do ? Edit information for multiple items - + Edit the cross reference edite the cross reference Edit the cross reference @@ -14067,12 +15873,12 @@ the translated name of this folder could not be read, so its folder name is disp Collection - + This group cannot be moved: the position of one of its elements is locked. This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14140,8 +15946,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 Rotate %1 @@ -14323,45 +16129,45 @@ Do you want to replace it ? - + - + Type Type - + - + Address Address - - - - + + + + Annotation Annotation - - - - + + + + Cross-reference Cross-reference - - - - + + + + Function Function @@ -14696,35 +16502,45 @@ Do you want to replace it ? Creation of conductors - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Error launching qet_tb_generator plugin - + Add a nomenclature Add a nomenclature - + Add a summary Add a summary + + + Add a cable list + + + + + Cable list + + Paste @@ -14761,83 +16577,113 @@ Do you want to replace it ? Sort terminal block %1 - - + + Generic generic terminal element type Generic - + Fuse fuse terminal element type Fuse - + Sectionable sectional terminal element type Sectionable - + Diode diode terminal element type Diode - + Ground ground terminal element type Ground - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Generic - + Phase phase terminal element function Phase - + Neutral neutral terminal element function Neutral - - + + Digital input Digital input - + Digital output Digital output - + Analogue input Analogue input - + Analogue output Analogue output - + Universal input Universal input - + Universal output Universal output @@ -14872,15 +16718,15 @@ Do you want to replace it ? Import a dxf file - + Default layout Default layout - + + - - + @@ -15063,8 +16909,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 Move %1 @@ -15209,88 +17055,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 insert %1 - + Edit the conductor properties Edit the conductor properties - + Edit a text Edit a text - + Change the color of a text Change the color of a text - + Rotate a text Rotate a text - + Edit line of a form Edit line of a form - + Edit filling a form Edit filling a form - + Rotate a shape Rotate a shape - - + + Change the shape of %1 Change the shape of %1 - + Close/Open %1 Close/Open %1 - + Resize an image Resize an image - + Rotate an image Rotate an image - + Edit element text Edit element text - + Automatically number an element Automatically number an element - + Renumber elements (%1) Renumber elements (%1) - + Search and replace Search and replace - + Script @@ -15352,7 +17198,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ Unfreeze element name - + Sheet Sheet @@ -15395,26 +17241,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation Table limitation - + Modify the geometry of a table Modify the geometry of a table @@ -15480,12 +17326,12 @@ nothing has been changed. QetShapeItem - + an shape an shape - + a line a line @@ -15756,78 +17602,78 @@ nothing has been changed. Change the type of a node - + Resize %1 Resize %1 - + Rotate %1 Rotate %1 - + Skew %1 Skew %1 - + Move the rotation center Move the rotation center - + Round the corners of %1 Round the corners of %1 - + Change the angle of an arc Change the angle of an arc - + Change the curve of an arc Change the curve of an arc - - + + Change the shape of %1 Change the shape of %1 - + Change the curvature of %1 Change the curvature of %1 - + Edit %1 Edit %1 - + rectangle rectangle - + an ellipse an ellipse - + an arc an arc - + polyline polyline - + a curve a curve @@ -15876,6 +17722,14 @@ nothing has been changed. Change a rectangle + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15914,6 +17768,17 @@ nothing has been changed. The element « %1 » already exists. What do you wish to do? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16929,28 +18794,38 @@ qet.addText(f, "Text", 40, 40); Revert to the saved definition - + Move this variable up Move this variable up - + Move this variable down Move this variable down - + Delete this variable Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Sheet Auto Numbering - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16978,7 +18853,7 @@ The "Incrementation" field is not used. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17016,13 +18891,41 @@ The other fields are not used. The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Element Auto Numbering - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17060,17 +18963,17 @@ The other fields are not used. The other fields are not used. - + New numbering… New numbering… - + Rename numbering… Rename numbering… - + Numbering conductors title window Numbering conductors @@ -19978,42 +21881,42 @@ The other fields are not used. Disposition - + Bridging the terminals Bridging the terminals - + Unbridge the terminals Unbridge the terminals - + Properties Properties - + Name: Name: - + Comment : Comment : - + Description Description - + Plant: Plant: - + Location : Location : @@ -20023,13 +21926,13 @@ The other fields are not used. Type: - + Ungroup the terminals Ungroup the terminals - + Generic Generic @@ -20069,22 +21972,67 @@ The other fields are not used. Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Move to : - + Phase Phase - + Neutral Neutral - + Automatic position Automatic position @@ -20094,12 +22042,12 @@ The other fields are not used. Stage : - + Group the terminals Group the terminals - + Function : Function : @@ -20114,17 +22062,17 @@ The other fields are not used. With - + LED : LED : - + Independent terminals Independent terminals - + Modify terminal strip properties Modify terminal strip properties @@ -20193,12 +22141,12 @@ The other fields are not used. Level 0 terminal: - + Headser : Headser : - + Bridge point Bridge point @@ -20263,12 +22211,52 @@ The other fields are not used. Cross-reference - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Height - + Preview: Preview: @@ -20331,52 +22319,57 @@ The other fields are not used. TerminalStripModel - + Position Position - + Stage Stage - + Label Label - + Cross-reference Cross-reference - + Cable Cable - + Color / wire number of the cable Color / wire number of the cable - + Type Type - + Function Function - + led led - + + Shield + + + + Number wire Number wire @@ -21692,32 +23685,42 @@ The following variables can be used: View cross - + Label cross reference Label cross reference - + Master Master - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Slave - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21734,115 +23737,141 @@ The following variables can be used: %LM: the location - + Option display cross Option display cross - + Show the power contacts in the cross Show the power contacts in the cross - + Prefix of power contacts : Prefix of power contacts : - + Prefix delayed contacts : Prefix delayed contacts : - + Prefix changeover contacts : Prefix changeover contacts : - + Coil Coil - + Organ of protection Organ of protection - + Switch / button Switch / button - + Programmable Logic Controller (PLC) Programmable Logic Controller (PLC) - + + Cable + Cable + + + Footer Footer - + Under the label of the element Under the label of the element - + Top Top - + Bottom Bottom - + Left Left - + Right Right - + Text alignment Text alignment - + Text field Text field + + + Text: + Text: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Export the internal project database - + untitled untitled diff --git a/lang/qet_es.ts b/lang/qet_es.ts index 176e06aab..cdb919620 100644 --- a/lang/qet_es.ts +++ b/lang/qet_es.ts @@ -632,7 +632,7 @@ Change the angle of an arc - + Modificar el ángulo de un arco @@ -952,12 +952,12 @@ Renumber elements - + Renumerar elementos Renumber elements (%1) - + Renumerar elementos (%1) @@ -1160,6 +1160,23 @@ Nota: Estas opciones NO permiten o bloquean las Numeraciones automáticas, solo + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Eliminar + + BorderPropertiesWidget @@ -1184,7 +1201,7 @@ Nota: Estas opciones NO permiten o bloquean las Numeraciones automáticas, solo Format: - + Formato: @@ -1216,16 +1233,1067 @@ Nota: Estas opciones NO permiten o bloquean las Numeraciones automáticas, solo Custom - + Personalizadas Landscape - + Horizontal Portrait + Vertical + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Cable + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Instalación (=) + + + + Location (+) + Localización (+) + + + + Type + Tipo + + + + Cores + + + + + Plant + Instalación + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Incluir los encabezados + + + + Preview + Vista previa + + + + cable_list_ + + + + + Save As... + Guardar como... + + + + CSV files (*.csv) + Archivos CSV (*.csv) + + + + Error + Error + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Longitud + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Sí + + + + No + Les noms saisis à la main sont laissés tels quels. + No + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Sí + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + No + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Cable + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Cable + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Tipo + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Instalación (=) + + + + Location (+) + Localización (+) + + + + Length + Longitud + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Tipo de letra: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Texto en negrita + + + + Italic + Texto en Itálica + + + + Bold italic + + + + + Style: + Estilo: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Alineación: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Vista previa: + + + + Reset + Restablecer + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1273,13 +2341,13 @@ Nota: Estas opciones NO permiten o bloquean las Numeraciones automáticas, solo Conductor - + Edit conductor properties undo caption Modificar las propiedades de un conductor - + Edit the properties of several conductors undo caption Modificar las propiedades de varios conductores @@ -1922,7 +2990,7 @@ Continue? Diagram - + Change the depth Editar la profundidad @@ -2059,6 +3127,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2070,7 +3155,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. Clic: colocar con el tamaño original. Clic y arrastrar: colocar y redimensionar. Clic derecho: girar 90°. Ctrl+rueda: ajustar el tamaño. @@ -2078,7 +3163,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Haga clic para colocar el contenido pegado; Esc o clic derecho para cancelar @@ -2201,224 +3286,254 @@ Continue? DiagramImageItem - + resize redimensionar - + rotate/skew girar/inclinar - + + crop + + + + Click: mode %1 Clic: modo %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Arrastrar una esquina o un borde: redimensionar (Ctrl = desde el centro, Mayús = mantener las proporciones) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Arrastrar una esquina: girar (Mayús = en pasos de 15°); arrastrar un borde: inclinar (Mayús = en pasos de 15°); punto rojo: desplazar el centro de rotación - + -- %1: mode %2 -- %1: modo %2 - + Click Clic - + Drag: resize (Shift = keep proportions, Ctrl = from center) Arrastrar: redimensionar (Mayús = mantener las proporciones, Ctrl = desde el centro) - + Drag: rotate (Shift = 15° steps) Arrastrar: girar (Mayús = en pasos de 15°) - + Drag: skew (Shift = 15° steps) Arrastrar: inclinar (Mayús = en pasos de 15°) - + Drag: move the rotation center Arrastrar: desplazar el centro de rotación - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image Redimensionar una imagen - + Rotate an image Girar una imagen - + Skew an image Inclinar una imagen - + Move an image's rotation center Desplazar el centro de rotación de una imagen - + Edit an image Modificar una imagen - + Restore an image's proportions Restaurar las proporciones de una imagen - - + + Save image as... Guardar imagen como... - - + + Save original image as... Guardar imagen original como... - + PNG image (*.png) Imagen PNG (*.png) - + JPEG image (*.jpg *.jpeg) Imagen JPEG (*.jpg *.jpeg) - + BMP image (*.bmp) Imagen BMP (*.bmp) - + SVG image (*.svg) Imagen SVG (*.svg) - + All files (*) Todos los archivos (*) - + Transparency not preserved No se conservará la transparencia - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? Este formato no admite transparencia: la imagen se guardará tal como estaba antes de aplicar el color transparente. ¿Continuar? - + Saving failed Error al guardar - + Unable to save the image to this location. No se puede guardar la imagen en esta ubicación. - + image una imagen - + Replace the image... Sustituir imagen... - + Transparent color... Color transparente... - + + Crop on the folio + + + + Crop... Recortar... - + + Reset crop + + + + Horizontal mirror Reflejar horizontalmente - + Vertical mirror Reflejar verticalmente - + Restore proportions Restaurar las proporciones - + + Properties... + + + + Select an image ... Seleccione una imagen ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Archivos de imagen (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Error - + Unable to load the image. Imposible cargar la imagen. - + Replace an image Sustituir una imagen - + Horizontal mirror of an image Reflejar una imagen horizontalmente - + Vertical mirror of an image Reflejar una imagen verticalmente - + Set a transparent color Definir un color transparente - + Crop an image Recortar una imagen @@ -2450,107 +3565,140 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Cuadrícula de textos - + Sheet background color - + Color de fondo del folio - + Conductor color - + Color del conductor DiagramView - + Paste Here context menu action Pegar aquí - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Esto es la zona en la cual concibe sus esquemas añadiendo elementos y colocando conductores entre sus terminales. También es posible añadir texto independiente. - + Multiple paste Collage múltiple - + Create a template context menu action Crear una plantilla - + Make a cabinet thumbnail context menu action - + Sheet reference Referencia entre folios - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 T: %2 - + Connect the selected terminals Conectar los terminales seleccionados - + Untitled what to display for untitled diagrams Sin titulo - + + Remove this core from the line + + + + Registered template Plantilla guardada - + The template has been successfully saved as : %1 La plantilla se ha guardado correctamente en: %1 - + Error Error - + The file could not be written. No se ha podido escribir el archivo. - + Choose the new color for this conductor Elegir el nuevo color de este conductor - + Edit conductor properties undo caption Modificar las propiedades de un conductor @@ -2970,7 +4118,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3153,7 +4301,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Numerar automáticamente un elemento @@ -3649,8 +4797,8 @@ Continue? - - + + Type Tipo @@ -3733,8 +4881,8 @@ Continue? - - + + Function Función @@ -3766,7 +4914,7 @@ Continue? - + Simple Simple @@ -3808,19 +4956,19 @@ Continue? - + Switch normally open Normalmente abierto - + Switch normally closed Normalmente cerrado - + switch Inversor @@ -3836,27 +4984,27 @@ Continue? - + Power switch Potencia - + Switch-on delayed Temporizador de trabajo Tiempo de trabajo - + Switch-off delayed Tiempo de reposo Tiempo de apagado - + Switch-on and off delayed Tiempo de trabajo & reposo @@ -3883,7 +5031,7 @@ Continue? - + Generic Genérico @@ -3902,164 +5050,189 @@ Continue? Diode Diodo + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutro - - - - - + + + + + T%1 T%1 - + Other fr: Autre Otro - + PLC Configuration Configuración del PLC - + + + - + - - - - + + Address Dirección - - + + Annotation Comentario - + Cross-reference Ref. cruzada - - + + Nb. N.º - + T1 T1 - + Header font Fuente de los encabezados - + Set the font for column headers Configurar la fuente de los encabezados de columna - + Text font Fuente del texto - + Set the text font in the cells Configurar la fuente del texto de las celdas - + Show headers on the sheet Mostrar los encabezados en la hoja - + Show or hide the column headings of the PLC table on the sheet Mostrar u ocultar los encabezados de columna de la tabla del PLC en la hoja - + Jump to %1 after: Salto %1 después de: - + None Ninguno - + Line H: Altura de fila: - - + + mm mm - + Ref. Ref. - + Custom column name (blank = default) Nombre personalizado de la columna (vacío = predeterminado) - + Visible Visible - + Paste from the clipboard Pegar desde el portapapeles - - + + Heading font size: %1 %2pt Fuente de los encabezados: %1 %2pt - - + + Font size: %1 %2pt Fuente del texto: %1 %2pt - + Column header formatting Fuente de los encabezados de columna - + Cell text font Fuente del texto de las celdas @@ -5067,7 +6240,7 @@ Al importar este archivo, confirma que: ExportConfigPage - + Export configuration page title Exportar @@ -5451,97 +6624,127 @@ Las entradas de texto y números + Filter by label (e.g. Z1) + + + + Move to : Desplazar durante: - + Type : Tipo: - + Function : Función: - + LED : Indicador LED: - + Apply displacement Aplicar el desplazamiento - - + + Generic Genérico - + Fuse Fusible - + Sectionable Seccionable - + Diod Diode - + Ground Tierra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutro - + Without Sin - + With Con - + Modify terminal strip properties Modificar las propiedades de los borneros - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving Aplique o cancele los cambios pendientes antes de mover - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block Mover los bornes seleccionados al bornero elegido @@ -5587,17 +6790,17 @@ Las entradas de texto y números Utiliza los colores del sistema - + User Collection Path Ruta de la colección de usuario - + User Title blocks Path Ruta de los rótulos de usuario - + Path of the Common Collection Ruta de la colección común @@ -5619,6 +6822,7 @@ Las entradas de texto y números + Browse... Navegar... @@ -5660,18 +6864,18 @@ Las entradas de texto y números minuto - + Highlight freshly integrated elements in the panel Resalta los elementos recién integrados en el panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Cada elemento incorpora información sobre sus autores, su licencia, o cualquier otra información que considere útil en un campo libre. Aquí puede especificar el valor predeterminado de este campo para los elementos que creará: - + Applied to the next launch of QElectroTech Aplica en el proximo lanzamiento de Qelectrotech @@ -5711,32 +6915,32 @@ Aquí puede especificar el valor predeterminado de este campo para los elementos Directorio de cajetines del usuario - + Elements management Gestión de elementos - + Here you can define the default appearance of the different texts of QElectroTech Aquí puede definir la apariencia predeterminada de los diferentes textos de QElectroTech - + Grid + Keyboard Rejilla + Teclado - + Grid: 1 - 30 Rejilla: 1 - 30 - + DiagramEditor xGrid DiagramaEditor xGrid - + DiagramEditor yGrid DiagramaEditor yGrid @@ -5921,8 +7125,11 @@ Método para escalar pantallas con alta densidad de píxeles (hdpi) (aplicado al + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5933,149 +7140,217 @@ Método para escalar pantallas con alta densidad de píxeles (hdpi) (aplicado al + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Idiomas - + texts Textos - + Elements texts Textos de elementos - - - + + + Font: Tipo de letra: - - + + ° ° - + Length : Longitud: - - + + Rotation : Rotación: - + Independent texts Textos independientes - + Other texts Otros textos - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. La rejilla debe estar activa para ver los cambios. - + Grid for texts moved with the mouse Cuadrícula para los textos desplazados con el ratón - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Fracción de la cuadrícula de los folios. Mantenga pulsada la tecla Ctrl durante el desplazamiento para colocar libremente. - + Keyboard movement: 1 - 30 Movimiento del teclado: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid DiagramaEditor (tecla: izquierda / derecha) xGrid - + DiagramEditor (key: up / down) yGrid DiagramaEditor (tecla: arriba / abajo) yGrid - + Keyboard movement with the ALT key: 1 - 9 Movimiento del teclado con la tecla ALT: 1 - 9 - + DiagramEditor (key: left / right) xGrid DiagramaEditor (tecla: izquierda / derecha) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid DiagramaEditor (tecla: arriba / abajo) yGrid - + View grid Visualización de la cuadrícula - - + + max: máx.: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Tamaño de los puntos de la cuadrícula del editor de esquemas: 1 - 5 - - + + min: mín.: - + Point-size in element-editor: 1 - 5 Tamaño de los puntos de la cuadrícula del editor de elementos: 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Max. componentes en Editor de Componentes @@ -6090,266 +7365,302 @@ Método para escalar pantallas con alta densidad de píxeles (hdpi) (aplicado al Permite el ajuste del tamaño del folio - + + Bold italic + + + + + Bold + Texto en negrita + + + + Italic + Texto en Itálica + + + + Normal + + + + Rounding up for 0.5 and more Redondeo superior si 0.5 ó más - + Always top rounding Redondear al superior siempre - + Always rounded down Redondear al inferior siempre - + Rounding up for 0.75 and more Redondear al superior si 0.75 ó más - + No rounding No redondear - + Disabled fr: Désactivée Desactivada - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Activado mediante la variable de entorno QET_ENABLE_SCRIPTING; este ajuste no tiene efecto mientras esté definida. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title General - + System Sistema - + Arabic Árabe - + Brazilian Brasileño - + Catalan Catalán - + Czech Checo - + German Alemán - + Danish Danés - + Greek Griego - + English Inglés - + Spanish Español - + French Francés - + Croatian Croata - + Italian Italiano - + Japanese Japonés - + Korean Coreano - + Polish Polaco - + Portuguese Portugués - + Romanian Rumanos Rumano - + Russian Ruso - + Slovenian Esloveno - + Dutch Países Bajos - + Norwegian Noruego - + Belgium-Flemish Bélgica-Flamenco - + Turkish Turco - + Hungarian Húngaro - + Mongolian Mongol - + Ukrainian Ucraniano - + Chinese Chino - + Swedish Sueco - + + Cable text font + + + + + Core colors font + + + + Company collection path Ruta de la biblioteca de la empresa - + Company title-blocks Ruta de los cajetines de la empresa - + User macro path Ruta de las macros del usuario - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6358,50 +7669,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Archivos CSV (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Con altos valores podría provocar el fallo de la aplicación - + Experimental feature Función experimental - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6416,6 +7745,345 @@ Cualquier valor distinto de «Sin redondeo» puede causar errores de representac 3 - La edición del proyecto en otro ordenador o pantalla con ajustes diferentes para los puntos 1 y 2. + + GenericDevice + + + Left + Izquierda + + + + Right + + + + + Top + Arriba + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Información + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Nombre: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Bornes + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Bornes + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Nombre + + + + Function + Función + + + + Type + Tipo + + + + Add terminal + + + + + Add gap + + + + + Delete + Eliminar + + + + Up + Arriba + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Genérico + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6502,7 +8170,7 @@ Cualquier valor distinto de «Sin redondeo» puede causar errores de representac Available commands - + Comandos disponibles @@ -6517,7 +8185,7 @@ Cualquier valor distinto de «Sin redondeo» puede causar errores de representac Context: - + Contexto: @@ -6544,135 +8212,105 @@ Cualquier valor distinto de «Sin redondeo» puede causar errores de representac GraphicsTablePropertiesEditor - Table properties - Formulario + Formulario - Display - Mostrar + Mostrar - Table name - Nombre de la tabla + Nombre de la tabla - Geometry and lines - Líneas y figuras geométricas + Líneas y figuras geométricas - All - Todas + Todas - Next table - Siguiente tabla + Siguiente tabla - None Ninguna - Fit table to sheet - Ajustar la tabla al folio + Ajustar la tabla al folio - Y : - Y: + Y: - X : - X: + X: - Previous table - Tabla previa + Tabla previa - Apply geometry to all tables linked to this one - Aplicar geometría a todas las tablas vinculadas a esta + Aplicar geometría a todas las tablas vinculadas a esta - Previous table : - Tabla anterior : + Tabla anterior : - Lines to display : - Líneas a mostrar : + Líneas a mostrar : - TextLabel - Etiqueta de texto + Etiqueta de texto - Header - Cabeceras + Cabeceras - - Margin - Margen + Margen - Alignment : - Alineamiento : + Alineamiento : - - Left - Izquierda + Izquierda - - Center - Centrado + Centrado - - Right - Derecha + Derecha - - Font - Tipo de letra + Tipo de letra - Table - Tabla + Tabla - Alignment: - Alineación: + Alineación: - Content - Contenido + Contenido @@ -6790,6 +8428,29 @@ Cualquier valor distinto de «Sin redondeo» puede causar errores de representac Volver a la imagen completa, sin recortar + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -7005,76 +8666,48 @@ Cualquier valor distinto de «Sin redondeo» puede causar errores de representac IndiTextPropertiesWidget - Form - Formulario + Formulario - X : - X: + X: - Advanced Editor - Editor avanzado + Editor avanzado - Size : - Tamaño: + Tamaño: - Angle: - Ángulo: + Ángulo: - - - px - px + px - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - El contenido, el tamaño y la fuente del texto no se pueden modificar porque están formateados en html. + El contenido, el tamaño y la fuente del texto no se pueden modificar porque están formateados en html. Por favor use el editor avanzado para esto. - Text - Texto + Texto - @@ -7082,9 +8715,8 @@ Por favor use el editor avanzado para esto. Tipo de letra - Click here to cancel html formatting - Haga clic aquí para cancelar el formato html + Haga clic aquí para cancelar el formato html @@ -7523,7 +9155,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Imprimir @@ -7541,7 +9173,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Cancelar @@ -7912,6 +9544,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8015,63 +9655,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Folio - + Conductor Conductor - + Sheet references Reportes de folio - + Cross-references Referencias cruzadas - + Guides Guías - + Set the default automatic numbering rules for new projects: Definir las reglas de numeración automática predeterminadas para los nuevos proyectos: - + Conductors Conductores - + Elements Elementos - + Sheets Folios - + + Cables + + + + Auto Numbering Numeración automática - + New sheet configuration page title Nuevo folio - + New project configuration page title Nuevo projecto @@ -8201,133 +9846,133 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 Figura 1 - - - - + + + + number format 01 Figura 01 - - - - - + + + + + number format 001 Figura 001 - - - - - + + + + + Cyclic (modulo) Cíclico (módulo) - - - - - + + + + + Alphabetical Alfabético - - - - - + + + + + Text Texto - - - - + + + + Sheet no. Nº Folio - - - - + + + + Sheet Folio - - - - + + + + number format 1 - Sheet Figura 1 - Folio - - - - + + + + number format 01 - Sheet Figura 01 - Folio - - - - + + + + number format 001 - Sheet Figura 001 - Folio - - - - + + + + Location Locmach - - - - + + + + Plant Instalación - - - + + + Element Line Elemento de línea - - - + + + Element Column Elemento de Columna - - - + + + Element Prefix Elemento de Prefijo @@ -8428,12 +10073,12 @@ Do you still want to link this slave contact? PartText - + Move a text Mover un texto - + Edit the text field Editar un campo de texto @@ -8441,12 +10086,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8847,7 +10492,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Impresión @@ -8861,101 +10506,106 @@ Its copy was kept as: Numeración automática - + Management Administración - - + + Conductors Conductores - + No. - + Name Nombre - + Sheet Folio - + Element Elemento - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Elementos - - + + Sheets Folios - + + Cables + + + + Sheet Auto Numbering Numeración automática de folios - + Import from another project... Importar desde otro proyecto... - + Reuse the automatic numbering saved in another project Reutilizar las numeraciones automáticas guardadas en otro proyecto - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8963,7 +10613,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8971,49 +10621,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9021,21 +10671,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9044,7 +10694,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9052,7 +10702,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9060,13 +10710,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Borrar la numeración - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9075,12 +10725,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9088,12 +10738,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9101,7 +10751,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9110,80 +10760,80 @@ Give them another numbering first. - + Import numbering from a project Importar las numeraciones de un proyecto - + Project QElectroTech (*.qet) Proyecto QElectroTech (*.qet) - - + + Import not possible No se puede importar - + Unable to open %1 No se puede abrir %1 - + %1 is not a valid QElectroTech project. %1 no es un proyecto válido de QElectroTech. - - + + No numbering No hay numeración - - + + This project does not contain any automatic numbering. Este proyecto no contiene ninguna numeración automática. - + Numbering to import Numeraciones que se van a importar - + Numbering found in %1: Numeraciones encontradas en %1: - + %1: %2 (already exists) %1: %2 (ya existe) - + Replace numbering with the same name Sustituir las numeraciones con el mismo nombre - + Import numberings - + Import complete Importación finalizada - + %1 numbering(s) imported, %2 kept unchanged. %1 numeración(es) importada(s), %2 conservada(s) sin cambios. - + %1 numbering(s) imported. %1 numeración(es) importada(s). @@ -9204,19 +10854,12 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Formulario + Formulario - - Request - - - - Reload - Recargar + Recargar @@ -9713,73 +11356,75 @@ Do you want to save changes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Rótulos QET - + Company title-blocks title of the company's title block templates collection Rótulos de empresa - + User title blocks title of the user's title block templates collection Rótulos de usuario - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Error - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9788,122 +11433,179 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Salir - + &Hide &Esconder - + &Show &Restaurar - + &Hide diagram editor &Esconder todos los editores de esquema - + &Show diagram editors &Restaura todos los editores de esquema - + &Hide element editor &Esconder todos los editores de elementos - + &Show element editor &Restaura todos los editores de elementos - + &Hide title block template editor systray submenu entry &Esconder los editores de rótulos - + &Show title block template editors systray submenu entry &Restaura los editores de rótulos - + &New diagram editor &Nuevo editor de esquema - + &New element editor &Nuevo editor de elemento - + Closes QElectroTech Cierre el programa QElectroTech - + Reduces QElectroTech into the systray Minimiza QElectroTech a la bandeja del sistema - + Restore QElectroTech Restaura QElectroTech - + Diagram editors Editores de esquemas - + Element editors Editores de elementos - + Title block template editors systray menu entry Editores de rótulos - + Crash report Informe de cierre inesperado - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech no se cerró correctamente en su última ejecución. Estos son los últimos mensajes registrados antes del cierre; puede guardarlos para adjuntarlos a un informe de errores. - + Diagnostic report Informe de diagnóstico - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Este informe contiene los últimos mensajes de registro de esta sesión. Revise el contenido antes de adjuntarlo a un informe de errores público. - + Usage: Uso : - + [options] [file]... @@ -9912,7 +11614,7 @@ Estos son los últimos mensajes registrados antes del cierre; puede guardarlos p - + QElectroTech, an application to design electric diagrams. Available options: @@ -9929,114 +11631,114 @@ Opciones disponibles: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Definir la carpeta de la colección de elementos - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definir la carpeta de la colección de elementos - + --config-dir=DIR Define configuration directory --config-dir=DIR Definir la carpeta de configuración - + --data-dir=DIR Define data directory --data-dir=DIR Definir el directorio de datos - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Definir la carpeta con los archivos de idioma - + Loading... Initializing the elements collection cache splash screen caption Cargando... Inicializando la caché de collecciones de elementos - + Loading... Sheets editor splash screen caption Cargando... Editor de esquemas - + Loading... Opening files splash screen caption Cargando.... Abriendo archivos - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Esquema - + Electric Normal example text - translate length, not meaning Eléctrico - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configurar QElectroTech - + Loading... splash screen caption Cargando... - + Loading... Systray icon splash screen caption Cargando.... icono de la bandeja del sistema - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -10045,857 +11747,951 @@ Opciones disponibles: QETDiagramEditor - + No modification Ninguna modificación - + &New &Nuevo - + &Open &Abrir - - + + &Close &Cerrar - + &Save &Guardar - + Save as Guardar como - + &Export E&xportar - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Este panel muestra las diferentes acciones realizadas en el folio actual. Haga clic en una acción para volver al estado del folio justo después de la acción. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Editor de esquemas - + Print Imprimir - + Export in pdf Exportar a PDF - + Export one or more sheets of the current project status bar tip Exporta uno o varios folios del proyecto actual - + &Quit &Salir - + Undo Deshacer - + Redo Rehacer - + Cu&t C&ortar - + &Copy &Copiar - + &Paste &Pegar - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Corte automático de conductores - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Cortar automáticamente los conductores existentes al colocar un elemento - + Display the grid Mostrar cuadrícula - + Display or hide the grid of sheet Muestra u oculta la cuadrícula - + Text grid Cuadrícula de textos - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Cuadrícula de ajuste para los textos desplazados con el ratón. Mantenga pulsada la tecla Ctrl durante el desplazamiento para colocar libremente. - + Disabled Desactivada - + View the guides Mostrar las guías - + Shows or hides the guides Muestra u oculta las guías - + Keep headers visible Mantener visibles los encabezados - + Keeps the sheet's column numbers and row letters visible at the edge of the view Mantiene visibles los números de columna y las letras de fila del folio en el borde de la vista - + Show cell boundaries Mostrar los límites de las casillas - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Dibuja los límites de las columnas y las filas del folio sobre el esquema, solo en pantalla - + Show Mostrar - + Element texts - + Conductor texts - + Text fields - + Campo de texto - + Shapes - + Pictures - + Tables - + Cross-references Referencias cruzadas - + See Display > Show - + Sheet properties Propiedades del folio - + Add a sheet Añadir un folio - - - + + + Delete this sheet Eliminar el folio - + Export to CSV Exportar en formato CSV - + Add a nomenclature Añadir una lista de materiales - + Terminal block manager (DEV) Gestor de borneros (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Exportar la lista de nombres de conductores - + Export the wiring diagram Exportar el plano de cableado - + Wiring list (database) Lista de cableado (base de datos) - + Automatic numbering of terminals Numeración automática de bornes - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings Recargar los dibujos de los elementos - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Vuelve a dibujar cada elemento colocado según su definición actual, sin necesidad de cerrar y volver a abrir el proyecto (esta acción no se puede deshacer) - + Run a script... Ejecutar un script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Ejecuta un script JavaScript en el proyecto actual (consulte qet.* en el script para conocer la API disponible) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Exportar la base de datos interna del proyecto - + Creates a new project status bar tip Crear un nuevo proyecto - + Opens an existing project status bar tip Abrir un proyecto existente - + Closes the current project status bar tip Cerrar el proyecto - + Saves the current project and all its sheets status bar tip Guardar el proyecto - + Saves the current project with a different file name status bar tip Guardar el proyecto con otro nombre de archivo - + Add row Add row Añadir una fila - + Remove a row Remove row Eliminar una fila - + Add a column to the sheet status bar tip Añadir una columna - + Remove a column from the sheet status bar tip Eliminar una columna - + Expands the sheet height status bar tip Aumentar el tamaño vertical del folio - + Shrinks the sheet height status bar tip Disminuir el tamaño vertical del folio - + Rotate the group Girar el grupo - + Horizontal mirror - + Reflejar horizontalmente - + Vertical mirror - + Reflejar verticalmente - - + + Group fr: Grouper - + Grupo - + Ungroup - + Insert the last element Insertar el último elemento - + Places the last inserted element again status bar tip Vuelve a colocar el último elemento insertado - + Search for a command… Buscar un comando… - + Type part of a command name and press Enter to launch it status bar tip Escriba parte del nombre de un comando y pulse Intro para ejecutarlo - + Insert an element… Insertar un elemento… - + Opens the element picker at the cursor position status bar tip Abre el selector de elementos en la posición del cursor - + Shortcut bar Barra de accesos directos - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Abre los comandos útiles para la selección y el selector de elementos en la posición del cursor - + Repeat the last command Repetir el último comando - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Vuelve a activar la última herramienta de dibujo o la última inserción de elemento (Intro en el folio) - + Removes selected elements from the sheet status bar tip Eliminar los elementos seleccionados - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Gira la selección como un grupo alrededor de su centro, en lugar de girar cada elemento sobre sí mismo - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid Ajustar a la cuadrícula - + Puts the selected elements, images and texts back on the grid status bar tip Vuelve a ajustar a la cuadrícula los elementos, imágenes y textos seleccionados - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Seleccionar todo - + Select none Deseleccionar todo - + Invert selection Invertir la selección - + Select all conductors Seleccionar todos los conductores - + Select all text fields Seleccionar todos los campos de texto - + Selects all conductors on the sheet, deselects the rest status bar tip Selecciona todos los conductores del folio y deselecciona el resto - + Selects all text fields on the sheet, deselects the rest status bar tip Selecciona todos los campos de texto del folio y deselecciona el resto - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF Añadir un PDF - + Add an arc - + Añadir un arco de círculo - + Add a curve Añadir una curva - + Add a fillet - + Add a terminal plan Añadir un plano de bornes - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Agrega un campo de texto en el folio actual - + Add an image to the current sheet Agregar una imagen en el folio actual - + Adds a PDF page to the current sheet Añade una página PDF al folio actual - + Add a line to the current sheet Añadir una línea al folio actual - + Adds a rectangle on the current sheet Añadir un rectangulo al folio actual - + Add an ellipse to the current sheet Agregar una elipse al folio actual - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Agregar una polilínea al folio actual - + Adds a Bézier curve to the current sheet Añade una curva de Bézier al folio actual - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Añade un plano de bornero al folio actual - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element Ir a un elemento - + Quickly search for and select an element in the sheet status bar tip Busca y selecciona rápidamente un elemento del folio - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Sí + + + + No + no + No + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Depth toolbar title Profundidad - + Scripts toolbar title - + &Add A&ñadir - + Selection - + Align Alinear - + Rows and columns Filas y columnas - + Depth Profundidad - - + + Scripts - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -10904,7 +12700,7 @@ Mantenga pulsada la tecla Ctrl durante el desplazamiento para colocar libremente - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -10913,24 +12709,24 @@ Mantenga pulsada la tecla Ctrl durante el desplazamiento para colocar libremente - + Project fonts message box title Fuentes del proyecto - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -10941,24 +12737,24 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal No se puede eliminar el borne - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted No se puede eliminar la selección porque contiene uno o varios bornes puenteados o pertenecientes a un borne de varios niveles. Retire los puentes o elimine los niveles de los bornes afectados para poder eliminarlos. - + Group Grupo - + %n items put back on the grid %n objeto ajustado a la cuadrícula @@ -10966,7 +12762,7 @@ Retire los puentes o elimine los niveles de los bornes afectados para poder elim - + %n items aligned @@ -10974,22 +12770,22 @@ Retire los puentes o elimine los niveles de los bornes afectados para poder elim - + The selection is already on the grid La selección ya está ajustada a la cuadrícula - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) (%n objeto bloqueado se ha dejado en su posición) @@ -10997,28 +12793,28 @@ Retire los puentes o elimine los niveles de los bornes afectados para poder elim - + An error occurred while opening file %1. message box content Se produjo un error al abrir el archivo %1. - + Repeat: insert "%1" Repetir: insertar «%1» - + Repeat: %1 Repetir: %1 - + sheet %1 folio %1 - + %n elements redrawn. %n elemento redibujado. @@ -11026,7 +12822,7 @@ Retire los puentes o elimine los niveles de los bornes afectados para poder elim - + %n elements for which no definition could be found or which were illegible: their current design has been retained. No se ha encontrado o no se ha podido leer la definición de %n elemento: se ha conservado su dibujo actual. @@ -11034,7 +12830,7 @@ Retire los puentes o elimine los niveles de los bornes afectados para poder elim - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n elemento no redibujado: ha cambiado su tamaño, su punto de inserción o sus bornes (se ha añadido, eliminado o desplazado un borne). @@ -11042,18 +12838,18 @@ Retire los puentes o elimine los niveles de los bornes afectados para poder elim - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. Para actualizarlos, debe eliminarlos y volver a insertarlos. Atención: esta operación elimina los conductores conectados a estos elementos, que deberán dibujarse de nuevo. - - + + Run a script Ejecutar un script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11066,28 +12862,28 @@ Un script se ejecuta con sus permisos: puede leer y modificar el proyecto abiert ¿Activar los scripts? Este ajuste se puede modificar en Configurar QElectroTech > General > Proyectos. - + JavaScript scripts (*.js);;All files (*) Scripts JavaScript (*.js);;Todos los archivos (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11095,12 +12891,12 @@ Un script se ejecuta con sus permisos: puede leer y modificar el proyecto abiert - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11110,53 +12906,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11164,654 +12960,654 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 Textos %1 - + Delete Eliminar - + Rotate Girar - + Edit the selected item Editar el elemento seleccionado - + Reset conductors Reiniciar los conductores - + Add a textfield Añadir un campo de texto - + Add a column Añadir una columna - + Remove a column Eliminar una columna - + Project properties Propiedades del proyecto - + Zoom In Ampliar - + Zoom Out Reducir - + Fit in view Ajustar - + Reset zoom Normal - + using tabs utilizando pestañas - + using windows utilizando ventanas - + Select Modo selección - + Move Modo visualización - + Click an action to get back in the changes you made to your diagram Status tip Haga clic en una acción para volver atras en la edición de su esquema - + Find in the panel Encontrar en el panel - + Add a picture Añadir una imagen - + Add a summary Añadir un resumen - + Zoom content Ampliar el contenido - + &Tile &Mosaico - + &Cascade &Cascada - + Automatic creation conductor (s) Tool tip of auto conductor Creación automática de un conductor (es) - + Projects dock title Proyectos - + Collections Colecciones - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate Dupli&car - + Copies the selection, offset by the configured spacing status bar tip Copia la selección con el desplazamiento configurado - + Configure duplication... Configurar la duplicación... - + Choose the spacing and direction used by Duplicate status bar tip Elegir la separación y la dirección que utiliza Duplicar - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Utilizar creación automática de un conductor(es) - + Launch the terminal block creation plugin terminales o bornes Lanzar el plugin de creación de terminales - + Group selected texts Agrupar los textos seleccionados - + Rotate selected elements and texts status bar tip Gira los elementos y textos seleccionados - + Rotate selected texts to a specific angle status bar tip Gira los textos seleccionados a un ángulo determinado - + Find the selected item in the panel status bar tip Encontrar el elemento seleccionado en el panel - + Add line Draw line Añadir una línea - + Search / Replace Buscar/Reemplazar - + &File &Archivo - + &Edit &Edición - + &Project P&royecto - + Displ&ay &Ver - + Wi&ndows Venta&nas - + Display or hide the main toolbar Mostrar u ocultar la barra de herramientas principal - + Display or hide the Display toolbar Mostrar u ocultar la barra de herramientas "Ver" - + Display or hide the Diagram toolbar Mostrar u ocultar la barra de herramientas "Esquema" - + Show or hide the elements panel Mostrar u ocultar el panel de dispositivos - + Display or hide the undo list Mostrar u ocultar la lista de modificaciones - + Display projects Mostrar los proyectos + - Tools Herramientas + - Display Ver + - Diagram Esquema + - Add Añadir - + Open a file Abrir un archivo - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Parece que el archivo que intenta abrir no es accesible en lectura. Por eso es imposible abrirlo. Por favor compruebe los permisos del archivo. - + The project you try to open does not seem writable. It will be opened read-only. Parece que el proyecto que intenta abrir no es accesible en escritura. Por eso se abrira en sólo lectura. - + Edit the element edit element Editar el elemento - + Edit the text field edit text field Editar el campo de texto - + Edit the image edit image Editar la imagen - + Edit conductor edit conductor Editar el conductor - + Edit the selected object edit selected item Editar el objeto seleccionado - + Activates the project « %1 » Activar el proyecto « %1 » - + Are you sure you want to delete this sheet? ¿Seguro que desea eliminar este folio? - + Delete the sheets Eliminar los folios - + Are you sure you want to delete the selected %1 sheets ? ¿Seguro que desea eliminar los %1 folios seleccionados? - + Delete %1 sheets Eliminar %1 folios - - - - - - - + + + + + + + Move the sheets Mover los folios - + Error message box title Error - + Clean project Limpiar el proyecto - - + + Unable to open project message box title Fracaso al abrir el proyecto - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Parece que el archivo %1 no es un archivo de proyecto QElectroTech. Por eso no se puede abrir. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Anulaciones - + Choose texts orientation Orientar los textos - + Closes QElectroTech status bar tip Cierre el programa QElectroTech - + Undoes the previous action status bar tip Deshacer la última acción - + Restores the undone action status bar tip Restaurar la última acción deshecha - + Puts selected elements into the clipboard status bar tip Transferir los elementos seleccionados al portapapeles - + Copies selected elements status bar tip Copiar los elementos seleccionados al portapapeles - + Inverts selection of elements status bar tip Deseleccionar los elementos ya seleccionados y seleccionar los elementos no seleccionados - + Reset the conductors path ignoring the user changes status bar tip Recalcule los caminos de los conductores sin tener en cuenta las modificaciones - + Restores default zoom level status bar tip Restaurar el zoom por defecto - + Shows the various opened projects in windows status bar tip Mostrar los diferentes proyectos abiertos en sub ventanas - + Shows the various opened projects in tabs status bar tip Mostrar los diferentes proyectos abiertos en pestañas - + Allows to select elements status bar tip Permite seleccionar los elementos - + Arranges windows in a tile pattern status bar tip Poner las ventanas en mosaico - + Arranges windows in a cascade pattern status bar tip Poner las ventanas en cascada - + Next project Proyecto siguiente - + Previous project Proyecto previo - + Selects all elements on the sheet status bar tip Selecciona todos los elementos - + Deselect all elements on the sheet status bar tip Deselecciona todos los elementos - + Expand the sheet status bar tip Aumenta el tamaño del folio - + Shrinks the sheet status bar tip Disminuye el tamaño del folio - + Adjusts the zoom to display all the contents of sheet regardless of context Ajusta el zoom para visualizar todos los contenidos del folio - + Adjusts the zoom on exactly the part of the sheet status bar tip Ajusta el zoom al folio - + Add a rectangle Añadir un rectángulo - + Add an ellipse Añadir una elipse - + Add a polygon Añadir un polígono - + Exports the current sheet to another format status bar tip Exportar el folio en otro formato - + Prints one or more sheet of the current project status bar tip Imprimir uno o más folios - + Pastes elements from the clipboard into the sheet status bar tip Pega los elementos del portapapeles en el folio - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Edita las propiedades del folio - + Allows to view the sheet without modifying it status bar tip Permitir ver el folio sin modificarlo - + Activates the next project status bar tip Activar el proyecto siguiente - + Activates the previous project status bar tip Activar el proyecto previo - + &Latest files &Recientemente abiertos - - + + Project %1 registered in the directory: %2. Proyecto %1 guardar en el directorio: %2. - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Projectos QElectroTech (*.qet);;Archivos XML (*.xml);;Todos los archivos (*.") - - + + Unable to open file message box title Imposible de abrir el archivo - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Parece que el archivo %1 que usted está intentando abrir no existe. - + Opening the file read-only message box title Abriendo el proyecto en sólo lectura @@ -12799,58 +14595,58 @@ Espere mientras se importa... QETProject - + Warning message box title Advertencia - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projecto « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Proyecto %1 - + Untitled project displayed title for a project-less, file-less project Proyecto sín título - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [sólo lectura] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modificado] - + Renumber elements Renumerar elementos - + Renumber elements (%1) Renumerar elementos (%1) - + Modified contact system Sistema de contactos modificado - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12861,13 +14657,13 @@ Los elementos esclavos existentes no se asignarán automáticamente. Deberá vol ¿Desea continuar? - + An error occurred during the template integration. error message Un error ocurrió durante la integración del modelo. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12876,7 +14672,7 @@ que es posterior a la suya. Actualmente utiliza QElectroTech versión %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12885,32 +14681,32 @@ Es posible que no se pueda abrir este documento, total o parcialmente. ¿Qué desea hacer? - + Warning message box title Advertencia - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. El proyecto que intenta abrir es parcialmente compatible con su versión %1 de QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Para hacerlo totalmente compatible, abra este mismo proyecto con la versión 0.8 o 0.80 de QElectroTech, guárdelo y vuelva a abrirlo con esta versión. ¿Qué desea hacer? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b><p align="center"><b>Apertura del proyecto en curso...</b><br/>Creación de folios</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Apertura del proyecto en curso...</b><br/>Configuración de referencias cruzadas</p> @@ -12936,179 +14732,169 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title ¿Guardar el modelo en curso? - + Do you wish to save the template %1? dialog content - %1 is a title block template name ¿ Quieres guardar el modelo %1 ? - + new_template template name suggestion when duplicating the default one nuevo_modelo - + Duplicate a title block template input dialog title Duplicar un modelo de titulo Duplicar rótulo - + In order to duplicate this template, please enter a name for its copy input dialog text Para duplicar este modelo, escriba el nombre deseado para la copia - + &New menu entry &Nuevo - + &Open menu entry &Abrir - + Open from a file menu entry Abrir desde archivo - + &Save menu entry &Guardar - + Save as menu entry Guardar como - + Save to a file menu entry Guardar en archivo - + &Quit menu entry &Salir - + Manage logos menu entry Administrar los logotipos - + Zoom In menu entry Ampliar - + Zoom out menu entry Reducir - + Fit in view menu entry Ajustar - + Reset zoom menu entry Normal - + Save as dialog title Guardar como - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Rótulos de QElectroTech (*%1) - + &Merge cells menu entry &Combinar las celdas - + Cu&t menu entry C&ortar - + &Copy menu entry &Copiar - + &Paste menu entry &Pegar - + Edit extra information menu entry Editar las informaciones complementarias - + Add a &row menu entry Añadir una &línea - + Add a &column menu entry Añadir una &columna - + &Split cells menu entry &Separar las celdas - - - - - - - - - - @@ -13118,145 +14904,155 @@ What do you wish to do ? + + + + + + + + + + Title block template editors Editor de rótulos - + &File menu title &Archivo - + &Edit menu title &Edición - + Displ&ay menu title &Ver - + Tools toolbar title Herramientas - + Edit toolbar title Edición - + Display toolbar title Ver - + No modification label displayed in the undo list when empty Ninguna modificación - + Undo dock title Anulaciones - + Cell properties dock title Propiedades de la celda - + [Changed] window title tag [modificado] - + [Read only] window title tag [Sólo lectura] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Editor de modelo de propiedades QElectroTech - Editor rótulos - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Error - + Unable to save the template ‘%1’. message box content - %1 is a title block template name No se puede guardar la plantilla «%1». - + Open a title block template File > open dialog window title Abrir un modelo - + Open a file dialog title Abre un archivo - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Rótulos de QElectroTech (*%1);;Archivos XML (*.xml);;Todos los ficheros (*) - + Save template as dialog window title Guardar el modelo como - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name El nombre «%1» no es válido: no puede contener los siguientes caracteres: \ / : * ? " < > | - + Edit extra information window title Editar las informaciones complementarias - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Puede utilizar este campo en blanco para indicar los autores del rótulo, de su licencia, o cualquier otra información que considere útil. @@ -13286,7 +15082,7 @@ What do you wish to do ? Exportar al portapapeles - + Warning: the element has been saved with a more recent version of QElectroTech. Aviso: el elemento fue guardado con una versión mas reciente de QElectroTech. @@ -13317,7 +15113,7 @@ What do you wish to do ? un elemento gráfico - + delete %1 undo caption - %1 is a sentence listing the removed content eliminar %1 @@ -13827,7 +15623,7 @@ What do you wish to do ? - + Title Titulo @@ -13843,18 +15639,18 @@ What do you wish to do ? Propiedades del proyecto - + Select an image ... Seleccione una imagen ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Los archivos de imagen (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13863,7 +15659,7 @@ What do you wish to do ? Error - + Unable to load the image. Imposible cargar la imagen. @@ -13904,8 +15700,8 @@ What do you wish to do ? Borne - + Text Texto @@ -13921,7 +15717,7 @@ What do you wish to do ? Modificar la información de varios elementos - + Edit the cross reference edite the cross reference Editar la referencia cruzada @@ -14021,12 +15817,12 @@ the translated name of this folder could not be read, so its folder name is disp Colección - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14095,8 +15891,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 Girar %1 @@ -14284,45 +16080,45 @@ Do you want to replace it ? - + - + Type Tipo - + - + Address Dirección - - - - + + + + Annotation Comentario - - - - + + + + Cross-reference Ref. cruzada - - - - + + + + Function Función @@ -14652,35 +16448,45 @@ Do you want to replace it ? Creación de conductores - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Para instalar el plugin qet_tb_generator<br>Visita :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requiere python 3.5 o superior.<br><B><U> Primera instalación en Windows</B></U><br>1. Instalar, si es necesario, python 3.5 o superior<br> Visita :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. instalación de pip qet_tb_generator<br><B><U> Update en Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>El usuario podría iniciar en un terminal este script en este directorio.<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Para instalar el complemento qet_tb_generator<br>Visite:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Primera instalación en macOSX</B></U><br>1. Si es necesario, instale únicamente el paquete de Python 3.11: <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Ejecute el script Profile.command<br>porque el programa utiliza una ruta PATH fija para localizar el complemento qet-tb-generator.<br>Consulte:<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>instrucciones</a><br>2. pip3 install qet_tb_generator<br><B><U> Actualización en macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Para instalar el complemento qet_tb_generator<br>Visite:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requiere Python 3.5 o posterior.<br><br><B><U> Primera instalación en Linux</B></U><br>1. Compruebe que tiene pip3 instalado: pip3 --version<br>Si no lo tiene, instálelo con: sudo apt-get install python3-pip<br>2. Instale el programa: sudo pip3 install qet_tb_generator<br>3. Ejecute el programa: qet_tb_generator<br><br><B><U> Actualización en Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Error al iniciar el complemento qet_tb_generator - + Add a nomenclature Añadir una lista de materiales - + Add a summary Añadir un índice + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14692,91 +16498,121 @@ Do you want to replace it ? Compilación: - - + + Generic generic terminal element type Genérico - + Fuse fuse terminal element type Fusible - + Sectionable sectional terminal element type Seccionable - + Diode diode terminal element type Diodo - + Ground ground terminal element type Tierra - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Genérico - + Phase phase terminal element function Fase - + Neutral neutral terminal element function Neutro - - + + Digital input Entrada digital - + Digital output Salida digital - + Analogue input Entrada analógica - + Analogue output Salida analógica - + Universal input Entrada universal - + Universal output Salida universal - + + - - + @@ -14802,7 +16638,7 @@ Do you want to replace it ? Pegar - + Default layout Disposición predeterminada @@ -15019,8 +16855,8 @@ Descárguelo mediante el siguiente enlace y descomprímalo en la carpeta de inst - - + + Move %1 Mover %1 @@ -15165,88 +17001,88 @@ Descárguelo mediante el siguiente enlace y descomprímalo en la carpeta de inst - + insert %1 Añadir %1 - + Edit the conductor properties Modificar las propiedades del conductor - + Edit a text Modificar un texto - + Change the color of a text Modificar el color de un texto - + Rotate a text Girar un texto - + Edit line of a form Modificar el trazo de una forma - + Edit filling a form Modificar el relleno de una forma - + Rotate a shape Girar una forma - - + + Change the shape of %1 Modificar la forma de %1 - + Close/Open %1 Cerrar/abrir %1 - + Resize an image Redimensionar una imagen - + Rotate an image Girar una imagen - + Edit element text Modificar un texto del elemento - + Automatically number an element Numerar automáticamente un elemento - + Renumber elements (%1) - + Renumerar elementos (%1) - + Search and replace Buscar y reemplazar - + Script @@ -15302,7 +17138,7 @@ Para activarla: Configurar QElectroTech > General > Proyectos, o defina la - + Sheet Folio @@ -15325,12 +17161,12 @@ Para activarla: Configurar QElectroTech > General > Proyectos, o defina la Horizontal mirror - + Reflejar horizontalmente Vertical mirror - + Reflejar verticalmente @@ -15351,26 +17187,26 @@ Para activarla: Configurar QElectroTech > General > Proyectos, o defina la QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. La información que se debe mostrar supera la capacidad máxima de las tablas. Añada una nueva tabla o ajuste las tablas existentes para mostrar toda la información. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. La información que se debe mostrar supera la capacidad máxima de la tabla. Añada una nueva tabla o ajuste la tabla existente para mostrar toda la información. - + Table limitation Límite de capacidad de la tabla - + Modify the geometry of a table Modificar la geometría de una tabla @@ -15429,12 +17265,12 @@ nothing has been changed. QetShapeItem - + an shape una forma - + a line una línea @@ -15705,78 +17541,78 @@ nothing has been changed. Modificar el tipo de un nodo - + Resize %1 Redimensionar %1 - + Rotate %1 Girar %1 - + Skew %1 Inclinar %1 - + Move the rotation center Desplazar el centro de rotación - + Round the corners of %1 Redondear las esquinas de %1 - + Change the angle of an arc Modificar el ángulo de un arco - + Change the curve of an arc - - + + Change the shape of %1 Modificar la forma de %1 - + Change the curvature of %1 Modificar la curvatura de %1 - + Edit %1 Editar %1 - + rectangle un rectángulo - + an ellipse una elipse - + an arc un arco - + polyline un polígono - + a curve una curva @@ -15825,6 +17661,14 @@ nothing has been changed. Editar un rectangulo + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15863,6 +17707,17 @@ nothing has been changed. El elemento « %1 » ya existe, ¿que quiere hacer? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16423,7 +18278,7 @@ Crea tu propio texto usando las siguientes variables: &Delete - + &Eliminar @@ -16874,28 +18729,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Numeración de Folio automatica - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16923,7 +18788,7 @@ El campo "Incrementación" no se utiliza.. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16961,13 +18826,41 @@ Los otros campos no se utilizan. Los otros campos no se utilizan. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Numeración automática de elementos - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17005,17 +18898,17 @@ Los demás campos no se utilizan. Los demás campos no se utilizan. - + New numbering… - + Rename numbering… - + Numbering conductors title window Conductor numeración automática @@ -17436,7 +19329,7 @@ Los demás campos no se utilizan. Category - + Categoría @@ -17461,7 +19354,7 @@ Los demás campos no se utilizan. Action - + Acción @@ -19919,22 +21812,22 @@ Los demás campos no se utilizan. TerminalStripEditor - + Properties Propiedades - + Name: Nombre: - + Comment : Comentario: - + Plant: Instalación : @@ -19980,7 +21873,7 @@ Los demás campos no se utilizan. - + Generic Genérico @@ -20005,72 +21898,117 @@ Los demás campos no se utilizan. Tierra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : Indicador LED: - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Mover a: - + Phase Fase - + Neutral Neutro - + Automatic position Posición automática - + Group the terminals Agrupar los bornes - + Ungroup the terminals Desagrupar los bornes - + Bridging the terminals Puentear los bornes - + Unbridge the terminals Retirar los puentes de los bornes - + Location : Ubicación: - + Description Descripción - + Function : Función: - + Independent terminals Bornes independientes - + Modify terminal strip properties Modificar las propiedades de los borneros @@ -20139,12 +22077,12 @@ Los demás campos no se utilizan. Borne de nivel 0: - + Headser : Encabezado: - + Bridge point Punto de puenteado @@ -20209,12 +22147,52 @@ Los demás campos no se utilizan. Referencia cruzada - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Altura - + Preview: Vista previa: @@ -20277,55 +22255,60 @@ Los demás campos no se utilizan. TerminalStripModel - + Position Posición - + Stage Nivel - + Label Etiqueta - + Number wire Número de conductor - + Cross-reference Referencia cruzada - + Cable Cable - + Color / wire number of the cable Color / número de hilo del cable - + Type Tipo - + Function Función - + led Indicador LED + + + Shield + + TerminalStripProjectConfigPage @@ -21238,7 +23221,7 @@ asociar el nombre de "volta" y el valor "1745" reemplazara % Add → - + Añadir → @@ -21248,27 +23231,27 @@ asociar el nombre de "volta" y el valor "1745" reemplazara % ← Remove - + ← Quitar Move up - + Subir Move down - + Bajar Available commands - + Comandos disponibles In the bar, in order - + En la barra, por orden @@ -21641,32 +23624,42 @@ asociar el nombre de "volta" y el valor "1745" reemplazara % Mostrar en cruz - + Label cross reference Etiqueta de referencia cruzada - + Master Maestro - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Esclavo - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21683,115 +23676,141 @@ asociar el nombre de "volta" y el valor "1745" reemplazara % %LM: Ubicación - + Option display cross Opción de presentación en cruz - + Show the power contacts in the cross Mostrar los contactos de potencia en la cruz - + Prefix of power contacts : Prefijo de los contactos de potencia: - + Prefix delayed contacts : Prefijo de contactos temporizados: - + Prefix changeover contacts : Prefijo de contactos inversores: - + Coil Bobina - + Organ of protection Unidad de protección - + Switch / button Conmutador / botón - + Programmable Logic Controller (PLC) Autómata (PLC) - + + Cable + Cable + + + Footer Abajo de la pagina - + Under the label of the element Bajo la etiqueta del elemento - + Top Arriba - + Bottom Abajo - + Left Izquierda - + Right Derecha - + Text alignment Alineación del texto - + Text field Campo de texto + + + Text: + Texto: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. La consulta está vacía. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Solo se permite una consulta SELECT (el carácter «;» solo puede aparecer al final). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Solo se permiten consultas de lectura (SELECT o WITH ... SELECT). - + Export the internal project database Exportar la base de datos interna del proyecto - + untitled sin_nombre diff --git a/lang/qet_fi.ts b/lang/qet_fi.ts index c13966c73..745e503c7 100644 --- a/lang/qet_fi.ts +++ b/lang/qet_fi.ts @@ -1153,6 +1153,23 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + + + BorderPropertiesWidget @@ -1221,6 +1238,1057 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1264,13 +2332,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Edit the properties of several conductors undo caption @@ -1912,7 +2980,7 @@ Continue? Diagram - + Change the depth @@ -2049,6 +3117,23 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2060,7 +3145,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2068,7 +3153,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2191,224 +3276,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2439,22 +3554,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2462,83 +3577,116 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip - + Paste Here context menu action - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. - + Choose the new color for this conductor - + Edit conductor properties undo caption @@ -3139,7 +4287,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3634,8 +4782,8 @@ Continue? - - + + Type @@ -3718,8 +4866,8 @@ Continue? - - + + Function @@ -3751,7 +4899,7 @@ Continue? - + Simple @@ -3792,19 +4940,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3820,25 +4968,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3864,7 +5012,7 @@ Continue? - + Generic @@ -3888,164 +5036,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5017,7 +6190,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title @@ -5381,97 +6554,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5596,6 +6799,7 @@ that you create. Text and number inputs are + Browse... @@ -5779,8 +6983,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5791,189 +6998,257 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + min: - + Point-size in diagram-editor: 1 - 5 - - + + max: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving @@ -5998,285 +7273,321 @@ that you create. Text and number inputs are - + Elements management - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6285,50 +7596,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6338,6 +7667,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6465,136 +8133,10 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None - - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - - Left - - - - - - Center - - - - - - Right - - - - - - Font - - - - - Table - - - - - Alignment: - - - - - Content - - @@ -6710,6 +8252,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6925,80 +8490,6 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - - Angle: - - - - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - - Text - - - - @@ -7827,6 +9318,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7930,63 +9429,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8116,133 +9620,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8343,12 +9847,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8356,12 +9860,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8754,7 +10258,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title @@ -8763,7 +10267,7 @@ Its copy was kept as: ProjectAutoNumConfigPage - + Management @@ -8773,96 +10277,101 @@ Its copy was kept as: - - + + Conductors - + No. - + Name - + Sheet - + Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8870,7 +10379,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8878,49 +10387,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8928,21 +10437,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8951,7 +10460,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8959,7 +10468,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8967,13 +10476,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -8982,12 +10491,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -8995,12 +10504,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9008,7 +10517,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9017,80 +10526,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9108,24 +10617,6 @@ Give them another numbering first. - - ProjectDBModelPropertiesWidget - - - Form - - - - - Request - - - - - Reload - - - ProjectMainConfigPage @@ -9619,127 +11110,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning - + Electric Normal example text - translate length, not meaning - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9748,152 +11241,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption - + Loading... Systray icon splash screen caption - + QElectroTech systray menu title - + &Quit - + &Hide - + &Show - + &Hide diagram editor - + &Show diagram editors - + &Hide element editor - + &Show element editor - + &Hide title block template editor systray submenu entry - + &Show title block template editors systray submenu entry - + &New diagram editor - + &New element editor - + Closes QElectroTech - + Reduces QElectroTech into the systray - + Restore QElectroTech - + QElectroTech systray icon tooltip - + Diagram editors - + Element editors - + Title block template editors systray menu entry - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9904,31 +11454,31 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory @@ -9937,1430 +11487,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + Projects dock title - + Collections - + No modification - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title - + &Export - + Print - + &Quit - + Undo - + Redo - + Undoes the previous action status bar tip - + Restores the undone action status bar tip - + Cu&t - + &Copy - + &Paste - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip - + Pastes elements from the clipboard into the sheet status bar tip - + Reset conductors - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Display the grid - + Display or hide the grid of sheet - + Sheet properties - + Project properties - + Add a sheet - - - + + + Delete this sheet - + Clean project - + Add a summary - + using tabs - + using windows - + Select - + Move - + &Tile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + View the guides - + Shows or hides the guides - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - + &Cascade - + Next project - + Previous project - + &New - + &Open - + &Save - + Save as - - + + &Close - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column - + Remove a column - + Add row Add row - + Remove a row Remove row - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Delete - + Rotate - + Rotate the group - + Choose texts orientation - + Find in the panel - + Edit the selected item - + Add a curve - + Removes selected elements from the sheet status bar tip - + Rotate selected elements and texts status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip - + Find the selected item in the panel status bar tip - + Select All - + Select none - + Invert selection - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Inverts selection of elements status bar tip - + Zoom In - + Zoom Out - + Zoom content - + Fit in view - + Reset zoom - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip - + Add a textfield - + Add a picture - + Add a PDF - + Add line Draw line - + Add a rectangle - + Add an ellipse - + Add a polygon - + Exports the current sheet to another format status bar tip - + Prints one or more sheet of the current project status bar tip - + Closes QElectroTech status bar tip - + Reset the conductors path ignoring the user changes status bar tip - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Shows the various opened projects in windows status bar tip - + Shows the various opened projects in tabs status bar tip - + Allows to select elements status bar tip - + Allows to view the sheet without modifying it status bar tip - + Arranges windows in a tile pattern status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Export to CSV - + Add a nomenclature - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + Arranges windows in a cascade pattern status bar tip - + Activates the next project status bar tip - + Activates the previous project status bar tip - + Horizontal mirror - + Vertical mirror - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add an arc - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools + - Display + - Diagram + - Add + - Depth toolbar title - + Scripts toolbar title - + &File - + &Edit - + &Project - + Displ&ay - + Wi&ndows - + &Latest files - + &Add - + Selection - + Align - + Rows and columns - + Depth - - + + Scripts - + Display or hide the main toolbar - + Display or hide the Display toolbar - + Display or hide the Diagram toolbar - + Show or hide the elements panel - + Display or hide the undo list - + Display projects - - + + Project %1 registered in the directory: %2. - + Open a file - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11369,7 +13013,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11378,24 +13022,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11406,23 +13050,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11430,7 +13074,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11438,22 +13082,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11461,100 +13105,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11562,7 +13206,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11570,7 +13214,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11578,18 +13222,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11598,28 +13242,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11627,12 +13271,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11642,53 +13286,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11696,8 +13340,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12682,52 +14326,52 @@ please wait while importing... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name - + Untitled project displayed title for a project-less, file-less project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12735,55 +14379,55 @@ Do you wish to continue? - + An error occurred during the template integration. error message - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> - + Warning message box title @@ -12810,166 +14454,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one - + Duplicate a title block template input dialog title - + In order to duplicate this template, please enter a name for its copy input dialog text - + &New menu entry - + &Open menu entry - + Open from a file menu entry - + &Save menu entry - + Save as menu entry - + Save to a file menu entry - + &Quit menu entry - + Cu&t menu entry - + &Copy menu entry - + &Paste menu entry - + Manage logos menu entry - + Edit extra information menu entry - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry - + Add a &row menu entry - + Add a &column menu entry - + &Merge cells menu entry - + &Split cells menu entry - - - - - - - - - - @@ -12979,156 +14613,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + &File menu title - + &Edit menu title - + Displ&ay menu title - + Tools toolbar title - + Edit toolbar title - + Display toolbar title - + No modification label displayed in the undo list when empty - + Undo dock title - + Cell properties dock title - + [Changed] window title tag - + [Read only] window title tag - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title - + Open a file dialog title - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension - + Save template as dialog window title - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension - + Edit extra information window title - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13278,18 +14922,18 @@ the translated name of this folder could not be read, so its folder name is disp - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13298,7 +14942,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Unable to load the image. @@ -13309,7 +14953,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Title @@ -13451,8 +15095,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Text @@ -13499,12 +15143,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13586,35 +15230,35 @@ the translated name of this folder could not be read, so its folder name is disp - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference @@ -14025,12 +15669,12 @@ the translated name of this folder could not be read, so its folder name is disp - - - - + + + + Function @@ -14179,7 +15823,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Warning: the element has been saved with a more recent version of QElectroTech. @@ -14388,13 +16032,13 @@ the translated name of this folder could not be read, so its folder name is disp - + delete %1 undo caption - %1 is a sentence listing the removed content - + Edit the cross reference edite the cross reference @@ -14418,8 +16062,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14472,10 +16116,10 @@ Do you want to replace it ? - + + - - + @@ -14507,15 +16151,25 @@ Do you want to replace it ? - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14527,103 +16181,133 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14653,7 +16337,7 @@ Do you want to replace it ? - + Default layout @@ -14876,8 +16560,8 @@ Please download it from the link below and unzip it into the installation folder - - + + Move %1 @@ -15022,88 +16706,88 @@ Please download it from the link below and unzip it into the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15155,7 +16839,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15204,24 +16888,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15546,88 +17230,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15676,6 +17360,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15714,6 +17406,17 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16713,28 +18416,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16751,7 +18464,7 @@ The "Incrementation" field is not used. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16773,13 +18486,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16801,17 +18542,17 @@ The other fields are not used. - + New numbering… - + Rename numbering… - + Numbering conductors title window @@ -19755,7 +21496,7 @@ The other fields are not used. - + Generic @@ -19780,92 +21521,137 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties - + Name: - + Comment : - + Plant: - + Location : - + Description - + Independent terminals - + Modify terminal strip properties @@ -19934,12 +21720,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20004,12 +21790,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20072,55 +21898,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21423,32 +23254,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21459,115 +23300,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Bottom - + Left - + Right - + Text alignment - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_fr.ts b/lang/qet_fr.ts index ea700c2c4..4f4b125bf 100644 --- a/lang/qet_fr.ts +++ b/lang/qet_fr.ts @@ -1161,6 +1161,23 @@ Remarque: Ces options n'autorisent ou bloquent l'auto numérotation, s %1 (la plus récente) + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + Déplacer %n câble + Déplacer %n câbles + + + + + Delete + Supprimer + + BorderPropertiesWidget @@ -1229,6 +1246,1068 @@ Remarque: Ces options n'autorisent ou bloquent l'auto numérotation, s Portrait + + CableCopy + + + + Paste a cable + Coller un câble + + + + Duplicate a cable + Dupliquer un câble + + + + CableCreateDialog + + + + + Cable + Câble + + + + (no type) + (aucun type) + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + Changer le type : %1, %n âme + Changer le type : %1, %n âmes + + + + + %n recognized core(s) + how many cores the line just crossed + + %n âme reconnue + %n âmes reconnues + + + + + + Search: + Rechercher : + + + + Filter cable types + Filtrer les types de câble + + + + Hide types which have fewer cores than this cable + Masquer les types qui ont moins d'âmes que ce câble + + + + Hide types which have fewer cores than recognized conductors + Masquer les types qui ont moins d'âmes que de conducteurs reconnus + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + Décochez pour voir aussi les types qui ont moins d'âmes : les choisir fait sortir du câble les âmes au-delà de leur nombre. + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + Une ligne barrée est un type qui a moins d'âmes que de conducteurs reconnus : il ne peut pas porter ce câble. + + + + New entry + Nouvelle entrée + + + + Add a new cable type to the list + Ajouter un nouveau type de câble à la liste + + + + Edit entry + Modifier l'entrée + + + + Edit the cable type selected in the list. + Modifier le type de câble sélectionné dans la liste. + + + + New cable + Nouveau câble + + + + Filter existing cables + Filtrer les câbles existants + + + + Hide cables which have fewer free cores than recognized conductors + Masquer les câbles qui ont moins d'âmes libres que de conducteurs reconnus + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + Une ligne barrée est un câble qui a moins d'âmes libres que de conducteurs reconnus : il ne peut pas les recevoir. + + + + Existing cables + Câbles existants + + + + + Designation + Désignation + + + + Plant (=) + Installation (=) + + + + Location (+) + Localisation (+) + + + + Type + Type + + + + Cores + Âmes + + + + Plant + Installation + + + + Location + Localisation + + + + %1 / %2 + %1 / %2 + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + Ce type a moins d'âmes que ce câble : %1 au lieu de %2. Les âmes au-delà de %1 sortent du câble et leurs repères disparaissent du dessin. + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + Trop d'âmes sélectionnées : le type n'en offre que %1, %2 conducteurs sont reconnus + + + + Only %1 free cores, %2 requested + Seulement %1 âmes libres, %2 demandées + + + + No cable type available: configure the cable type file in the preferences. + Aucun type de câble disponible : configurez le fichier des types de câble dans les préférences. + + + + Choose a cable type. + Choisissez un type de câble. + + + + Choose an existing cable. + Choisissez un câble existant. + + + + %1 cores instead of %2: the extra cores stay unplaced. + %1 âmes au lieu de %2 : les âmes en trop restent non placées. + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + %n conducteur traversé est déjà lié à un autre câble + +Si vous confirmez, l'autre câble perdra cette âme. Voulez-vous continuer ? + %n conducteurs traversés sont déjà liés à un autre câble + +Si vous confirmez, l'autre câble perdra ces âmes. Voulez-vous continuer ? + + + + + + Cannot be written + Écriture impossible + + + + + Cannot write to the file: +%1 +%2 + Impossible d'écrire dans le fichier : +%1 +%2 + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + %n âme de ce câble est liée à un conducteur. Avec le type choisi, elle sort de ce câble et son repère disparaît du dessin. Continuer ? + %n âmes de ce câble sont liées à un conducteur. Avec le type choisi, elles sortent de ce câble et leur repère disparaît du dessin. Continuer ? + + + + + CableExportDialog + + + Export the cable list as CSV + Exporter la liste de câbles en CSV + + + + Layout + Disposition + + + + include headers + inclure les en-têtes + + + + Preview + Aperçu + + + + cable_list_ + liste_cables_ + + + + Save As... + Enregistrer sous... + + + + CSV files (*.csv) + Fichiers CSV (*.csv) + + + + Error + Erreur + + + + Cannot save the cable list to %1. +%2 + Impossible d'enregistrer la liste de câbles dans %1. +%2 + + + + CableList + + + No. + N°. + + + + Plant (cable) + Installation (câble) + + + + Location (cable) + Localisation (câble) + + + + Label (cable) + Label (câble) + + + + Plant (start) + Installation (départ) + + + + Location (start) + Localisation (départ) + + + + Label (start) + Label (départ) + + + + Sheet (start) + Folio (départ) + + + + Plant (end) + Installation (arrivée) + + + + Location (end) + Localisation (arrivée) + + + + Label (end) + Label (arrivée) + + + + Sheet (end) + Folio (arrivée) + + + + Cable type + Type de câble + + + + Length + Longueur + + + + Used cores + Âmes utilisées + + + + CableListModelPropertiesWidget + + + Edit columns... + Modifier les colonnes... + + + + Refresh + Actualiser + + + + Cable list columns + Colonnes de la liste de câbles + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + Numérotation des câbles + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + Cette fenêtre affiche la règle de numérotation automatique des câbles de ce projet et permet de la modifier. Une règle modifiée ici est celle que le projet conserve : elle est enregistrée dans le projet lorsque vous l'appliquez. + + + + Axis priority + Priorité d'axe + + + + Priority to the X axis (horizontal) + Priorité à l'axe X (horizontal) + + + + Priority to the Y axis (vertical) + Priorité à l'axe Y (vertical) + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + L'axe choisi détermine l'ordre de renumérotation des câbles : X les numérote de gauche à droite, Y les numérote de haut en bas. + + + + Renumber all cables + Renuméroter tous les câbles + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + Recalcule le numéro de chaque câble du projet à partir de la règle, en repartant du début : un numéro laissé vacant après la suppression d'un câble est ainsi comblé. + + + + Cancel + Annuler + + + + The rule is not complete yet: there is still an empty field in it. + La règle n'est pas encore complète : il reste un champ vide. + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + %n câble de ce projet a été saisi à la main. + +Voulez-vous le renuméroter aussi ? + %n câbles de ce projet ont été saisis à la main. + +Voulez-vous les renuméroter aussi ? + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Oui + + + + No + Les noms saisis à la main sont laissés tels quels. + Non + + + + Cancel + Ne renumérote rien du tout. + Annuler + + + + The rule is not complete yet. + La règle n'est pas encore complète. + + + + No cable to renumber in this project. + Aucun câble à renuméroter dans ce projet. + + + + All the cables already carry the number that the rule gives them. + Tous les câbles portent déjà le numéro que leur donne la règle. + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Oui + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Non + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Annuler + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + Ce conducteur est déjà décrit par un autre câble. Voulez-vous l'affecter au câble %1 ? + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + Ce conducteur est déjà décrit par le câble %1. Voulez-vous l'affecter au câble %2 ? + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + Conducteur déjà affecté + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + Conducteur déjà affecté + Conducteurs déjà affectés + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + %n conducteur est déjà décrit par un autre câble. Voulez-vous l'affecter au câble %1 ? + %n conducteurs sont déjà décrits par d'autres câbles. Voulez-vous les affecter au câble %1 ? + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + %n conducteur est déjà décrit par le câble %1. Voulez-vous l'affecter au câble %2 ? + %n conducteurs sont déjà décrits par le câble %1. Voulez-vous les affecter au câble %2 ? + + + + + CablePropertiesDialog + + + Cable + Câble + + + + Unplaced cores: + Âmes non placées : + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + Double-cliquez sur une âme pour la placer sur la ligne : la ligne suit la souris et un clic la laisse là où vous avez visé. + + + + No cable. + Aucun câble. + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + Âmes raccordées à un conducteur : %1 sur %2 + Âmes raccordées à un conducteur : %1 sur %2 + + + + + Core %1 + Âme %1 + + + + Core %1 — %2 + Âme %1 — %2 + + + + Place this core on the line + Placer cette âme sur la ligne + + + + CablePropertiesEditorWidget + + + Unplaced cores: + Âmes non placées : + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + Double-cliquez sur une âme pour la placer sur la ligne : la ligne suit la souris et un clic la laisse là où vous avez visé. + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + Âmes raccordées à un conducteur : %1 sur %2 + Âmes raccordées à un conducteur : %1 sur %2 + + + + + Core %1 + Âme %1 + + + + Core %1 — %2 + Âme %1 — %2 + + + + Place this core on the line + Placer cette âme sur la ligne + + + + Cable + Câble + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + Dessin + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + Cochez pour écrire ce champ sur le dessin. + + + + Designation + Désignation + + + + Type + Type + + + + Choose the type of this cable from the list of cable types… + Choisir le type de ce câble dans la liste des types de câble… + + + + Plant (=) + Installation (=) + + + + Location (+) + Localisation (+) + + + + Length + Longueur + + + + Core colors + Couleurs des âmes + + + + The font of the colors of all the cores of this cable, written along the line. + La police des couleurs de toutes les âmes de ce câble, écrites le long de la ligne. + + + + Text position + Position du texte + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + Décale tous les textes du câble : installation, localisation et désignation d'un côté, type et longueur de l'autre. La ligne, les barres obliques et le câblage restent en place. 10 px font une cellule de la grille. + + + + Core colors position + Position des couleurs des âmes + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + Décale les couleurs des âmes par rapport à leurs barres obliques. Les barres obliques, les entrées et le câblage restent en place. 10 px font une cellule de la grille. + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + %1 pt + + + + Font, size and style of the core colors. + Police, taille et style des couleurs des âmes. + + + + Font, size, style and alignment of this text. + Police, taille, style et alignement de ce texte. + + + + Set for this cable. + Défini pour ce câble. + + + + Value defined in the preferences. + Valeur définie dans les préférences. + + + + CableQueryWidget + + + Available columns + Colonnes disponibles + + + + Add the selected column + Ajouter la colonne sélectionnée + + + + Remove the selected column + Retirer la colonne sélectionnée + + + + Move the selected column up + Monter la colonne sélectionnée + + + + Move the selected column down + Descendre la colonne sélectionnée + + + + Table columns + Colonnes du tableau + + + + CableRenumber + + + No project is open. + Aucun projet n'est ouvert. + + + + This project is read-only: its cables cannot be renumbered. + Ce projet est en lecture seule : ses câbles ne peuvent pas être renumérotés. + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + Aucune règle de numérotation des câbles n'est définie pour ce projet. Définissez-en une dans cette fenêtre avant de renuméroter ses câbles. + + + + A cable is not on any sheet of the project: nothing was changed. + Un câble n'est sur aucun folio du projet : rien n'a été modifié. + + + + The current rule gives no number here: nothing was changed. + La règle actuelle ne donne aucun numéro ici : rien n'a été modifié. + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + La règle actuelle donne deux fois le même numéro (%1) : elle doit compter pour renuméroter un projet entier. Rien n'a été modifié. + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + Le numéro %1 est déjà utilisé par un câble dont le nom est laissé tel quel : rien n'a été modifié. + + + + CableTextFormatDialog + + + Core colors + Couleurs des âmes + + + + Text format + Format du texte + + + + Font: + Police : + + + + pt + pt + + + + Size: + Taille : + + + + Normal + Normal + + + + Bold + Gras + + + + Italic + Italique + + + + Bold italic + Gras italique + + + + Style: + Style : + + + + Right aligned + Aligné à droite + + + + Centred + Centré + + + + Left aligned + Aligné à gauche + + + + Alignment: + Alignement : + + + + 15W1 · H07V-K 3G1.5 + 15W1 · H07V-K 3G1.5 + + + + Preview: + Prévisualisation : + + + + Reset + Réinitialiser + + + + CableTypeEntryDialog + + + New entry + Nouvelle entrée + + + + Enter the cable type to add. Fields left empty stay empty in the file. + Saisissez le type de câble à ajouter. Les champs laissés vides restent vides dans le fichier. + + + + How many cores this type has. The dash means the file does not specify. + Nombre d'âmes de ce type. Le tiret signifie que le fichier ne le précise pas. + + + + The color of each core, separated by a comma and in the order of the cores. + La couleur de chaque âme, séparées par une virgule et dans l'ordre des âmes. + + + + Save + Enregistrer + + + + Cancel + Annuler + + + + Edit entry + Modifier l'entrée + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + Modifiez le type de câble sélectionné dans la liste. Les champs laissés vides restent vides dans le fichier. + + + + No details + Aucun détail + + + + Enter at least one detail to create an entry. + Saisissez au moins un détail pour créer une entrée. + + + + CableTypeList + + + Designation + Désignation + + + + Number of cores + Nombre d'âmes + + + + Core colors + Couleurs des âmes + + + + Cable section + Section du câble + + + + Sheath color + Couleur de la gaine + + + + No receiver for the cable types file. + Aucune destination pour le fichier des types de câble. + + + + Cannot create the folder %1 for the cable types file. + Impossible de créer le dossier %1 pour le fichier des types de câble. + + + + + The file contains no header: missing columns. + Le fichier ne contient pas d'en-tête : colonnes manquantes. + + + + This entry no longer exists in the file: it may have been modified in the meantime. + Cette entrée n'existe plus dans le fichier : elle a peut-être été modifiée entre-temps. + + + + The file already exists and is not empty. + Le fichier existe déjà et n'est pas vide. + + + + ChangeCableCoresCommand + + + Place a cable core + Placer une âme de câble + + + + Remove a core from the line + Retirer une âme de la ligne + + + + Move a cable core + Déplacer une âme de câble + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + Modifier les propriétés d'un câble + + + + ChangeCableTypeCommand + + + + Change the cable type + Changer le type de câble + + ClickableImageLabel @@ -1272,13 +2351,13 @@ Remarque: Ces options n'autorisent ou bloquent l'auto numérotation, s Conductor - + Edit conductor properties undo caption Modifier les propriétés d'un conducteur - + Edit the properties of several conductors undo caption Modifier les propriétés de plusieurs conducteurs @@ -1924,7 +3003,7 @@ Continuer ? Diagram - + Change the depth Modifier la profondeur @@ -2061,6 +3140,23 @@ Continuer ? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + Clic gauche : placer le début du câble ; glisser ou second clic : terminer ; clic droit : annuler ; Échap : quitter + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + Clic gauche ou relâchement : terminer la ligne (%n âme reconnue ; toujours horizontale ou verticale) ; clic droit : annuler la ligne + Clic gauche ou relâchement : terminer la ligne (%n âmes reconnues ; toujours horizontale ou verticale) ; clic droit : annuler la ligne + + + DiagramEventAddElement @@ -2072,7 +3168,7 @@ Continuer ? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. Clic : positionner à la taille d'origine. Cliquer-glisser : positionner et redimensionner. Clic droit : pivoter de 90°. Ctrl+molette : ajuster la taille. @@ -2080,7 +3176,7 @@ Continuer ? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Cliquez pour poser le collage, Échap ou clic droit pour annuler @@ -2203,12 +3299,12 @@ Continuer ? DiagramImageItem - + resize redimensionner - + rotate/skew pivoter/incliner @@ -2218,7 +3314,7 @@ Continuer ? rogner - + Click: mode %1 Cliquer : mode %1 @@ -2228,42 +3324,42 @@ Continuer ? Rogner : glisser les poignées ou le cadre -- Entrée, double-clic ou clic à côté : appliquer ; Échap : annuler - + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Glisser un coin/bord : redimensionner (Ctrl = depuis le centre, Maj = conserver les proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Glisser un coin : pivoter (Maj = par pas de 15°) ; glisser un bord : incliner (Maj = par pas de 15°) ; point rouge : déplacer le centre de rotation - + -- %1: mode %2 -- %1 : mode %2 - + Click Cliquer - + Drag: resize (Shift = keep proportions, Ctrl = from center) Glisser : redimensionner (Maj = conserver les proportions, Ctrl = depuis le centre) - + Drag: rotate (Shift = 15° steps) Glisser : pivoter (Maj = par pas de 15°) - + Drag: skew (Shift = 15° steps) Glisser : incliner (Maj = par pas de 15°) - + Drag: move the rotation center Glisser : déplacer le centre de rotation @@ -2273,184 +3369,184 @@ Continuer ? Glisser : rogner (Entrée = appliquer, Échap = annuler) - + Resize an image Redimensionner une image - + Rotate an image Faire pivoter une image - + Skew an image Incliner une image - + Move an image's rotation center Déplacer le centre de rotation d'une image - + Edit an image Modifier une image - + Restore an image's proportions Restaurer les proportions d'une image - - + + Save image as... Enregistrer l'image sous... - - + + Save original image as... Enregistrer l'image d'origine sous... - + PNG image (*.png) Image PNG (*.png) - + JPEG image (*.jpg *.jpeg) Image JPEG (*.jpg *.jpeg) - + BMP image (*.bmp) Image BMP (*.bmp) - + SVG image (*.svg) Image SVG (*.svg) - + All files (*) Tous les fichiers (*) - + Transparency not preserved Transparence non conservée - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? Ce format ne prend pas en charge la transparence : l'image sera enregistrée telle qu'elle était avant l'application de la couleur transparente. Continuer ? - + Saving failed Échec de l'enregistrement - + Unable to save the image to this location. Impossible d'enregistrer l'image à cet emplacement. - + image une image - + Replace the image... Remplacer l'image... - + Transparent color... Couleur transparente... - + Crop on the folio Rogner sur le folio - + Crop... Rogner... - + Reset crop Réinitialiser le rognage - + Horizontal mirror Miroir horizontal - + Vertical mirror Miroir vertical - + Restore proportions Restaurer les proportions - + Properties... Propriétés... - + Select an image ... Selectionner une image... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Erreur - + Unable to load the image. Impossible de charger l'image. - + Replace an image Remplacer une image - + Horizontal mirror of an image Miroir horizontal d'une image - + Vertical mirror of an image Miroir vertical d'une image - + Set a transparent color Définir une couleur transparente - + Crop an image Rogner une image @@ -2482,22 +3578,22 @@ Maintenir Maj et faire glisser pour déplacer ce texte seul DiagramToolbarSettings - + Handle size Taille des poignées - + Text grid Grille des textes - + Sheet background color Couleur de fond du folio - + Conductor color Couleur des conducteurs @@ -2505,51 +3601,51 @@ Maintenir Maj et faire glisser pour déplacer ce texte seul DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Ceci est la zone dans laquelle vous concevez vos schémas en y ajoutant des éléments et en posant des conducteurs entre leurs bornes. Il est également possible d'ajouter des textes indépendants. - + Paste Here context menu action Coller ici - + Multiple paste Collage multiple - + Create a template context menu action Créer un template - + Make a cabinet thumbnail context menu action Générer une vignette d'armoire - + Sheet reference Renvoi de folio - + %1: %2 %1 : %2 - + Add an image Ajouter une image - + Add %n image(s) Ajouter %n image @@ -2557,60 +3653,65 @@ Maintenir Maj et faire glisser pour déplacer ce texte seul - + Images not added Images non ajoutées - + These files could not be added: Ces fichiers n'ont pas pu être ajoutés : - + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Connecter les bornes sélectionnées - + Untitled what to display for untitled diagrams Sans titre - + + Remove this core from the line + Retirer cette âme de la ligne + + + Registered template Modèle enregistré - + The template has been successfully saved as : %1 Le modèle a été enregistré avec succès sous : %1 - + Error Erreur - + The file could not be written. Le fichier n'a pas pu être écrit. - + Choose the new color for this conductor Choisir la nouvelle couleur de ce conducteur - + Edit conductor properties undo caption Modifier les propriétés d'un conducteur @@ -3211,7 +4312,7 @@ Maintenir Maj et faire glisser pour déplacer ce texte seul Element - + Automatically number an element undo caption Numéroter automatiquement un élément @@ -3715,8 +4816,8 @@ Continuer ? - - + + Type Type @@ -3799,8 +4900,8 @@ Continuer ? - - + + Function Fonction @@ -3832,7 +4933,7 @@ Continuer ? - + Simple Simple @@ -3873,19 +4974,19 @@ Continuer ? - + Switch normally open Normalement ouvert - + Switch normally closed Normalement fermé - + switch Inverseur @@ -3901,25 +5002,25 @@ Continuer ? - + Power switch Puissance - + Switch-on delayed Temporisé travail - + Switch-off delayed Temporisé repos - + Switch-on and off delayed Temporisé travail & repos @@ -3945,7 +5046,7 @@ Continuer ? - + Generic Générique @@ -3964,164 +5065,189 @@ Continuer ? Diode Diode + + + Anti-parallel diodes + Diodes antiparallèles + + + + Resistor + Résistance + + Varistor + Varistance + + + + Test socket + Prise de test + + + + Diode (reversed) + Diode (inversée) + + + Phase Phase - + Neutral Neutre - - - - - + + + + + T%1 T%1 - + Other fr: Autre Autre - + PLC Configuration Configuration PLC - + + + - + - - - - + + Address Adresse - - + + Annotation Commentaire - + Cross-reference Réf. croisée - - + + Nb. Nb. - + T1 T1 - + Header font Police des en-têtes - + Set the font for column headers Configurer la police des en-têtes de colonnes - + Text font Police du texte - + Set the text font in the cells Configurer la police du texte dans les cellules - + Show headers on the sheet Afficher les en-têtes sur la feuille - + Show or hide the column headings of the PLC table on the sheet Afficher ou masquer les en-têtes de colonnes du tableau PLC sur la feuille - + Jump to %1 after: Saut %1 après: - + None Aucun - + Line H: H. ligne: - - + + mm mm - + Ref. Réf. - + Custom column name (blank = default) Nom personnalisé de la colonne (vide = par défaut) - + Visible Visible - + Paste from the clipboard Coller depuis le presse-papiers - - + + Heading font size: %1 %2pt Police des en-têtes: %1 %2pt - - + + Font size: %1 %2pt Police du texte: %1 %2pt - + Column header formatting Police des en-têtes de colonnes - + Cell text font Police du texte des cellules @@ -5127,7 +6253,7 @@ En important ce fichier, vous confirmez que : ExportConfigPage - + Export configuration page title Export @@ -5511,97 +6637,127 @@ que vous créez. entrées de texte et nombres sont + Filter by label (e.g. Z1) + Filtrer par label (ex. Z1) + + + Move to : Déplacer dans : - + Type : Type : - + Function : Fonction : - + LED : LED : - + Apply displacement Appliquer le déplacement - - + + Generic Générique - + Fuse Fusible - + Sectionable Sectionnable - + Diod Diode - + Ground Terre - + + Anti-parallel diodes + Diodes antiparallèles + + + + Resistor + Résistance + + + + Varistor + Varistance + + + + Test socket + Prise de test + + + + Diode (reversed) + Diode (inversée) + + + Phase Phase - + Neutral Neutre - + Without Sans - + With Avec - + Modify terminal strip properties Modifier des propriétés de borniers - + The project has no terminal strip: create one with the + button Le projet n'a aucun bornier : créez-en un avec le bouton + - + Apply or cancel the current changes before moving Appliquez ou annulez les modifications en cours avant de déplacer - + Select the terminals to move in the table Sélectionnez dans le tableau les bornes à déplacer - + Move the selected terminals to the chosen terminal block Déplacer les bornes sélectionnées vers le bornier choisi @@ -5688,12 +6844,12 @@ que vous créez. entrées de texte et nombres sont Formulaire - + User Collection Path Chemin de la collection utilisateur - + Path of the Common Collection Chemin de la collection commune @@ -5715,6 +6871,7 @@ que vous créez. entrées de texte et nombres sont + Browse... Parcourir... @@ -5735,7 +6892,7 @@ que vous créez. entrées de texte et nombres sont min - + User Title blocks Path Chemin des cartouches utilisateur @@ -5765,48 +6922,48 @@ que vous créez. entrées de texte et nombres sont Répertoire des cartouches utilisateur - + Elements management Gestion des éléments - + Highlight freshly integrated elements in the panel Mettre en valeur dans le panel les éléments fraîchement intégrés - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Chaque élément embarque des informations sur ses auteurs, sa licence, ou tout autre renseignement que vous jugerez utile dans un champ libre. Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments que vous créerez : - + Applied to the next launch of QElectroTech Appliqué au prochain lancement de QElectroTech - + Here you can define the default appearance of the different texts of QElectroTech Vous pouvez définir ici l'apparence par defaut des differents textes de QElectroTech - + Grid + Keyboard Grille + Clavier - + Grid: 1 - 30 Grille : 1 - 30 - + DiagramEditor xGrid Editeur de schémas xGrid - + DiagramEditor yGrid Editeur de schémas yGrid @@ -5990,8 +7147,11 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet Non configuré @@ -6002,367 +7162,471 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments + Create... Créer... - + + Cable type list file + Fichier de la liste des types de câble + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + Répertoire des types de câble utilisés pour définir un câble (nombre d'âmes, couleurs, section) + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + Créer le fichier de la liste des types de câble avec sa ligne d'en-tête + + + Languages Langues - + texts Textes - + Elements texts Textes d'éléments - - - + + + Font: Police : - - + + ° ° - + Length : Longueur : - - + + Rotation : Rotation : - + Independent texts Textes indépendants - + Other texts Autres textes - + + Cable texts + Textes des câbles + + + + Designation, type, plant, location, length : + Désignation, type, installation, localisation, longueur : + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + Police des textes écrits le long de la ligne du câble ; un câble qui a la sienne la conserve. + + + + Core colors (all of them) : + Couleurs des âmes (toutes) : + + + + Font of the core colors written along the line; a cable which has its own keeps it. + Police des couleurs des âmes écrites le long de la ligne ; un câble qui a la sienne la conserve. + + + + Text alignment : + Alignement du texte : + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + Où s'arrêtent les textes d'un câble par rapport au début de sa ligne ; un câble qui a le sien le conserve. + + + + Right aligned + Aligné à droite + + + + Centred + Centré + + + + Left aligned + Aligné à gauche + + + The Grid must be active to see the changes. La Grille doite etre active pour pouvoir voir les modifications. - + Grid for texts moved with the mouse Grille des textes déplacés à la souris - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Fraction de la grille des folios. Maintenir Ctrl pendant le déplacement pour placer librement. - + Keyboard movement: 1 - 30 Déplacement au clavier : 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Editeur de schémas (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid Editeur de schémas (touche : haut / bas) yGrid - + Keyboard movement with the ALT key: 1 - 9 Déplacement au clavier avec la touche ALT : 1 - 9 - + DiagramEditor (key: left / right) xGrid Editeur de schémas (touche : haut / bas) yGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Editeur de schémas (touche : haut / bas) yGrid - + View grid Affichage Grille - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). À l'enregistrement d'un élément : refuser deux bornes portant le même nom, et signaler les bornes sans nom (IEC 61666). - + Check terminal names when saving Vérifier les noms des bornes à l'enregistrement - + Point-size in diagram-editor: 1 - 5 Taille des points de la grille de Diagram-Editor : 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Taille des points de la grille de l'éditeur d'éléments : 1 - 5 - + Editor Editeur - + Max. parts in Element Editor List Max. pièces dans la liste de l'éditeur d'éléments - + + Bold italic + Gras italique + + + + Bold + Gras + + + + Italic + Italique + + + + Normal + Normal + + + Rounding up for 0.5 and more Arrondi supérieur pour 0.5 et plus - + Always top rounding Toujours arrondi supérieur - + Always rounded down Toujours arrondi inférieur - + Rounding up for 0.75 and more Arrondi supérieur pour 0.75 et plus - + No rounding Pas d'arrondi - + Disabled fr: Désactivée Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Activé par la variable d'environnement QET_ENABLE_SCRIPTING ; ce réglage est sans effet tant qu'elle est définie. - + Not set (default: %1) hint shown in the material file field when no file is configured yet Non configuré (par défaut : %1) - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + Non configuré (par défaut : %1) + + + General configuration page title Général - + System Système - + Arabic Arabe - + Brazilian Brézilien - + Catalan Catalan - + Czech Tchèque - + German Allemand - + Danish Danois - + Greek Grec - + English Anglais - + Spanish Espagnol - + French Français - + Croatian Croate - + Italian Italien - + Japanese Japonais - + Korean Coréen - + Polish Polonais - + Portuguese Portugais - + Romanian Roumains - + Russian Russe - + Slovenian Slovène - + Dutch Pays-Bas - + Norwegian Norvégien - + Belgium-Flemish Belgique-Flemish - + Turkish Turc - + Hungarian Hongrois - + Mongolian Mongol - + Ukrainian Ukrainien - + Chinese Chinois - + Swedish Suédois - + + Cable text font + Police des textes du câble + + + + Core colors font + Police des couleurs des âmes + + + Company collection path Chemin de la collection entreprise - + Company title-blocks Chemin des cartouches entreprise - + User macro path Chemin des macros utilisateur - + Folder not found Répertoire introuvable - + The user collection folder: %1 does not exist and could not be created. @@ -6371,12 +7635,12 @@ does not exist and could not be created. n'existe pas et n'a pas pu être créé. - + No subfolder Aucun sous-dossier - + The user collection: %1 has no subfolder, so there is no prefix to configure. @@ -6385,34 +7649,34 @@ has no subfolder, so there is no prefix to configure. ne contient aucun sous-dossier : il n'y a donc aucun préfixe à configurer. - + Prefix file cannot be read Fichier de préfixes illisible - + Prefix file damaged Fichier de préfixes endommagé - + The file %1 is not a valid XML file: %2 Le fichier %1 n'est pas un fichier XML valide : %2 - + Fix the file Corriger le fichier - + Rebuild Reconstruire - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6425,33 +7689,36 @@ ne contient aucun sous-dossier : il n'y a donc aucun préfixe à configurer « Reconstruire » : l'arborescence des dossiers est recréée, mais tous les préfixes actuels sont perdus. Le fichier actuel est conservé sous le nom qet_labels.xml.bak avant d'être remplacé. - + File: %1 Fichier : %1 - + Select the materials list file Sélectionner le fichier de la liste de matériaux - - + + + + CSV files (*.csv) Fichiers csv (*.csv) - + Create the materials list file Créer le fichier de la liste de matériaux - + Cannot create Création impossible - + + Cannot create the file: %1 %2 @@ -6460,17 +7727,32 @@ ne contient aucun sous-dossier : il n'y a donc aucun préfixe à configurer %2 - + + Select the cable types file + Sélectionner le fichier des types de câble + + + + Create the cable types file + Créer le fichier des types de câble + + + + Cannot be created + Création impossible + + + Values that are too high might cause the application to crash Des valeurs élevées peuvent entraîner des plantages de l'application. - + Experimental feature Fonctionnalité expérimental - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6485,6 +7767,345 @@ Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu 3 - Modifier le projet sur un autre ordinateur et/ou écran n'ayant pas les mêmes paramètres des points 1 et 2. + + GenericDevice + + + Left + Gauche + + + + Right + Droite + + + + Top + Haut + + + + Bottom + Bas + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + Lecture impossible de « %1 » : utilisez un seul {n}, {zn} ou {a-b} par nom. + + + + Cannot read "%1": z does not go with a range. + Lecture impossible de « %1 » : z ne va pas avec une plage. + + + + "%1" gives no terminal. + « %1 » ne donne aucune borne. + + + + "%1" gives %2 terminals; at most %3 at once. + « %1 » donne %2 bornes ; %3 au maximum à la fois. + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + Avec un pas de 1 carreau de grille, les noms des bornes voisines se chevauchent. + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + Noms de bornes répétés : %1. Sans problème si l'appareil les répète réellement, comme N ou PE le sont souvent. + + + + %n terminal(s) without a name. + + %n borne sans nom. + %n bornes sans nom. + + + + + GenericDeviceInformationPage + + + Information + Informations + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + Le nom est la façon dont le symbole est listé dans la collection du projet ; le reste pourra être modifié plus tard sur l'appareil placé. + + + + Generic device + Appareil générique + + + + e.g. -U1 + ex. -U1 + + + + Show the manufacturer reference in the box + Afficher la référence fabricant dans le cadre + + + + Name: + Nom : + + + + Label: + Label : + + + + Manufacturer: + Fabricant : + + + + Manufacturer reference: + Référence fabricant : + + + + Description: + Description : + + + + GenericDeviceLayoutPage + + + Layout + Disposition + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + Nombre de bornes de chaque côté, 0 pour aucune. Elles sont numérotées de 1 à n ; nommez-les à la page suivante. + + + + Terminals + Bornes + + + + Group every + Grouper toutes les + + + + no groups + aucun groupe + + + + Leave a gap after every this many terminals + Laisser un espace après chaque groupe de ce nombre de bornes + + + + Mark gaps with a divider + Marquer les espaces par un séparateur + + + + Line up groups across opposite sides + Aligner les groupes entre côtés opposés + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + Ajoute des lignes vides au groupe le plus court, pour que les espaces des côtés en vis-à-vis tombent sur la même ligne + + + + + + grid squares + carreaux de grille + + + + Space between terminals: + Espace entre les bornes : + + + + Extra width: + Largeur supplémentaire : + + + + Extra height: + Hauteur supplémentaire : + + + + Group terminals + Grouper les bornes + + + + Grouping replaces the gaps you made on the %1 side. Continue? + Le groupement remplace les espaces que vous avez créés du côté %1. Continuer ? + + + + GenericDeviceTerminalsPage + + + Terminals + Bornes + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + Nommez les bornes. Un côté peut être saisi sur une seule ligne : In{4} donne In1 à In4, Q{z4} Q0 à Q3, X{3-6} X3 à X6, et une entrée vide est un espace. + + + + As a line: + En une ligne : + + + + e.g. L1,L2,L3,,PE + ex. L1,L2,L3,,PE + + + + Name + Nom + + + + Function + Fonction + + + + Type + Type + + + + Add terminal + Ajouter une borne + + + + Add gap + Ajouter un espace + + + + Delete + Supprimer + + + + Up + Monter + + + + Down + Descendre + + + + Number pins 1…n + Numéroter les broches de 1 à n + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + Renomme chaque borne par son numéro de broche, dans le sens antihoraire à partir du haut du côté gauche + + + + Paste table + Coller un tableau + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + Lignes de côté, nom, fonction et type, copiées depuis un tableur ou un fichier CSV. Le côté s'écrit left, right, top, bottom ou L, R, T, B ; un nom vide est un espace. + + + + gap + espace + + + + Generic + Générique + + + + Inner + Intérieur + + + + Outer + Extérieur + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + Ce nom est utilisé plusieurs fois. Sans problème si l'appareil le répète, comme N ou PE le sont souvent. + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + Un nom contient une virgule ou une accolade, qu'une ligne ne peut pas exprimer : modifiez ce côté dans le tableau. + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + Rien à coller : copiez d'abord des lignes de côté, nom, fonction depuis un tableur ou un fichier CSV. + + + + Pasted %n row(s). + + %n ligne collée. + %n lignes collées. + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + %1 lignes collées ; celles-ci n'ont pas pu être lues et ont été ignorées : %2 + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + Cadre : %1 × %2 carreaux de grille + + + + + Generic device + Appareil générique + + GenericPanel @@ -6612,135 +8233,105 @@ Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu GraphicsTablePropertiesEditor - Table properties - Formulaire + Formulaire - Display - Affichage + Affichage - Table name - Nom du tableau + Nom du tableau - Geometry and lines - Géometrie et lignes + Géometrie et lignes - All - Toutes + Toutes - Next table - Tableau suivant + Tableau suivant - None Aucun - Fit table to sheet - Ajuster le tableau au folio + Ajuster le tableau au folio - Y : - Y : + Y : - X : - X : + X : - Previous table - Tableau précédent + Tableau précédent - Apply geometry to all tables linked to this one - Appliquer la géometrie à tous les tableaux liée à celui-ci + Appliquer la géometrie à tous les tableaux liée à celui-ci - Previous table : - Tableau précédent : + Tableau précédent : - Lines to display : - Lignes à afficher : + Lignes à afficher : - TextLabel - TextLabel + TextLabel - Header - En tête + En tête - - Margin - Marge + Marge - Alignment : - Aligement : + Aligement : - - Left - Gauche + Gauche - - Center - Centré + Centré - - Right - Droite + Droite - - Font - Police + Police - Table - Tableau + Tableau - Alignment: - Alignement : + Alignement : - Content - Contenu + Contenu @@ -6863,22 +8454,22 @@ Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu ImageDrop - + not a file ce n'est pas un fichier - + the file is larger than 10 MB le fichier dépasse 10 Mo - + the image has too many pixels l'image a trop de pixels - + unable to read the image impossible de lire l'image @@ -7098,81 +8689,64 @@ Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu IndiTextPropertiesWidget - Form - Formulaire + Formulaire - X : - X : + X : - Advanced Editor - Éditeur avancé + Éditeur avancé - Size : - Taille : + Taille : - Angle: - Angle : + Angle : - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - Width: - Largeur : + Largeur : - Text width; the text wraps at this width. Auto: no automatic line wrap - Largeur du texte, le texte passe à la ligne. Auto : pas de retour à la ligne automatique + Largeur du texte, le texte passe à la ligne. Auto : pas de retour à la ligne automatique - Auto - Auto + Auto - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Le contenu, la taille et la police du texte ne peuvent être modifié car formaté en html. + Le contenu, la taille et la police du texte ne peuvent être modifié car formaté en html. Veuillez utiliser l'éditeur avancé pour cela. - Click here to cancel html formatting - Cliquez ici pour annuler le formatage html + Cliquez ici pour annuler le formatage html - Text - Texte + Texte - @@ -8013,6 +9587,14 @@ Voulez-vous tout de même lier ce contact esclave ? %2 + + MoveCablePartCommand + + + Move a cable + Déplacer un câble + + MultiPasteDialog @@ -8116,63 +9698,68 @@ Voulez-vous tout de même lier ce contact esclave ? NewDiagramPage - + Sheet Folio - + Conductor Conducteur - + Sheet references Reports de folio - + Cross-references Références croisées - + Guides Guides - + Set the default automatic numbering rules for new projects: Définir les règles de numérotation automatique par défaut pour les nouveaux projets : - + Conductors Conducteurs - + Elements Eléments - + Sheets Folios - + + Cables + Câbles + + + Auto Numbering Numérotation auto - + New sheet configuration page title Nouveau folio - + New project configuration page title Nouveau projet @@ -8302,133 +9889,133 @@ Voulez-vous tout de même lier ce contact esclave ? 0 - - - - - + + + + + number format 1 Chiffre 1 - - - - + + + + number format 01 Chiffre 01 - - - - - + + + + + number format 001 Chiffre 001 - - - - - + + + + + Cyclic (modulo) Cyclique (modulo) - - - - - + + + + + Alphabetical Alphabétique - - - - - + + + + + Text Texte - - - - + + + + Sheet no. N° folio - - - - + + + + Sheet Folio - - - - + + + + number format 1 - Sheet Chiffre 1 - Folio - - - - + + + + number format 01 - Sheet Chiffre 01 - Folio - - - - + + + + number format 001 - Sheet Chiffre 001 - Folio - - - - + + + + Location Locmach - - - - + + + + Plant Installation - - - + + + Element Line Element Line - - - + + + Element Column Element Column - - - + + + Element Prefix Element Prefix @@ -8529,12 +10116,12 @@ Voulez-vous tout de même lier ce contact esclave ? PartText - + Move a text Déplacer un texte - + Edit the text field Modifier un champ texte @@ -8542,12 +10129,12 @@ Voulez-vous tout de même lier ce contact esclave ? PasteNumberingImport - + Numbering missing from this project Numérotation absente de ce projet - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8960,7 +10547,7 @@ Sa copie a été conservée sous : PrintConfigPage - + Printing configuration page title Impression @@ -8974,96 +10561,101 @@ Sa copie a été conservée sous : Numérotation auto - - + + Conductors Conducteurs - + No. N° - + Name Nom - + Sheet Folio - + Element Élément - + Frozen Figé - + Assign a free number… Attribuer un numéro libre… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. Donner à l'élément sélectionné un numéro que personne n'a : il garde sa numérotation, seul son numéro change. - - + + Elements Eléments - - + + Sheets Folios - + + Cables + Câbles + + + Sheet Auto Numbering Numérotation auto des folios - + Import from another project... Importer depuis un autre projet... - + Reuse the automatic numbering saved in another project Reprendre les numérotations automatiques enregistrées dans un autre projet - + frozen figé - + — free — — libre — - + no element has this number (deleted or renumbered) aucun élément n'a ce numéro (supprimé ou renuméroté) - + No element follows this numbering Aucun élément ne suit cette numérotation - + %n elements follow this numbering, %1 with a frozen name %n élément suivent cette numérotation, dont %1 au nom figé @@ -9071,7 +10663,7 @@ Sa copie a été conservée sous : - + ; %n numbers without an element ; %n numéro sans élément @@ -9079,49 +10671,49 @@ Sa copie a été conservée sous : - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. Cette numérotation a plusieurs numéros (ou un numéro par folio) : on ne peut pas en choisir un à la main. - + Assign a free number Attribuer un numéro libre - + This element's name is frozen: unfreeze it first. Le nom de cet élément est figé : dégelez-le d'abord. - + No number is free. Aucun numéro n'est libre. - + %1 → %2 %1 → %2 - + Free number for element “%1” (%2): Numéro libre pour l'élément « %1 » (%2) : - - + + Numbering name: Nom de la numérotation : - - + + Modify numbering Modifier la numérotation - + %n elements follow this numbering and will change formula and name. %n élément suivent cette numérotation et vont changer de formule et de nom. @@ -9129,21 +10721,21 @@ Sa copie a été conservée sous : - - - - + + + + New numbering Nouvelle numérotation - - + + Rename numbering Renommer la numérotation - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9154,7 +10746,7 @@ Dégelez-les d'abord (voir la liste), ou renommez seulement la numérotatio - + %n numberings followed by elements with a frozen name were not replaced. %n numérotation suivie par des éléments au nom figé n'ont pas été remplacées. @@ -9162,7 +10754,7 @@ Dégelez-les d'abord (voir la liste), ou renommez seulement la numérotatio - + %n elements changed formula. %n élément ont changé de formule. @@ -9170,13 +10762,13 @@ Dégelez-les d'abord (voir la liste), ou renommez seulement la numérotatio - - + + Delete numbering Supprimer la numérotation - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9187,12 +10779,12 @@ Donnez-leur une autre numérotation ou un nom fixe d'abord. - + No sheet names this numbering Aucun folio ne nomme cette numérotation - + %n sheets name this numbering %n folio nomment cette numérotation @@ -9200,12 +10792,12 @@ Donnez-leur une autre numérotation ou un nom fixe d'abord. - + No sheet follows this numbering Aucun folio ne suit cette numérotation - + %n sheets follow this numbering %n folio suivent cette numérotation @@ -9213,7 +10805,7 @@ Donnez-leur une autre numérotation ou un nom fixe d'abord. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9224,85 +10816,85 @@ Donnez-leur une autre numérotation d'abord. - + Import numbering from a project Importer les numérotations d'un projet - + Project QElectroTech (*.qet) Projet QElectroTech (*.qet) - - + + Import not possible Import impossible - + Unable to open %1 Impossible d'ouvrir %1 - + %1 is not a valid QElectroTech project. %1 n'est pas un projet QElectroTech valide. - - + + No numbering Aucune numérotation - - + + This project does not contain any automatic numbering. Ce projet ne contient aucune numérotation automatique. - + Numbering to import Numérotations à importer - + Numbering found in %1: Numérotations trouvées dans %1 : - + %1: %2 (already exists) %1 : %2 (existe déjà) - + Replace numbering with the same name Remplacer les numérotations de même nom - + Import numberings Importer des numérotations - + Import complete Import terminé - + %1 numbering(s) imported, %2 kept unchanged. %1 numérotation(s) importée(s), %2 conservée(s) telles quelles. - + %1 numbering(s) imported. %1 numérotation(s) importée(s). - + Management Management @@ -9323,19 +10915,16 @@ Donnez-leur une autre numérotation d'abord. ProjectDBModelPropertiesWidget - Form - Formulaire + Formulaire - Request - Requête + Requête - Reload - Recharger + Recharger @@ -9832,127 +11421,129 @@ Voulez-vous enregistrer les modifications ? QETApp - + Loading... Initializing the elements collection cache splash screen caption Chargement... Initialisation du cache des collections d'éléments - + Loading... Sheets editor splash screen caption Chargement... Éditeur de schéma - + Loading... Opening files splash screen caption Chargement... Ouverture des fichiers - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Cartouches QET - + Company title-blocks title of the company's title block templates collection Cartouches entreprise - + User title blocks title of the user's title block templates collection Cartouches utilisateur - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schema - + Electric Normal example text - translate length, not meaning Electrique - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configurer QElectroTech - + + Save settings as... dialog title Enregistrer la configuration sous... - - + + QElectroTech settings (*.conf) file dialog filter Configurations QElectroTech (*.conf) - - + + Error message box title Erreur - + Cannot save the settings to “%1”. Impossible d'enregistrer la configuration dans « %1 ». - + Load settings... dialog title Charger une configuration... - + “%1” is not a settings file saved by QElectroTech. « %1 » n'est pas une configuration enregistrée par QElectroTech. - + + Load settings message box title Charger une configuration - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9965,146 +11556,205 @@ QElectroTech va ensuite se fermer. Relancez-le pour utiliser la nouvelle configu Voulez-vous continuer ? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + Barres d'outils, raccourcis clavier, gestes de la souris et du pavé tactile + + + + Defaults for new projects: folio, title block, wires, numbering + Valeurs par défaut des nouveaux projets : folio, cartouche, conducteurs, numérotation + + + + All other settings: appearance, grid, language... + Tous les autres paramètres : apparence, grille, langue... + + + + Folders of the collections + Dossiers des collections + + + + Settings to save: + Paramètres à enregistrer : + + + + The folders of your collections are saved only when every part is ticked. + Les dossiers de vos collections ne sont enregistrés que si toutes les parties sont cochées. + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + Ces paramètres remplaceront vos paramètres actuels pour : +%1 +Tous vos autres paramètres sont conservés. + + + + QElectroTech will then close. Start it again to use the new settings. + QElectroTech va ensuite se fermer. Relancez-le pour utiliser les nouveaux paramètres. + + + + Projects already open keep their own defaults. + Les projets déjà ouverts conservent leurs propres valeurs par défaut. + + + + Do you want to continue? + Voulez-vous continuer ? + + + + The settings are loaded. They are used for the next new project. + Les paramètres sont chargés. Ils seront utilisés pour le prochain nouveau projet. + + + Loading... splash screen caption Chargement... - + Loading... Systray icon splash screen caption Chargement... icône du systray - + QElectroTech systray menu title QElectroTech - + &Quit &Quitter - + &Hide &Masquer - + &Show &Restaurer - + &Hide diagram editor &Masquer tous les éditeurs de schéma - + &Show diagram editors &Restaurer tous les éditeurs de schéma - + &Hide element editor &Masquer tous les éditeurs d'élément - + &Show element editor &Restaurer tous les éditeurs d'élément - + &Hide title block template editor systray submenu entry &Masquer tous les éditeurs de cartouche - + &Show title block template editors systray submenu entry &Restaurer tous les éditeurs de cartouche - + &New diagram editor &Nouvel éditeur de schéma - + &New element editor &Nouvel éditeur d'élément - + Closes QElectroTech Ferme l'application QElectroTech - + Reduces QElectroTech into the systray Réduire QElectroTech dans le systray - + Restore QElectroTech Restaurer QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Éditeurs de schémas - + Element editors Éditeurs d'élément - + Title block template editors systray menu entry Éditeurs de cartouche - + Crash report Rapport de plantage - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech ne s'est pas fermé correctement lors de sa dernière exécution. Voici les derniers messages enregistrés avant l'arrêt -- vous pouvez les enregistrer pour les joindre à un rapport de bug. - + Diagnostic report Rapport de diagnostic - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Ceci contient les derniers messages de journalisation de cette session. Vérifiez le contenu avant de le joindre à un rapport de bug public. - + Usage: Usage : - + [options] [file]... @@ -10113,7 +11763,7 @@ Voici les derniers messages enregistrés avant l'arrêt -- vous pouvez les - + QElectroTech, an application to design electric diagrams. Available options: @@ -10130,35 +11780,35 @@ Options disponibles : - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Definir le dossier de la collection d'elements - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definir le dossier de la collection de modeles de cartouches - + --config-dir=DIR Define configuration directory --config-dir=DIR Definir le dossier de configuration - + --data-dir=DIR Define data directory --data-dir=DIR Definir le dossier de data - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Definir le dossier contenant les fichiers de langue @@ -10168,1115 +11818,1165 @@ Options disponibles : QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Projets - + Collections Collections - + No modification Aucune modification - + Click an action to get back in the changes you made to your diagram Status tip Cliquez sur une action pour revenir en arrière dans l'édition de votre schéma - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Ce panneau liste les différentes actions effectuées sur le folio courant. Cliquer sur une action permet de revenir à l'état du schéma juste après son application. - + Undo dock title Annulations - + &Export E&xporter - + Print Imprimer - + &Quit &Quitter - + Undo Annuler - + Redo Refaire - + Undoes the previous action status bar tip Annule l'action précédente - + Restores the undone action status bar tip Restaure l'action annulée - + Cu&t Co&uper - + &Copy Cop&ier - + &Paste C&oller - + Puts selected elements into the clipboard status bar tip Transfère les éléments sélectionnés dans le presse-papier - + Copies selected elements status bar tip Copie les éléments sélectionnés dans le presse-papier - + Pastes elements from the clipboard into the sheet status bar tip Place les éléments du presse-papier sur le folio - + Reset conductors Réinitialiser les conducteurs - + Automatic creation conductor (s) Tool tip of auto conductor Création automatique de conducteur(s) - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Utiliser la création automatique de conducteur(s) quand cela est possible - + Display the grid Afficher la grille - + Display or hide the grid of sheet Affiche ou masque la grille des folios - + Sheet properties Propriétés du folio - + Project properties Propriétés du projet - + Add a sheet Ajouter un folio - - - + + + Delete this sheet Supprimer le folio - + Clean project Nettoyer le projet - + Add a summary Ajouter un sommaire - + using tabs en utilisant des onglets - + using windows en utilisant des fenêtres - + Select Mode Selection - + Move Mode Visualisation - + &Tile &Mosaïque - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Éditeur de schémas - + Export in pdf Exporter en pdf - + Export one or more sheets of the current project status bar tip Exporte un ou plusieurs folios du projet courant - + Paste at the original position Coller au point d'origine - - + + Paste element information Coller les informations de l'élément - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip Place les éléments du presse-papier à leur position d'origine et déplace le curseur vers ce point - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip Copie les informations renseignées de l'élément du presse-papier sur les éléments sélectionnés - + &Duplicate Dupli&quer - + Copies the selection, offset by the configured spacing status bar tip Copie la sélection, décalée de l'espacement configuré - + Configure duplication... Configurer la duplication... - + Choose the spacing and direction used by Duplicate status bar tip Choisir l'espacement et la direction utilisés par Dupliquer - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Coupure automatique de conducteur(s) - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Couper automatiquement les conducteurs existants lors du placement d'un élément - + Text grid Grille des textes - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Grille d'accrochage des textes déplacés à la souris. Maintenir Ctrl pendant le déplacement pour placer librement. - + Disabled Désactivée - + View the guides Afficher les guides - + Shows or hides the guides Affiche ou masque les guides - + Keep headers visible Garder les en-têtes visibles - + Keeps the sheet's column numbers and row letters visible at the edge of the view Garde les numéros de colonne et les lettres de ligne du folio visibles au bord de la vue - + Show cell boundaries Afficher les limites des cases - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Trace les limites des colonnes et des lignes du folio sur le schéma, à l'écran seulement - + Show Afficher - + Element texts Textes des éléments - + Conductor texts Textes des conducteurs - + Text fields Champs de texte - + Shapes Formes - + Pictures Images - + Tables Tableaux - + Cross-references Références croisées - + See Display > Show Voir Affichage > Afficher - + Export to CSV Exporter au format CSV - + Terminal block manager (DEV) Gestionnaire de borniers (DEV) - + Launch the terminal block creation plugin Lancer le plugin de création de borniers - + + Add a cable list + Ajouter une liste de câbles + + + + Export the cable list to CSV format + Exporter la liste de câbles au format CSV + + + Export the list of names of wires Exporter la liste des noms de conducteurs - + Export the wiring diagram Exporter le plan de câblage - + Wiring list (database) Liste de câblage (base de données) - + Automatic numbering of terminals Numérotation automatique des bornes - - - + + Cable numbering + Numérotation des câbles + + + + Shows the cable numbering rule of the project and renumbers its cables with it + Affiche la règle de numérotation des câbles du projet et renumérote ses câbles avec elle + + + + + Reload element drawings Recharger les dessins des éléments - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Redessine chaque élément placé d'après sa définition actuelle, sans avoir à fermer et rouvrir le projet (action non annulable) - + Run a script... Exécuter un script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Exécute un script JavaScript sur le projet courant (voir qet.* dans le script pour l'API disponible) - + Record a macro Enregistrer une macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop Enregistre ce que vous faites sur le projet, pour qu'un assistant IA en fasse un script ; recliquez pour arrêter - + Manage scripts… Gérer les scripts… - + Write a script and make it a button with an icon Écrire un script et en faire un bouton avec une icône - + Open the scripts folder Ouvrir le dossier des scripts - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button Chaque fichier .js de ce dossier qui commence par un en-tête // ==QETScript== devient un bouton - + Export the internal project database Exporter la base de donnée interne du projet - + &Cascade &Cascade - + Next project Projet suivant - + Previous project Projet précédent - + &New &Nouveau - + &Open &Ouvrir - + &Save &Enregistrer - + Save as Enregistrer sous - - + + &Close &Fermer - + Creates a new project status bar tip Crée un nouveau projet - + Opens an existing project status bar tip Ouvre un projet existant - + Closes the current project status bar tip Ferme le projet courant - + Saves the current project and all its sheets status bar tip Enregistre le projet courant et tous ses folios - + Saves the current project with a different file name status bar tip Enregistre le projet courant avec un autre nom de fichier - + Add a column Ajouter une colonne - + Remove a column Enlever une colonne - + Add row Add row Ajouter une ligne - + Remove a row Remove row Enlever une ligne - + Add a column to the sheet status bar tip Ajoute une colonne au folio - + Remove a column from the sheet status bar tip Enlève une colonne au folio - + Expands the sheet height status bar tip Agrandit le folio en hauteur - + Shrinks the sheet height status bar tip Rétrécit le folio en hauteur - + Delete Supprimer - + Rotate Pivoter - + Rotate the group Pivoter le groupe - + Choose texts orientation Orienter les textes - + Horizontal mirror Miroir horizontal - + Vertical mirror Miroir vertical - + Find in the panel Retrouver dans le panel - + Edit the selected item Éditer l'item sélectionné - - + + Group fr: Grouper Grouper - + Ungroup Dégrouper - + Insert the last element Insérer le dernier élément - + Places the last inserted element again status bar tip Place à nouveau le dernier élément inséré - + Search for a command… Rechercher une commande… - + Type part of a command name and press Enter to launch it status bar tip Tapez une partie du nom d'une commande et appuyez sur Entrée pour la lancer - + Insert an element… Insérer un élément… - + Opens the element picker at the cursor position status bar tip Ouvre le sélecteur d'éléments à la position du curseur - + Shortcut bar Barre de raccourcis - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Ouvre à la position du curseur les commandes utiles pour la sélection, et le sélecteur d'éléments - + Repeat the last command Répéter la dernière commande - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Relance le dernier outil de dessin ou la dernière insertion d'élément (Entrée sur le folio) - + Removes selected elements from the sheet status bar tip Enlève les éléments sélectionnés du folio - + Rotate selected elements and texts status bar tip Pivote les éléments et textes sélectionnés - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Pivote la sélection comme un groupe autour de son centre, au lieu de chaque élément sur place - + Rotate selected texts to a specific angle status bar tip Pivote les textes sélectionnés à un angle précis - + Flips the selected elements from left to right status bar tip Retourne les éléments sélectionnés de gauche à droite - + Flips the selected elements from top to bottom status bar tip Retourne les éléments sélectionnés de haut en bas - + Find the selected item in the panel status bar tip Retrouve l'élément sélectionné dans le panel - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip Groupe les éléments, textes, formes et images sélectionnés : ils se sélectionnent, se déplacent et se copient ensemble - + Breaks up the selected groups status bar tip Défait les groupes sélectionnés - + Align to grid Aligner sur la grille - + Puts the selected elements, images and texts back on the grid status bar tip Remet les éléments, images et textes sélectionnés sur la grille - + Align left Aligner à gauche - + Aligns the left edges of the selected items status bar tip Aligne les bords gauches des objets sélectionnés - + Centre horizontally Centrer horizontalement - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip Aligne les objets sélectionnés sur une même verticale, par leur point d'origine pour les éléments - + Align right Aligner à droite - + Aligns the right edges of the selected items status bar tip Aligne les bords droits des objets sélectionnés - + Align top Aligner en haut - + Aligns the top edges of the selected items status bar tip Aligne les bords supérieurs des objets sélectionnés - + Centre vertically Centrer verticalement - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip Aligne les objets sélectionnés sur une même horizontale, par leur point d'origine pour les éléments - + Align bottom Aligner en bas - + Aligns the bottom edges of the selected items status bar tip Aligne les bords inférieurs des objets sélectionnés - + Select All Tout sélectionner - + Select none Désélectionner tout - + Invert selection Inverser la sélection - + Select all conductors Sélectionner tous les conducteurs - + Select all text fields Sélectionner tous les champs de texte - + Selects all elements on the sheet status bar tip Sélectionne tous les éléments du folio - + Deselect all elements on the sheet status bar tip Désélectionne tous les éléments du folio - + Inverts selection of elements status bar tip Désélectionne les éléments sélectionnés et sélectionne les éléments non sélectionnés - + Selects all conductors on the sheet, deselects the rest status bar tip Sélectionne tous les conducteurs du folio, désélectionne le reste - + Selects all text fields on the sheet, deselects the rest status bar tip Sélectionne tous les champs de texte du folio, désélectionne le reste - + Zoom In Zoom avant - + Zoom Out Zoom arrière - + Zoom content Zoom sur le contenu - + Fit in view Zoom adapté - + Reset zoom Pas de zoom - + Centre on the cursor Centrer sur le curseur - + Expand the sheet status bar tip Agrandit le folio - + Shrinks the sheet status bar tip Rétrécit le folio - + Adjusts the zoom to display all the contents of sheet regardless of context Adapte le zoom de façon à afficher tout le contenu du folio indépendamment du cadre - + Adjusts the zoom on exactly the part of the sheet status bar tip Adapte le zoom exactement sur le cadre du folio - + Restores default zoom level status bar tip Restaure le zoom par défaut - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip Centre le folio sur le point sous le curseur de la souris, sans changer le zoom - + Add a textfield Ajouter un champ de texte - + Add a picture Ajouter une image - + Add a PDF Ajouter un PDF - + Add line Draw line Ajouter une ligne - + Add a rectangle Ajouter un rectangle - + Add an ellipse Ajouter une ellipse - + Add an arc Ajouter un arc - + Add a polygon Ajouter une polyligne - + Add a fillet Ajouter un congé - + + Add a generic device… + Ajouter un appareil générique… + + + + Draw a cable + Dessiner un câble + + + Adds an arc on the current sheet Ajoute un arc sur le folio actuel - + Rounds the corner between two lines of the current sheet Arrondit le coin entre deux lignes du folio actuel - + + Makes a box symbol with terminals on any side and places it on the current sheet + Crée un symbole en forme de boîte avec des bornes sur n'importe quel côté et le place sur le folio courant + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + Dessine la ligne principale d'un câble : chaque conducteur traversé devient l'une de ses âmes + + + Scripts toolbar title Scripts - + + Numbering + Numérotation + + + + Lists + Listes + + + Selection Sélection - + Depth Profondeur - - + + Scripts Scripts - + Sheet %1: %2 Folio %1 : %2 - + Conductors not loaded message box title Conducteurs non chargés - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11290,8 +12990,48 @@ Si vous enregistrez le projet, ce conducteur disparaîtra du fichier. Fermez-le Si vous enregistrez le projet, ces conducteurs disparaîtront du fichier. Fermez-le sans enregistrer pour conserver le fichier tel quel. + + + Automatic numbering + window title + Numérotation automatique + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + Aucune numérotation automatique des câbles n'est définie. + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + Voulez-vous en définir une maintenant ? + +Vous pourrez aussi numéroter les câbles automatiquement plus tard : la règle se définit à tout moment dans les propriétés du projet, sur la page « Numérotation auto ». + + + + Yes + yes + Oui + + + + No + no + Non + + + + Cancel + cancel + Annuler + - + %n items aligned %n objet aligné @@ -11299,32 +13039,38 @@ Si vous enregistrez le projet, ces conducteurs disparaîtront du fichier. Fermez - + Select at least two unlocked elements, images, texts, shapes or groups Sélectionnez au moins deux éléments, images, textes, formes ou groupes non verrouillés - + The selection is already aligned, to the nearest grid step La sélection est déjà alignée, à la grille près - + + Edit the cable + edit cable + Modifier le câble + + + Repeat: insert "%1" Répéter : insérer « %1 » - + Repeat: %1 Répéter : %1 - + sheet %1 folio %1 - + %n elements redrawn. %n élément redessiné. @@ -11332,7 +13078,7 @@ Si vous enregistrez le projet, ces conducteurs disparaîtront du fichier. Fermez - + %n elements for which no definition could be found or which were illegible: their current design has been retained. %n élément dont la définition est introuvable ou illisible : son dessin actuel a été conservé. @@ -11340,7 +13086,7 @@ Si vous enregistrez le projet, ces conducteurs disparaîtront du fichier. Fermez - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n élément non redessiné : sa taille, son point de saisie ou ses bornes ont changé (borne ajoutée, supprimée ou déplacée). @@ -11348,18 +13094,18 @@ Si vous enregistrez le projet, ces conducteurs disparaîtront du fichier. Fermez - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. Pour les mettre à jour, il faut les supprimer puis les réinsérer. Attention : cette opération supprime les conducteurs déjà reliés à ces éléments, qu'il faudra retracer. - - + + Run a script Exécuter un script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11372,33 +13118,33 @@ Un script s'exécute avec vos droits : il peut lire et modifier le projet o Activer les scripts ? Ce réglage est modifiable dans Configurer QElectroTech > Général > Projets. - + Remembered after a restart Retenu après un redémarrage - + JavaScript scripts (*.js);;All files (*) Scripts JavaScript (*.js);;Tous les fichiers (*) - + Ignored: %1 Ignoré : %1 - - + + Stop Arrêter - + Stop recording the macro Arrêter l'enregistrement de la macro - + ● Recording: %n steps ● Enregistrement : %n étape @@ -11406,12 +13152,12 @@ Activer les scripts ? Ce réglage est modifiable dans Configurer QElectroTech &g - + Macro recorded Macro enregistrée - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11425,53 +13171,53 @@ Pour en faire un script, demandez-le à votre assistant IA : le bouton ci-dessou - + &Copy the request for the assistant &Copier la demande pour l'assistant - + &Open the folder &Ouvrir le dossier - + Request copied: paste it into the assistant's window Demande copiée : collez-la dans la fenêtre de l'assistant - + Close the assistant's connection for the rest of the session Couper la connexion de l'assistant pour le reste de la session - + Live mode: assistant connected Mode direct : assistant connecté - + Live mode: waiting for an assistant Mode direct : en attente d'un assistant - - + + Assistant Assistant - + Ask before running a script the assistant wrote Demander avant d'exécuter un script écrit par l'assistant - + Live mode: %1 %2 at %3 Mode direct : %1 %2 à %3 - + %n kinds of items hidden %n type d'objets masqué @@ -11479,335 +13225,335 @@ Pour en faire un script, demandez-le à votre assistant IA : le bouton ci-dessou - - + + Texts %1 Textes %1 - + Exports the current sheet to another format status bar tip Exporte le folio courant dans un autre format - + Prints one or more sheet of the current project status bar tip Imprime un ou plusieurs folios du projet courant - + Closes QElectroTech status bar tip Ferme l'application QElectroTech - + Reset the conductors path ignoring the user changes status bar tip Recalcule les chemins des conducteurs sans tenir compte des modifications - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Édite les propriétés du folio (dimensions, informations du cartouche, propriétés des conducteurs...) - + Shows the various opened projects in windows status bar tip Présente les différents projets ouverts dans des sous-fenêtres - + Shows the various opened projects in tabs status bar tip Présente les différents projets ouverts des onglets - + Allows to select elements status bar tip Permet de sélectionner les éléments - + Allows to view the sheet without modifying it status bar tip Permet de visualiser le folio sans pouvoir le modifier - + Arranges windows in a tile pattern status bar tip Dispose les fenêtres en mosaïque - + Add a nomenclature Ajouter une nomenclature - + Arranges windows in a cascade pattern status bar tip Dispose les fenêtres en cascade - + Activates the next project status bar tip Active le projet suivant - + Activates the previous project status bar tip Active le projet précédent - + Group selected texts Grouper les textes sélectionnés - + Add a curve Ajouter une courbe - + Add a terminal plan Ajouter un plan de bornes - + Adds a text field to the current sheet Ajoute un champ de texte sur le folio actuel - + Add an image to the current sheet Ajoute une image sur le folio actuel - + Adds a PDF page to the current sheet Ajoute une page PDF sur le folio actuel - + Add a line to the current sheet Ajoute une ligne sur le folio actuel - + Adds a rectangle on the current sheet Ajoute un rectangle sur le folio actuel - + Add an ellipse to the current sheet Ajoute une ellipse sur le folio actuel - + Adds a polyline to the current sheet Ajoute une polyligne sur le folio actuel - + Adds a Bézier curve to the current sheet Ajoute une courbe de Bézier sur le folio actuel - + Adds a terminal plan to the current sheet Ajoute un plan de bornier sur le folio actuel - + Search / Replace Chercher/remplacer - + Navigate to an element Atteindre un élément - + Quickly search for and select an element in the sheet status bar tip Recherche et sélectionne rapidement un élément du folio + - Tools Outils + - Display Affichage + - Diagram Schéma + - Add Ajouter + - Depth toolbar title Profondeur - + &File &Fichier - + &Edit &Édition - + &Project &Projet - + Displ&ay Afficha&ge - + Wi&ndows Fe&nêtres - + &Latest files &Récemment ouverts - + &Add A&jouter - + Align Aligner - + Rows and columns Lignes et colonnes - + Display or hide the main toolbar Affiche ou non la barre d'outils principale - + Display or hide the Display toolbar Affiche ou non la barre d'outils Affichage - + Display or hide the Diagram toolbar Affiche ou non la barre d'outils Schéma - + Show or hide the elements panel Affiche ou non le panel d'appareils - + Display or hide the undo list Affiche ou non la liste des modifications - + Display projects Afficher les projets - - + + Project %1 registered in the directory: %2. Projet %1 enregistré dans le repertoire: %2. - + Open a file Ouvrir un fichier - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Projets QElectroTech (*.qet);;Fichiers XML (*.xml);;Tous les fichiers (*) - - + + Unable to open file message box title Impossible d'ouvrir le fichier - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Il semblerait que le fichier %1 que vous essayez d'ouvrir n'existe pas ou plus. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Il semblerait que le fichier que vous essayez d'ouvrir ne soit pas accessible en lecture. Il est donc impossible de l'ouvrir. Veuillez vérifier les permissions du fichier. - + Opening the file read-only message box title Ouverture du projet en lecture seule - + The project you try to open does not seem writable. It will be opened read-only. Il semblerait que le projet que vous essayez d'ouvrir ne soit pas accessible en écriture. Il sera donc ouvert en lecture seule. - - + + Unable to open project message box title Échec de l'ouverture du projet - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Il semblerait que le fichier %1 ne soit pas un fichier projet QElectroTech. Il ne peut donc être ouvert. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11816,7 +13562,7 @@ Pour en faire un script, demandez-le à votre assistant IA : le bouton ci-dessou - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11825,30 +13571,30 @@ Pour en faire un script, demandez-le à votre assistant IA : le bouton ci-dessou - + Project fonts message box title Polices du projet - + Unable to delete the terminal Suppression de borne impossible - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted La suppression ne peut être effectué car la selection possède une ou plusieurs bornes ponté et/ou appartenant à une borne à niveau multiple. Déponter et/ou supprimer les niveaux des bornes concerné afin de pouvoir les supprimer - + Group Groupe - + %n items put back on the grid %n objet remis sur la grille @@ -11856,12 +13602,12 @@ Déponter et/ou supprimer les niveaux des bornes concerné afin de pouvoir les s - + The selection is already on the grid La sélection est déjà sur la grille - + (%n locked objects left in place) (%n objet verrouillé laissé en place) @@ -11869,79 +13615,79 @@ Déponter et/ou supprimer les niveaux des bornes concerné afin de pouvoir les s - + Edit the element edit element Éditer l'élement - + Edit the text field edit text field Éditer le champ de texte - + Edit the image edit image Éditer l'image - + Edit conductor edit conductor Éditer le conducteur - + Edit the selected object edit selected item Éditer l'objet sélectionné - + An error occurred while opening file %1. message box content Une erreur est survenue lors de l'ouverture du fichier %1. - + Activates the project « %1 » Active le projet « %1 » - + Are you sure you want to delete this sheet? Êtes-vous sûr de vouloir supprimer ce folio ? - + Delete the sheets Supprimer les folios - + Are you sure you want to delete the selected %1 sheets ? Êtes-vous sûr de vouloir supprimer les %1 folios sélectionnés ? - + Delete %1 sheets Supprimer %1 folios - - - - - - - + + + + + + + Move the sheets Déplacer les folios - + Error message box title Erreur @@ -12929,52 +14675,52 @@ les conditions requises ne sont pas valides QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projet « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projet %1 - + Untitled project displayed title for a project-less, file-less project Projet sans titre - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [lecture seule] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modifié] - + Renumber elements Renuméroter les ' éléments - + Renumber elements (%1) Renuméroter l ' élément (%1) - + Modified contact system Système de contacts modifié - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12985,19 +14731,19 @@ Les éléments esclaves existants ne seront pas automatiquement assignés. Vous Voulez-vous continuer ? - + An error occurred during the template integration. error message Une erreur s'est produite durant l'intégration du modèle. - + Warning message box title Avertissement - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -13006,7 +14752,7 @@ You are currently using QElectroTech in version %2 Vous utilisez actuellement QElectroTech en version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -13015,32 +14761,32 @@ What do you wish to do ? Que désirez vous faire ? - + Warning message box title Avertissement - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Le projet que vous tentez d'ouvrir est partiellement compatible avec votre version %1 de QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Afin de le rendre totalement compatible veuillez ouvrir ce même projet avec la version 0.8, ou 0.80 de QElectroTech et sauvegarder le projet et l'ouvrir à nouveau avec cette version. Que désirez vous faire ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Ouverture du projet en cours...</b><br/>Création des folios</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Ouverture du projet en cours...</b><br/>Mise en place des références croisées</p> @@ -13066,166 +14812,156 @@ Que désirez vous faire ? QETTitleBlockTemplateEditor - + Save current template? dialog title Enregistrer le modèle en cours ? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Voulez-vous enregistrer le modèle %1 ? - + new_template template name suggestion when duplicating the default one nouveau_modele - + Duplicate a title block template input dialog title Dupliquer un modèle de cartouche - + In order to duplicate this template, please enter a name for its copy input dialog text Pour dupliquer ce modèle, entrez le nom voulu pour sa copie - + &New menu entry &Nouveau - + &Open menu entry &Ouvrir - + Open from a file menu entry Ouvrir depuis un fichier - + &Save menu entry &Enregistrer - + Save as menu entry Enregistrer sous - + Save to a file menu entry Enregistrer vers un fichier - + &Quit menu entry &Quitter - + Cu&t menu entry Co&uper - + &Copy menu entry Cop&ier - + &Paste menu entry C&oller - + Manage logos menu entry Gérer les logos - + Edit extra information menu entry Éditer les informations complémentaires - + Zoom In menu entry Zoom avant - + Zoom out menu entry Zoom arrière - + Fit in view menu entry Zoom adapté - + Reset zoom menu entry Pas de zoom - + Add a &row menu entry Ajouter une &ligne - + Add a &column menu entry Ajouter une &colonne - + &Merge cells menu entry &Fusionner les cellules - + &Split cells menu entry &Séparer les cellules - - - - - - - - - - @@ -13235,156 +14971,166 @@ Que désirez vous faire ? + + + + + + + + + + Title block template editors Éditeur de cartouche - + &File menu title &Fichier - + &Edit menu title &Édition - + Displ&ay menu title Afficha&ge - + Tools toolbar title Outils - + Edit toolbar title Édition - + Display toolbar title Affichage - + No modification label displayed in the undo list when empty Aucune modification - + Undo dock title Annulations - + Cell properties dock title Propriétés de la cellule - + [Changed] window title tag [Modifié] - + [Read only] window title tag [Lecture seule] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Éditeur de modèle de cartouche - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Erreur - + Unable to save the template ‘%1’. message box content - %1 is a title block template name Impossible d'enregistrer le modèle « %1 ». - + Open a title block template File > open dialog window title Ouvrir un modèle - + Open a file dialog title Ouvrir un fichier - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Modèles de cartouches QElectroTech (*%1);;Fichiers XML (*.xml);;Tous les fichiers (*) - + Save template as dialog window title Enregistrer le modèle sous - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name Le nom « %1 » n'est pas valide : il ne doit pas contenir les caractères suivants : \ / : * ? " < > | - + Save as dialog title Enregistrer sous - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Modèles de cartouches QElectroTech (*%1) - + Edit extra information window title Éditer les informations complémentaires - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Vous pouvez utiliser ce champ libre pour mentionner les auteurs du cartouche, sa licence, ou tout autre renseignement que vous jugerez utile. @@ -13700,7 +15446,7 @@ the translated name of this folder could not be read, so its folder name is disp un element graphique - + delete %1 undo caption - %1 is a sentence listing the removed content supprimer %1 @@ -13760,18 +15506,18 @@ the translated name of this folder could not be read, so its folder name is disp Ajouter - + Select an image ... Selectionner une image... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13780,7 +15526,7 @@ the translated name of this folder could not be read, so its folder name is disp Erreur - + Unable to load the image. Impossible de charger l'image. @@ -13791,7 +15537,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Title Titre @@ -13928,8 +15674,8 @@ the translated name of this folder could not be read, so its folder name is disp Borne - + Text Texte @@ -14040,7 +15786,7 @@ the translated name of this folder could not be read, so its folder name is disp Numéro de folio - + Warning: the element has been saved with a more recent version of QElectroTech. Avertissement : l'élément a été enregistré avec une version ultérieure de QElectroTech. @@ -14141,18 +15887,18 @@ the translated name of this folder could not be read, so its folder name is disp Modifier les informations de plusieurs éléments - + Edit the cross reference edite the cross reference Éditer les référence croisé - + This group cannot be moved: the position of one of its elements is locked. Ce groupe ne peut pas être déplacé : la position d'un de ses éléments est verrouillée. - + Add %n conductors add a numbers of conductor one or more @@ -14220,8 +15966,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 Pivoter %1 @@ -14403,45 +16149,45 @@ Voulez-vous la remplacer ? - + - + Type Type - + - + Address Adresse - - - - + + + + Annotation Commentaire - - - - + + + + Cross-reference Réf. croisée - - - - + + + + Function Fonction @@ -14776,45 +16522,55 @@ Voulez-vous la remplacer ? Création de conducteurs - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Pour installer le plugin qet_tb_generator <br> : visitez le site: <br><a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generateur </a><br> requiert Python version 3.5 ou supérieure. <br><B><U> Premièrement , installation sous Windows </B></U><br>1. Installez, si nécessaire, Python 3.5 ou version ultérieure <br><br><a href='https://www.python.org/downloads/'> python.org </a><br> 2. pip installer qet_tb_generator <br><B><U> Mise à jour sous Windows </B></U><br> python -m installation de pip --upgrade qet_tb_generator <br> >> l'utilisateur peut lancer dans un terminal ce script dans cette Répertoire <br> C: \ Utilisateurs \ XXXX \ AppData \ Local \ Programmes \ Python \ Python36-32 \ Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Pour installer le plugin qet_tb_generator<br>Visitez:<br><a.href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Nécessite python 3.5 ou supérieur.<br><br><B><U>Première installation sous Linux</B></U><br>1. vérifiez que pip3 est installé: pip3 --version <br>Si ce n'est pas le cas, installez avec: sudo apt-get install python3-pip <br>2. Installez le programme: sudo pip3 install qet_tb_generator <br> 3. Exécutez le programme: qet_tb_generator <br><br><B><U> Mise à jour sous Linux </B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Erreur lors du lancement du plugin qet_tb_generator - + Add a nomenclature Ajouter une nomenclature - + Add a summary Ajouter un sommaire + + + Add a cable list + Ajouter une liste de câbles + + + + Cable list + Liste de câbles + Paste Coller - + + - - + @@ -14855,83 +16611,113 @@ Voulez-vous la remplacer ? Trier le bornier %1 - - + + Generic generic terminal element type Générique - + Fuse fuse terminal element type Fusible - + Sectionable sectional terminal element type Sectionable - + Diode diode terminal element type Diode - + Ground ground terminal element type Terre - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + Diodes antiparallèles + + + + Resistor + resistor terminal element type + Résistance + + + + Varistor + varistor terminal element type + Varistance + + + + Test socket + test socket terminal element type + Prise de test + + + + Diode (reversed) + reversed diode terminal element type + Diode (inversée) + + + + Generic generic terminal element function Générique - + Phase phase terminal element function Phase - + Neutral neutral terminal element function Neutre - - + + Digital input Entrée digitale - + Digital output Sortie digitale - + Analogue input Entrée analogique - + Analogue output Sortie analogique - + Universal input Entrée universelle - + Universal output Sortie universelle @@ -14966,7 +16752,7 @@ Voulez-vous la remplacer ? Importer un fichier dxf - + Default layout Disposition par défaut @@ -15143,8 +16929,8 @@ Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper da - - + + Move %1 Déplacer %1 @@ -15289,88 +17075,88 @@ Veuillez télécharger celui-ci en suivant le lien ci dessous et le dézipper da - + insert %1 Ajouter %1 - + Edit the conductor properties Modifier les propriétés du conducteur - + Edit a text Modifier un texte - + Change the color of a text Modifier la couleur d'un texte - + Rotate a text Pivoter un texte - + Edit line of a form Modifier le trait d'une forme - + Edit filling a form Modifier le remplissage d'une forme - + Rotate a shape Pivoter une forme - - + + Change the shape of %1 Modifier la forme d'%1 - + Close/Open %1 Fermer/Ouvrir %1 - + Resize an image Redimensionner une image - + Rotate an image Pivoter une image - + Edit element text Modifier un texte d'élément - + Automatically number an element Numéroter automatiquement un élément - + Renumber elements (%1) Renuméroter les éléments (%1) - + Search and replace Rechercher et remplacer - + Script @@ -15426,7 +17212,7 @@ Pour l'activer : Configurer QElectroTech > Général > Projets, ou d Dégeler le nom de l'élément - + Sheet Folio @@ -15475,26 +17261,26 @@ Pour l'activer : Configurer QElectroTech > Général > Projets, ou d QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Les information à afficher sont supérieurs à la quantité maximal pouvant être affiché par les tableaux. Veuillez ajouter un nouveau tableau ou regler les tableaux existant afin d'afficher l'integralité des informations. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Les information à afficher sont supérieurs à la quantité maximal pouvant être affiché par le tableau. Veuillez ajouter un nouveau tableau ou regler le tableau existant afin d'afficher l'integralité des informations. - + Table limitation Limitation de tableau - + Modify the geometry of a table Modifier la géometrie d'un tableau @@ -15826,88 +17612,88 @@ rien n'a été modifié. Modifier le type d'un nœud - + Resize %1 Redimensionner %1 - + Rotate %1 Faire pivoter %1 - + Skew %1 Incliner %1 - + Move the rotation center Deplacer le centre de rotation - + Round the corners of %1 Arrondir les coins d'%1 - + Change the angle of an arc Modifier l'angle d'un arc - + Change the curve of an arc Modifier la courbure d'un arc - - + + Change the shape of %1 Modifier la forme d'%1 - + Change the curvature of %1 Modifier la courbure d'%1 - + Edit %1 Modifier %1 - + a line une ligne - + rectangle un rectangle - + an ellipse une éllipse - + an arc un arc - + polyline une polyligne - + a curve une courbe - + an shape une shape @@ -15956,6 +17742,14 @@ rien n'a été modifié. Modifier un rectangle + + RemoveCableCommand + + + Delete a cable + Supprimer un câble + + RenameDialog @@ -15994,6 +17788,17 @@ rien n'a été modifié. L'élément « %1 » existe déjà. Que souhaitez-vous faire ? + + RenumberCablesCommand + + + Renumber %n cable(s) + + Renuméroter %n câble + Renuméroter %n câbles + + + RenumberElementsDialog @@ -17009,28 +18814,38 @@ qet.addText(f, "Texte", 40, 40); Revenir à la définition enregistrée - + Move this variable up Monter cette variable - + Move this variable down Descendre cette variable - + Delete this variable Supprimer cette variable - + + Delete the rule + Supprimer la règle + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + Supprimer la règle de numérotation des câbles : les câbles sont numérotés comme avant, et la question de définir une règle reviendra au prochain dessin. + + + Sheet Auto Numbering title window Folio Autonumérotation - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17058,7 +18873,7 @@ Le champ "Incrémentation" n'est pas utilisé. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17096,13 +18911,57 @@ Les autres champs ne sont pas utilisés. Les autres champs ne sont pas utilisés. - + + Cable Auto Numbering + title window + Numérotation automatique des câbles + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + C'est ici que vous pouvez définir la manière dont seront numérotés les nouveaux câbles. +-Une numérotation est composée d'une variable minimum. +-Vous pouvez ajouter ou supprimer une variable de numérotation par le biais des boutons - et +. +-Une variable de numérotation comprend : un type, une valeur et une incrémentation. + +-les types "Chiffre 1", "Chiffre 01" et "Chiffre 001", représentent un type numérique défini dans le champ "Valeur", qui s'incrémente à chaque nouveau câble de la valeur du champ "Incrémentation". +-"Chiffre 01" et "Chiffre 001", sont respectivement représentés sur le schéma par deux et trois digits minimum. +Si le chiffre défini dans le champ Valeur possède moins de digits que le type choisi, celui-ci sera précédé par un ou deux 0 afin de respecter son type. + +-Le type "Texte", représente un texte fixe. +Le champ "Incrémentation" n'est pas utilisé. + +-Le type "N° folio" représente le n° du folio en cours. +Les autres champs ne sont pas utilisés. + +-Le type "Folio" représente le nom du folio en cours. +Les autres champs ne sont pas utilisés. + + + Element Auto Numbering title window Element Autonumérotation - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17140,17 +18999,17 @@ Les autres champs ne sont pas utilisés. Les autres champs ne sont pas utilisés. - + New numbering… Nouvelle numérotation… - + Rename numbering… Renommer la numérotation… - + Numbering conductors title window Conducteur Autonumérotation @@ -20058,42 +21917,42 @@ Les autres champs ne sont pas utilisés. Disposition - + Bridging the terminals Ponter les bornes - + Unbridge the terminals Déponter les bornes - + Properties Propriétés - + Name: Nom : - + Comment : Commentaire : - + Description Description - + Plant: Installation : - + Location : Localisation : @@ -20103,13 +21962,13 @@ Les autres champs ne sont pas utilisés. Type : - + Ungroup the terminals Degrouper les bornes - + Generic Générique @@ -20149,22 +22008,67 @@ Les autres champs ne sont pas utilisés. Terre - + + Anti-parallel diodes + Diodes antiparallèles + + + + Resistor + Résistance + + + + Varistor + Varistance + + + + Test socket + Prise de test + + + + Diode (reversed) + Diode (inversée) + + + + Cable : + Câble : + + + + Name of the cable of the selected terminals + Nom du câble des bornes sélectionnées + + + + Set the cable name to all the selected terminals + Affecter le nom du câble à toutes les bornes sélectionnées + + + + Apply the cable to the selection + Appliquer le câble à la sélection + + + Move to : Déplacer dans : - + Phase Phase - + Neutral Neutre - + Automatic position Position automatique @@ -20174,12 +22078,12 @@ Les autres champs ne sont pas utilisés. Étage : - + Group the terminals Grouper les bornes - + Function : Fonction : @@ -20194,17 +22098,17 @@ Les autres champs ne sont pas utilisés. Avec - + LED : LED : - + Independent terminals Bornes indépendantes - + Modify terminal strip properties Modifier des propriétés de borniers @@ -20273,12 +22177,12 @@ Les autres champs ne sont pas utilisés. Borne niveau 0 : - + Headser : En tête : - + Bridge point Point de pont @@ -20343,12 +22247,52 @@ Les autres champs ne sont pas utilisés. Référence croisée - + + Symbol + Symbole + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + Hauteur du symbole du type de borne (fusible, terre, led...). 0 désactive le symbole. + + + + Connection length + Longueur des connexions + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + Longueur des connexions dessinées au-dessus et en dessous de chaque borne. 0 désactive les connexions. + + + + Cable: wires / cable / end + Câble : fils / câble / fin + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + Longueur des fils entre les bornes et le câble. 0 désactive le dessin des câbles. + + + + Length of the cable. + Longueur du câble. + + + + Length of the wires after the cable. + Longueur des fils après le câble. + + + Height Hauteur - + Preview: Prévisualisation : @@ -20411,52 +22355,57 @@ Les autres champs ne sont pas utilisés. TerminalStripModel - + Position Position - + Stage Étage - + Label Label - + Cross-reference Référence croisé - + Cable Câble - + Color / wire number of the cable Couleur / numéro de fil câble - + Type Type - + Function Fonction - + led led - + + Shield + Blindage + + + Number wire Numéro de conducteur @@ -21773,32 +23722,42 @@ associer le nom "volta" et la valeur "1745" remplacera %{vol Afficher en croix - + Label cross reference Label des références croisées - + Master Maitre - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + Choisir la police et la taille du texte de la référence croisée du câble + + + + Font… + Police… + + + Slave Esclave - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21815,115 +23774,141 @@ associer le nom "volta" et la valeur "1745" remplacera %{vol %LM: Localisation - + Option display cross Option d'affichage en croix - + Show the power contacts in the cross Afficher les contacts de puissance dans la croix - + Prefix of power contacts : Préfixe des contacts de puissance : - + Prefix delayed contacts : Préfixe des contacts temporisés : - + Prefix changeover contacts : Préfixe des contacts inverseurs : - + Coil Bobine - + Organ of protection Organe de protection - + Switch / button Commutateur / bouton - + Programmable Logic Controller (PLC) Automate (PLC) - + + Cable + Câble + + + Footer En bas de page - + Under the label of the element Sous le label de l'élément - + Top Dessus - + Bottom Dessous - + Left Gauche - + Right Droit - + Text alignment Alignement du texte - + Text field Champ de texte + + + Text: + Texte : + + + + Font and size: those of the cable texts + Police et taille : celles des textes du câble + + + + + Font and size: %1, %2 pt + Police et taille : %1, %2 pt + + + + Font of the cross-reference text + Police du texte de la référence croisée + projectDataBase - + The query is empty. La requête est vide. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Une seule requête SELECT est autorisée (le caractère ';' ne peut apparaître qu'à la toute fin). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Seules les requêtes en lecture seule (SELECT ou WITH ... SELECT) sont autorisées. - + Export the internal project database Exporter la base de données interne du projet - + untitled sans_nom diff --git a/lang/qet_hr.ts b/lang/qet_hr.ts index 284e7bb57..9b35c72e4 100644 --- a/lang/qet_hr.ts +++ b/lang/qet_hr.ts @@ -385,7 +385,7 @@ Middle - + Sredina @@ -403,7 +403,7 @@ Edit - + Uredi @@ -589,7 +589,7 @@ text alignment - + poravnanje teksta @@ -731,7 +731,7 @@ Element - + Element @@ -918,7 +918,7 @@ Element - + Element @@ -1161,6 +1161,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + Obriši + + BorderPropertiesWidget @@ -1206,7 +1224,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + Format: @@ -1216,16 +1234,1077 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + Osobno Landscape - + Pejzaž Portrait + Portret + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + Greška + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Poništi + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Poništi + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Poništi + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Font: + + + + pt + + + + + Size: + + + + + Normal + Normalno + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Poravnanje: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Poništi + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1272,13 +2351,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Uredi svojstva vodiča - + Edit the properties of several conductors undo caption @@ -1384,7 +2463,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Edit conductor properties undo caption - + Uredi svojstva vodiča @@ -1414,7 +2493,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Edit conductor properties undo caption - + Uredi svojstva vodiča @@ -1923,7 +3002,7 @@ Continue? Diagram - + Change the depth @@ -2060,6 +3139,24 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2071,7 +3168,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2079,7 +3176,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2202,224 +3299,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Greška - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2450,22 +3577,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2473,85 +3600,119 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip "Što je to?" savjet Područje u kojem ste dizajnirali shemu dodavanjem novih elemenata traži vodiče između svojih priključaka. Također možete dodati neovisan tekst. - + Paste Here context menu action Zalijepi ovdje - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Choose the new color for this conductor Izaberi novu boju za ovaj vodič - + Edit conductor properties undo caption + Uredi svojstva vodiča + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Greška - + The file could not be written. @@ -2664,7 +3825,7 @@ Hold Shift and drag to move this text on its own Add text - + Dodaj tekst @@ -2759,7 +3920,7 @@ Hold Shift and drag to move this text on its own Information - + Informacije @@ -2824,7 +3985,7 @@ Hold Shift and drag to move this text on its own Edit - + Uredi @@ -2900,7 +4061,7 @@ Hold Shift and drag to move this text on its own Middle - + Sredina @@ -2969,7 +4130,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3094,7 +4255,7 @@ Hold Shift and drag to move this text on its own Middle - + Sredina @@ -3151,7 +4312,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3646,8 +4807,8 @@ Continue? - - + + Type @@ -3730,8 +4891,8 @@ Continue? - - + + Function @@ -3763,7 +4924,7 @@ Continue? - + Simple Jednostavno @@ -3804,19 +4965,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3832,25 +4993,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3876,7 +5037,7 @@ Continue? - + Generic @@ -3900,164 +5061,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Niišta - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -4182,7 +5368,7 @@ Continue? Export fr: Form - + Izvoz @@ -5032,7 +6218,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Izvoz @@ -5396,97 +6582,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : Vrsta: - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5636,6 +6852,7 @@ that you create. Text and number inputs are + Browse... @@ -5809,8 +7026,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5821,157 +7041,225 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Highlight freshly integrated elements in the panel Označite elemente u integriranoj ploči - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + Elements management Upravljanje elementima @@ -5981,317 +7269,353 @@ that you create. Text and number inputs are - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: Font: - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + Normalno + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Općenito - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6300,50 +7624,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6353,6 +7695,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Lijevo + + + + Right + Desno + + + + Top + Vrh + + + + Bottom + Dno + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + Informacije + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Naziv: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Naziv + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + Obriši + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6480,135 +8163,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - Display - Ekran + Ekran - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None Niišta - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - Left - Lijevo + Lijevo - - Center - Sredina + Sredina - - Right - Desno + Desno - - - Font - - - - - Table - - - - Alignment: - Poravnanje: - - - - Content - + Poravnanje: @@ -6725,6 +8302,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6940,80 +8540,18 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - Angle: - Kut: + Kut: - - - px - px + px - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - Text - Tekst + Tekst - @@ -7455,7 +8993,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Ispiši @@ -7844,6 +9382,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7947,63 +9493,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8103,133 +9654,133 @@ Do you still want to link this slave contact? NumPartEditorW - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - Tekst - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + Tekst + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8360,12 +9911,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8373,12 +9924,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8775,7 +10326,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Ispis @@ -8789,101 +10340,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name Naziv - + Sheet - + Element Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8892,7 +10448,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8901,49 +10457,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8952,21 +10508,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8976,7 +10532,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8985,7 +10541,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8994,13 +10550,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9010,12 +10566,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9024,12 +10580,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9038,7 +10594,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9048,80 +10604,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9142,19 +10698,8 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - - Form - - - - - Request - - - - Reload - Ponovo učitaj + Ponovo učitaj @@ -9475,7 +11020,7 @@ Give them another numbering first. Page layout - + Raspored stranice @@ -9650,127 +11195,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption Učitavam... Inicijaliziram međumemoriju kolekcije elemenata - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption Učitavam... Otvaram datoteke - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET naslov grupe - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Korisnikov naslov grupe - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Shema - + Electric Normal example text - translate length, not meaning Električna - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Podesite.QElectroTech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Greška - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9779,145 +11326,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Učitavam... - + Loading... Systray icon splash screen caption Učitavam... Ikona trake sustava - + QElectroTech systray menu title QElectroTech - + &Quit &Gotovo - + &Hide &Sakrij - + &Show &Pokaži - + &Hide diagram editor &Sakrij uređivač shema - + &Show diagram editors &Prikaži uređivač shema - + &Hide element editor &Sakrij uređivač elemenata - + &Show element editor &Prikaži uređivač elemenata - + &Hide title block template editor systray submenu entry &Sakrij uređivač naslova grupe predloška - + &Show title block template editors systray submenu entry &Prikaži uređivač naslova grupe predložaka - + &New diagram editor &Novi uređivač shema - + &New element editor &Novi uređivač elemenata - + Closes QElectroTech Zatvori QElectroTech - + Reduces QElectroTech into the systray Minimiziraj QElectroTech u traku sustava - + Restore QElectroTech Vrati QElectrotech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Uređivač shema - + Element editors Uređivač elemenata - + Title block template editors systray menu entry Uređivač naslova grupe predložaka - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Upotrijebljeno: - + [options] [file]... @@ -9926,7 +11530,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9942,31 +11546,31 @@ Dostupne opcije: --licenca Prikaži licencu - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dirr=DIR Definiraj zajednički direktorij za elemente - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definiraj direktorij naslova grupe predložaka - + --config-dir=DIR Define configuration directory --config-dir=DIR Definiraj direktorij konfiguracije - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Definiraj direktorij za jezične datoteke @@ -9975,1031 +11579,1125 @@ Dostupne opcije: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Poništi - + No modification Bez promjena - + Click an action to get back in the changes you made to your diagram Status tip Kliknite za uređivanje svoje sheme - + &New &Novo - + &Open &Otvori - - + + &Close &Zatvori - + &Save &Spremi - + Save as Spremi kao - + &Export &Izvoz - + Projects dock title Projekt - + Collections - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Uređivač shema - + Exports the current sheet to another format status bar tip - + Print Ispiši - + Prints one or more sheet of the current project status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + &Quit &Kraj - + Undo Poništi - + Redo Vrati kako je bilo - + Cu&t I&zreži - + &Copy &Kopiraj - + &Paste &Zalijepi - + Paste at the original position - - + + Paste element information - + Pastes elements from the clipboard into the sheet status bar tip - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Prikaz - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Add a sheet - - - + + + Delete this sheet - + Export to CSV - + Add a nomenclature - + Add a summary - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + Allows to view the sheet without modifying it status bar tip - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add row Add row Dodaj liniju - + Remove a row Remove row Ukloni red - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Rotate the group - + Horizontal mirror - + Vertical mirror - + Edit the selected item - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Odaberi sve - + Select none Bez odabira - + Invert selection Obrnuta (inverzna) selekcija - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom content - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a picture - + Add a PDF - + Add an arc - + Dodaj luk - + Add a polygon - + Dodaj poligon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Poništi + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add + - Depth toolbar title Dubina - + Scripts toolbar title - - + + Scripts - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11011,7 +12709,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n items aligned @@ -11020,32 +12718,32 @@ If you save the project, these conductors will disappear from the file. Close it - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11054,7 +12752,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11063,7 +12761,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11072,18 +12770,18 @@ If you save the project, these conductors will disappear from the file. Close it - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11092,28 +12790,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11122,12 +12820,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11138,53 +12836,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11193,423 +12891,423 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Delete Obriši - + Rotate Okreni - + Choose texts orientation Odaberi orijentaciju teksta - + Find in the panel Nađi na ploči - + Reset conductors Resetiraj vodiče - + Add a textfield Dodaj tekstualno polje - + Add a column Dodaj stupac - + Remove a column Ukloni stupac - + Project properties Svojstva projekta - + Clean project Obriši projekt - + Zoom In Povećaj - + Zoom Out Smanji - + Fit in view Podesi povećanje - + Reset zoom Poništi povećanje - + using tabs koristi kartice - + using windows koristi prozore - + Select Način selekcije - + Move Vrsta pogleda - + &Tile &Mozaik - + &Cascade &Kaskada - + Next project Slijedeći projekt - + Previous project Prethodni projekt - + Add a rectangle Dodaj pravokutnik - + Add an ellipse Dodaj elipsu - - + + Project %1 registered in the directory: %2. - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title Nemoguće otvoriti datoteku - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + Opening the file read-only message box title Otvori datoteku samo za čitanje - + Closes QElectroTech status bar tip Zatvori QElectroTech - + Undoes the previous action status bar tip Poništi prethodne akcije - + Restores the undone action status bar tip Vrati poništene akcije - + Puts selected elements into the clipboard status bar tip Stavi odabrane elemente u međuspremnik - + Copies selected elements status bar tip Kopiraj odabrane elemente - + Inverts selection of elements status bar tip Poništi odabir elemenata i odabei elemente koji nisu bili odabrani - + Rotate selected elements and texts status bar tip Okreni odabrani element i tekst - + Rotate selected texts to a specific angle status bar tip Okreni odabrani tekst za određeni kut - + Reset the conductors path ignoring the user changes status bar tip Vrati putanje vodiča ignorirajući korisničke promjene - + Restores default zoom level status bar tip Vrati nivo temeljnog povećanja - + Add line Draw line Dodaj liniju - + Shows the various opened projects in windows status bar tip Prikaži otvorene projekte u prozorima - + Shows the various opened projects in tabs status bar tip Prikaži otvorene projekte u karticama - + Allows to select elements status bar tip Dozvoli odabir elemenata - + Arranges windows in a tile pattern status bar tip Složi prozore kao mozaik - + Arranges windows in a cascade pattern status bar tip Složi prozore u kaskadu - + Activates the next project status bar tip Aktiviraj slijedeći projekt - + Activates the previous project status bar tip Aktiviraj prethodni projekt - + &File &Datoteka - + &Edit &Uredi - + &Project &Projekt - + Displ&ay Ekr&an - + Wi&ndows Pro&zor - + &Latest files - + Display or hide the main toolbar Prikaži ili sakrij glavnu alatnu traku - + Display or hide the Display toolbar Prikaži ili sakrij alatnu traku ekrana - + Display or hide the Diagram toolbar Prikaži ili sakrij alatnu traku sheme - + Show or hide the elements panel Ekran ili element van panela - + Display or hide the undo list Prikaži ili sakrij listu vraćanja - + Display projects Prikaži projekt + - Tools Alati - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip + - Display Ekran + - Diagram Shema - + &Add - + Selection - + Align - + Rows and columns - + Depth Dubina - + Open a file Otvori datoteku - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Datoteka koju pokušavate otvoriti nije čitljiva i ne može biti otvorena. Molim provjerite dozvole za datoteku. - + The project you try to open does not seem writable. It will be opened read-only. Nije moguće upisivanje u projekt kojeg pokušavate otvoriti. Otvorit će se samo za čitanje. - - + + Unable to open project message box title Nemoguće otvoriti projekt - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11619,7 +13317,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11629,29 +13327,29 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + Project fonts message box title - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11660,12 +13358,12 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + (%n locked objects left in place) @@ -11674,79 +13372,79 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Greška @@ -12197,7 +13895,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b Element editors - + Uređivač elemenata @@ -12736,52 +14434,52 @@ please wait while importing... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Untitled project displayed title for a project-less, file-less project Projekt bez naslova - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [samo za čitanje] - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12789,56 +14487,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message Greška nastala tijekom integracije predloška. - + Warning message box title Upozorenje - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12864,166 +14562,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Spremi trenutni predložak? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Želite li spremiti predložak %1? - + new_template template name suggestion when duplicating the default one Novi_predložak - + Duplicate a title block template input dialog title Kopiraj naslov grupe predložaka - + In order to duplicate this template, please enter a name for its copy input dialog text Za kopiranje predloška, molim imenujte negovu kopiju - + &New menu entry &Novo - + &Open menu entry &Otvori - + Open from a file menu entry Otvori iz datoteke - + &Save menu entry &Spremi - + Save as menu entry Spremi kao - + Save to a file menu entry Spremi u datoteku - + &Quit menu entry &Kraj - + Cu&t menu entry I&zreži - + &Copy menu entry &Kopiraj - + &Paste menu entry &Zalijepi - + Manage logos menu entry Uredi znak - + Edit extra information menu entry Uredi dodatne informacije - + Zoom In menu entry Povećaj - + Zoom out menu entry Smanji - + Fit in view menu entry Podesi povećanje - + Reset zoom menu entry Poništi povećanje - + Add a &row menu entry Dodaj &red - + Add a &column menu entry Dodaj &stupac - + &Merge cells menu entry &Zalijepi ćelije - + &Split cells menu entry &Razdvoji ćelije - - - - - - - - - - @@ -13033,156 +14721,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Uređivač naslova grupe predložaka - + &File menu title &Datoteka - + &Edit menu title &Uredi - + Displ&ay menu title Ekr&an - + Tools toolbar title Alati - + Edit toolbar title Uredi - + Display toolbar title Ekran - + No modification label displayed in the undo list when empty Bez promjena - + Undo dock title Poništi - + Cell properties dock title Svojstva ćelije - + [Changed] window title tag [Promijenjeno] - + [Read only] window title tag [Samo za čitanje] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Uređivač naslova grupe predložaka - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Greška - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Otvori naslov bloka uzorka - + Open a file dialog title Otvori datoteku - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech naslov grupe predložaka (*%1);;XML files (*.xml);; Sve datoteke (*) - + Save template as dialog window title Spremi predložak kao - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Spremi kao - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech naslov grupe predložaka (*%1) - + Edit extra information window title Uredi dodatne informacije - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Možete koristiti ovaj prostor za navođenje autora predloška, njegovu licencu ili bilo koje druge informacije koje smatrate korisnima. @@ -13207,13 +14905,13 @@ What do you wish to do ? QObject - + Warning: the element has been saved with a more recent version of QElectroTech. Upozorenje: Element će biti spremljen sa više trenutnih verzija QElectroTech-a. - + delete %1 undo caption - %1 is a sentence listing the removed content obriši %1 @@ -13762,7 +15460,7 @@ What do you wish to do ? - + @@ -13789,8 +15487,8 @@ What do you wish to do ? Priključak - + Text Tekst @@ -13845,8 +15543,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -13865,7 +15563,7 @@ the translated name of this folder could not be read, so its folder name is disp Edit conductor properties undo caption - + Uredi svojstva vodiča @@ -13881,10 +15579,10 @@ the translated name of this folder could not be read, so its folder name is disp - + + - - + @@ -13895,17 +15593,17 @@ the translated name of this folder could not be read, so its folder name is disp - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13956,12 +15654,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14013,15 +15711,25 @@ Do you want to replace it ? - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14033,103 +15741,133 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14145,7 +15883,7 @@ Do you want to replace it ? - + Title @@ -14272,45 +16010,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -14645,7 +16383,7 @@ Do you want to replace it ? - + Default layout @@ -14757,7 +16495,7 @@ Do you want to replace it ? - + Edit the cross reference edite the cross reference @@ -14948,8 +16686,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15104,88 +16842,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15239,7 +16977,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15288,24 +17026,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15630,88 +17368,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + pravokutnik - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15760,6 +17498,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15798,6 +17544,18 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16077,7 +17835,7 @@ nothing has been changed. Edit - + Uredi @@ -16350,7 +18108,7 @@ Create your own text using the following variables: &Delete - + &Obriši @@ -16801,28 +18559,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16839,13 +18607,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16867,13 +18635,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16895,12 +18691,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19840,7 +21636,7 @@ The other fields are not used. - + Generic @@ -19865,82 +21661,127 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties Svojstva - + Name: Naziv: - + Comment : - + Plant: - + Location : - + Description @@ -19950,12 +21791,12 @@ The other fields are not used. Vrsta: - + Independent terminals - + Modify terminal strip properties @@ -20024,12 +21865,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20094,12 +21935,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20115,7 +21996,7 @@ The other fields are not used. Middle - + Sredina @@ -20162,55 +22043,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21515,32 +23401,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21551,115 +23447,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Vrh - + Bottom - + Dno - + Left - + Lijevo - + Right - + Desno - + Text alignment - + Text field + + + Text: + Tekst: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled @@ -21740,7 +23662,7 @@ The following variables can be used: Center - + Sredina diff --git a/lang/qet_hu.ts b/lang/qet_hu.ts index 2c689d152..a678c8ffa 100644 --- a/lang/qet_hu.ts +++ b/lang/qet_hu.ts @@ -1155,6 +1155,22 @@ Megjegyzés: ezek a lehetőségek NEM engedélyezik, vagy blokkolják az Automat + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + Delete + Törlés + + BorderPropertiesWidget @@ -1198,7 +1214,7 @@ Megjegyzés: ezek a lehetőségek NEM engedélyezik, vagy blokkolják az Automat Format: - + Formátum : @@ -1214,16 +1230,1057 @@ Megjegyzés: ezek a lehetőségek NEM engedélyezik, vagy blokkolják az Automat Custom - + Testre szabás Landscape - + Fekvő helyzetben Portrait + Álló helyzetben + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kábel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Beépítés (=) + + + + Location (+) + Elhelyezkedés (+) + + + + Type + Típus + + + + Cores + + + + + Plant + Beépítés + + + + Location + Elhelyezkedés + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + fejlécet tartalmaz + + + + Preview + Előnézet + + + + cable_list_ + + + + + Save As... + Mentés más néven... + + + + CSV files (*.csv) + + + + + Error + Hiba + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Visszavonás + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Igen + + + + No + Les noms saisis à la main sont laissés tels quels. + Nem + + + + Cancel + Ne renumérote rien du tout. + Visszavonás + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Igen + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Nem + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Visszavonás + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + CablePropertiesDialog + + + Cable + Kábel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kábel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Típus + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Beépítés (=) + + + + Location (+) + Elhelyezkedés (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Betűtípus : + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Félkövér + + + + Italic + Dőlt + + + + Bold italic + + + + + Style: + Stílus : + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Igazítás: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Előnézet: + + + + Reset + Visszaállítás + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Visszavonás + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1270,13 +2327,13 @@ Megjegyzés: ezek a lehetőségek NEM engedélyezik, vagy blokkolják az Automat Conductor - + Edit conductor properties undo caption Vezeték tulajdonságainak módosítása - + Edit the properties of several conductors undo caption Több vezeték tulajdonságainak módosítása @@ -1332,7 +2389,7 @@ Megjegyzés: ezek a lehetőségek NEM engedélyezik, vagy blokkolják az Automat Conductor color - + Vezető színe @@ -1915,7 +2972,7 @@ Continue? Diagram - + Change the depth Rétegelrendezés módosítása @@ -2052,6 +3109,22 @@ Continue? × 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + DiagramEventAddElement @@ -2063,7 +3136,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2071,7 +3144,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2194,224 +3267,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) SVG kép (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image egy kép - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Kép kiválasztása ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Hiba - + Unable to load the image. Nem lehet a fájlt betölteni. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2443,106 +3546,138 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Vezető színe DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Ez az a hely, ahol a rajzokat elemek hozzáadásával és csatlakozókhoz illesztésével tervezi meg. Lehetőséget kínál független szövegek hozzáadására is. - + Paste Here context menu action Beillesztés ide - + Multiple paste Többszörös beillesztés - + Create a template context menu action Sablon-fájl készítése - + Make a cabinet thumbnail context menu action - + Sheet reference + Tervlap hivatkozás + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals A kiválasztott csatlakozók összekötése - + Untitled what to display for untitled diagrams Cím nélkül - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Hiba - + The file could not be written. - + Choose the new color for this conductor Válassza ki a vezeték új színét - + Edit conductor properties undo caption Vezeték tulajdonságainak módosítása @@ -3143,7 +4278,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Egy elem automatikus számozása @@ -3639,8 +4774,8 @@ Continue? - - + + Type Típus @@ -3723,8 +4858,8 @@ Continue? - - + + Function Funkció @@ -3756,7 +4891,7 @@ Continue? - + Simple Egyszerű @@ -3797,19 +4932,19 @@ Continue? - + Switch normally open Alaphelyzetben nyitott - + Switch normally closed Alaphelyzetben zárt - + switch inverz @@ -3825,25 +4960,25 @@ Continue? - + Power switch Teljesítmény - + Switch-on delayed késleltetve be kapcsoló - + Switch-off delayed késleltetve ki kapcsoló - + Switch-on and off delayed késleltetve be és ki kapcsoló @@ -3869,7 +5004,7 @@ Continue? - + Generic Általános @@ -3888,164 +5023,189 @@ Continue? Diode Dióda + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fázis - + Neutral Nulla - - - - - + + + + + T%1 T%1 - + Other fr: Autre Másik - + PLC Configuration PLC konfiguráció - + + + - + - - - - + + Address Cím - - + + Annotation Megjegyzés - + Cross-reference Kereszthivatkozás - - + + Nb. Szám - + T1 T1 - + Header font Fejléc betűtípus - + Set the font for column headers Oszlop fejléc betűtípus - + Text font Szöveg betűtípus - + Set the text font in the cells Cella betűtípus beállítás - + Show headers on the sheet Fejléc mutatása a lapon - + Show or hide the column headings of the PLC table on the sheet Megjeleníti, vagy elrejti a PLC tábla oszlop-fejlécét a lapon - + Jump to %1 after: Ugrás %1 -hoz utána: - + None Nincs - + Line H: Sor H: - - + + mm mm - + Ref. Hivatkozás - + Custom column name (blank = default) Egyedi oszlop név (üres = alapbeállítás) - + Visible Látható - + Paste from the clipboard Beillesztés a vágólapról - - + + Heading font size: %1 %2pt Címsor betűméret: %1 %2pt - - + + Font size: %1 %2pt Betűméret: %1 %2pt - + Column header formatting Oszlop fejléc formázás - + Cell text font Cella betűtípus @@ -5043,7 +6203,7 @@ A fájl importálásával Ön megerősíti, hogy: ExportConfigPage - + Export configuration page title Exportálás @@ -5426,97 +6586,127 @@ Szöveg és szám szintén bevihető. + Filter by label (e.g. Z1) + + + + Move to : Áthelyezés : - + Type : Típus : - + Function : Funkció : - + LED : LED : - + Apply displacement Áthelyezés alkalmazása - - + + Generic Általános - + Fuse Biztosíték - + Sectionable Megosztható - + Diod Dióda - + Ground Földelés - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fázis - + Neutral Nulla - + Without Nélkül - + With Vele - + Modify terminal strip properties Sorkapocsléc tulajdonságainak módosítása - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5603,27 +6793,27 @@ Szöveg és szám szintén bevihető. Felhasználói szövegmezők könyvtára - + Here you can define the default appearance of the different texts of QElectroTech Itt lehet meghatározni a QElectrotech különböző szövegeinek alapértelmezett megjelenését - + Grid + Keyboard Rács + Billentyű - + Grid: 1 - 30 Rács: 1 - 30 - + DiagramEditor xGrid Sémaszerkesztő xRács - + DiagramEditor yGrid Sémaszerkesztő yRács @@ -5807,8 +6997,11 @@ Szöveg és szám szintén bevihető. + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5819,149 +7012,217 @@ Szöveg és szám szintén bevihető. + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Nyelvek - + texts Szöveg - + Elements texts Elemekhez tartozó szövegek - - - + + + Font: Betűtípus : - - + + ° ° - + Length : Hosszúság : - - + + Rotation : Forgatás : - + Independent texts Független szövegek - + Other texts Egyéb szövegek - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. A Rácsnak aktívnak kell lennie, hogy lássuk a változásokat. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Billentyűzetről mozgatás: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Sémaszerkesztő (billentyű: bal / jobb) xRács - + DiagramEditor (key: up / down) yGrid Sémaszerkesztő (billentyű: fel / le) yRács - + Keyboard movement with the ALT key: 1 - 9 Billentyűzetről mozgatás ALT + billentyű: 1 - 9 - + DiagramEditor (key: left / right) xGrid Sémaszerkesztő (billentyű: bal / jobb) xRács - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Sémaszerkesztő (billentyű: fel / le) yRács - + View grid Rács megjelenítése - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Pont méret a tervlapszerkesztőben: 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Pont méret az elemszerkesztőben: 1 - 5 - + Editor Szerkesztő - + Max. parts in Element Editor List Maximum alkatrészszám az Elem-szerkesztő listában @@ -5986,12 +7247,12 @@ Szöveg és szám szintén bevihető. Űrlap - + User Collection Path Felhasználói gyűjtemény elérési útvonala - + Path of the Common Collection Közös gyűjtemény elérési útvonala @@ -6013,6 +7274,7 @@ Szöveg és szám szintén bevihető. + Browse... Böngészés... @@ -6038,291 +7300,327 @@ Szöveg és szám szintén bevihető. perc - + Elements management Elemek szervezés - + Highlight freshly integrated elements in the panel A frissen elhelyezett alkatrészek kiemelése a panelen - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Az elem tartalmazhat információt a szerzőről, engedélyt, vagy más hasznos információt. A szövegmező alapértelmezett értékének meghatározása az új elemek alá vonatkoztatva : - + Applied to the next launch of QElectroTech Alkalmazás a QElectroTech következő indításánál - + + Bold italic + + + + + Bold + Félkövér + + + + Italic + Dőlt + + + + Normal + + + + Rounding up for 0.5 and more Kerekítés felfelé 0,5 és felette - + Always top rounding Mindíg felfelé kerekít - + Always rounded down Mindíg lefelé kerekít - + Rounding up for 0.75 and more Kerekítés felfelé 0,75 és felette - + No rounding Nincs kerekítés - + Disabled fr: Désactivée - + Tiltva - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Általános - + System Rendszer - + Arabic Arab - + Brazilian Brazil - + Catalan Katalán - + Czech Cseh - + German Német - + Danish Dán - + Greek Görög - + English Angol - + Spanish Spanyol - + French Francia - + Croatian Horváth - + Italian Olasz - + Japanese Japán - + Korean Kóreai - + Polish Lengyel - + Portuguese Portugál - + Romanian Román - + Russian Orosz - + Slovenian Szlovén - + Dutch Holland - + Norwegian Norvég - + Belgium-Flemish Belga-Flamand - + Turkish Török - + Hungarian Magyar - + Mongolian Mongol - + Ukrainian Ukrán - + Chinese Kínai - + Swedish Svéd - + + Cable text font + + + + + Core colors font + + + + Company collection path Gyári gyűjtemény elérési útvonala - + Company title-blocks Gyári tervjel - + User Title blocks Path Felhasználói szövegmező elérési útvonala - + User macro path Felhasználói Makró könyvtár útvonal - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6331,50 +7629,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Fájlok csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash A túl magas érték a program összeomlásához vezethet. - + Experimental feature Kísérleti funkció - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6389,6 +7705,343 @@ Bármilyen beállítás, ami más mint a „Nincs kerekítés” renderelési h 3 - a projekt szerkesztése egy másik számítógépen és/vagy képernyőn, amelynek beállításai nem egyeznek az 1. és 2. pontban leírtakkal. + + GenericDevice + + + Left + Bal + + + + Right + Jobb + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + GenericDeviceInformationPage + + + Information + Információ + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Sorkapcsok + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Sorkapcsok + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Név + + + + Function + Funkció + + + + Type + Típus + + + + Add terminal + + + + + Add gap + + + + + Delete + Törlés + + + + Up + Fel + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Általános + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6516,135 +8169,105 @@ Bármilyen beállítás, ami más mint a „Nincs kerekítés” renderelési h GraphicsTablePropertiesEditor - Table properties - Űrlap + Űrlap - Display - Megjelenítés + Megjelenítés - Table name - Táblázat neve + Táblázat neve - None Nincs - All - Összes + Összes - Lines to display : - Megjelenítendő vonalak : + Megjelenítendő vonalak : - Y : - Y : + Y : - Next table - Következő táblázat + Következő táblázat - X : - X : + X : - Previous table - Előző táblázat + Előző táblázat - Previous table : - Előző táblázat : + Előző táblázat : - Geometry and lines - Geometria és vonalak + Geometria és vonalak - Apply geometry to all tables linked to this one - A geometria alkalmazása minden ehhez kapcsolt táblázatnál + A geometria alkalmazása minden ehhez kapcsolt táblázatnál - Fit table to sheet - A táblázat tervlaphoz igazítása + A táblázat tervlaphoz igazítása - TextLabel - Szövegcímke + Szövegcímke - Header - Fejléc + Fejléc - - Margin - Margó + Margó - Alignment : - Igazítás : + Igazítás : - - Left - Bal + Bal - - Center - Középre + Középre - - Right - Jobb + Jobb - - Font - Betűtípus + Betűtípus - Table - Táblázat + Táblázat - Alignment: - Igazítás: + Igazítás: - Content - Tartalom + Tartalom @@ -6762,6 +8385,29 @@ Bármilyen beállítás, ami más mint a „Nincs kerekítés” renderelési h + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6821,7 +8467,7 @@ Bármilyen beállítás, ami más mint a „Nincs kerekítés” renderelési h Label - + Címke @@ -6977,76 +8623,48 @@ Bármilyen beállítás, ami más mint a „Nincs kerekítés” renderelési h IndiTextPropertiesWidget - Form - Űrlap + Űrlap - X : - X : + X : - Advanced Editor - Beállítások szerkesztése + Beállítások szerkesztése - Size : - Méret : + Méret : - Angle: - Szög : + Szög : - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - A szöveg tartalmát, méretét és betűtípusát nem lehet módosítani, mert html formátumban van formázva. + A szöveg tartalmát, méretét és betűtípusát nem lehet módosítani, mert html formátumban van formázva. Ehhez speciális szerkesztőt kell használni. - Text - Szöveg + Szöveg - @@ -7054,9 +8672,8 @@ Ehhez speciális szerkesztőt kell használni. Betűtípus - Click here to cancel html formatting - Ide kattintva a HTML formázás törölhető + Ide kattintva a HTML formázás törölhető @@ -7493,7 +9110,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Nyomtatás @@ -7510,7 +9127,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Mégse @@ -7878,6 +9495,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7981,63 +9606,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Tervlap - + Conductor Vezeték - + Sheet references Tervlap hivatkozás - + Cross-references Kereszthivatkozások - + Guides Útmutató - + Set the default automatic numbering rules for new projects: - + Conductors Vezetékek - + Elements Elemek - + Sheets - + + Cables + + + + Auto Numbering Automatikus számozás - + New sheet configuration page title Új tervlap - + New project configuration page title Új projekt @@ -8167,133 +9797,133 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 szám formátum 1 - - - - + + + + number format 01 szám formátum 01 - - - - - + + + + + number format 001 szám formátum 001 - - - - - + + + + + Cyclic (modulo) Ciklikus (modul) - - - - - + + + + + Alphabetical Betűrend - - - - - + + + + + Text Szöveg - - - - + + + + Sheet no. Tervlap száma - - - - + + + + Sheet Tervlap - - - - + + + + number format 1 - Sheet szám formátum 1 - Tervlap - - - - + + + + number format 01 - Sheet szám formátum 01 - Tervlap - - - - + + + + number format 001 - Sheet szám formátum 001 - Tervlap - - - - + + + + Location Elhelyezkedés - - - - + + + + Plant Beépítés - - - + + + Element Line Elem sor - - - + + + Element Column Elem oszlop - - - + + + Element Prefix Elem előtag @@ -8380,7 +10010,7 @@ Do you still want to link this slave contact? Change a rectangle - + Négyzet változtatása @@ -8394,12 +10024,12 @@ Do you still want to link this slave contact? PartText - + Move a text Szöveg mozgatása - + Edit the text field Szövegmező szerkesztése @@ -8407,12 +10037,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8810,7 +10440,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Nyomtatás @@ -8824,173 +10454,178 @@ Its copy was kept as: Automatikus számozás - - + + Conductors Vezetékek - + No. - + Name Név - + Sheet Tervlap - + Element Elem - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Elemek - - + + Sheets Tervlapok - + + Cables + + + + Sheet Auto Numbering Tervlap automatikus számozása - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name - + ; %n numbers without an element - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8998,27 +10633,27 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. - + %n elements changed formula. - - + + Delete numbering Számozás törlése - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9026,31 +10661,31 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering - + No sheet follows this numbering - + %n sheets follow this numbering - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9058,85 +10693,85 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Projekt QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. - + Management Kezelés @@ -9157,19 +10792,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Űrlap + Űrlap - Request - Igénylés + Igénylés - Reload - Újratöltés + Újratöltés @@ -9666,127 +11298,129 @@ Akarod menteni a változásokat? QETApp - + Loading... Initializing the elements collection cache splash screen caption Töltés...Az elemgyűjtemény kiinduló állapotba hozása - + Loading... Sheets editor splash screen caption Töltés...Tervlap szerkesztő - + Loading... Opening files splash screen caption Töltés... fájl megnyitás - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET tervjelek/szimbólumok - + Company title-blocks title of the company's title block templates collection Gyári tervjelek - + User title blocks title of the user's title block templates collection Felhasználói tervlap sablonok - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Terv - + Electric Normal example text - translate length, not meaning Elektromos - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech konfigurálása - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Hiba - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9795,124 +11429,181 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Töltés... - + Loading... Systray icon splash screen caption Töltés... Rendszer tálca ikon - + QElectroTech systray menu title QElectroTech - + &Quit &Kilép - + &Hide &Elrejt - + &Show &Mutat - + &Hide diagram editor &Elrejti a vázlat szerkesztőt - + &Show diagram editors &Megjeleníti a vázlat szerkesztőt - + &Hide element editor &Elrejti az elem szerkesztőt - + &Show element editor &Megjeleníti a elem szerkesztőt - + &Hide title block template editor systray submenu entry &Elrejti a szövegmező sablon szerkesztőt - + &Show title block template editors systray submenu entry &Megjeleníti a szövegmező sablon szerkesztőt - + &New diagram editor &Új vázlat szerkesztő - + &New element editor &Új elem szerkesztő - + Closes QElectroTech QElectroTech bezárása - + Reduces QElectroTech into the systray QElectroTech tálcába helyezése - + Restore QElectroTech QElectroTech visszahelyezése - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Vázlat szerkesztők - + Element editors Elem szerkesztők - + Title block template editors systray menu entry Szövegmező sablon szerkesztő - + Crash report Programleállás jelentés - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. @@ -9922,22 +11613,22 @@ Itt találhatóak az bezárás előtti utolsó naplózott üzenetek – elmenthe - + Diagnostic report Diagnosztikai jelentés - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Ez tartalmazza a munkamenet legutolsó naplóbejegyzéseit. Kérlek, ellenőrizd le a tartalmát, mielőtt a nyilvános hibajelentéshez csatolod. - + Usage: Használat: - + [options] [file]... @@ -9946,7 +11637,7 @@ Itt találhatóak az bezárás előtti utolsó naplózott üzenetek – elmenthe - + QElectroTech, an application to design electric diagrams. Available options: @@ -9963,35 +11654,35 @@ Elérhető lehetőségek: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Meghatározza az elemgyűjtemény könyvtárat - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Meghatározza a szövegmező-sablonok gyűjtemény-könyvtárát - + --config-dir=DIR Define configuration directory --config-dir=DIR Meghatározza a konfigurációs könyvtárat - + --data-dir=DIR Define data directory --adat-könyvtár=DIR Meghatározza az adat könyvtár - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Meghatározza nyelvi fájl könyvtárat @@ -10001,1436 +11692,1530 @@ Elérhető lehetőségek: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + No modification Nincs módosístás - + Click an action to get back in the changes you made to your diagram Status tip Kattints egy műveletre, hogy visszaterjen a változtatásokban egy korábbi állapotra - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Ez a panel felsorolja a különböző végrehajtott változtatásokat a jelenlegi tervlapon. Egy változásra kattintva, a tervlap visszakapja azt az állapotot, ami közvetlenül utána volt alkalmazva. - + Undo dock title Visszavonás - + &Export &Exportálás - + Print Nyomtatás - + &Quit &Kilépés - + Undo Visszavonás - + Redo Újrakészít - + Cu&t Ki&vágás - + &Copy M&ásolás - + &Paste &Beilleszt - + Reset conductors Vezetékek visszaállítása - + Automatic creation conductor (s) Tool tip of auto conductor Önműködően létrehozza a vezetőket - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Használja a vezetők automatikus létrehozását, amikor lehetséges - + Display the grid Rács megjelenítése - + Display or hide the grid of sheet Megjeleníti vagy elrejti a tervlap rácsát - + Sheet properties Tervlap tulajdonsága - + Project properties Projekt tulajdonságok - + Add a sheet Tervlap hozzáadása - - - + + + Delete this sheet Ennek a tervlapnak a törlése - + Clean project Projekt tisztítása - + Add a summary Összesítés hozzáadása - + Launch the terminal block creation plugin Elindítja a sorkapocsterv generáló beépülő modult - + using tabs fülek használata - + using windows ablakok használata - + Select Kiválasztás - + Move tervlap mozgatása keresgéléshez Keresgélési nézet mód - + &Tile &Mozaik - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Tiltva - + &Cascade &Lépcsőzetes - + Next project Következő projekt - + Previous project Előző projekt - + &New &Új - + &Open &Megnyitás - + &Save &Mentés - + Save as Mentés más néven - - + + &Close &Bezár - + Creates a new project status bar tip Új projekt létrehozás - + Opens an existing project status bar tip Létező projekt megnyitása - + Closes the current project status bar tip A jelenlegi projekt bezárása - + Saves the current project and all its sheets status bar tip A jelenlegi projekt és összes tervlap mentése - + Saves the current project with a different file name status bar tip A jelenlegi projekt mentése más néven - + Add a column Oszlop hozzáadása - + Remove a column Oszlop eltávolítása - + Add a column to the sheet status bar tip Egy oszlop hozzáadása a tervlaphoz - + Remove a column from the sheet status bar tip Egy oszlop eltávolítása a tervlapról - + Expands the sheet height status bar tip Tervlap magasság növelése - + Shrinks the sheet height status bar tip Tervlap magasság csökkentése - + Delete Törlés - + Rotate Forgatás - + Choose texts orientation Szöveg irányának megváltoztatása - + Find in the panel Keresés a panelban - + Edit the selected item A kijelölt elem szerkesztése - + Search / Replace Keresés / csere + - Depth toolbar title Rétegelrendezés - + Group Csoport - + Add a nomenclature Osztályozási rendszer hozzáadása - + Group selected texts Kiválasztott szövegek csoportosítása - + Removes selected elements from the sheet status bar tip Kiválasztott elem eltávolítása a tervlapról - + Rotate selected elements and texts status bar tip A kiválasztott elemek és szövegek forgatása - + Rotate selected texts to a specific angle status bar tip A kiválasztott szövegek forgatása egy meghatározott szögben - + Find the selected item in the panel status bar tip A kiválasztott elem keresése a panelen - + Select All Összes kiválasztása - + Select none Kiválasztás megszüntetése - + Invert selection Kiválasztás megfordítása - + Selects all elements on the sheet status bar tip Összes elem kiválasztása a tervlapon - + Deselect all elements on the sheet status bar tip Összes elem kiválasztásának megszüntetése a tervlapon - + Inverts selection of elements status bar tip Elemek kiválasztásának megfordítása - + Zoom In Nagyítás - + Zoom Out Kicsinyítés - + Zoom content Tartalom nagyítása - + Fit in view Legnagyobb nézetben - + Reset zoom Nagyítás alaphelyzetbe állítása - + Expand the sheet status bar tip Tervlap nagyítása - + Shrinks the sheet status bar tip Tervlap kicsinyítése - + Adjusts the zoom to display all the contents of sheet regardless of context Beállítja a nagyítást a teljes tartalom megjelenítéséhez, a tervlaptól függetlenül - + Adjusts the zoom on exactly the part of the sheet status bar tip Beállítja a nagyítást pontosan a tervlap részére - + Restores default zoom level status bar tip Visszaállítja az alapértelmezett nyagyítást - + Add a textfield Szövegmező hozzáadása - + Add a picture Kép hozzáadása - + Add a rectangle Négyzet hozzáadása - + Add an ellipse Elipszis hozzáadása - + Add a polygon Sokszög hozzáadása - + Exports the current sheet to another format status bar tip A jelenlegi tervlapot más formátumba exportálja - + Prints one or more sheet of the current project status bar tip Egy, vagy több tervlapot kinyomtat a jelenlegi projektből - + Closes QElectroTech status bar tip QElectroTech bezárása - + Undoes the previous action status bar tip Az előző művelet visszavonása - + Projects dock title Projektek - + Collections Gyűjtemény - + Restores the undone action status bar tip Visszaállítja a visszavont műveletet - + Puts selected elements into the clipboard status bar tip A kiválasztott elemek vágólapra helyezése - + Copies selected elements status bar tip A kiválasztott elemek másolása - + Pastes elements from the clipboard into the sheet status bar tip A vágólapon lévő elemeket beilleszti a tervlapba - + Add row Add row Sor hozzáadása - + Remove a row Remove row Sor eltávolítása - + Add line Draw line Vonal rajzolása - + Reset the conductors path ignoring the user changes status bar tip Visszaállítja a vezetékek útvonalát, figyelmen kívül hagyva a felhasználó változtatásait - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Tervlap tulajdonságainak szerkesztése (méret, szövegmező információk, vezeték tulajdoságok...) - + Shows the various opened projects in windows status bar tip Ablakban jeleníti meg a különböző megnyitott projekteket - + Shows the various opened projects in tabs status bar tip Füleken jeleníti meg a különböző megnyitott projekteket - + Allows to select elements status bar tip Engedélyezi az elemek kiválasztását - + Allows to view the sheet without modifying it status bar tip Lehetővé teszi a tervlap megtekintését a módosítása nélkül - + Arranges windows in a tile pattern status bar tip Ablakok elrendezése mozaik mintában - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Tervlap szerkesztő - + Export in pdf Exportálás PDF-be - + Export one or more sheets of the current project status bar tip Exportálja a jelenlegi projekt egy vagy több tervlapját - + Automatic disconnection of conductor(s) Tool tip of auto break conductor A vezeték(ek) automatikus szétbontása - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Automatikusan elvágja a vezetéket, amikor egy elemet helyezünk rá - + View the guides Útmutató megjelenítése - + Shows or hides the guides Megjeleníti vagy elrejti a útmutatót - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Megjelenítés - + Element texts - + Conductor texts - + Text fields - + Szövegmező - + Shapes - + Pictures - + Tables - + Cross-references Kereszthivatkozások - + See Display > Show - + Export to CSV Exportálás CSV formátumba - + Terminal block manager (DEV) Sorkapocs rendszerező (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Vezetékek nevének exportálása listába - + Export the wiring diagram Kábelterv exportálása - + Wiring list (database) - + Automatic numbering of terminals Sorkapcsok automatikus számozása - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database A belső projekt adatbázis exportálása - + Arranges windows in a cascade pattern status bar tip Ablakok elrendezése lépcsőzetesen - + Activates the next project status bar tip Következő projekt aktiválása - + Activates the previous project status bar tip Előző projekt aktiválása - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Csoport - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + Ív hozzáadása - + Add a curve - + Add a fillet - + Add a terminal plan Sorkapocsterv hozzáadása - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Szövegmező hozzáadása a jelenlegi tervlaphoz - + Add an image to the current sheet Kép hozzáadása a jelenlegi tervlaphoz - + Adds a PDF page to the current sheet - + Add a line to the current sheet Vonal hozzáadása a jelenlegi tervlaphoz - + Adds a rectangle on the current sheet Négyszög hozzáadása a jelenlegi tervlaphoz - + Add an ellipse to the current sheet Ellipszis hozzáadása a jelenlegi tervlaphoz - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Vonallánc hozzáadása a jelenlegi tervlaphoz - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Sorkapocsterv hozzáadása a jelenlegi tervlaphoz - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element Elemhez ugrás - + Quickly search for and select an element in the sheet status bar tip Elem gyors keresése és kiválasztása a tervlapon - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Igen + + + + No + no + Nem + + + + Cancel + cancel + Visszavonás + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools Eszközök + - Display Megjelenítés + - Diagram Terv + - Add Hozzáad - + Scripts toolbar title - + &File &Fájl - + &Edit S&zerkesztés - + &Project &Projekt - + Displ&ay &Megjelenítés - + Wi&ndows Ab&lakok - + &Latest files &Utolsó fájlok - + &Add - + Selection - + Align - + Rows and columns - + Depth Rétegelrendezés - - + + Scripts - + Display or hide the main toolbar Megjeleníti, vagy elrejti a fő eszköztárat - + Display or hide the Display toolbar Megjeleníti, vagy elrejti a eszköztárat - + Display or hide the Diagram toolbar Megjeleníti, vagy elrejti tervlap eszköztárat - + Show or hide the elements panel Megmutatja, vagy elrejti az elemek panelt - + Display or hide the undo list Megjeleníti, vagy elrejti a visszavonás listát - + Display projects Projektek megjelenítése - - + + Project %1 registered in the directory: %2. A %1 projekt bejegyezve a: %2 könyvtárba. - + Open a file Fájl megnyitása - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech projekt(*.qet);;XML fájlok (*.xml);;minden fájl (*) - - + + Unable to open file message box title Nem lehet a fájlt megnyitni - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Úgy tűnik %1 fájl amelyiket megpróbáltad megnyitni nem létezik, vagy nem létezik többé. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. A megnyitni próbált fájl sérültnek tűnik és nem lehet megnyitni. Kérlek ellenőrízd a fájlhoz szükséges engedélyeket. - + Opening the file read-only message box title Csak olvasható fájl megnyitása - + The project you try to open does not seem writable. It will be opened read-only. A megnyitni próbált projekt írásvédetnek tűnik. Csak olvashatóként lesz megnyitva. - - + + Unable to open project message box title Képtelen megnyitni a projektet - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content A(z) %1 fájl úgy tűnik nem egy QElectroTech projektfáj. Ezért nem nyitható meg. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11438,7 +13223,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11446,24 +13231,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title Projekt betűtípus - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11473,12 +13258,12 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal Nem lehet törölni a sorkapcsot - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted @@ -11488,168 +13273,168 @@ Szüntesd meg az áthidalást és/vagy távolítsd el a szinteket az érintett s - + %n items put back on the grid - + %n items aligned - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) - + Edit the element edit element Elem szerkesztése - + Edit the text field edit text field Szövegmező szerkesztése - + Edit the image edit image Kép szerkesztése - + Edit conductor edit conductor Vezető szerkesztése - + Edit the selected object edit selected item Kijelölt objektum szerkesztése - + An error occurred while opening file %1. message box content Hiba történt a fájl megnyitásakor %1. - + Activates the project « %1 » Projekt aktiválása « %1 » - + Are you sure you want to delete this sheet? Biztos vagy benne, hogy törölni akarod ezt a tervlapot? - + Delete the sheets Tervlap törlése - + Are you sure you want to delete the selected %1 sheets ? Valóban törölni akarod ezt a kiválasztott %1 tervlapot ? - + Delete %1 sheets Tervlap %1 törlése - - - - - - - + + + + + + + Move the sheets Tervlap mozgatása - + Error message box title Hiba - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. - + %n elements for which no definition could be found or which were illegible: their current design has been retained. - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11658,40 +13443,40 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11700,61 +13485,61 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden - - + + Texts %1 @@ -12738,52 +14523,52 @@ kérlek várd meg a befejezését... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projektek %1 - + Untitled project displayed title for a project-less, file-less project Cím nélküli projekt - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [csak olvasható] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [megváltozott] - + Renumber elements - + Renumber elements (%1) - + Modified contact system Módosított érintkező rendszer - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12794,19 +14579,19 @@ A meglévő alárendelt elemek nem lesznek automatikusan hozzárendelve. Manuál Szeretnéd folytatni? - + An error occurred during the template integration. error message Hiba történt a sablon integrációja közben. - + Warning message box title Figyelem - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12815,7 +14600,7 @@ ez későbbi verzió a jelenlegihez képest! Jelenleg használt QElectroTech verzió %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12824,32 +14609,32 @@ Lehetséges, hogy a dokumentum teljes egéssze, vagy egy része nem nyitható me Mit szeretnél tenni? - + Warning message box title Figyelem - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. A megnyitni próbált projekt részlegesen kompatibilis a QElecroTech %1 verziójával. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? A teljes kompatibilitás elérése érdekében nyissa meg ugyanezt a projektet a QElectroTech 0.8-as vagy 0.80-as verziójával, mentse el a projektet, majd nyissa meg újra ezzel a verzióval. Mit szeretnél csinálni? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Projekt megnyitása ...</b><br/>Tervlap létrehozása</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Projekt megnyitása ...</b><br/>Kereszthivatkozások beállítása</p> @@ -12875,166 +14660,156 @@ Mit szeretnél csinálni? QETTitleBlockTemplateEditor - + Save current template? dialog title Mented a jelenlegi sablont? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Szeretnéd menteni a sablont %1? - + new_template template name suggestion when duplicating the default one új_sablon - + Duplicate a title block template input dialog title Szövegmező sablon duplikálása - + In order to duplicate this template, please enter a name for its copy input dialog text A sablon duplikálásához, kérlek írd be a másolat nevét - + &New menu entry &Új - + &Open menu entry &Megnyitás - + Open from a file menu entry Megnyitás egy fájlból - + &Save menu entry M&entés - + Save as menu entry Mentés más néven - + Save to a file menu entry Mentés fájlba - + &Quit menu entry &Kilépés - + Cu&t menu entry Ki&vágás - + &Copy menu entry M&ásolás - + &Paste menu entry &Beillesztés - + Manage logos menu entry Logók szervezése - + Edit extra information menu entry A kiegészítő információ módosítása - + Zoom In menu entry Nagyítás - + Zoom out menu entry Kicsinyítés - + Fit in view menu entry Legnagyobb nézetben - + Reset zoom menu entry Nagyítás alaphelyzetbe állítása - + Add a &row menu entry So&r hozzáadása - + Add a &column menu entry Oszlo&p hozzáadása - + &Merge cells menu entry &Cellák egyesítése - + &Split cells menu entry Cellák &felosztása - - - - - - - - - - @@ -13044,156 +14819,166 @@ Mit szeretnél csinálni? + + + + + + + + + + Title block template editors Szövegmező sablon szerkesztő - + &File menu title &Fájl - + &Edit menu title S&zerkesztés - + Displ&ay menu title &Megjelenítés - + Tools toolbar title Eszközök - + Edit toolbar title Szerkesztés - + Display toolbar title Megjelenítés - + No modification label displayed in the undo list when empty Nincs módosístás - + Undo dock title Visszavonás - + Cell properties dock title Cella tulajdonságok - + [Changed] window title tag [Megváltozott] - + [Read only] window title tag [Csak olvasható] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Szövegmező sablon szerkesztés - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Hiba - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Szövegmező sablon megnyitása - + Open a file dialog title Fájl megnyitása - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech szövegmező sablonok (*%1);;XML fájlok (*.xml);; minden fájl (*) - + Save template as dialog window title Sablon mentése más néven - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Mentés más néven - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectrotech szövegmező sablonok (*%1) - + Edit extra information window title A kiegészítő információ módosítása - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Ezt a mezőt használhatod a sablon szerzőjének megnevezéséhez, az engedélyekhez, vagy egyébb más hasznos információ kereséshez. @@ -13252,7 +15037,7 @@ Mit szeretnél csinálni? egy grafikus elem - + delete %1 undo caption - %1 is a sentence listing the removed content Törlés %1 @@ -13318,7 +15103,7 @@ Mit szeretnél csinálni? - + Title Cím @@ -13328,18 +15113,18 @@ Mit szeretnél csinálni? Dátum - + Select an image ... Kép kiválasztása ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Kép fájlok (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13348,7 +15133,7 @@ Mit szeretnél csinálni? Hiba - + Unable to load the image. Nem lehet a fájlt betölteni. @@ -13480,8 +15265,8 @@ Mit szeretnél csinálni? sorkapocs - + Text Szöveg @@ -13694,7 +15479,7 @@ Mit szeretnél csinálni? Mélység - + Warning: the element has been saved with a more recent version of QElectroTech. Figyelem: a QElectrotech sokkal régebbi verziójával lett elmentve. @@ -13865,7 +15650,7 @@ Mit szeretnél csinálni? Több elem információjának szerkesztése - + Edit the cross reference edite the cross reference Kereszthivatkozás szerkesztése @@ -13947,12 +15732,12 @@ A lefordított mappa név nem olvasható, ezért helyette a mappa neve jelenik m Gyűjtemény - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14018,8 +15803,8 @@ A lefordított mappa név nem olvasható, ezért helyette a mappa neve jelenik m - + Rotate %1 @@ -14201,45 +15986,45 @@ Cserélni akarod? - + - + Type Típus - + - + Address Cím - - - - + + + + Annotation Megjegyzés - - - - + + + + Cross-reference Kereszthivatkozás - - - - + + + + Function Funkció @@ -14574,45 +16359,55 @@ Cserélni akarod? Vezetékek létrehozása - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> A qet_tb_generator beépülő modul telepítésehez<br>Látogass el:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Szükséges hozzá python 3.5 vagy, magasabb verziója.<br><B><U> Első telepítés Windowson</B></U><br>1. Python 3.5 vagy, magasabb verziójának telepítése, ha szükséges<br> Látogass el :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. parancssorba gépelve: pip install qet_tb_generator<br><B><U> Frissítés Windowson</B></U><br>parancssorba gépelve: python -m pip install --upgrade qet_tb_generator<br>>>a felhasználó ezt a script-et a terminálban indíthatja el és ebben a könyvtárban található <br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> (XXXX a felhasználó neve) - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> A qet_tb_generator beépülő modul telepítésehez<br>Látogass el:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Első telepítés macOSX-en</B></U><br> 1.-Szükséges hozzá python 3.11 verziója.<a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Futtasd a Profile.command script-et<br>mert a program lokalizációhoz rögzített útvonalat használ qet-tb-generator beépülő modul <br> Látogass el :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>útmutató</a><br>2. pip3 install qet_tb_generator<br><B><U> Frissítés macOSX-en</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> A qet_tb_generator beépülő modul telepítésehez<br>Látogass el :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Szükséges hozzá a python 3.5 vagy magasabb verzió.<br><br><B><U> Első telepítés Linuxon</B></U><br>1.Ellenőrízd, hogy telepítve van-e: pip3 --version<br>Ha nincs, akkor töltsd le ezzel: sudo apt-get install python3-pip<br>2. Telepítsd a programot ezzel: sudo pip3 install qet_tb_generator<br>3. Futtasd a programot ezzel: qet_tb_generator<br><br><B><U> Frissítés Linuxon</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Hiba a qet_tb_generator beépülő modul indítással - + Add a nomenclature Osztályozási rendszer hozzáadása - + Add a summary Összesítés hozzáadása + + + Add a cable list + + + + + Cable list + + Paste Beilleszt - + + - - + @@ -14653,83 +16448,113 @@ Cserélni akarod? Sorkapocs tömb rendezése %1 - - + + Generic generic terminal element type Általános - + Fuse fuse terminal element type Biztosíték - + Sectionable sectional terminal element type Megosztható - + Diode diode terminal element type Dióda - + Ground ground terminal element type Földelő - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Általános - + Phase phase terminal element function Fázis - + Neutral neutral terminal element function Nulla - - + + Digital input Digitális bemenet - + Digital output Digitális kimenet - + Analogue input Analóg bemenet - + Analogue output Analóg kimenet - + Universal input Univerzális input - + Universal output Univerzális kimenet @@ -14764,7 +16589,7 @@ Cserélni akarod? DXF fájl importálása - + Default layout Alapértelmezett elrendezés @@ -14939,8 +16764,8 @@ Kérlek, töltsd le az alábbi linkről, és csomagod ki a telepítési mappába - - + + Move %1 @@ -15075,88 +16900,88 @@ Kérlek, töltsd le az alábbi linkről, és csomagod ki a telepítési mappába - + insert %1 Hozzáad %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Szöveg színének változtatása - + Rotate a text - + Edit line of a form Alakzat vonalának szerkesztése - + Edit filling a form Alakzat kitöltésének módosítása - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Az elem szövegének szerkesztése - + Automatically number an element Egy elem automatikus számozása - + Renumber elements (%1) - + Search and replace - + Script @@ -15206,7 +17031,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Tervlap @@ -15255,26 +17080,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. A megjelenített információ nagyobb, mint a maximális mennyiség, amit a táblázat meg tud jeleníteni. Kérlek adj hozzá egy új táblázatot, vagy igazítsd a meglévőt megfelelő méretre az összes információ láthatóvá tételéhez. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. A megjelenített információ nagyobb, mint a maximális mennyiség, amit a táblázat meg tud jeleníteni. Kérlek adj hozzá egy új táblázatot, vagy igazítsd a meglévőt megfelelő méretre, az összes információ láthatóvá tételéhez. - + Table limitation Táblázat korlátozása - + Modify the geometry of a table A táblázat méretének a módosítása @@ -15599,88 +17424,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Szerkesztés %1 - + a line a vonal - + rectangle négyszög - + an ellipse elipszis - + an arc - + polyline vonallánc - + a curve - + an shape a forma @@ -15729,6 +17554,14 @@ nothing has been changed. Négyzet változtatása + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15767,6 +17600,16 @@ nothing has been changed. Az elem « %1 » már létezik. Mit kíván tenni? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + RenumberElementsDialog @@ -16322,7 +18165,7 @@ Hozd létre saját szövegedet a következő változók használatával: &Delete - + &Törlés @@ -16773,28 +18616,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Tervlap automatikus számozása - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16822,7 +18675,7 @@ A „;Növekedés”; mező nincs használva. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16860,13 +18713,41 @@ A többi mező nincs használva. A többi mező nincs használva. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Elem automatikus számozása - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16907,17 +18788,17 @@ A többi mező nincs használva. A többi mező nincs használva. - + New numbering… - + Rename numbering… - + Numbering conductors title window Vezetékek számozása @@ -17362,7 +19243,7 @@ A többi mező nincs használva. Action - + Hatás @@ -19823,42 +21704,42 @@ A többi mező nincs használva. Diszpozíció - + Bridging the terminals Sorkapcsok áthidalása - + Unbridge the terminals Áthidalás eltávolítása - + Properties Tulajdonságok - + Name: Neve: - + Comment : Megjegyzés : - + Description Részletezés - + Plant: Beépítés üzem/gyár: - + Location : Helye : @@ -19868,13 +21749,13 @@ A többi mező nincs használva. Típus : - + Ungroup the terminals Sorkapocs tömb felbontása - + Generic Általános @@ -19914,22 +21795,67 @@ A többi mező nincs használva. Földelés - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Mozgatás : - + Phase Fázis - + Neutral Nulla - + Automatic position Automatikus pozíció @@ -19939,12 +21865,12 @@ A többi mező nincs használva. sziget : - + Group the terminals Sorkapocsok csoportba foglalása - + Function : Funkció : @@ -19959,17 +21885,17 @@ A többi mező nincs használva. Vele - + LED : LED : - + Independent terminals Független Sorkapocs - + Modify terminal strip properties Sorkapocsléc tulajdonságainak módosítása @@ -20038,12 +21964,12 @@ A többi mező nincs használva. Sorkapocs 0. szint : - + Headser : Az élen : - + Bridge point Áthidalási pont @@ -20108,12 +22034,52 @@ A többi mező nincs használva. Kereszthivatkozás - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Magasság - + Preview: Előnézet: @@ -20176,52 +22142,57 @@ A többi mező nincs használva. TerminalStripModel - + Position Pozíció - + Stage Sziget - + Label Címke - + Cross-reference Kereszthivatkozás - + Cable Kábel - + Color / wire number of the cable Szín / kábelér száma - + Type Típus - + Function Funkció - + led led - + + Shield + + + + Number wire vezeték szám @@ -21531,32 +23502,42 @@ A következő változók használhatók: Kereszthivatkozások megtekintése - + Label cross reference Kereszthivatkozás címkéje - + Master Mester - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Alárendelt - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21573,116 +23554,142 @@ A következő változók használhatók: %LM: Elhelyezkedés - + Option display cross Kereszthivatkozás megjelenítésének lehetősége - + Show the power contacts in the cross A főáramköri érintkezők mutatása a kereszthivatkozásban - + Prefix of power contacts : A főáramköri érintkezők előtagja : - + Prefix delayed contacts : A késleltetett érintkezők előtagja : - + Prefix changeover contacts : váltó vagy morze érintkező A váltóérintkezők előtagja : - + Coil Tekercs - + Organ of protection Védelmi szerv - + Switch / button Kapcsoló / nyomógomb - + Programmable Logic Controller (PLC) Programozható értelmes vezérlő (PLC) - + + Cable + Kábel + + + Footer A lap alján - + Under the label of the element Az elem címkéje alatt - + Top Fent - + Bottom Lent - + Left Bal - + Right Jobb - + Text alignment Szöveg igazítása - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database A belső projekt adatbázis exportálása - + untitled cím nélkül diff --git a/lang/qet_it.ts b/lang/qet_it.ts index 5288e1bbb..39a5cbbdd 100644 --- a/lang/qet_it.ts +++ b/lang/qet_it.ts @@ -1158,6 +1158,23 @@ Nota: queste opzioni non consentono attivare o disattivare la numerazione automa + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Cancella + + BorderPropertiesWidget @@ -1192,7 +1209,7 @@ Nota: queste opzioni non consentono attivare o disattivare la numerazione automa Format: - + Formato: @@ -1213,16 +1230,1067 @@ Nota: queste opzioni non consentono attivare o disattivare la numerazione automa Custom - + Personalizzazioni Landscape - + Paesaggio Portrait + Ritratto + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Installazione (=) + + + + Location (+) + Posizione (+) + + + + Type + Tipo + + + + Cores + + + + + Plant + Installazione + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + includere le intestazioni + + + + Preview + Anteprima + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + Errore + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Annulla + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Annulla + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Annulla + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Tipo + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Installazione (=) + + + + Location (+) + Posizione (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + Normale + + + + Bold + Testo in grassetto + + + + Italic + Testo in italico + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Annulla + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1269,13 +2337,13 @@ Nota: queste opzioni non consentono attivare o disattivare la numerazione automa Conductor - + Edit conductor properties undo caption Modifica le proprietà di un conduttore - + Edit the properties of several conductors undo caption Modifica le proprietà di più conduttori @@ -1331,7 +2399,7 @@ Nota: queste opzioni non consentono attivare o disattivare la numerazione automa Conductor color - + Colore del conduttore @@ -1799,7 +2867,7 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Unknown - + Sconosciuto @@ -1917,7 +2985,7 @@ Continue? Diagram - + Change the depth Modificare la profondità @@ -2054,6 +3122,23 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2065,7 +3150,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2073,7 +3158,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2196,224 +3281,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image una immagine - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Selezionare un'immagine... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Errore - + Unable to load the image. Impossibile caricare l'immagine. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2444,107 +3559,140 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Colore del conduttore DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Questa è l'area in cui si progettano gli schemi con l'aggiunta di elementi, unendo i loro terminali tramite i conduttori. È anche possibile aggiungere dei testi indipendenti. - + Paste Here context menu action Incollare qui - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Riferimento di pagina - + Edit conductor properties undo caption Modifica le proprietà di un conduttore - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals Collegare i morsetti selezionati - + Untitled what to display for untitled diagrams Senza titolo - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Errore - + The file could not be written. - + Multiple paste Multi-copia - + Choose the new color for this conductor Scegliere il nuovo colore di questo conduttore @@ -3044,7 +4192,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3144,7 +4292,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3639,8 +4787,8 @@ Continue? - - + + Type Tipo @@ -3676,7 +4824,7 @@ Continue? - + Power switch Potenza @@ -3687,7 +4835,7 @@ Continue? - + Generic Generico @@ -3699,171 +4847,196 @@ Continue? Sectionable - + Sezionabile Diode Diodo + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fasi - + Neutral Neutro - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Commento - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Nessuno - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -3874,7 +5047,7 @@ Continue? - + Switch normally closed Normalmente chiuso @@ -3885,13 +5058,13 @@ Continue? - + Switch normally open Normalmente aperto - + Switch-on and off delayed Ritardo all'eccitazione e diseccitazione @@ -3912,14 +5085,14 @@ Continue? - + Switch-on delayed Ritardo all'eccitazione - + Simple Semplice @@ -3972,8 +5145,8 @@ Continue? - - + + Function Funzione @@ -4019,7 +5192,7 @@ Continue? - + Switch-off delayed Ritardo alla diseccitazione @@ -4040,7 +5213,7 @@ Continue? - + switch Contatto in scambio @@ -5029,7 +6202,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Esporta @@ -5411,97 +6584,127 @@ che si crea. Si possono anche inserire caratteri alfanumerici. + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : Funzione : - + LED : - + Apply displacement - - + + Generic Generico - + Fuse Fusibile - + Sectionable Sezionabile - + Diod Diodo - + Ground Terra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fasi - + Neutral Neutro - + Without Senza - + With Con - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5537,8 +6740,8 @@ che si crea. Si possono anche inserire caratteri alfanumerici. GeneralConfigurationPage - - + + ° ° @@ -5548,170 +6751,206 @@ che si crea. Si possono anche inserire caratteri alfanumerici. Modulo - + Greek Greco - + Turkish Turco - + Mongolian - + Ukrainian - + Chinese - + Company collection path - + User Collection Path Percorso della raccolta utente - + Arabic Arabo - + + Bold italic + + + + + Bold + Testo in grassetto + + + + Italic + Testo in italico + + + + Normal + Normale + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Disattivato - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Generale - + Korean - + Russian Russo - + Swedish - + + Cable text font + + + + + Core colors font + + + + Company title-blocks - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -5720,50 +6959,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -5773,7 +7030,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje - + Independent texts Testi indipendenti @@ -5783,22 +7040,22 @@ Any setting other than “No rounding” may cause rendering errors in the proje Elenco della collezione comune - + Here you can define the default appearance of the different texts of QElectroTech È possibile definire la visulizzazione predefinita dei differenti testi di QElectroTech - + Italian Italiano - + System Sistema - + Brazilian Brasiliano @@ -5952,8 +7209,11 @@ Any setting other than “No rounding” may cause rendering errors in the proje + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5964,89 +7224,157 @@ Any setting other than “No rounding” may cause rendering errors in the proje + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Lingue - + Elements texts Testi degli elementi - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. La Griglia deve essere attiva per vedere le modifiche. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Spostamento alla tastiera: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Editor schemi (tasto: sinistra/destra) X - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List @@ -6087,38 +7415,38 @@ Any setting other than “No rounding” may cause rendering errors in the proje - + Keyboard movement with the ALT key: 1 - 9 Spostamento alla tastiera con il tasto ALT: 1 - 30 - + Grid: 1 - 30 Griglia: 1 - 30 - + Belgium-Flemish Belga-Fiammingo - + German Tedesco - + Slovenian Sloveno - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Editor schemi (tasto: alto/basso) Y - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Ogni elemento include informazioni sui suoi autori, licenze o qualsiasi altra informazione che si ritienga utile in un campo libero. Qui è possibile specificare il valore predefinito di questo campo per gli oggetti che verranno creati: @@ -6134,39 +7462,39 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Usare i colori di sistema - + Danish Danese - + Croatian Croato - + Norwegian Norvégien - + texts Testi - - - + + + Font: Carattere : - + Polish Polacco - + Hungarian Ungherese @@ -6186,7 +7514,7 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Predefinito - + Romanian Rumeno @@ -6201,7 +7529,7 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Progetti - + Applied to the next launch of QElectroTech Applicato al prossimo avvio di QElectroTech @@ -6211,33 +7539,33 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Disattivato - + English Inglese - + Japanese Japanese - + DiagramEditor (key: left / right) xGrid Editor schemi (tasto: sinistra/destra) X - - + + Rotation : Rotazione : - + French Francese - + Dutch Paesi bassi @@ -6248,12 +7576,12 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Numerare le colonne del cartiglio a partire da 0 (altrimenti inizia da 1) - + Catalan Catalano - + Portuguese Portoghese @@ -6270,31 +7598,32 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget + Browse... Sfoglia... - + Czech Ceco - + Spanish Spagnolo - + Elements management Gestione degli elementi - + Grid + Keyboard Griglia + Tastiera - + Path of the Common Collection Percorso della raccolta comune @@ -6314,7 +7643,7 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Utilizzare le cartelle (applicato al prossivo avvio di QElectroTech) - + DiagramEditor (key: up / down) yGrid Editor schemi (tasto: alto/basso) Y @@ -6329,17 +7658,17 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Utilizzare il numero di pagina al posto della posizione nel progetto - + Highlight freshly integrated elements in the panel Evidenzia nel pannello gli elementi appena integrati - + User Title blocks Path Percorso dei cartigli utente - + Length : Lunghezza: @@ -6354,21 +7683,360 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Elenco dei cartigli utente - + DiagramEditor xGrid Editor schemi X - + DiagramEditor yGrid Editor schemi Y - + Other texts Altri testi + + GenericDevice + + + Left + Sinistra + + + + Right + + + + + Top + Alto + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Informazioni + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Nome + + + + Function + Funzione + + + + Type + Tipo + + + + Add terminal + + + + + Add gap + + + + + Delete + Cancella + + + + Up + In alto + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Generico + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6496,56 +8164,45 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget GraphicsTablePropertiesEditor - X : - X : + X : - Y : - Y : + Y : - Table properties - Formulare + Formulare - None Nessuno - - Margin - Margine + Margine - Header - In testa + In testa - Alignment: - Allineamento : + Allineamento : - Previous table : - Tabella precedente : + Tabella precedente : - Geometry and lines - Geometrie e linee + Geometrie e linee - Previous table - Tabella precedente + Tabella precedente @@ -6558,32 +8215,24 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Cambiare il carattere di una tabella - Next table - Tabella seguente + Tabella seguente - - Right - Destra + Destra - - Left - Sinistra + Sinistra - - Font - Carattere + Carattere - All - Tutti + Tutti @@ -6619,10 +8268,8 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Modifica i margini di un'intestazione della tabella - - Center - Centro + Centro @@ -6630,39 +8277,32 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Modifica il numero di righe visualizzate da una tabella - Content - Contenuto + Contenuto - Table - Tabella + Tabella - Fit table to sheet - Sistemare a tabella dello schema + Sistemare a tabella dello schema - Apply geometry to all tables linked to this one - Applica la geometria a tutte le tabelle collegate a questa + Applica la geometria a tutte le tabelle collegate a questa - Alignment : - Allineamento : + Allineamento : - Display - Visualizzazione + Visualizzazione - Lines to display : - Linee da visualizzare : + Linee da visualizzare : @@ -6670,14 +8310,12 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Modificare i margini della tabella - Table name - Nome della tabella + Nome della tabella - TextLabel - TextLabel + TextLabel @@ -6742,6 +8380,29 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6801,7 +8462,7 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Label - + Etichetta @@ -6957,51 +8618,28 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget IndiTextPropertiesWidget - - - px - px + px - ° - ° + ° - X : - X : + X : - Y : - Y : + Y : - Form - Modulo + Modulo - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - Text - Testo + Testo @@ -7035,7 +8673,6 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Ruotare un campo di testo - @@ -7053,24 +8690,20 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Modificare la dimensione di più campi di testo - Click here to cancel html formatting - Fare clic qui per annullare la formattazione html + Fare clic qui per annullare la formattazione html - Size : - Dimensione: + Dimensione: - Angle: - Angolo: + Angolo: - Advanced Editor - Editor avanzato + Editor avanzato @@ -7078,10 +8711,9 @@ Qui è possibile specificare il valore predefinito di questo campo per gli ogget Modifica le proprietà di un testo - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Il contenuto, la dimensione e il carattere del testo non possono essere modificati perché formattati in html. + Il contenuto, la dimensione e il carattere del testo non possono essere modificati perché formattati in html. Si prega di utilizzare l'editor avanzato per questo. @@ -7473,7 +9105,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Stampa @@ -7491,7 +9123,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + Annulla (&C) @@ -7860,6 +9492,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7963,63 +9603,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Pagina - + Sheet references Riferimenti di pagina - + Conductor Conduttore - + Cross-references Riferimenti incrociati - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Conduttori - + Elements Elementi - + Sheets Pagine - + + Cables + + + + Auto Numbering Numerazione automatica - + New sheet configuration page title Nuova pagina - + New project configuration page title Nuovo progetto @@ -8149,134 +9794,134 @@ Do you still want to link this slave contact? - - - - + + + + Sheet Pagina - - - - - + + + + + Text Testo - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - + + + + number format 001 - Sheet 3 Cifre (001) - Pagina - - - + + + Element Line Riga dell'elemento - - - - + + + + Sheet no. N° Pagina - - - - + + + + number format 1 - Sheet 1 Cifra (1) - Pagina - - - - + + + + Location Locmach - - - - + + + + number format 01 - Sheet 2 Cifre (01) - Pagina - - - + + + Element Column Colonna dell'elemento - - - + + + Element Prefix Prefisso dell'elemento - - - - + + + + Plant Installazione - - - - + + + + number format 01 2 Cifre (01) - - - - - + + + + + number format 001 3 Cifre (001) - - - - - + + + + + number format 1 1 Cifra (1) @@ -8363,7 +10008,7 @@ Do you still want to link this slave contact? Change a rectangle - + Modifica un rettangolo @@ -8377,12 +10022,12 @@ Do you still want to link this slave contact? PartText - + Move a text Sposta un testo - + Edit the text field Modifica un campo di testo @@ -8390,12 +10035,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8798,7 +10443,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Stampa @@ -8807,84 +10452,89 @@ Its copy was kept as: ProjectAutoNumConfigPage - - + + Sheets Pagine - + Management Gestione - + No. - + Name Nome - + Sheet Pagina - + Element Elemento - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - + + Cables + + + + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8892,7 +10542,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8900,49 +10550,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8950,21 +10600,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8973,85 +10623,85 @@ Unfreeze them first (see the list), or just rename the numbering. - + Import numbering from a project - + Project QElectroTech (*.qet) Progetto QElectrotech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9059,7 +10709,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9067,13 +10717,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Eliminare la numerazione - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9082,12 +10732,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9095,12 +10745,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9108,7 +10758,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9117,8 +10767,8 @@ Give them another numbering first. - - + + Conductors Conduttori @@ -9128,13 +10778,13 @@ Give them another numbering first. Numerazione automatica - + Sheet Auto Numbering Numerazione automatica Pagina - - + + Elements Elementi @@ -9155,19 +10805,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Modulo + Modulo - Reload - Ricaricare + Ricaricare - Request - Ricgiesta + Ricgiesta @@ -9664,24 +11311,24 @@ Do you want to save changes? QETApp - + &New element editor &Nuovo modificatore d'elemento - + --config-dir=DIR Define configuration directory --config-dir=DIR Definisce la directory di configurazione - + &Hide Nascondi (&M) - + QElectroTech, an application to design electric diagrams. Available options: @@ -9698,175 +11345,229 @@ Opzioni disponibili: - + Restore QElectroTech Ripristina QElectroTech - + &Hide element editor Nascondi i &modificatori d'elemento - + QElectroTech systray icon tooltip QElectroTech - + Closes QElectroTech Chiudi QElectroTech - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Definisce la directory dei file della lingua - + Element editors Modificatori d'elemento - + &Show diagram editors Most&ra i modificatori di schema - + Diagram editors Modificatori di schema - + Loading... Initializing the elements collection cache splash screen caption Caricamento... Inizializzazione cache collezione elementi - + Loading... Sheets editor splash screen caption Caricamento... Editor di schemi - + Loading... Opening files splash screen caption Caricamento... Apertura files - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Cartiglio QET - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Cartigli utente - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schema - + Electric Normal example text - translate length, not meaning Elettrico - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configurazione QElectroTech - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Save settings as... dialog title - - + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Errore - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9875,112 +11576,117 @@ Do you want to continue? - + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Caricamento... - + Loading... Systray icon splash screen caption Caricamento... icona Systray - + &Quit Esci (&Q) - + &Hide title block template editor systray submenu entry Nascondi i &modificatori di cartiglio - + &Show title block template editors systray submenu entry Most&ra i modificatori di cartiglio - + Title block template editors systray menu entry Modificatori di cartiglio - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Definisce la directory della collezione degli elementi - + Usage: Uso: - + &Show Visualizza (&R) - + Reduces QElectroTech into the systray Riduci QElectroTech nella systray - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definisce la directory della collezione dei modelli di cartiglio - + &Show element editor Most&ra i modificatori d'elemento - + &Hide diagram editor Nascondi i &modificatori di schema - + QElectroTech systray menu title QElectroTech - + &New diagram editor &Nuovo modificatore di schema - + [options] [file]... @@ -9992,1308 +11698,1402 @@ Here are the last messages logged before it closed — you can save them to incl QETDiagramEditor - + No modification Nessuna modifica - + Add an ellipse to the current sheet Aggiunge un'ellisse sulla pagina corrente - + &Save Salva (&E) - + Select All Seleziona tutto - + using windows Usando le finestre - + Display or hide the undo list Mostra o nascondi lacronologia delle modifiche - + Fit in view Adatta alla pagina - + Sheet properties Proprietà della pagina - + Add line Draw line Aggiungere una riga - + Reset conductors Resetta i conduttori - + Remove a column Elimina una colonna - + Adjusts the zoom to display all the contents of sheet regardless of context Regola lo zoom per visualizzare l'intero contenuto della pagina - + Adds a polyline to the current sheet Aggiunge un poligono sulla pagina corrente - + Next project Progetto seguente - + Print Stampa - + Group Gruppo - + Add a textfield Aggiungi un campo di testo + - Tools Strumenti - + &New &Nuovo - + Zoom content Zoom sul contenuto - + Activates the project « %1 » Attiva il progetto « %1 » - + &Paste Inc&olla - + Select none Deseleziona tutto - + Add a column Aggiungi una colonna - + Export the list of names of wires Esportare la lista dei conduttori - + Display or hide the Diagram toolbar Mostra o nascondi gli strumenti dello schema - + Launch the terminal block creation plugin Lancia il plugin di creazione delle morsettiere - + Rotate Ruota - + Display or hide the grid of sheet Visualizzare o nasacondere la griglia delle pagina - + Select Modalità selezione - - + + Unable to open file message box title Impossibile aprire il file - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Sembra che il file %1 che si è cercato di aprire non esista più. - + Delete Cancella - + Save as Salva come - + Add an image to the current sheet Aggiunge un'immagine sulla pagina corrente - + Add a nomenclature Aggiungere una nomenclatura - + QElectroTech status bar message QElectroTech + - Add Inserisci - + Undo Annulla - + Add an ellipse Aggiungi una ellisse - + Redo Ripeti - + &Quit Esci (&Q) - + Opening the file read-only message box title Apertura del progetto in sola lettura - + The project you try to open does not seem writable. It will be opened read-only. Il progetto che si cerca di aprire non è accessibile in scrittura. Verrà aperto in modalità sola lettura. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Il file che si cerca di aprire non è accessibile in lettura e non può essere aperto. Controllare i permessi sui file. - + Zoom Out Riduci - + Export the internal project database Espora il database del progetto intero - + Adds a rectangle on the current sheet Aggiunge un rettangolo sulla pagina corrente - + &Cascade &Cascata + - Diagram Barra dello schema - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Progetto QElectroTech (*.qet);;File XML (*.xml);;Tutti i file (*) - + &Tile &Mosaico - + Cu&t Taglia (&U) - + Reset zoom Resetta lo zoom - + Group selected texts Raggruppare i testi selezionati - + &Copy Cop&ia - + Add a summary Aggiungi un indice - - + + &Close Chiudi (&F) - + Move Modalità visualizzazione - + using tabs Usando le linguette - + Wi&ndows Fi&nestre - - + + Project %1 registered in the directory: %2. Progetto %1 registrato nella cartella: %2. - + &Open Apri (&O) - + Add a line to the current sheet Aggiunge una linea sulla pagina corrente - + &Project &Progetto - + Find in the panel Visualizzare nello schema - + Edit the selected item Modifica l'oggetto selezionato - + Collections Collezioni - + Invert selection Inverti la selezione - + Add a rectangle Aggiungi un rettangolo - + Display the grid Mostra la griglia - - - + + + QElectroTech window title QElectroTech - + Projects dock title Progetti - + Click an action to get back in the changes you made to your diagram Status tip Fare clic su un'azione per annullare la modifica dello schema - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Questo pannello elenca le diverse azioni eseguite sulla pagina corrente. Selezionare un'azione per tornare allo stato dello schema appena dopo la sua l'applicazione. - + Undo dock title Cancellazioni - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Modificatori di schema - + Exports the current sheet to another format status bar tip Esporta la pagina corrente in un altro formato - + Prints one or more sheet of the current project status bar tip Stampa una o più pagine del progetto corrente - + Export in pdf Esporta in pdf - + Export one or more sheets of the current project status bar tip Esporta uno o tutti gli schemi del progetto corrente - + Closes QElectroTech status bar tip Chiudi QElectroTech - + Undoes the previous action status bar tip Annulla l'azione precedente - + Restores the undone action status bar tip Ripristina l'azione annullata - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip Trasferisci gli elementi selezionati negli appunti - + Copies selected elements status bar tip Copia gli elementi selezionati negli appunti - + Pastes elements from the clipboard into the sheet status bar tip Posiziona sulla pagina gli elementi presenti negli appunti - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset the conductors path ignoring the user changes status bar tip Ricalcola il percorso dei conduttori ignorando le modifiche - + Automatic creation conductor (s) Tool tip of auto conductor Creazione automatica dei conduttori - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Utilizzare la creazione automatica dei conduttori, quando possibile - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Visualizza - + Element texts - + Conductor texts - + Text fields - + Campi di testo - + Shapes - + Pictures - + Tables - + Cross-references Riferimenti incrociati - + See Display > Show - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Modifica le proprietà della pagina (dimensioni, informazioni del cartiglio, proprietà dei conduttori, ecc.) - + Add a sheet Aggiungi una pagina - + Terminal block manager (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip Mostra i vari progetti aperti con le linguette - + Shows the various opened projects in windows status bar tip Mostra i vari progetti aperti nelle loro finestre - + Arranges windows in a tile pattern status bar tip Disponi le finestre a mosaico - + Arranges windows in a cascade pattern status bar tip Disponi le finestre a cascata - + Allows to select elements status bar tip Permesso di selezionare gli elementi - + Allows to view the sheet without modifying it status bar tip Permette di visualizzare la pagina senza poterla modificare - + Activates the next project status bar tip Attiva il progetto seguente - + Previous project Progetto precedente - + Activates the previous project status bar tip Attiva il progetto precedente - + Creates a new project status bar tip Crea un nuovo progetto - + Opens an existing project status bar tip Apre un progetto esistente - + Closes the current project status bar tip Chiude il progetto corrente - + Saves the current project and all its sheets status bar tip Salva il progetto corrente e tutte le sue pagine - + Saves the current project with a different file name status bar tip Salva il progetto corrente con un altro nome di file - + Add row Add row Aggiunge una riga - + Remove a row Remove row Elimina una riga - + Add a column to the sheet status bar tip Aggiunge una colonna alla pagina - + Remove a column from the sheet status bar tip Elimina una colonna alla pagina - + Expands the sheet height status bar tip Ingrandisce la pagina in altezza - + Shrinks the sheet height status bar tip Restringe la pagina in altezza - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Gruppo - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Rimuove gli elementi selezionati dalla pagina - + Rotate selected elements and texts status bar tip Ruota gli elementi ed i testi selezionati - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip Ruota il testo selezionato di un angolo preciso - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Visualizza l'elemento selezionato nello schema - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Seleziona tutti gli elementi della pagina - + Deselect all elements on the sheet status bar tip Deseleziona tutti gli elementi della pagina - + Inverts selection of elements status bar tip Deseleziona gli elementi selezionati e seleziona i non selezionati - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Expand the sheet status bar tip Ingrandisce la pagina - + Shrinks the sheet status bar tip Rimpicciolisce la pagina - + Adjusts the zoom on exactly the part of the sheet status bar tip Adatta lo zoom per visualizzare gli elementi - + Restores default zoom level status bar tip Ripristina il livello di zoom predefinito - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + Aggiungi un arco di cerchio - + Add a curve - + Add a fillet - + Add a terminal plan Aggiunge un piano di terminali - + + Add a generic device… + + + + + Draw a cable + + + + Adds a PDF page to the current sheet - + Adds an arc on the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Annulla + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Depth toolbar title Profondità - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth Profondità - - + + Scripts - + Open a file Apri un file - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11302,7 +13102,7 @@ Here are the last messages logged before it closed — you can save them to incl - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11311,24 +13111,24 @@ Here are the last messages logged before it closed — you can save them to incl - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11339,18 +13139,18 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + %n items put back on the grid @@ -11358,7 +13158,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11366,22 +13166,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11389,95 +13189,95 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Modifica l'elemento - + Edit the text field edit text field Modifica il campo di testo - + Edit the image edit image Modifica l'immagine - + Edit conductor edit conductor Modificare il conduttore - + Edit the selected object edit selected item Modifica l'oggetto selezionato - + An error occurred while opening file %1. message box content Si è verificato un errore all'apertura del file %1. - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Errore - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11485,7 +13285,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11493,7 +13293,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11501,18 +13301,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11521,28 +13321,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11550,12 +13350,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11565,53 +13365,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11619,140 +13419,140 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Project properties Proprietà del progetto + - Display Barra di visualizzazione - + &File &File - - - + + + Delete this sheet Elimina una pagina - + Display or hide the Display toolbar Mostra o nascondi gli strumenti di visualizzazione - + Choose texts orientation Orientare i testi - + Export to CSV Esporta nel formato CSV - - + + Unable to open project message box title Impossibile aprire il progetto - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Il file %1 non sembra essere un progetto di QElectroTech. Perciò non può essere aperto. - + Add a polygon Aggiungi un poligono - + Add a picture Aggiungi una immagine - + Clean project Pulisci il progetto - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Disattivato - + Search / Replace Trova/sostituisci - + &Latest files Documenti &recenti - + Display or hide the main toolbar Mostra o nascondi la barra degli strumenti - + Display projects Visualizza il progetto - + Show or hide the elements panel Mostra o no il pannello Elementi - + Zoom In Ingrandisci - + &Export Esporta (&X) - + Displ&ay Visualizza (&g) - + &Edit &Modifica - + Adds a text field to the current sheet Aggiunge un campo di testo sulla pagina corrente @@ -12154,7 +13954,7 @@ Hold Ctrl while moving to place freely. Element editors - + Modificatori d'elemento @@ -12738,52 +14538,52 @@ le condizioni richieste non sono validi QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Progetto « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Progetto %1 - + Untitled project displayed title for a project-less, file-less project Progetto senza titolo - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [sola lettura] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modificato] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12791,56 +14591,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message Si è verificato un errore durante l'integrazione del modello. - + Warning message box title Avviso - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Apertura progetto in corso...</b><br/>Impostazione dei riferimenti incrociati <</p> - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Apertura progetto in corso...</b><br/>Creazione dei fogli :</p> @@ -12866,166 +14666,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Registrare il modello in corso? - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one nuovo_modello - + Duplicate a title block template input dialog title Duplicare un modello di cartiglio - + In order to duplicate this template, please enter a name for its copy input dialog text Per duplicare questo modello, inserire il nome della copia - + &New menu entry &Nuovo - + &Open menu entry - + Open from a file menu entry Aperto da un file - + &Save menu entry - + Save as menu entry Salva come - + Save to a file menu entry Salvare in un file - + &Quit menu entry Esci (&Q) - + Cu&t menu entry - + &Copy menu entry Cop&ia - + &Paste menu entry Inc&olla - + Manage logos menu entry Generare i loghi - + Edit extra information menu entry Modificare le informazioni complementari - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry Resetta lo zoom - + Add a &row menu entry Aggiungere una riga (&l) - + Add a &column menu entry Aggiungere una &colonna - + &Merge cells menu entry (&F)Unisci celle - + &Split cells menu entry &Separa celle - - - - - - - - - - @@ -13035,155 +14825,165 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Modificatori di cartiglio - + &File menu title &File - + &Edit menu title - + Displ&ay menu title Visualizza (&g) - + Tools toolbar title Strumenti - + Edit toolbar title Modifica - + Display toolbar title - + No modification label displayed in the undo list when empty Nessuna modifica - + Undo dock title Cancellazioni - + Cell properties dock title Proprietà della cella - + [Changed] window title tag [Modificato] - + [Read only] window title tag [Solo lettura] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectrotech - Editor di modello di cartiglio - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Errore - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Apri un modello - + Open a file dialog title Apri un file - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Modelli di cartiglio QElectroTech (*%1);;File XML (*.xml);;Tutti i file (*) - + Save template as dialog window title Salva il modello come - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Modello di cartiglio QElectroTech (*%1) - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Utilizzare questo campo libero per citare gli autori del cartiglio, la licenza o tutte le altre informazioni utili. - + Save as dialog title Salva come - + Edit extra information window title Modificare le informazioni complementari @@ -13235,14 +15035,14 @@ What do you wish to do ? Terminale - + Text Testo - + Title Titolo @@ -13267,17 +15067,17 @@ What do you wish to do ? Non trovo il file di testo che contiene la licenza GNU/GPL - comunque sia la conosci a menadito, o no? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Per installare il plugin qet_tb_generator <br> Visita: <br> <a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generator </a> <br> Richiede python 3.5 o successivo. <br> <B> <U> Prima installazione su Windows </B> </U> <br> 1. Installa, se richiesto, python 3.5 o successivo <br> Visita: <br> <a href='https://www.python.org/downloads/'> python.org </a> <br> 2. pip install qet_tb_generator <br> <B> <U> Aggiorna su Windows </B> </U> <br> python -m pip install --upgrade qet_tb_generator <br> >> l'utente può lanciare in un terminale questo script in questa cartella<br> C: \utenti\XXXX\AppData \Local\Programmi\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> @@ -13320,8 +15120,8 @@ What do you wish to do ? - + Rotate %1 @@ -13442,7 +15242,7 @@ the translated name of this folder could not be read, so its folder name is disp Non posso aprire il file di testo che contiene la licenza GNU/GPL - comunque sia la conosci a menadito, o no? - + Select an image ... Selezionare un'immagine... @@ -13467,7 +15267,7 @@ the translated name of this folder could not be read, so its folder name is disp Campo di testo dinamico - + Unable to load the image. Impossibile caricare l'immagine. @@ -13503,7 +15303,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13553,7 +15353,7 @@ the translated name of this folder could not be read, so its folder name is disp Configurazione dei testi - + Warning: the element has been saved with a more recent version of QElectroTech. Attenzione: l'elemento è stato salvato con una versione più recente di QElectroTech. @@ -13618,10 +15418,20 @@ the translated name of this folder could not be read, so its folder name is disp un conduttore - + Add a nomenclature Aggiungi una nomenclatura + + + Add a cable list + + + + + Cable list + + Number of the previous sheet @@ -13693,7 +15503,7 @@ La si vuole sostituire ? Salva il file con data dd-MM-yyyy - + Add a summary Aggiungi un sommario @@ -13814,7 +15624,7 @@ La si vuole sostituire ? - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Immagini (*.png *.jpg *.jpeg *.bmp *.svg) @@ -13929,7 +15739,7 @@ La si vuole sostituire ? Profondità - + Error launching qet_tb_generator plugin Errore durante l'uso del plugin qet_tb_generator @@ -13985,45 +15795,45 @@ La si vuole sostituire ? - + - + Type Tipo - + - + Address - - - - + + + + Annotation Commento - - - - + + + + Cross-reference - - - - + + + + Function Funzione @@ -14363,10 +16173,10 @@ La si vuole sostituire ? Inserire il nome della configurazione da creare - + + - - + @@ -14443,12 +16253,12 @@ La si vuole sostituire ? testo - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14613,13 +16423,13 @@ La si vuole sostituire ? Modifica il cartiglio - + delete %1 undo caption - %1 is a sentence listing the removed content cancella %1 - + Edit the cross reference edite the cross reference Modificare i riferimenti incrociati @@ -14635,83 +16445,113 @@ La si vuole sostituire ? - - + + Generic generic terminal element type Generico - + Fuse fuse terminal element type Fusibile - + Sectionable sectional terminal element type - + Sezionabile - + Diode diode terminal element type Diodo - + Ground ground terminal element type Terra - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Generico - + Phase phase terminal element function Fasi - + Neutral neutral terminal element function Neutro - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14726,7 +16566,7 @@ La si vuole sostituire ? - + Default layout @@ -14939,8 +16779,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15085,88 +16925,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 Inserire %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Modifica il colore di un testo - + Rotate a text - + Edit line of a form Cambia il tratto di una forma - + Edit filling a form Modifica il riempimento di una forma - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Modificare un testo dell'elemento - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15218,7 +17058,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Pagina @@ -15267,26 +17107,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + Modify the geometry of a table Modificare la geometria di una tabella - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Le informazioni d avisualizzare sono maggiori della quantità massima visibile dalle tabelle. Aggiungi una nuova tabella o regola le tabelle esistenti per visualizzate tutte le informazioni. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Le informazioni d avisualizzare sono maggiori della quantità massima visibile dalla tabella. Aggiungi una nuova tabella o regola la tabella esistente per visualizzate tutte le informazioni. - + Table limitation Limite della tabella @@ -15350,27 +17190,27 @@ nothing has been changed. Eliminare un punto ad un poligono - + a line una linea - + a curve - + an shape una forma - + an ellipse un'ellisse - + Edit %1 Modifica %1 @@ -15631,63 +17471,63 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + rectangle un rettangolo - + an arc - + polyline un poligono @@ -15741,6 +17581,14 @@ nothing has been changed. Dimensioni: + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15779,6 +17627,17 @@ nothing has been changed. Cancella + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16338,7 +18197,7 @@ Creare il proprio testo utilizzando le seguenti variabili: &Delete - + Cancella (&s) @@ -16789,28 +18648,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Autonumerazione Pagina - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16837,13 +18706,13 @@ Se la cifra definita nel campo Valore ha meno cifre del tipo scelto, sarà prece Il campo "Incremento" non viene utilizzato. - + Numbering conductors title window Numerazione automatica dei conduttori - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16881,13 +18750,41 @@ Gli altri campi non sono usati. Gli altri campi non sono usati. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16909,12 +18806,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19704,7 +21601,7 @@ The other fields are not used. Color : - + Colore: @@ -19821,57 +21718,102 @@ The other fields are not used. Disposizione - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties Proprietà - + Name: Nome : - + Comment : Commento : - + Plant: Installazione : - + Location : Localizzazione : - + Description @@ -19882,7 +21824,7 @@ The other fields are not used. - + Generic Generico @@ -19922,22 +21864,22 @@ The other fields are not used. Terra - + LED : - + Move to : - + Phase Fasi - + Neutral Neutro @@ -19947,7 +21889,7 @@ The other fields are not used. Stadio : - + Function : Funzione : @@ -19962,12 +21904,12 @@ The other fields are not used. Con - + Independent terminals - + Modify terminal strip properties @@ -20036,12 +21978,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20083,7 +22025,7 @@ The other fields are not used. Header text - + Titolo @@ -20106,12 +22048,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20174,55 +22156,60 @@ The other fields are not used. TerminalStripModel - + Position Posizione - + Stage - + Label Etichetta - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type Tipo - + Function Funzione - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21440,7 +23427,7 @@ si possono utilizzare le seguenti variabili: XRefPropertiesWidget - + Top Alto @@ -21450,12 +23437,12 @@ si possono utilizzare le seguenti variabili: Moduo - + Left Sinistra - + Prefix delayed contacts : Prefisso dei contatti temporizzati: @@ -21465,7 +23452,7 @@ si possono utilizzare le seguenti variabili: Regolazione dell'offset verticale per i riferimenti incrociati. 10px corrisponde a 1 passo di movimento. - + Text alignment Allineamento del testo @@ -21480,37 +23467,73 @@ si possono utilizzare le seguenti variabili: Presentazione: - + Coil Bobina - + Programmable Logic Controller (PLC) - + + Cable + + + + Bottom Sotto - + Right - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + XRef Vertical Offset: Offset verticale XRef: - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21527,7 +23550,7 @@ si possono utilizzare le seguenti variabili: % LM: posizione - + Master Maestro @@ -21577,27 +23600,27 @@ si possono utilizzare le seguenti variabili: - + Label cross reference Etichetta di riferimento incrociato - + Organ of protection Organo di protezione - + Option display cross Opzione di visualizzazione incrociata - + (%f-%l%c) (%f-%l%c) - + Prefix of power contacts : Prefisso del contatto di alimentazione : @@ -21612,17 +23635,17 @@ si possono utilizzare le seguenti variabili: Mostra croce - + Switch / button Interruttore - + Footer In fondo alla pagina - + %f-%l%c %f-%l%c @@ -21632,17 +23655,17 @@ si possono utilizzare le seguenti variabili: Default - Adatta all'altezza XRef - + Slave Schiavo - + Under the label of the element Sotto l'etichetta dell'elemento - + Show the power contacts in the cross Mostra i contatti di potenza nella croce @@ -21652,7 +23675,7 @@ si possono utilizzare le seguenti variabili: Visualizza&re come contatti - + Prefix changeover contacts : Prefisso contatto in scambio : @@ -21660,27 +23683,27 @@ si possono utilizzare le seguenti variabili: projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + untitled Senza nome - + Export the internal project database Esporta il database dell'intero progetto diff --git a/lang/qet_ja.ts b/lang/qet_ja.ts index 20f07582b..c96cbe091 100644 --- a/lang/qet_ja.ts +++ b/lang/qet_ja.ts @@ -1150,6 +1150,22 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + Delete + 削除 + + BorderPropertiesWidget @@ -1195,7 +1211,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + 形式 : @@ -1205,16 +1221,1057 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + 自分で定義 Landscape - + 横 Portrait + 縦 + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + 設備 (=) + + + + Location (+) + 場所 (+) + + + + Type + + + + + Cores + + + + + Plant + 設備 + + + + Location + 場所 + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + プレビュー + + + + cable_list_ + + + + + Save As... + 名前を付けて保存... + + + + CSV files (*.csv) + CSV ファイル (*.csv) + + + + Error + エラー + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + 元に戻す + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + 元に戻す + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + 元に戻す + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + 設備 (=) + + + + Location (+) + 場所 (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + フォント : + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + 太字 + + + + Italic + 斜体 + + + + Bold italic + + + + + Style: + 線種 : + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + 文字揃え : + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + 元に戻す + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1261,13 +2318,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption 導体の属性変更 - + Edit the properties of several conductors undo caption 複数の導体の属性変更 @@ -1323,7 +2380,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor color - + 導体色 @@ -1789,7 +2846,7 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Unknown - + 不明 @@ -1906,7 +2963,7 @@ Continue? Diagram - + Change the depth 重なりの変更 @@ -2043,6 +3100,22 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + DiagramEventAddElement @@ -2054,7 +3127,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2062,7 +3135,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2185,224 +3258,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image 画像 - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... 画像を選択... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error エラー - + Unable to load the image. 画像を読み込めません。 - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2433,106 +3536,138 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + 導体色 DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip この領域に要素を追加し端子間に導体を配置することで回路図を作成します。独立したテキストを追加することもできます。 - + Paste Here context menu action ここに貼り付け - + Multiple paste 複数貼り付け - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + フォリオ参照 + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals 選択された端子を接続 - + Untitled what to display for untitled diagrams 無題 - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error エラー - + The file could not be written. - + Choose the new color for this conductor この導体の新しい色を選ぶ - + Edit conductor properties undo caption 導体の属性の変更 @@ -3133,7 +4268,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3628,8 +4763,8 @@ Continue? - - + + Type 種類 @@ -3712,8 +4847,8 @@ Continue? - - + + Function 機能 @@ -3745,7 +4880,7 @@ Continue? - + Simple 単純 @@ -3786,19 +4921,19 @@ Continue? - + Switch normally open 常開接点 (a接点) - + Switch normally closed 常閉接点 (b接点) - + switch 切替接点 @@ -3814,25 +4949,25 @@ Continue? - + Power switch 動力 - + Switch-on delayed オン・ディレイ - + Switch-off delayed オフ・ディレイ - + Switch-on and off delayed オン・オフ・ディレイ @@ -3858,7 +4993,7 @@ Continue? - + Generic @@ -3877,164 +5012,189 @@ Continue? Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase 相 - + Neutral 中性 - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation コメント - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None なし - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5021,7 +6181,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title エクスポート @@ -5405,97 +6565,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : 種類 : - + Function : 機能 : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground 接地 - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase 相 - + Neutral 中性 - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5640,6 +6830,7 @@ that you create. Text and number inputs are + Browse... 参照... @@ -5823,8 +7014,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5835,473 +7029,577 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management 要素の管理 - + Highlight freshly integrated elements in the panel 新たに加えられた要素をパネルで強調 - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: 各要素には作成者やライセンス、他の有用な情報を自由欄に含めることができます。 この欄の既定値を以下で指定できます : - + Languages - + Applied to the next launch of QElectroTech QElectroTech の次回起動時に適用 - + texts テキスト - + Here you can define the default appearance of the different texts of QElectroTech ここで QElectroTech のテキストの外観の既定値を設定できます - + Elements texts 要素テキスト - - - + + + Font: フォント : - - + + ° - + Length : 長さ : - - + + Rotation : 回転 : - + Independent texts 独立テキスト - + Other texts 他のテキスト - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard グリッド + キーボード - + Grid: 1 - 30 グリッド : 1 - 30 - + DiagramEditor yGrid 回路図エディタ yGrid - + The Grid must be active to see the changes. 変更を確認するにはグリッドが有効でなければいけません。 - + DiagramEditor xGrid 回路図エディタ xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 キーボードによる移動量 : 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid 回路図エディタ (キー : 左 / 右) xGrid - + DiagramEditor (key: up / down) yGrid 回路図エディタ (キー : 上 / 下) yGrid - + Keyboard movement with the ALT key: 1 - 9 キーボードによる移動量(ALT キー併用): 1 - 9 - + DiagramEditor (key: left / right) xGrid 回路図エディタ (キー : 左 / 右) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid 回路図エディタ (キー : 上 / 下) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + 太字 + + + + Italic + 斜体 + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + 無効 - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title 全般 - + System システム - + Arabic アラビア語 - + Brazilian ブラジル語 - + Catalan カタルーニャ語 - + Czech チェコ語 - + German ドイツ語 - + Danish デンマーク語 - + Greek ギリシア語 - + English 英語 - + Spanish スペイン語 - + French フランス語 - + Croatian クロアチア語 - + Italian イタリア語 - + Japanese - + Korean - + Polish ポーランド語 - + Portuguese ポルトガル語 - + Romanian ルーマニア語 - + Russian ロシア語 - + Slovenian スロベニア語 - + Dutch オランダ語 - + Norwegian ノルウェー語 - + Belgium-Flemish フラマン語 - + Turkish トルコ語 - + Hungarian ハンガリー語 - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection 共通コレクションのパス - + Company collection path - + User Collection Path ユーザ・コレクションのパス - + Company title-blocks - + User Title blocks Path ユーザ表題欄のパス - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6310,50 +7608,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) CSV ファイル (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6363,6 +7679,343 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + 左 + + + + Right + 右 + + + + Top + 上 + + + + Bottom + 下 + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + GenericDeviceInformationPage + + + Information + 情報 + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + 名前 : + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + 名前 + + + + Function + 機能 + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + 削除 + + + + Up + 上 + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6490,135 +8143,97 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - フォーム + フォーム - Display - 表示 + 表示 - Table name - 表の名前 + 表の名前 - Geometry and lines - 形状と行 + 形状と行 - All - 全て + 全て - Next table - 次の表 + 次の表 - None なし - Fit table to sheet - 表をフォリオに合わせる + 表をフォリオに合わせる - - Y : - - - - - X : - - - - Previous table - 前の表 + 前の表 - Apply geometry to all tables linked to this one - この表にリンクされた全ての表に形状を適用 + この表にリンクされた全ての表に形状を適用 - Previous table : - 前の表 : + 前の表 : - Lines to display : - 表示する行 : + 表示する行 : - TextLabel - テキストラベル + テキストラベル - Header - ヘッダ + ヘッダ - - Margin - 余白 + 余白 - Alignment : - 文字揃え : + 文字揃え : - - Left - 左 + 左 - - Center - 中央 + 中央 - - Right - 右 + 右 - - Font - フォント + フォント - Table - 表 + 表 - Alignment: - 文字揃え : + 文字揃え : - Content - 内容 + 内容 @@ -6736,6 +8351,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6795,7 +8433,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + ラベル @@ -6951,81 +8589,36 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - フォーム + フォーム - - X : - - - - Advanced Editor - 高度な編集 + 高度な編集 - Size : - 大きさ : + 大きさ : - Angle: - 角度 : + 角度 : - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - HTML で書式が設定されていると、内容、大きさ、フォントを変更できません。 + HTML で書式が設定されていると、内容、大きさ、フォントを変更できません。 この場合は高度な編集を使用してください。 - Click here to cancel html formatting - HTML 書式を解除 + HTML 書式を解除 - Text - テキスト + テキスト - @@ -7467,7 +9060,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + 印刷 @@ -7484,7 +9077,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + キャンセル (&C) @@ -7852,6 +9445,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7955,63 +9556,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet フォリオ - + Conductor 導体 - + Sheet references フォリオ参照 - + Cross-references 相互参照 - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors 導体 - + Elements 要素 - + Sheets フォリオ - + + Cables + + + + Auto Numbering 自動採番 - + New sheet configuration page title 新規フォリオ - + New project configuration page title 新規プロジェクト @@ -8141,133 +9747,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 数の書式 1 - - - - + + + + number format 01 数の書式 01 - - - - - + + + + + number format 001 数の書式 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text テキスト - - - - + + + + number format 1 - Sheet 数の書式 1 - フォリオ - - - - + + + + number format 01 - Sheet 数の書式 01 - フォリオ - - - - + + + + number format 001 - Sheet 数の書式 001 - フォリオ - - - - + + + + Sheet no. フォリオ番号 - - - - + + + + Sheet フォリオ名 - - - - + + + + Plant 設備 - - - - + + + + Location 場所 - - - + + + Element Line 要素の行 - - - + + + Element Column 要素の列 - - - + + + Element Prefix 要素の接頭辞 @@ -8354,7 +9960,7 @@ Do you still want to link this slave contact? Change a rectangle - + 矩形を変更 @@ -8368,12 +9974,12 @@ Do you still want to link this slave contact? PartText - + Move a text テキストを移動 - + Edit the text field テキスト領域を変更 @@ -8381,12 +9987,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8784,7 +10390,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title 印刷 @@ -8798,178 +10404,183 @@ Its copy was kept as: 自動採番 - + Management 管理 - - + + Conductors 導体 - + No. - + Name 名前 - + Sheet - + Element 要素 - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements 要素 - - + + Sheets フォリオ - + + Cables + + + + Sheet Auto Numbering フォリオ自動採番 - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name - + ; %n numbers without an element - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8977,27 +10588,27 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. - + %n elements changed formula. - - + + Delete numbering 採番を削除 - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9005,31 +10616,31 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering - + No sheet follows this numbering - + %n sheets follow this numbering - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9037,80 +10648,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech プロジェクト (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9131,19 +10742,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - フォーム + フォーム - Request - リクエスト + リクエスト - Reload - 再読込 + 再読込 @@ -9464,7 +11072,7 @@ Give them another numbering first. Page layout - + レイアウト @@ -9640,127 +11248,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption 読込中... 要素コレクションのキャッシュを初期化中 - + Loading... Sheets editor splash screen caption 読込中... フォリオ・エディタ - + Loading... Opening files splash screen caption 読込中... ファイルを開いています - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET 表題欄 - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection ユーザ表題欄 - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning 回路図 - + Electric Normal example text - translate length, not meaning 電気 - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title QElectroTech の設定 - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title エラー - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9769,145 +11379,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption 読込中... - + Loading... Systray icon splash screen caption 読込中... システム・トレイ・アイコン - + QElectroTech systray menu title - + &Quit 終了 (&Q) - + &Hide 非表示 (&H) - + &Show 表示 (&S) - + &Hide diagram editor 回路図エディタを非表示 (&H) - + &Show diagram editors 回路図エディタを表示 (&S) - + &Hide element editor 要素エディタを非表示 (&H) - + &Show element editor 要素エディタを表示 (&S) - + &Hide title block template editor systray submenu entry 表題欄テンプレート・エディタを非表示 (&H) - + &Show title block template editors systray submenu entry 表題欄テンプレート・エディタを表示 (&S) - + &New diagram editor 新規の回路図エディタ (&N) - + &New element editor 新規の要素エディタ (&N) - + Closes QElectroTech QElectroTech を終了 - + Reduces QElectroTech into the systray QElectroTech をシステム・トレイに最小化 - + Restore QElectroTech QElectroTech を復元 - + QElectroTech systray icon tooltip - + Diagram editors 回路図エディタ - + Element editors 要素エディタ - + Title block template editors systray menu entry 表題欄テンプレート・エディタ - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: 使用法: - + [options] [file]... @@ -9916,7 +11583,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9933,34 +11600,34 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR 要素コレクションのディレクトリを指定 - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR 表題欄テンプレート・コレクションのディレクトリを指定 - + --config-dir=DIR Define configuration directory --config-dir=DIR 設定ディレクトリを指定 - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR 言語ファイルのディレクトリを指定 @@ -9970,1430 +11637,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + Projects dock title プロジェクト - + Collections コレクション - + No modification 変更なし - + Click an action to get back in the changes you made to your diagram Status tip 操作をクリックすることで図への変更を元に戻します - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip このパネルは現在のフォリオに適用された様々な変更のリストです。変更をクリックすると、それが適用された直後の状態にフォリオを戻します。 - + Undo dock title 復元 - + &Export エクスポート (&E) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + 回路図エディタ - + Exports the current sheet to another format status bar tip 現在のフォリオを別の形式でエクスポート - + Print 印刷 - + Prints one or more sheet of the current project status bar tip 現在のプロジェクトのフォリオを印刷 - + Export in pdf - + Export one or more sheets of the current project status bar tip - + &Quit 終了 (&Q) - + Closes QElectroTech status bar tip QElectroTech を終了 - + Undo 元に戻す - + Undoes the previous action status bar tip 直前の操作を元に戻す - + Redo やり直す - + Restores the undone action status bar tip 元に戻した操作をやり直す - + Cu&t 切り取り (&T) - + &Copy コピー (&C) - + &Paste 貼り付け (&P) - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip 選択要素をクリップボードに移動 - + Copies selected elements status bar tip 選択要素をコピー - + Pastes elements from the clipboard into the sheet status bar tip クリップボードからフォリオに要素を貼り付け - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset conductors 導体の整頓 - + Reset the conductors path ignoring the user changes status bar tip ユーザの変更を無視して導体の経路をリセット - + Automatic creation conductor (s) Tool tip of auto conductor 導体の自動生成 - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor 可能であれば導体を自動生成 - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid グリッド表示 - + Display or hide the grid of sheet フォリオのグリッドの表示/非表示 - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + 無効 - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show 表示 - + Element texts - + Conductor texts - + Text fields - + テキスト領域 - + Shapes - + Pictures - + Tables - + Cross-references 相互参照 - + See Display > Show - + Sheet properties フォリオの属性 - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip フォリオの属性の編集 (大きさ, 表題欄の情報, 導体の属性, ...) - + Project properties プロジェクトの属性 - + Add a sheet フォリオを追加 - - - + + + Delete this sheet このフォリオを削除 - + Clean project プロジェクトを整理 - + Export to CSV CSV 形式でエクスポート - + Add a nomenclature 部品表を追加 - + Add a summary 概要を追加 - + Terminal block manager (DEV) - + Launch the terminal block creation plugin 端子台作成プラグインを起動 - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires 線名リストをエクスポート - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database 内部のプロジェクト・データベースをエクスポート - + using tabs タブを使用 - + Shows the various opened projects in tabs status bar tip 開かれたプロジェクトをタブで表示 - + using windows ウィンドウを使用 - + Shows the various opened projects in windows status bar tip 開かれたプロジェクトをウィンドウで表示 - + &Tile 並べて (&T) - + Arranges windows in a tile pattern status bar tip ウィンドウを並べて表示 - + &Cascade 重ねて (&C) - + Arranges windows in a cascade pattern status bar tip ウィンドウを重ねて表示 - + Select 選択モード - + Allows to select elements status bar tip 要素の選択が可能 - + Move 閲覧モード - + Allows to view the sheet without modifying it status bar tip フォリオを修正せず閲覧だけを許可 - + Next project 次のプロジェクト - + Activates the next project status bar tip 次のプロジェクトを作業中に - + Previous project 前のプロジェクト - + Activates the previous project status bar tip 前のプロジェクトを作業中に - + &New 新規作成 (&N) - + &Open 開く (&O) - + &Save 保存 (&S) - + Save as 名前を付けて保存 - - + + &Close 閉じる (&C) - + Creates a new project status bar tip 新規プロジェクトを作成 - + Opens an existing project status bar tip 既存のプロジェクトを開く - + Closes the current project status bar tip 現在のプロジェクトを閉じる - + Saves the current project and all its sheets status bar tip 現在のプロジェクトとその全てのフォリオを保存 - + Saves the current project with a different file name status bar tip 現在のプロジェクトを別の名前で保存 - + Add a column 列を追加 - + Remove a column 列を削除 - + Add row Add row 行を追加 - + Remove a row Remove row 行を削除 - + Add a column to the sheet status bar tip フォリオに列を追加 - + Remove a column from the sheet status bar tip フォリオから最終列を削除 - + Expands the sheet height status bar tip フォリオに行を追加 - + Shrinks the sheet height status bar tip フォリオから最終行を削除 - + Delete 削除 - + Rotate 回転 - + Rotate the group - + Choose texts orientation テキストの向きを選択 - + Horizontal mirror - + Vertical mirror - + Find in the panel パネル内を検索 - + Edit the selected item 選択項目を編集 - + Group selected texts 選択テキストをグループ化 - - + + Group fr: Grouper - + グループ - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip 選択要素をフォリオから削除 - + Rotate selected elements and texts status bar tip 選択された要素とテキストを回転 - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip 選択テキストを指定した角度に回転 - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip 選択要素をパネル内で検索 - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All 全て選択 - + Select none 選択を解除 - + Invert selection 選択を反転 - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip フォリオの全ての要素を選択 - + Deselect all elements on the sheet status bar tip フォリオの全ての要素の選択を解除 - + Inverts selection of elements status bar tip 要素の選択を反転 - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In ズームイン - + Zoom Out ズームアウト - + Zoom content 内容に合わせてズーム - + Fit in view 全体に合わせてズーム - + Reset zoom ズームのリセット - + Centre on the cursor - + Expand the sheet status bar tip フォリオを拡大 - + Shrinks the sheet status bar tip フォリオを縮小 - + Adjusts the zoom to display all the contents of sheet regardless of context 図枠は無視してフォリオの内容に合わせてズーム - + Adjusts the zoom on exactly the part of the sheet status bar tip フォリオの領域に合わせてズーム - + Restores default zoom level status bar tip 既定のズームに戻す - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield テキスト領域を追加 - + Add a picture 画像を追加 - + Add a PDF - + Add line Draw line 線を追加 - + Add a rectangle 矩形を追加 - + Add an ellipse 楕円を追加 - + Add an arc - + 弧を追加 - + Add a polygon 折れ線を追加 - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet 現在のフォリオにテキスト領域を追加 - + Add an image to the current sheet 現在のフォリオに画像を追加 - + Adds a PDF page to the current sheet - + Add a line to the current sheet 現在のフォリオに線を追加 - + Adds a rectangle on the current sheet 現在のフォリオに矩形を追加 - + Add an ellipse to the current sheet 現在のフォリオに楕円を追加 - + Adds an arc on the current sheet - + Adds a polyline to the current sheet 現在のフォリオに折れ線を追加 - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace 検索 / 置換 - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + 元に戻す + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools ツール + - Display 表示 + - Diagram 図 + - Add 追加 + - Depth toolbar title 重なり - + Scripts toolbar title - + &File ファイル (&F) - + &Edit 編集 (&E) - + &Project プロジェクト (&P) - + Displ&ay 表示 (&D) - + Wi&ndows ウィンドウ (&W) - + &Latest files 最近のファイル (&L) - + &Add - + Selection - + Align - + Rows and columns - + Depth 重なり - - + + Scripts - + Display or hide the main toolbar メインツールバーの表示/非表示 - + Display or hide the Display toolbar 表示ツールバーの表示/非表示 - + Display or hide the Diagram toolbar 図ツールバーの表示/非表示 - + Show or hide the elements panel 要素パネルの表示/非表示 - + Display or hide the undo list 復元リストの表示/非表示 - + Display projects プロジェクトを表示 - - + + Project %1 registered in the directory: %2. プロジェクト %1 はディレクトリ %2 に保存されています。 - + Open a file ファイルを開く - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech プロジェクト (*.qet);;XML ファイル (*.xml);;全てのファイル (*) - - + + Unable to open file message box title ファイルを開けません - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. 開こうとしているファイル %1 は存在しないか、既に存在しないようです。 - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. 開こうとしているファイルは読めないため開けません。ファイルの許可を確認してください。 - + Opening the file read-only message box title ファイルを読み取り専用で開く - + The project you try to open does not seem writable. It will be opened read-only. 開こうとしているプロジェクトに書き込めないようです。読み取り専用で開きます。 - - + + Unable to open project message box title プロジェクトを開けません - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content ファイル %1 は QElectroTech のプロジェクト・ファイルではないようです。このため開けません。 - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11401,7 +13162,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11409,24 +13170,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11436,184 +13197,184 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group グループ - + %n items put back on the grid - + %n items aligned - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) - + Edit the element edit element 要素を編集 - + Edit the text field edit text field テキスト領域を編集 - + Edit the image edit image 画像を編集 - + Edit conductor edit conductor 導体を編集 - + Edit the selected object edit selected item 選択対象を編集 - + An error occurred while opening file %1. message box content ファイル %1 を開く際にエラーが発生しました。 - + Activates the project « %1 » プロジェクト « %1 » を作業中に - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title エラー - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. - + %n elements for which no definition could be found or which were illegible: their current design has been retained. - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11622,40 +13383,40 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11664,61 +13425,61 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden - - + + Texts %1 @@ -12338,7 +14099,7 @@ please wait while importing... Element editors - + 要素エディタ @@ -12700,52 +14461,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path プロジェクト « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name プロジェクト %1 - + Untitled project displayed title for a project-less, file-less project 無題のプロジェクト - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [読み取り専用] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [変更あり] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12753,56 +14514,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message テンプレートを統合する際にエラーが発生しました。 - + Warning message box title 警告 - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>プロジェクトを開きます ...</b><br/>フォリオの作成</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>プロジェクトを開きます ...</b><br/>相互参照の構成</p> @@ -12828,166 +14589,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title 現在のテンプレートを保存しますか? - + Do you wish to save the template %1? dialog content - %1 is a title block template name テンプレート %1 を保存しますか? - + new_template template name suggestion when duplicating the default one new_template - + Duplicate a title block template input dialog title 表題欄テンプレートの複製 - + In order to duplicate this template, please enter a name for its copy input dialog text このテンプレートを複製するには、複製の名前を入力してください - + &New menu entry 新規作成 (&N) - + &Open menu entry 開く (&O) - + Open from a file menu entry ファイルから開く - + &Save menu entry 保存 (&S) - + Save as menu entry 名前を付けて保存 - + Save to a file menu entry ファイルへ保存 - + &Quit menu entry 終了 (&Q) - + Cu&t menu entry 切り取り (&T) - + &Copy menu entry コピー (&C) - + &Paste menu entry 貼り付け (&P) - + Manage logos menu entry ロゴの管理 - + Edit extra information menu entry 補足情報を編集 - + Zoom In menu entry ズームイン - + Zoom out menu entry ズームアウト - + Fit in view menu entry 全体に合わせてズーム - + Reset zoom menu entry ズームのリセット - + Add a &row menu entry 行を追加 (&R) - + Add a &column menu entry 列を追加 (&C) - + &Merge cells menu entry セルの結合 (&M) - + &Split cells menu entry セルを分割 (&S) - - - - - - - - - - @@ -12997,156 +14748,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + 表題欄テンプレート・エディタ - + &File menu title ファイル (&F) - + &Edit menu title 編集 (&E) - + Displ&ay menu title 表示 (&D) - + Tools toolbar title ツール - + Edit toolbar title 編集 - + Display toolbar title 表示 - + No modification label displayed in the undo list when empty 変更なし - + Undo dock title 復元 - + Cell properties dock title セルの属性 - + [Changed] window title tag [変更あり] - + [Read only] window title tag [読み取り専用] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - 表題欄テンプレート・エディタ - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title エラー - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title 表題欄テンプレートを開く - + Open a file dialog title ファイルを開く - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech 表題欄テンプレート (*%1);;XML ファイル (*.xml);; 全てのファイル (*) - + Save template as dialog window title テンプレートを名前を付けて保存 - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title 名前を付けて保存 - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech 表題欄テンプレート (*%1) - + Edit extra information window title 補足情報の編集 - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. この自由欄をテンプレートの作成者、ライセンス、他の有用と考えられる情報などに利用できます。 @@ -13278,7 +15039,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13359,17 +15120,17 @@ the translated name of this folder could not be read, so its folder name is disp 追加 - + Select an image ... 画像を選択... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) 画像ファイル (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. 画像を読み込めません。 @@ -13506,8 +15267,8 @@ the translated name of this folder could not be read, so its folder name is disp 端子 - + Text テキスト @@ -13554,12 +15315,12 @@ the translated name of this folder could not be read, so its folder name is disp テキスト - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13640,21 +15401,31 @@ Do you want to replace it ? クリップボードにエクスポート - + Warning: the element has been saved with a more recent version of QElectroTech. 警告: より新しいバージョンの QElectroTech で要素が保存されています. - + Add a nomenclature 部品表を追加 - + Add a summary 概要を追加 + + + Add a cable list + + + + + Cable list + + Sheet position @@ -13802,22 +15573,22 @@ Do you want to replace it ? 重なり - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> qet_tb_generator プラグインをインストールするには<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a>を参照してください。<br>python 3.5 以降が必要です。<br><B><U> Windows での最初のインストール</B></U><br>1. 必要であれば python 3.5 以降をインストール<br><a href='https://www.python.org/downloads/'>python.org</a> を参照してください。<br>2. pip install qet_tb_generator<br><B><U> Windows での更新</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>ユーザはターミナルで次のディレクトリの中でスクリプトを実行できます。<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin qet_tb_generator プラグインの起動でエラー @@ -13839,7 +15610,7 @@ Do you want to replace it ? - + Title 表題 @@ -13936,45 +15707,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation コメント - - - - + + + + Cross-reference - - - - + + + + Function 機能 @@ -14510,13 +16281,13 @@ Do you want to replace it ? 表題欄の変更 - + delete %1 undo caption - %1 is a sentence listing the removed content 削除 %1 - + Edit the cross reference edite the cross reference 相互参照の編集 @@ -14539,8 +16310,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14561,10 +16332,10 @@ Do you want to replace it ? 貼り付け - + + - - + @@ -14605,83 +16376,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type 接地 - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function 相 - + Neutral neutral terminal element function 中性 - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14716,7 +16517,7 @@ Do you want to replace it ? - + Default layout @@ -14887,8 +16688,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15023,88 +16824,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 追加 %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text テキストの色を変更 - + Rotate a text - + Edit line of a form 図形の線を変更 - + Edit filling a form 図形の塗りつぶしを変更 - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text 要素テキストを編集 - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15154,7 +16955,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15203,26 +17004,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. 情報が表で表示できる最大量を超えています。 新しい表を追加するか既存の表が情報を表示できるよう調整して下さい。 - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. 情報が表で表示できる最大量を超えています。 新しい表を追加するか既存の表が情報を表示できるよう調整して下さい。 - + Table limitation テーブルの制限 - + Modify the geometry of a table 表の形状を変更 @@ -15547,88 +17348,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 変更 %1 - + a line 線 - + rectangle 矩形 - + an ellipse 楕円 - + an arc - + polyline 折れ線 - + a curve - + an shape 図形 @@ -15677,6 +17478,14 @@ nothing has been changed. 矩形を変更 + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15715,6 +17524,16 @@ nothing has been changed. 要素 « %1 » は既に存在します。どうしますか? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + RenumberElementsDialog @@ -16271,7 +18090,7 @@ Create your own text using the following variables: &Delete - + 削除 (&D) @@ -16722,28 +18541,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window フォリオの自動採番 - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16771,13 +18600,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window 導体の自動採番 - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16815,13 +18644,41 @@ The other fields are not used. 他の欄は使用されません。 - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16843,12 +18700,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19753,44 +21610,44 @@ The other fields are not used. - + Bridging the terminals - + Unbridge the terminals - + Properties 属性 - + Name: 名前 : - + Comment : - + Description - + Plant: 設備: - + Location : - + 場所: @@ -19798,13 +21655,13 @@ The other fields are not used. 種類 : - + Ungroup the terminals - + Generic @@ -19844,22 +21701,67 @@ The other fields are not used. 接地 - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : - + Phase 相 - + Neutral 中性 - + Automatic position @@ -19869,12 +21771,12 @@ The other fields are not used. - + Group the terminals - + Function : 機能 : @@ -19889,17 +21791,17 @@ The other fields are not used. - + LED : - + Independent terminals - + Modify terminal strip properties @@ -19968,12 +21870,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20015,7 +21917,7 @@ The other fields are not used. Header text - + ヘッダのテキスト @@ -20038,12 +21940,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20106,52 +22048,57 @@ The other fields are not used. TerminalStripModel - + Position 位置 - + Stage - + Label ラベル - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function 機能 - + led - + + Shield + + + + Number wire @@ -21278,7 +23225,7 @@ The following variables can be used: CSV files (*.csv) - + CSV ファイル (*.csv) @@ -21462,32 +23409,42 @@ The following variables can be used: 相互参照を表示 - + Label cross reference 相互参照のラベル - + Master 親 - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave 子 - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21504,116 +23461,142 @@ The following variables can be used: % LM: 場所 - + Option display cross 相互参照の表示オプション - + Show the power contacts in the cross 相互参照に動力接点を表示 - + Prefix of power contacts : 動力接点の接頭辞 : - + Prefix delayed contacts : 限時接点の接頭辞 : - + Prefix changeover contacts : 切替接点 (c接点) の接頭辞 : - + Coil コイル - + Organ of protection 保護機構 - + Switch / button スイッチ / ボタン - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer フッタ - + Under the label of the element 要素のラベルの下 Under the label of the element - + Top 上 - + Bottom 下 - + Left 左 - + Right - + 右 - + Text alignment 文字揃え - + Text field + + + Text: + テキスト : + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database 内部のプロジェクト・データベースをエクスポート - + untitled 無題 diff --git a/lang/qet_ko.ts b/lang/qet_ko.ts index 2546aead5..cee67bf23 100644 --- a/lang/qet_ko.ts +++ b/lang/qet_ko.ts @@ -1150,6 +1150,22 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + Delete + 삭제 + + BorderPropertiesWidget @@ -1174,7 +1190,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + 형식 : @@ -1210,11 +1226,1052 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Landscape - + 가로 Portrait + 세로 + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + 케이블 + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + 설비 (=) + + + + Location (+) + 위치 (+) + + + + Type + + + + + Cores + + + + + Plant + 설비 + + + + Location + 위치 + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + 머리글 포함 + + + + Preview + 미리보기 + + + + cable_list_ + + + + + Save As... + 다른 이름으로 저장... + + + + CSV files (*.csv) + CSV 파일 (*.csv) + + + + Error + 오류 + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + CablePropertiesDialog + + + Cable + 케이블 + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + 케이블 + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + 설비 (=) + + + + Location (+) + 위치 (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + 글꼴 : + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + 굵게 + + + + Italic + 기울임꼴 + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + 미리보기: + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1261,13 +2318,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption 도체 속성 수정 - + Edit the properties of several conductors undo caption 다중 도체 속성 수정 @@ -1783,13 +2840,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + 기타 Unknown - + 알 수 없음 @@ -1906,7 +2963,7 @@ Continue? Diagram - + Change the depth 앞뒤 순서 변경 @@ -2043,6 +3100,22 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + DiagramEventAddElement @@ -2054,7 +3127,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2062,7 +3135,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2185,224 +3258,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image 이미지 - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... 이미지 선택... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error 오류 - + Unable to load the image. 이미지를 불러올 수 없습니다. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2433,22 +3536,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2456,83 +3559,115 @@ Hold Shift and drag to move this text on its own DiagramView - + Paste Here context menu action 여기에 붙여넣기 - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip 이 영역에서 요소를 추가하고 단자 사이에 도선을 연결하여 회로도를 작성합니다. 또한 독립 텍스트를 추가할 수도 있습니다. - + Multiple paste 여러 항목 붙여넣기 - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + 도면 시트 참조 + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals 선택한 단자 연결 - + Untitled what to display for untitled diagrams 제목 없음 - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error 오류 - + The file could not be written. - + Choose the new color for this conductor 이 도선의 새 색상 선택 - + Edit conductor properties undo caption 도선 속성 수정 @@ -3133,7 +4268,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3628,8 +4763,8 @@ Continue? - - + + Type 유형 @@ -3712,8 +4847,8 @@ Continue? - - + + Function 기능 @@ -3745,7 +4880,7 @@ Continue? - + Simple 단순 @@ -3786,19 +4921,19 @@ Continue? - + Switch normally open 통상 개방 - + Switch normally closed 통상 폐쇄 - + switch 전환 접점 @@ -3814,25 +4949,25 @@ Continue? - + Power switch 전력용 - + Switch-on delayed 투입 지연 - + Switch-off delayed 차단 지연 - + Switch-on and off delayed 투입/차단 지연 @@ -3858,7 +4993,7 @@ Continue? - + Generic 일반 @@ -3877,164 +5012,189 @@ Continue? Diode 다이오드 + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase 상(Phase) - + Neutral 중성선(N) - - - - - + + + + + T%1 - + Other fr: Autre - + 기타 - + PLC Configuration - + + - + - - - + + Address - - + + Annotation 주석 - + Cross-reference - + 교차 참조 - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None 없음 - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5017,7 +6177,7 @@ All the elements and contents file in this folder will be deleted. ExportConfigPage - + Export configuration page title 내보내기 @@ -5381,97 +6541,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : 이동 대상 : - + Type : 종류 : - + Function : 기능 : - + LED : LED : - + Apply displacement 이동 적용 - - + + Generic 일반 - + Fuse 퓨즈 - + Sectionable 분리형 - + Diod 다이오드 - + Ground 접지 - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase 상 - + Neutral 중성선 - + Without 없음 - + With 있음 - + Modify terminal strip properties 단자대 속성 수정 - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5517,17 +6707,17 @@ that you create. Text and number inputs are 시스템 색상 사용 - + User Collection Path 사용자 컬렉션 경로 - + User Title blocks Path 사용자 표제란 경로 - + Path of the Common Collection 공용 컬렉션 경로 @@ -5549,6 +6739,7 @@ that you create. Text and number inputs are + Browse... 찾아보기... @@ -5590,18 +6781,18 @@ that you create. Text and number inputs are 분 - + Highlight freshly integrated elements in the panel 패널에서 새로 추가된 요소 강조 표시 - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: 각 요소에는 작성자, 라이선스 또는 기타 유용한 정보를 자유 입력란에 포함할 수 있습니다. 여기에서 새로 만드는 요소에 대해 이 입력란의 기본값을 지정할 수 있습니다 : - + Applied to the next launch of QElectroTech 다음 QElectroTech 실행 시 적용 @@ -5641,32 +6832,32 @@ that you create. Text and number inputs are 사용자 표제란 폴더 - + Elements management 요소 관리 - + Here you can define the default appearance of the different texts of QElectroTech 여기에서 QElectroTech의 다양한 텍스트에 대한 기본 모양을 설정할 수 있습니다 - + Grid + Keyboard 격자 + 키보드 - + Grid: 1 - 30 격자 : 1 - 30 - + DiagramEditor xGrid 도면 편집기 x격자 - + DiagramEditor yGrid 도면 편집기 y격자 @@ -5850,8 +7041,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5862,149 +7056,217 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages 언어 - + texts 텍스트 - + Elements texts 요소 텍스트 - - - + + + Font: 글꼴 : - - + + ° ° - + Length : 길이 : - - + + Rotation : 회전 : - + Independent texts 독립 텍스트 - + Other texts 기타 텍스트 - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. 변경 사항을 보려면 격자가 활성화되어야 합니다. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 키보드 이동 : 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid 도면 편집기(키: 왼쪽/오른쪽) x격자 - + DiagramEditor (key: up / down) yGrid 도면 편집기(키: 위/아래) y격자 - + Keyboard movement with the ALT key: 1 - 9 ALT 키로 키보드 이동 : 1 - 9 - + DiagramEditor (key: left / right) xGrid 도면 편집기(키: 왼쪽/오른쪽) x격자 - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid 도면 편집기(키: 위/아래) y격자 - + View grid 격자 표시 - - + + max: 최대: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 도면 편집기 격자 점 크기 : 1 - 5 - - + + min: 최소: - + Point-size in element-editor: 1 - 5 요소 편집기 격자 점 크기 : 1 - 5 - + Editor 편집기 - + Max. parts in Element Editor List 요소 편집기 목록의 최대 부품 수 @@ -6019,265 +7281,301 @@ that you create. Text and number inputs are 시트 범위를 넘어 축소 허용 - + + Bold italic + + + + + Bold + 굵게 + + + + Italic + 기울임꼴 + + + + Normal + + + + Rounding up for 0.5 and more 0.5 이상 올림 - + Always top rounding 항상 올림 - + Always rounded down 항상 내림 - + Rounding up for 0.75 and more 0.75 이상 올림 - + No rounding 반올림 안 함 - + Disabled fr: Désactivée - + 비활성화 - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title 일반 - + System 시스템 - + Arabic 아랍어 - + Brazilian 브라질 포르투갈어 - + Catalan 카탈로니아어 - + Czech 체코어 - + German 독일어 - + Danish 덴마크어 - + Greek 그리스어 - + English 영어 - + Spanish 스페인어 - + French 프랑스어 - + Croatian 크로아티아어 - + Italian 이탈리아어 - + Japanese 일본어 - + Korean - + Polish 폴란드어 - + Portuguese 포르투갈어 - + Romanian 루마니아어 - + Russian 러시아어 - + Slovenian 슬로베니아어 - + Dutch 네덜란드어 - + Norwegian 노르웨이어 - + Belgium-Flemish 벨기에-플라망어 - + Turkish 터키어 - + Hungarian 헝가리어 - + Mongolian 몽골어 - + Ukrainian 우크라이나어 - + Chinese 중국어 - + Swedish 스웨덴어 - + + Cable text font + + + + + Core colors font + + + + Company collection path 회사 컬렉션 경로 - + Company title-blocks 회사 표제란 경로 - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6286,50 +7584,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) CSV 파일 (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash 값이 너무 크면 프로그램이 비정상 종료될 수 있습니다. - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6339,6 +7655,343 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + 왼쪽 + + + + Right + 오른쪽 + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + GenericDeviceInformationPage + + + Information + 정보 + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + 이름 + + + + Function + 기능 + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + 삭제 + + + + Up + 위 + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + 일반 + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6466,135 +8119,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - 표 속성 + 표 속성 - Display - 표시 + 표시 - Table name - 표 이름 + 표 이름 - None 없음 - All - 전체 + 전체 - Lines to display : - 표시할 행 : + 표시할 행 : - Y : - Y : + Y : - Next table - 다음 표 + 다음 표 - X : - X : + X : - Previous table - 이전 표 + 이전 표 - Previous table : - 이전 표 : + 이전 표 : - Geometry and lines - 기하/선 설정 + 기하/선 설정 - Apply geometry to all tables linked to this one - 이 표에 연결된 모든 표에 기하 설정 적용 + 이 표에 연결된 모든 표에 기하 설정 적용 - Fit table to sheet - 표를 시트에 맞추기 + 표를 시트에 맞추기 - TextLabel - 텍스트 + 텍스트 - Header - 헤더 + 헤더 - - Margin - 여백 + 여백 - Alignment : - 정렬 : + 정렬 : - - Left - 왼쪽 + 왼쪽 - - Center - 가운데 + 가운데 - - Right - 오른쪽 + 오른쪽 - - Font - 글꼴 + 글꼴 - Table - 표 + 표 - Alignment: - 정렬 : + 정렬 : - Content - 내용 + 내용 @@ -6711,6 +8334,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6770,7 +8416,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + 라벨 @@ -6926,75 +8572,42 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - 폼 + 폼 - X : - X : + X : - Advanced Editor - 고급 편집기 + 고급 편집기 - Size : - 크기 : + 크기 : - Angle: - 각도 : + 각도 : - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - Text - 텍스트 + 텍스트 - @@ -7002,9 +8615,8 @@ Please use the advanced editor for this. 글꼴 - Click here to cancel html formatting - HTML 서식을 해제하려면 여기를 클릭하십시오 + HTML 서식을 해제하려면 여기를 클릭하십시오 @@ -7441,7 +9053,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + 인쇄 @@ -7458,7 +9070,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &취소 @@ -7656,7 +9268,7 @@ Do you still want to link this slave contact? Cross-reference - + 교차 참조 @@ -7826,6 +9438,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7929,63 +9549,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet 도면 시트 - + Conductor 도체(전선) - + Sheet references 도면 시트 참조 - + Cross-references 교차 참조 - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements 요소 - + Sheets 폴리오 - + + Cables + + + + Auto Numbering 자동 번호 매기기 - + New sheet configuration page title 새 도면 시트 - + New project configuration page title 새 프로젝트 @@ -8115,133 +9740,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 숫자 형식 1 - - - - + + + + number format 01 숫자 형식 01 - - - - - + + + + + number format 001 숫자 형식 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text 텍스트 - - - - + + + + Sheet no. 도면 시트 번호 - - - - + + + + Sheet 도면 시트 - - - - + + + + number format 1 - Sheet 숫자 형식 1 - 도면 시트 - - - - + + + + number format 01 - Sheet 숫자 형식 01 - 도면 시트 - - - - + + + + number format 001 - Sheet 숫자 형식 001 - 도면 시트 - - - - + + + + Location 위치 - - - - + + + + Plant 설비 - - - + + + Element Line 요소 행 - - - + + + Element Column 요소 열 - - - + + + Element Prefix 요소 접두어 @@ -8328,7 +9953,7 @@ Do you still want to link this slave contact? Change a rectangle - + 사각형 수정 @@ -8342,12 +9967,12 @@ Do you still want to link this slave contact? PartText - + Move a text 텍스트 이동 - + Edit the text field 텍스트 필드 편집 @@ -8355,12 +9980,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8749,7 +10374,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title 인쇄 @@ -8763,178 +10388,183 @@ Its copy was kept as: 자동 번호 매기기 - + Management 관리 - - + + Conductors 도체 - + No. - + Name 이름 - + Sheet - + Element 요소 - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements 요소 - - + + Sheets 폴리오 - + + Cables + + + + Sheet Auto Numbering 폴리오 자동 번호 매기기 - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name - + ; %n numbers without an element - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8942,27 +10572,27 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. - + %n elements changed formula. - - + + Delete numbering 번호 매기기 삭제 - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -8970,31 +10600,31 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering - + No sheet follows this numbering - + %n sheets follow this numbering - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9002,80 +10632,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech 프로젝트 (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9096,19 +10726,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - 폼 + 폼 - Request - 요청 + 요청 - Reload - 새로 고침 + 새로 고침 @@ -9604,73 +11231,75 @@ Do you want to save changes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET 타이틀 블록 - + Company title-blocks title of the company's title block templates collection 회사 타이틀 블록 - + User title blocks title of the user's title block templates collection 사용자 타이틀 블록 - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title 오류 - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9679,128 +11308,185 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit 종료(&Q) - + &Hide 숨기기(&H) - + &Show 표시(&S) - + &Hide diagram editor 모든 도면 편집기 숨기기(&D) - + &Show diagram editors 모든 도면 편집기 표시(&D) - + &Hide element editor 모든 요소 편집기 숨기기(&E) - + &Show element editor 모든 요소 편집기 표시(&E) - + &Hide title block template editor systray submenu entry 모든 타이틀 블록 템플릿 편집기 숨기기(&T) - + &Show title block template editors systray submenu entry 모든 타이틀 블록 템플릿 편집기 표시(&T) - + &New diagram editor 새 도면 편집기(&N) - + &New element editor 새 요소 편집기(&N) - + Closes QElectroTech QElectroTech를 종료합니다 - + Reduces QElectroTech into the systray QElectroTech를 시스템 트레이로 최소화 - + Restore QElectroTech QElectroTech 복원 - + Diagram editors 도면 편집기 - + Element editors 요소 편집기 - + Title block template editors systray menu entry 타이틀 블록 템플릿 편집기 - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: 사용법: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9811,109 +11497,109 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory - + Loading... Initializing the elements collection cache splash screen caption 로딩 중... 요소 컬렉션 캐시 초기화 - + Loading... Sheets editor splash screen caption 로딩 중... 도면 편집기 - + Loading... Opening files splash screen caption 로딩 중... 파일 여는 중 - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning 도면 - + Electric Normal example text - translate length, not meaning 전기 - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech 설정 - + Loading... splash screen caption 로딩 중... - + Loading... Systray icon splash screen caption 로딩 중... 시스템 트레이 아이콘 - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -9922,1401 +11608,1495 @@ Available options: QETDiagramEditor - + Displ&ay 표시(&A) - + Show or hide the elements panel 요소 패널 표시/숨김 - + Add a column 열 추가 - + &Cascade 계단식 배열(&C) - + &Paste 붙여넣기(&P) - + &Copy 복사(&C) - + Cu&t 잘라내기(&T) - + Select none 선택 해제 - + &Edit 편집(&E) - + Remove a column 열 제거 - + &Save 저장(&S) - + Save as 다른 이름으로 저장 - + &Export 내보내기(&X) - + Wi&ndows 창(&N) - - + + &Close 닫기(&C) - + &File 파일(&F) - + Print 인쇄 - + Invert selection 선택 반전 - + Select 선택 모드 - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip 이 패널은 현재 시트에서 수행된 다양한 변경 사항을 나열합니다. 변경 항목을 클릭하면 해당 변경이 적용된 직후의 상태로 되돌릴 수 있습니다. - + Display the grid 격자 표시 - + Display or hide the grid of sheet 시트의 격자를 표시하거나 숨깁니다 - + Sheet properties 시트 속성 - + Add a sheet 시트 추가 - - - + + + Delete this sheet 시트 삭제 - + Move 보기 모드 - + &Tile &바둑판식 배열 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + 도면 편집기 - + Export in pdf PDF로 내보내기 - + Export one or more sheets of the current project status bar tip 현재 프로젝트의 시트를 하나 이상 내보냅니다 - + View the guides - + Shows or hides the guides - + Export to CSV CSV로 내보내기 - + Terminal block manager (DEV) 단자대 관리자(DEV) - + Launch the terminal block creation plugin 단자대 생성 플러그인 실행 - + Export the list of names of wires 도선(와이어) 이름 목록 내보내기 - + Export the wiring diagram - + Automatic numbering of terminals - + Export the internal project database 프로젝트 내부 데이터베이스 내보내기 - + &New &새로 만들기 - + Creates a new project status bar tip 새 프로젝트를 생성합니다 - + Opens an existing project status bar tip 기존 프로젝트를 엽니다 - + Closes the current project status bar tip 현재 프로젝트를 닫습니다 - + Saves the current project and all its sheets status bar tip 현재 프로젝트와 모든 시트를 저장합니다 - + Saves the current project with a different file name status bar tip 현재 프로젝트를 다른 파일 이름으로 저장합니다 - + Add row Add row 행 추가 - + Remove a row Remove row 행 제거 - + Add a column to the sheet status bar tip 시트에 열을 추가합니다 - + Remove a column from the sheet status bar tip 시트에서 열을 제거합니다 - + Expands the sheet height status bar tip 시트 높이를 늘립니다 - + Shrinks the sheet height status bar tip 시트 높이를 줄입니다 - + Removes selected elements from the sheet status bar tip 선택한 요소를 시트에서 제거합니다 - + Selects all elements on the sheet status bar tip 시트의 모든 요소를 선택합니다 - + Deselect all elements on the sheet status bar tip 시트의 모든 선택을 해제합니다 - + Expand the sheet status bar tip 시트를 확대합니다 - + Shrinks the sheet status bar tip 시트를 축소합니다 - + Adjusts the zoom to display all the contents of sheet regardless of context 프레임과 무관하게 시트의 전체 내용을 표시하도록 확대/축소를 맞춥니다 - + Adjusts the zoom on exactly the part of the sheet status bar tip 시트 프레임에 정확히 맞도록 확대/축소를 맞춥니다 - + Add line Draw line 선 추가 - + Add a rectangle 사각형 추가 - + Add an ellipse 타원 추가 - + Add a polygon 폴리라인 추가 - + Exports the current sheet to another format status bar tip 현재 시트를 다른 형식으로 내보냅니다 - + Prints one or more sheet of the current project status bar tip 현재 프로젝트의 시트를 하나 이상 인쇄합니다 + - Depth toolbar title 깊이 - + Group 그룹 - + Pastes elements from the clipboard into the sheet status bar tip 클립보드의 요소를 시트에 붙여넣습니다 - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip 시트 속성(치수, 표제란 정보, 도선 속성 등)을 편집합니다 - + Allows to view the sheet without modifying it status bar tip 시트를 수정하지 않고 보기만 할 수 있습니다 + - Tools 도구 - + &Open &열기 - + Open a file 파일 열기 - + Reset zoom 확대/축소 초기화 - + Rotate 회전 - + &Quit &종료 - + Delete 삭제 - + Select All 모두 선택 - + Fit in view 화면에 맞춤 - + Zoom Out 축소 - + Zoom In 확대 - + Undo 실행 취소 - + Redo 다시 실행 - + Reset conductors 도선 초기화 - + Display or hide the main toolbar 주 도구 모음을 표시하거나 숨깁니다 - + Display or hide the Display toolbar 표시 도구 모음을 표시하거나 숨깁니다 - + Display or hide the Diagram toolbar 도면 도구 모음을 표시하거나 숨깁니다 + - Display 표시 + - Diagram 도면 - + Add a textfield 텍스트 필드 추가 - + No modification 변경 사항 없음 - + Display or hide the undo list 변경(실행 취소) 목록을 표시하거나 숨깁니다 - + Edit the selected item 선택한 항목 편집 - + Group selected texts 선택한 텍스트 그룹화 - + Rotate selected elements and texts status bar tip 선택한 요소와 텍스트를 회전합니다 - + Rotate selected texts to a specific angle status bar tip 선택한 텍스트를 지정한 각도로 회전합니다 - + Search / Replace 찾기/바꾸기 - + &Project &프로젝트 - + &Latest files &최근 열었던 파일 - - + + Project %1 registered in the directory: %2. 프로젝트 %1이(가) 다음 폴더에 저장되었습니다: %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. 열려는 파일에 읽기 권한이 없어 열 수 없습니다. 파일 권한을 확인하세요. - + The project you try to open does not seem writable. It will be opened read-only. 열려는 프로젝트에 쓰기 권한이 없어 읽기 전용으로 열립니다. - + using tabs 탭으로 표시 - + using windows 창으로 표시 - + Display projects 프로젝트 표시 - + Project properties 프로젝트 속성 - + Clean project 프로젝트 정리 - - + + Unable to open project message box title 프로젝트 열기 실패 - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content 파일 %1은(는) QElectroTech 프로젝트 파일이 아닌 것으로 보입니다. 따라서 열 수 없습니다. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title 실행 취소 - + Click an action to get back in the changes you made to your diagram Status tip 작업을 클릭하면 도면 편집 상태를 이전으로 되돌릴 수 있습니다 - + Choose texts orientation 텍스트 방향 설정 - + Find in the panel 패널에서 찾기 - + Add a picture 이미지 추가 - + Add a summary 목차 추가 - + Zoom content 내용에 맞게 확대/축소 - + Closes QElectroTech status bar tip QElectroTech를 종료합니다 - + Undoes the previous action status bar tip 이전 작업을 취소합니다 - + Restores the undone action status bar tip 취소한 작업을 다시 실행합니다 - + Puts selected elements into the clipboard status bar tip 선택한 요소를 클립보드로 잘라냅니다 - + Copies selected elements status bar tip 선택한 요소를 클립보드에 복사합니다 - + Inverts selection of elements status bar tip 선택을 반전합니다 - + Find the selected item in the panel status bar tip 패널에서 선택한 항목을 찾습니다 - + Reset the conductors path ignoring the user changes status bar tip 사용자 변경을 무시하고 도선 경로를 다시 계산합니다 - + Automatic creation conductor (s) Tool tip of auto conductor 도선 자동 생성 - + Projects dock title 프로젝트 - + Collections 컬렉션 - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor 가능한 경우 도선 자동 생성을 사용합니다 - + Restores default zoom level status bar tip 기본 확대/축소로 복원합니다 - + Shows the various opened projects in windows status bar tip 열려 있는 프로젝트를 하위 창으로 표시합니다 - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + 비활성화 - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show 표시 - + Element texts - + Conductor texts - + Text fields - + 텍스트 필드 - + Shapes - + Pictures - + Tables - + Cross-references 교차 참조 - + See Display > Show - + Add a nomenclature 부품표(BOM) 추가 - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Wiring list (database) - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip 열려 있는 프로젝트를 탭으로 표시합니다 - + Allows to select elements status bar tip 요소를 선택할 수 있습니다 - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + 그룹 - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + 호 추가 - + Add a curve - + Add a fillet - + Add a terminal plan 단자 배치도 추가 - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet 현재 시트에 텍스트 필드를 추가합니다 - + Add an image to the current sheet 현재 시트에 이미지를 추가합니다 - + Adds a PDF page to the current sheet - + Add a line to the current sheet 현재 시트에 선을 추가합니다 - + Adds a rectangle on the current sheet 현재 시트에 사각형을 추가합니다 - + Add an ellipse to the current sheet 현재 시트에 타원을 추가합니다 - + Adds an arc on the current sheet - + Adds a polyline to the current sheet 현재 시트에 폴리라인을 추가합니다 - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet 현재 시트에 단자대 배치도를 추가합니다 - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add 추가 - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth 깊이 - - + + Scripts - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech 프로젝트 (*.qet);;XML 파일 (*.xml);;모든 파일 (*) - - + + Unable to open file message box title 파일을 열 수 없음 - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. 열려는 파일 %1이(가) 존재하지 않거나 더 이상 존재하지 않습니다. - + Opening the file read-only message box title 읽기 전용으로 프로젝트 열기 - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11324,7 +13104,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11332,24 +13112,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11359,179 +13139,179 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + %n items put back on the grid - + %n items aligned - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) - + Edit the element edit element 요소 편집 - + Edit the text field edit text field 텍스트 필드 편집 - + Edit the image edit image 이미지 편집 - + Edit conductor edit conductor 도선 편집 - + Edit the selected object edit selected item 선택한 개체 편집 - + An error occurred while opening file %1. message box content 파일 %1을(를) 여는 동안 오류가 발생했습니다. - + Activates the project « %1 » 프로젝트 « %1 »을(를) 활성화합니다 - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title 오류 - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. - + %n elements for which no definition could be found or which were illegible: their current design has been retained. - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11540,40 +13320,40 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11582,94 +13362,94 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden - - + + Texts %1 - + Arranges windows in a tile pattern status bar tip 창을 바둑판식으로 배열합니다 - + Arranges windows in a cascade pattern status bar tip 창을 계단식으로 배열합니다 - + Next project 다음 프로젝트 - + Previous project 이전 프로젝트 - + Activates the next project status bar tip 다음 프로젝트를 활성화합니다 - + Activates the previous project status bar tip 이전 프로젝트를 활성화합니다 @@ -12243,7 +14023,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Element editors - + 요소 편집기 @@ -12651,58 +14431,58 @@ please wait while importing... QETProject - + Warning message box title 경고 - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path 프로젝트 « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name 프로젝트 %1 - + Untitled project displayed title for a project-less, file-less project 제목 없는 프로젝트 - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [읽기 전용] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [수정됨] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12710,51 +14490,51 @@ Do you wish to continue? - + An error occurred during the template integration. error message 템플릿 통합 중 오류가 발생했습니다. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. 열려고 하는 프로젝트는 QElectroTech %1 버전과 부분적으로만 호환됩니다. - + Warning message box title 경고 - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>프로젝트 여는 중...</b><br/>폴리오 생성 중</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>프로젝트 여는 중...</b><br/>교차 참조 설정 중</p> @@ -12780,178 +14560,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title 현재 템플릿을 저장하시겠습니까? - + Do you wish to save the template %1? dialog content - %1 is a title block template name 템플릿 %1을(를) 저장하시겠습니까? - + new_template template name suggestion when duplicating the default one new_template - + Duplicate a title block template input dialog title 표제란 템플릿 복제 - + In order to duplicate this template, please enter a name for its copy input dialog text 이 템플릿을 복제하려면 복사본의 이름을 입력하십시오 - + &New menu entry &새로 만들기 - + &Open menu entry &열기 - + Open from a file menu entry 파일에서 열기 - + &Save menu entry &저장 - + Save as menu entry 다른 이름으로 저장 - + Save to a file menu entry 파일로 저장 - + &Quit menu entry &종료 - + Manage logos menu entry 로고 관리 - + Zoom In menu entry 확대 - + Zoom out menu entry 축소 - + Fit in view menu entry 화면에 맞춤 - + Reset zoom menu entry 확대/축소 초기화 - + Save as dialog title 다른 이름으로 저장 - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech 표제란 템플릿 (*%1) - + &Merge cells menu entry 셀 &병합 - + Cu&t menu entry 잘라내기 - + &Copy menu entry &복사 - + &Paste menu entry &붙여넣기 - + Edit extra information menu entry 추가 정보 편집 - + Add a &row menu entry &행 추가 - + Add a &column menu entry &열 추가 - + &Split cells menu entry 셀 &분할 - - - - - - - - - - @@ -12961,144 +14731,154 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + 타이틀 블록 템플릿 편집기 - + &File menu title &파일 - + &Edit menu title &편집 - + Displ&ay menu title &보기 - + Tools toolbar title 도구 - + Edit toolbar title 편집 - + Display toolbar title 보기 - + No modification label displayed in the undo list when empty 변경 없음 - + Undo dock title 실행 취소 - + Cell properties dock title 셀 속성 - + [Changed] window title tag [수정됨] - + [Read only] window title tag [읽기 전용] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - 표제란 템플릿 편집기 - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title 오류 - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title 표제란 템플릿 열기 - + Open a file dialog title 파일 열기 - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech 표제란 템플릿 (*%1);;XML 파일 (*.xml);;모든 파일 (*) - + Save template as dialog window title 템플릿 다른 이름으로 저장 - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title 추가 정보 편집 - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. 이 자유 입력란에는 표제란의 작성자, 라이선스 또는 기타 유용하다고 판단되는 정보를 기재할 수 있습니다. @@ -13134,7 +14914,7 @@ What do you wish to do ? GNU/GPL 라이선스가 포함된 텍스트 파일은 존재하지만 열 수 없습니다 - 어차피 이미 외우고 계시죠? - + Warning: the element has been saved with a more recent version of QElectroTech. 경고: 이 요소는 더 최신 버전의 QElectroTech에서 저장되었습니다. @@ -13155,7 +14935,7 @@ What do you wish to do ? 그래픽 요소 - + delete %1 undo caption - %1 is a sentence listing the removed content %1 삭제 @@ -13653,7 +15433,7 @@ What do you wish to do ? - + Title 제목 @@ -13669,18 +15449,18 @@ What do you wish to do ? 프로젝트 속성 - + Select an image ... 이미지 선택... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) 이미지 파일 (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13689,7 +15469,7 @@ What do you wish to do ? 오류 - + Unable to load the image. 이미지를 불러올 수 없습니다. @@ -13730,8 +15510,8 @@ What do you wish to do ? 단자 - + Text 텍스트 @@ -13747,7 +15527,7 @@ What do you wish to do ? 여러 요소의 정보 수정 - + Edit the cross reference edite the cross reference 상호 참조 편집 @@ -13845,12 +15625,12 @@ the translated name of this folder could not be read, so its folder name is disp 컬렉션 - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13916,8 +15696,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14098,45 +15878,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation 주석 - - - - + + + + Cross-reference - + 교차 참조 - - - - + + + + Function 기능 @@ -14471,35 +16251,45 @@ Do you want to replace it ? 도체 생성 - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> qet_tb_generator 플러그인을 설치하려면<br>방문 :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Python 3.5 이상이 필요합니다.<br><B><U> Windows에서 최초 설치</B></U><br>1. 필요 시 Python 3.5 이상을 설치합니다<br> 방문 :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Windows에서 업데이트</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>사용자는 터미널에서 이 디렉터리에 있는 이 스크립트를 실행할 수 있습니다<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> qet_tb_generator 플러그인을 설치하려면<br>방문 :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> macOS에서 최초 설치</B></U><br>1. 필요 시 Python 3.11 번들만 설치합니다, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Profile.command 스크립트를 실행합니다<br>프로그램이 qet-tb-generator 플러그인을 찾기 위해 하드코딩된 PATH를 사용하기 때문입니다 <br> 방문 :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>설치 방법</a><br>2. pip3 install qet_tb_generator<br><B><U> macOS에서 업데이트</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> qet_tb_generator 플러그인을 설치하려면<br>방문 :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Python 3.5 이상이 필요합니다.<br><br><B><U> Linux에서 최초 설치</B></U><br>1. pip3가 설치되어 있는지 확인합니다: pip3 --version<br>설치되어 있지 않다면 다음 명령으로 설치하세요: sudo apt-get install python3-pip<br>2. 프로그램 설치: sudo pip3 install qet_tb_generator<br>3. 프로그램 실행: qet_tb_generator<br><br><B><U> Linux에서 업데이트</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin qet_tb_generator 플러그인 실행 오류 - + Add a nomenclature 부품표(BOM) 추가 - + Add a summary 목차 추가 + + + Add a cable list + + + + + Cable list + + Paste @@ -14536,83 +16326,113 @@ Do you want to replace it ? 단자대 %1 정렬 - - + + Generic generic terminal element type 일반 - + Fuse fuse terminal element type 퓨즈 - + Sectionable sectional terminal element type 단로형 - + Diode diode terminal element type 다이오드 - + Ground ground terminal element type 접지 - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function 일반 - + Phase phase terminal element function 상 - + Neutral neutral terminal element function 중성선 - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14647,15 +16467,15 @@ Do you want to replace it ? DXF 파일 가져오기 - + Default layout 기본 배치 - + + - - + @@ -14832,8 +16652,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -14968,88 +16788,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 %1 추가 - + Edit the conductor properties - + Edit a text - + Change the color of a text 텍스트 색상 변경 - + Rotate a text - + Edit line of a form 도형 선 편집 - + Edit filling a form 도형 채우기 편집 - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text 요소 텍스트 편집 - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15099,7 +16919,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15148,24 +16968,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation 표 제한 - + Modify the geometry of a table 표 형상 수정 @@ -15224,12 +17044,12 @@ nothing has been changed. QetShapeItem - + an shape 도형 - + a line 선 @@ -15500,78 +17320,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 %1 수정 - + rectangle 사각형 - + an ellipse 타원 - + an arc - + polyline 폴리라인 - + a curve @@ -15620,6 +17440,14 @@ nothing has been changed. 사각형 수정 + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15658,6 +17486,16 @@ nothing has been changed. 요소 « %1 »이(가) 이미 존재합니다. 어떻게 하시겠습니까? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + RenumberElementsDialog @@ -16202,7 +18040,7 @@ Create your own text using the following variables: &Delete - + &삭제 @@ -16643,13 +18481,13 @@ qet.addText(f, "Text", 40, 40); 증가값 - + Sheet Auto Numbering title window 폴리오 자동 번호 매기기 - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16666,7 +18504,7 @@ The "Incrementation" field is not used. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16688,7 +18526,7 @@ The other fields are not used. - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16710,7 +18548,7 @@ The other fields are not used. - + Element Auto Numbering title window 요소 자동 번호 매기기 @@ -16726,33 +18564,71 @@ The other fields are not used. - + Move this variable up - + Move this variable down - + Delete this variable + + + Delete the rule + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Numbering conductors title window 도체 자동 번호 매기기 - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + New numbering… - + Rename numbering… @@ -19540,7 +21416,7 @@ The other fields are not used. Color : - + 색상 : @@ -19657,42 +21533,42 @@ The other fields are not used. 배치 - + Bridging the terminals 단자 브리징 - + Unbridge the terminals 브리징 해제 - + Properties 속성 - + Name: 이름: - + Comment : 비고: - + Description 설명 - + Plant: 설비: - + Location : 위치: @@ -19702,13 +21578,13 @@ The other fields are not used. 유형: - + Ungroup the terminals 단자 그룹 해제 - + Generic 일반 @@ -19748,22 +21624,67 @@ The other fields are not used. 접지 - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : 이동 위치: - + Phase 상(Phase) - + Neutral 중성선(Neutral) - + Automatic position 자동 위치 @@ -19773,12 +21694,12 @@ The other fields are not used. 레벨: - + Group the terminals 단자 그룹화 - + Function : 기능: @@ -19793,17 +21714,17 @@ The other fields are not used. 있음 - + LED : LED: - + Independent terminals 독립 단자 - + Modify terminal strip properties 단자대 속성 수정 @@ -19872,12 +21793,12 @@ The other fields are not used. 레벨 0 단자: - + Headser : 헤더: - + Bridge point 브리지 포인트 @@ -19919,7 +21840,7 @@ The other fields are not used. Header text - + 머리글 텍스트 @@ -19939,15 +21860,55 @@ The other fields are not used. Cross-reference + 교차 참조 + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height 높이 - + Preview: 미리보기: @@ -20010,52 +21971,57 @@ The other fields are not used. TerminalStripModel - + Position 위치 - + Stage 층 - + Label 라벨 - + Cross-reference 교차 참조 - + Cable 케이블 - + Color / wire number of the cable 케이블 선 색상 / 선 번호 - + Type 유형 - + Function 기능 - + led LED - + + Shield + + + + Number wire 도체 번호 @@ -21176,7 +23142,7 @@ The following variables can be used: CSV files (*.csv) - + CSV 파일 (*.csv) @@ -21360,32 +23326,42 @@ The following variables can be used: 십자형으로 보기 - + Label cross reference 교차 참조 라벨 - + Master 마스터 - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave 슬레이브 - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21396,115 +23372,141 @@ The following variables can be used: - + Option display cross 십자형 표시 옵션 - + Show the power contacts in the cross 십자형에 전력 접점 표시 - + Prefix of power contacts : 전력 접점 접두어 : - + Prefix delayed contacts : 지연 접점 접두어 : - + Prefix changeover contacts : 전환 접점 접두어 : - + Coil 코일 - + Organ of protection 보호 장치 - + Switch / button 스위치 / 버튼 - + Programmable Logic Controller (PLC) - + + Cable + 케이블 + + + Footer 페이지 하단 - + Under the label of the element 요소 라벨 아래 - + Top 상단 - + Bottom 하단 - + Left 왼쪽 - + Right 오른쪽 - + Text alignment 텍스트 정렬 - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database 프로젝트 내부 데이터베이스 내보내기 - + untitled 이름 없음 diff --git a/lang/qet_mn.ts b/lang/qet_mn.ts index f0e6fa16a..63f3a216a 100644 --- a/lang/qet_mn.ts +++ b/lang/qet_mn.ts @@ -1160,6 +1160,23 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Устгах + + BorderPropertiesWidget @@ -1215,16 +1232,1067 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + Custom Landscape - + Хэвтээ Portrait + Зураг + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + Суулгах + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + Урьдчилан харах + + + + cable_list_ + + + + + Save As... + Хадгалах + + + + CSV files (*.csv) + Файлууд csv (*.csv) + + + + Error + Алдаа + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Буцаах + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Буцаах + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Буцаах + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Фонт: + + + + pt + + + + + Size: + + + + + Normal + Хэвийн + + + + Bold + Текстийг тодруулах + + + + Italic + Италик + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Буцаах + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1271,13 +2339,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption Чиглүүлэгч шугамын чигийг хянах - + Edit the properties of several conductors undo caption Хэд хэдэн дамжуулагчийн тохиргоог өөрчлөх @@ -1801,7 +2869,7 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Unknown - + Үл мэдэгдэх @@ -1919,7 +2987,7 @@ Continue? Diagram - + Change the depth Гүнийг өөрчлөх @@ -2056,6 +3124,23 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2067,7 +3152,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2075,7 +3160,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2198,224 +3283,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image дүрслэл - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Алдаа - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2446,22 +3561,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2469,83 +3584,116 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Энэ талбайд та өөрийн схемээ холболтуудын хооронд элемент ба дамжуулагчийг нэмж байгуулна. Та мөн бие даасан текстүүд нэмж болно. - + Paste Here context menu action Энд хуулна уу. - + Multiple paste Олон хуулж тавих - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + Хуудасны ишлэл + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals Сонгогдсон оролт гаралтуудыг холбох - + Untitled what to display for untitled diagrams Гарчиггүй - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Алдаа - + The file could not be written. - + Choose the new color for this conductor Чиглүүлэгч шугамын хувьд шинэ өнгө сонгох - + Edit conductor properties undo caption Дамжуулагчийн бүтцийг өөрчлөх @@ -3146,7 +4294,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3641,8 +4789,8 @@ Continue? - - + + Type Төрөл @@ -3725,8 +4873,8 @@ Continue? - - + + Function Функц @@ -3758,7 +4906,7 @@ Continue? - + Simple Энгийн @@ -3799,19 +4947,19 @@ Continue? - + Switch normally open Хэвийн тамархай унтраалга - + Switch normally closed Хэвийн залгаатай унтраалга - + switch Унтраалга @@ -3827,25 +4975,25 @@ Continue? - + Power switch Тэжээлийн унтраалга - + Switch-on delayed Хугацааны барилттай асаах - + Switch-off delayed Хугацааны барилттай унтраах - + Switch-on and off delayed Хугацааны барилттай асааж унтраах @@ -3871,7 +5019,7 @@ Continue? - + Generic @@ -3890,164 +5038,189 @@ Continue? Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Фаз - + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Тэсдэглэгээ - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5035,7 +6208,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Гаргах @@ -5399,97 +6572,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : Төрөл: - + Function : Функц : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground Газардлага - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Фаз - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5634,6 +6837,7 @@ that you create. Text and number inputs are + Browse... @@ -5817,8 +7021,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5829,472 +7036,576 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management - + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° ° - + Length : Урт : - - + + Rotation : Эргэлт : - + Independent texts Бие даасан текстүүд - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + Languages - + Other texts Бусад текстүүд - + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. Өөрчлөлтийг харахын тулд Grid идэвхтэй байх ёстой. - + DiagramEditor xGrid - + Keyboard movement: 1 - 30 Товчлуурын хөдөлгөөн: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Схем Засах (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid Схем Засах (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 Товчлуурын хөдөлгөөн Alt -р: 1 - 9 - + DiagramEditor (key: left / right) xGrid Схем Засах (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Схем Засах (key: up / down) yGrid - + + Bold italic + + + + + Bold + Текстийг тодруулах + + + + Italic + Италик + + + + Normal + Хэвийн + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System Систем - + Arabic Араб - + Brazilian Бразил - + Catalan Каталан - + Czech Чех - + German Герман - + Danish Дани - + Greek Грек - + English Англи - + Spanish Испани - + French Франц - + Croatian Хорват - + Italian Итали - + Japanese - + Korean - + Polish Польш - + Portuguese Португал - + Romanian Румын - + Russian Орос - + Slovenian Словень - + Dutch Голланд - + Norwegian Норвеги - + Belgium-Flemish Бельги-Флем - + Turkish Турк - + Hungarian Унгар - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6303,50 +7614,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Файлууд csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6356,6 +7685,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Зүүн + + + + Right + Баруун + + + + Top + Дээд + + + + Bottom + Доод + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Нэр: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Нэр + + + + Function + Функц + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + Устгах + + + + Up + Дээр + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6483,135 +8151,101 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Хэлбэр + Хэлбэр - Display - Харуулах + Харуулах - Table name - Хүснэгтийн нэр + Хүснэгтийн нэр - None Байхгүй - All - Бүгд + Бүгд - Lines to display : - Мөрүүдийг харуулах + Мөрүүдийг харуулах - Y : - Y : + Y : - Next table - Дараагийн хүснэгт + Дараагийн хүснэгт - X : - X : + X : - Previous table - Өмнөх хүснэгт + Өмнөх хүснэгт - Previous table : - Өмнөх хүснэгт + Өмнөх хүснэгт - Geometry and lines - Хэмжээс болон шугамууд + Хэмжээс болон шугамууд - Apply geometry to all tables linked to this one - Үүнтэй холбогдсон бүх хүснэгтүүдэд хэмжээс оруулах + Үүнтэй холбогдсон бүх хүснэгтүүдэд хэмжээс оруулах - Fit table to sheet - Хуудсанд хүснэгтийг тохируулах + Хуудсанд хүснэгтийг тохируулах - - TextLabel - - - - Header - Толгой + Толгой - - Margin - Захын зай + Захын зай - Alignment : - Эгнээ : + Эгнээ : - - Left - Зүүн + Зүүн - - Center - Төв + Төв - - Right - Баруун + Баруун - - Font - Фонт + Фонт - Table - Хүснэгт + Хүснэгт - Alignment: - Эгнээ : + Эгнээ : - Content - Контент + Контент @@ -6728,6 +8362,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6943,81 +8600,52 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Форм + Форм - X : - X : + X : - Advanced Editor - Нэмэлт тохиргоо + Нэмэлт тохиргоо - Size : - Хэмжээ: + Хэмжээ: - Angle: - Өнцөг: + Өнцөг: - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Контентуудын текстийн хэмжээ болон фонт өөрчлөгдөх боломжгүй учир нь html форматад оруулсан. + Контентуудын текстийн хэмжээ болон фонт өөрчлөгдөх боломжгүй учир нь html форматад оруулсан. Нэмэлт тохиргоог үүнд хэрэглэнэ үү. - Click here to cancel html formatting - html форматыг энд дарж өөрчилнө үү. + html форматыг энд дарж өөрчилнө үү. - Text - Текст + Текст - @@ -7459,7 +9087,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Хэвлэх @@ -7477,7 +9105,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Цуцлах @@ -7846,6 +9474,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7949,63 +9585,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Форм - + Conductor Дамжуулагч - + Sheet references Хуудасны ишлэлүүд - + Cross-references Давхардсан ишлэлүүд - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Дамжуулагчид - + Elements Элементүүд - + Sheets - + + Cables + + + + Auto Numbering Автоматаар дугаарлах - + New sheet configuration page title Шинэ хуудас - + New project configuration page title Шинэ төсөл @@ -8135,133 +9776,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Дугаарлалтын формат 1 - - - - + + + + number format 01 Дугаарлалтын формат 01 - - - - - + + + + + number format 001 Дугаарлалтын формат 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Текст - - - - + + + + number format 1 - Sheet Дугаарлалтын формат 1 Хуудас - - - - + + + + number format 01 - Sheet Дугаарлалтын формат 01 Хуудас - - - - + + + + number format 001 - Sheet Дугаарлалтын формат 001 Хуудас - - - - + + + + Sheet no. N° хуудас - - - - + + + + Sheet Хуудас - - - - + + + + Plant Суулгах - - - - + + + + Location Байршил - - - + + + Element Line Элементийн зураас - - - + + + Element Column Элементийн багана - - - + + + Element Prefix Элементийн угтвар @@ -8348,7 +9989,7 @@ Do you still want to link this slave contact? Change a rectangle - + Дөрвөн өнцөгтийг өөрчлөх @@ -8362,12 +10003,12 @@ Do you still want to link this slave contact? PartText - + Move a text Текстийг зөөх - + Edit the text field Текстийн талбайг өөрчлөх @@ -8375,12 +10016,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8774,7 +10415,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Хэвлэлт @@ -8788,101 +10429,106 @@ Its copy was kept as: Автоматаар дугаарлах - + Management Удирдлага - - + + Conductors Дамжуулагчид - + No. - + Name Нэр - + Sheet - + Element Элемент - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Элементүүд - - + + Sheets Хуудсууд - + + Cables + + + + Sheet Auto Numbering Хуудаснуудыг автоматаар дугаарлах - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8890,7 +10536,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8898,49 +10544,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8948,21 +10594,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8971,7 +10617,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8979,7 +10625,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8987,13 +10633,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Дугаарлалтыг устгах - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9002,12 +10648,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9015,12 +10661,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9028,7 +10674,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9037,80 +10683,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9131,19 +10777,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Форм + Форм - Request - Хүсэлт + Хүсэлт - Reload - Дахин уншуулах + Дахин уншуулах @@ -9464,7 +11107,7 @@ Give them another numbering first. Page layout - + Хуудасны бүтэц @@ -9639,127 +11282,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption Ачааллаж байна... Элементүүдийн цуглуулгын санах ойг эхлүүлж байна - + Loading... Sheets editor splash screen caption Ачааллаж байна... Хуудаснуудын засварлагч - + Loading... Opening files splash screen caption Ачааллаж байна... Файлуудыг нээж байна - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET гарчигны блокууд - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Хэрэглэгчийн нэрний блокууд - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Схем - + Electric Normal example text - translate length, not meaning Цахилгаан - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech-г тохируулах - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Алдаа - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9768,145 +11413,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Ачааллаж байна... - + Loading... Systray icon splash screen caption Ачааллаж байна... Systray icon - + QElectroTech systray menu title QElectroTech - + &Quit &Гарах - + &Hide &Нуух - + &Show &Харуулах - + &Hide diagram editor &Схем засалтыг нуух - + &Show diagram editors &Схемийн тохиргоог харуулах - + &Hide element editor &Элемент засагчийг нуух - + &Show element editor &Элементийн тохиргоог харуулах - + &Hide title block template editor systray submenu entry &Нэрний загвар засагчийг нуух - + &Show title block template editors systray submenu entry &Хаягийн блокын тохиргоог харуулах - + &New diagram editor - + &New element editor &Шинэ элементийг засагч - + Closes QElectroTech QElectroTech-г хаах - + Reduces QElectroTech into the systray QElectroTech-г systray-руу багасгах - + Restore QElectroTech QElectroTech-г сэргээх - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Схем засварлагчид - + Element editors Элемент засварлагчид - + Title block template editors systray menu entry Гарчигийн загвар засварлагчид - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Хэрэглээ: - + [options] [file]... @@ -9915,7 +11617,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9926,34 +11628,34 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory --энгийн-элементүүд-dir=DIR Элементүүдийн цуглуулгын лавлахыг тодорхойлох - + --common-tbt-dir=DIR Define the title block templates collection directory --энгийн-tbt-dir=DIR Гарчигийн загваруудын цуглуулгын лавлахыг тодорхойлох - + --config-dir=DIR Define configuration directory --config-dir=DIR Тохиргооны лавлахыг тодорхойлох - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Хэлний файлуудын лавлахыг тодорхойлох @@ -9963,1430 +11665,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Төслүүд - + Collections Цуглуулгууд - + No modification Тохиргоо байхгүй - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title Буцаах - + &Export &Гаргах - + Exports the current sheet to another format status bar tip Одоогийн хуудсыг өөр форматаар гаргах - + Print Хэвлэх - + Prints one or more sheet of the current project status bar tip Одоогийн төслийн нэг болон түүнээс дээш хуудсыг хэвлэх - + &Quit &Гарах - + Closes QElectroTech status bar tip QElectroTech-г хаах - + Undo Буцаах - + Undoes the previous action status bar tip Өмнөх үйлдлүүдээ буцаах - + Redo Буцаах - + Restores the undone action status bar tip хийгдээгүй үйлдлийг сэргээх - + Cu&t &Арилгаж хуулах - + &Copy &Хуулах - + &Paste &Хуулж тавих - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip Сонгосон элементүүдийг хуулах - + Pastes elements from the clipboard into the sheet status bar tip - + Reset conductors Дамжуулагчдыг хуучин төлөвт оруулах - + Reset the conductors path ignoring the user changes status bar tip Дамжуулагчийн замыг хэвийн болгох - + Automatic creation conductor (s) Tool tip of auto conductor Дамжуулагчийг автоматаар үүсгэх - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Боломжтой үед дамжуулагчийг автоматаар үүсгэгчийг хэрэглэх - + Display the grid Хэрээсийг харуулах - + Display or hide the grid of sheet Хуудасны хэрээсийг харуулах эсвэл нуух - + Sheet properties Хуудасны тохиргоо - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Project properties Төслийн тохиргоо - + Add a sheet Хуудас нэмэх - - - + + + Delete this sheet Энэ хуудсыг устгах - + Clean project Төслийг арилгах - + Add a summary Товч тайлбар нэмэх - + Export to CSV CSV-руу гаргах - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Схем засварлагчид - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Дэлгэцэнд харуулах - + Element texts - + Conductor texts - + Text fields - + Текстийн талбайнууд - + Shapes - + Pictures - + Tables - + Cross-references Давхардсан ишлэлүүд - + See Display > Show - + Add a nomenclature Нэршил нэмэх - + Terminal block manager (DEV) - + Launch the terminal block creation plugin Холболтын блок үүсгэх Plugin-г ажиллуулах - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Утаснуудын нэрсийн жагсаалтыг гаргах - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Төслийн дотоод мэдээллийн санг гаргах - + using tabs - + Shows the various opened projects in tabs status bar tip Бүх нээгдсэн төслүүдийг харуулах - + using windows - + Shows the various opened projects in windows status bar tip Бүх нээгдсэн төслүүдийг цонхнуудад харуулах - + &Tile &Tile - + Arranges windows in a tile pattern status bar tip Цонхнуудыг баганан маягаар зохицууулах - + &Cascade &Үргэлжилсэн - + Arranges windows in a cascade pattern status bar tip Цонхнуудыг давхарласан маягаар зохицуулах - + Select Сонгох - + Allows to select elements status bar tip Элементүүдийг сонгохыг зөвшөөрөх - + Move Зөөх - + Allows to view the sheet without modifying it status bar tip Хуудсыг засварлахгүйгээр харахыг зөвшөөрөх - + Next project Дараагийн төсөл - + Activates the next project status bar tip Дараагийн төслийг идэвхжүүлэх - + Previous project Өмнөх төсөл - + Activates the previous project status bar tip Өмнөх төслийг идэвхжүүлэх - + &New &Шинэ - + &Open &Нээх - + &Save &Хадгалах - + Save as Өөрчилт хийж хадгалах - - + + &Close &Хаах - + Creates a new project status bar tip Шинэ төсөл үүсгэх - + Opens an existing project status bar tip Байгаа файлыг нээх - + Closes the current project status bar tip Одоогийн төслийг хаах - + Saves the current project and all its sheets status bar tip Одоогийн төсөл болон түүний бүх хуудаснуудыг хадгалах - + Saves the current project with a different file name status bar tip Одоогийн файлыг өөр нэрээр хадгалах - + Add a column Багана нэмэх - + Remove a column Баганыг арилгах - + Add row Add row Эгнээ нэмэх - + Remove a row Remove row Эгнээг арилгах - + Add a column to the sheet status bar tip Хуудсанд багана нэмэх - + Remove a column from the sheet status bar tip Хуудаснаас баганыг арилгах - + Expands the sheet height status bar tip Хуудасны өндрийг ихэсгэх - + Shrinks the sheet height status bar tip Хуудасны өндрийг багасгах - + Delete Устгах - + Rotate Эргүүлэх - + Rotate the group - + Choose texts orientation Текстийн чигийг сонгох - + Horizontal mirror - + Vertical mirror - + Find in the panel - + Edit the selected item Сонгосон нэгжийг засварлах - + Group selected texts Сонгосон текстүүдийг нэгтгэх - - + + Group fr: Grouper - + Груп - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Хуудаснаас сонгосон элементүүдийг арилгах - + Rotate selected elements and texts status bar tip Сонгосон элементүүд болон текстүүдийг эргүүлэх - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip Сонгосон текстийг тодорхой өнцгөөр эргүүлэх - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Сонолтыг олох - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Бүгдийг сонгох - + Select none Юу ч сонгохгүй байх - + Invert selection Эсрэгээр сонгох - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Хуудсан дээрх бүх элементийг сонгох - + Deselect all elements on the sheet status bar tip Хуудсан дээрх бүх элементийг сонгохгүй байх - + Inverts selection of elements status bar tip Элементийн сонголтуудыг урвуу болгох - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In Ойртуулах - + Zoom Out Холдуулах - + Zoom content Таталт - + Fit in view - + Reset zoom Таталтыг хэвийн болгох - + Centre on the cursor - + Expand the sheet status bar tip Хуудсыг томсгох - + Shrinks the sheet status bar tip Хуудсыг жижгэсгэх - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip Хэвийн татаж харах түвшинг сэргээх - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield Текстийн талбайг нэмэх - + Add a picture Зураг нэмэх - + Add a PDF - + Add line Draw line Зураас нэмэх - + Add a rectangle Дөрвөн өнцөгт нэмэх - + Add an ellipse Зууван дүрс нэмэх - + Add an arc - + Нум нэмэх - + Add a polygon Олон өнцөгт нэмэх - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Одоогийн хуудсанд текстийн талбай нэмэх - + Add an image to the current sheet Одоогийн хуудсанд зураг нэмэх - + Adds a PDF page to the current sheet - + Add a line to the current sheet Одоогийн хуудсанд зураас нэмэх - + Adds a rectangle on the current sheet Одоогийн хуудсанд дөрвөн өнцөгт нэмэх - + Add an ellipse to the current sheet Одоогийн хуудсанд зууван дүрс нэмэх - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Одоогийн хуудсанд олон зураас нэмэх - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace Хайх / Солих - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Буцаах + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools Багажнууд + - Display Харуулах + - Diagram Схем + - Add Нэмэх + - Depth toolbar title Гүн - + Scripts toolbar title - + &File &Файл - + &Edit &Засах - + &Project &Төсөл - + Displ&ay Харуу&лах - + Wi&ndows Цо&нхнууд - + &Latest files &Сүүлийн файлууд - + &Add - + Selection - + Align - + Rows and columns - + Depth Гүн - - + + Scripts - + Display or hide the main toolbar Үндсэн цэсийг харуулах эсвэл нуух - + Display or hide the Display toolbar Дэлгэцийн цэсийг харуулах эсвэл нуух - + Display or hide the Diagram toolbar Схемийн цэсийг харуулах эсвэл нуух - + Show or hide the elements panel Элементийн самбарыг харуулах эсвэл нуух - + Display or hide the undo list Буцаалт хийгдсэн жагсаалтыг харуулах эсвэл нуух - + Display projects Төслүүдийг харуулах - - + + Project %1 registered in the directory: %2. %1 төсөл нь %2 лавлахад бүртгэгдсэн аайна. - + Open a file Файлыг нээх - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech төсөл(*.qet);;XML Файлууд (*.xml);;Бүх файлууд (*) - - + + Unable to open file message box title Файлыг нээх боломжгүй байна - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Таны нээхээр оролдож буй %1 файл нь устсан эсвэл байхгүй байна. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title Файлыг зөвхөн харах тохиргоогоор нээж байна - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title Төслийг нээх боломжгүй байна - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11395,7 +13191,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11404,24 +13200,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11432,23 +13228,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group Груп - + %n items put back on the grid @@ -11456,7 +13252,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11464,22 +13260,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11487,100 +13283,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Элементийг засварлах - + Edit the text field edit text field Текстийн талбайг засварлах - + Edit the image edit image Зургийг засварлах - + Edit conductor edit conductor Дамжуулагчийг засварлах - + Edit the selected object edit selected item Сонгосон биетийг засварлах - + An error occurred while opening file %1. message box content Файлыг нээх үед алдаа гарлаа %1. - + Activates the project « %1 » Төслийг идэвхжүүлэх « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Алдаа - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11588,7 +13384,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11596,7 +13392,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11604,18 +13400,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11624,28 +13420,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11653,12 +13449,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11668,53 +13464,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11722,8 +13518,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -11793,7 +13589,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Informations - + Мэдээллүүд @@ -12347,7 +14143,7 @@ please wait while importing... Element editors - + Элемент засварлагчид @@ -12708,52 +14504,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Төсөл « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Төсөл %1 - + Untitled project displayed title for a project-less, file-less project Нэргүй төсөл - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [зөвхөн унших] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [засагдсан] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12761,56 +14557,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message Загварыг оруулах үед алдаа гарав. - + Warning message box title Анхааруулга - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Төслийг нээж байна ...</b><br/>Creation of folios</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Төслийг нээж байна ...</b><br/>Setting up cross references</p> @@ -12836,166 +14632,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Одоогийн загварыг хадгалах уу? - + Do you wish to save the template %1? dialog content - %1 is a title block template name %1 загварыг хадгалахыг хүсч байна уу? - + new_template template name suggestion when duplicating the default one Шинэ загвар - + Duplicate a title block template input dialog title Гарчгийн блокын загварыг хувилах - + In order to duplicate this template, please enter a name for its copy input dialog text Энэ загварыг хувилахдаа хувилбарт нь нэр өгнө үү - + &New menu entry &Шинэ - + &Open menu entry &Нээх - + Open from a file menu entry Файлаас нээх - + &Save menu entry &Хадгалах - + Save as menu entry Нэр өгч хадгалах - + Save to a file menu entry Файл руу хадгалах - + &Quit menu entry &Гарах - + Cu&t menu entry Арилгаж хуулах - + &Copy menu entry &Хуулах - + &Paste menu entry &Хуулж тавмх - + Manage logos menu entry Логонуудыг удирдах - + Edit extra information menu entry Нэмэлт мэдээллийг засварлах - + Zoom In menu entry Ойртуулах - + Zoom out menu entry Холдуулах - + Fit in view menu entry Харахад тохиромжтой - + Reset zoom menu entry Таталтыг хэвийн болгох - + Add a &row menu entry Эгнээ &нэмэх - + Add a &column menu entry Багана &нэмэх - + &Merge cells menu entry &Нүднүүдийг нэгтгэх - + &Split cells menu entry &Нүднүүдийг салгах - - - - - - - - - - @@ -13005,156 +14791,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Гарчигийн загвар засварлагчид - + &File menu title &Файл - + &Edit menu title &Засах - + Displ&ay menu title Харуулах - + Tools toolbar title Хэрэгслүүд - + Edit toolbar title Засах - + Display toolbar title Харуулах - + No modification label displayed in the undo list when empty Тохиргоогүй - + Undo dock title Буцаах - + Cell properties dock title Нүдний тохиргоо - + [Changed] window title tag [Өөрчлөгдсөн] - + [Read only] window title tag [Зөвхөн унших] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Гарчгийн блокын загварыг засварлагч - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Алдаа - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Гарчгийн блокын загварыг нээх - + Open a file dialog title Файлыг нээх - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech - Гарчгийн блокын загвар (*%1);;XML files (*.xml);; All files (*) - + Save template as dialog window title Загварыг нэр өгч хадгалах - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Нэр өгч хадгалах - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech - Гарчгийн блокын загвар (*%1) - + Edit extra information window title Нэмэлт мэдээллийг засварлах - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13286,7 +15082,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13365,17 +15161,17 @@ the translated name of this folder could not be read, so its folder name is disp Нэмж оруулах - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13386,7 +15182,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Title Нэр @@ -13528,8 +15324,8 @@ the translated name of this folder could not be read, so its folder name is disp Холболт - + Text Текст @@ -13576,12 +15372,12 @@ the translated name of this folder could not be read, so its folder name is disp текст - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13662,21 +15458,31 @@ Do you want to replace it ? - + Warning: the element has been saved with a more recent version of QElectroTech. - + Add a nomenclature Нэршил нэмэх - + Add a summary Тайлбар нэмэх + + + Add a cable list + + + + + Cable list + + Sheet position @@ -13714,35 +15520,35 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation Тэсдэглэгээ - - - - + + + + Cross-reference @@ -13877,12 +15683,12 @@ Do you want to replace it ? Дотоод дугаар - - - - + + + + Function Функц @@ -14031,22 +15837,22 @@ Do you want to replace it ? Гүн - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14526,13 +16332,13 @@ Do you want to replace it ? - + delete %1 undo caption - %1 is a sentence listing the removed content устгах %1 - + Edit the cross reference edite the cross reference @@ -14556,8 +16362,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14573,10 +16379,10 @@ Do you want to replace it ? - + + - - + @@ -14622,83 +16428,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type Газардлага - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function Фаз - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14733,7 +16569,7 @@ Do you want to replace it ? - + Default layout @@ -14906,8 +16742,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15052,88 +16888,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 оруулах %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Текстийн өнгийг өөрчлөх - + Rotate a text - + Edit line of a form Формын шулууныг засварлах - + Edit filling a form Формын дүүргэлтийг засварлах - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Элементийн текстийг хянах - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15185,7 +17021,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15234,24 +17070,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table Хүснэгтийн хэмжээсийг өөрчлөх @@ -15576,88 +17412,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Засах %1 - + a line Зураас - + rectangle Дөрвөн өнцөгт - + an ellipse Зуйван - + an arc - + polyline Олон зураас - + a curve - + an shape Хэлбэр @@ -15706,6 +17542,14 @@ nothing has been changed. Дөрвөн өнцөгтийг өөрчлөх + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15744,6 +17588,17 @@ nothing has been changed. Ийм элемент « %1 » байна. Та юу хийх вэ? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16299,7 +18154,7 @@ Create your own text using the following variables: &Delete - + &Устгах @@ -16750,28 +18605,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Хуудасны автомат дугаарлалт - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16798,13 +18663,13 @@ If the digit defined in the Value field has fewer digits than the chosen type, i The "Incrementation" field is not used. - + Numbering conductors title window Дамжуулагчийн дугаарлалт - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16842,13 +18707,41 @@ The other fields are not used. The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16870,12 +18763,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19665,7 +21558,7 @@ The other fields are not used. Color : - + Өнгө : @@ -19782,44 +21675,44 @@ The other fields are not used. - + Bridging the terminals - + Unbridge the terminals - + Properties Тохиргоо - + Name: Нэр: - + Comment : - + Description - + Plant: Суурилуулах: - + Location : - + Байрлал: @@ -19827,13 +21720,13 @@ The other fields are not used. Төрөл: - + Ungroup the terminals - + Generic @@ -19873,22 +21766,67 @@ The other fields are not used. Газардлага - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : - + Phase Фаз - + Neutral - + Automatic position @@ -19898,12 +21836,12 @@ The other fields are not used. - + Group the terminals - + Function : Функц : @@ -19918,17 +21856,17 @@ The other fields are not used. - + LED : - + Independent terminals - + Modify terminal strip properties @@ -19997,12 +21935,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20044,7 +21982,7 @@ The other fields are not used. Header text - + Гарчиг текст @@ -20067,12 +22005,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20135,52 +22113,57 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function Функц - + led - + + Shield + + + + Number wire @@ -21308,7 +23291,7 @@ The following variables can be used: CSV files (*.csv) - + Файлууд csv (*.csv) @@ -21492,32 +23475,42 @@ The following variables can be used: - + Label cross reference - + Master Эзэн - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Боол - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21528,115 +23521,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil Ороомог - + Organ of protection Хамгаалалтын эрхтэн - + Switch / button Унтраалга / кноп - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer Доод хэсэг - + Under the label of the element Элементийн нэрний доор - + Top Дээд - + Bottom Доод - + Left Зүүн - + Right - + Баруун - + Text alignment Текстийн эгнээ - + Text field + + + Text: + Текст: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_nb.ts b/lang/qet_nb.ts index 6c72e7e2f..131130294 100644 --- a/lang/qet_nb.ts +++ b/lang/qet_nb.ts @@ -1161,6 +1161,23 @@ Anmerkning: Disse opsjonene endrer IKKE den automatiske nummereringen, bare dens + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Sletter + + BorderPropertiesWidget @@ -1206,7 +1223,7 @@ Anmerkning: Disse opsjonene endrer IKKE den automatiske nummereringen, bare dens Format: - + Format @@ -1221,11 +1238,1062 @@ Anmerkning: Disse opsjonene endrer IKKE den automatiske nummereringen, bare dens Landscape - + Landskap Portrait + Portrett + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Installasjon/System (=) + + + + Location (+) + Posisjon/lokasjon (+) + + + + Type + Type + + + + Cores + + + + + Plant + System + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + Preview + + + + cable_list_ + + + + + Save As... + Lagre som... + + + + CSV files (*.csv) + CSV-fil (*.csv) + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Type + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Installasjon/System (=) + + + + Location (+) + Posisjon/lokasjon (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Skrifttype + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Tykk + + + + Italic + Kursiv + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1272,13 +2340,13 @@ Anmerkning: Disse opsjonene endrer IKKE den automatiske nummereringen, bare dens Conductor - + Edit conductor properties undo caption Endre ledernes egenskaper - + Edit the properties of several conductors undo caption Endre flere ledernes egenskaper samtidig @@ -1334,7 +2402,7 @@ Anmerkning: Disse opsjonene endrer IKKE den automatiske nummereringen, bare dens Conductor color - + Lederfarge @@ -1802,7 +2870,7 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Unknown - + Ukjent @@ -1920,7 +2988,7 @@ Continue? Diagram - + Change the depth Endre nivå av utvalget @@ -2057,6 +3125,23 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2068,7 +3153,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2076,7 +3161,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2199,224 +3284,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image ett bilde - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Velg et bilde - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. Kunne ikke laste bildet - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2447,106 +3562,139 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Lederfarge DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Skjemaet lages i dette området - + Paste Here context menu action Lim inn her - + Multiple paste Lim inn flere ganger - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + Sidereferanse + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals Koble utvalgte kontakter - + Untitled what to display for untitled diagrams Ingen tittel - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. - + Choose the new color for this conductor Velg ny lederfarge - + Edit conductor properties undo caption Endre lederegenskaper @@ -2949,7 +4097,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3147,7 +4295,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3642,8 +4790,8 @@ Continue? - - + + Type Type @@ -3726,8 +4874,8 @@ Continue? - - + + Function Funksjon @@ -3759,7 +4907,7 @@ Continue? - + Simple Enkel @@ -3800,19 +4948,19 @@ Continue? - + Switch normally open NO/ubetjent åpen - + Switch normally closed NC/ubetjent lukket - + switch Veksler @@ -3828,25 +4976,25 @@ Continue? - + Power switch Lastkontakt - + Switch-on delayed forsinket på - + Switch-off delayed forsinket av - + Switch-on and off delayed forsinket av og på @@ -3872,7 +5020,7 @@ Continue? - + Generic @@ -3891,164 +5039,189 @@ Continue? Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral N-leder - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Kommentar - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Ingen - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5034,7 +6207,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Eksporter @@ -5414,97 +6587,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : Type: - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground Jordleder - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral N-leder - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5649,6 +6852,7 @@ that you create. Text and number inputs are + Browse... Velg... @@ -5832,8 +7036,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5844,474 +7051,578 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management Komponentorganisering - + Highlight freshly integrated elements in the panel Uthev nye komponenter i panelet - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Hver komponent inneholder informasjon om autor, lisens og ytterlige informasjoner i en egen tekstfelt. Her nede kan standardverdien for dette til dine egne komponenter angis. - + Languages - + Applied to the next launch of QElectroTech Aktiveres etter restart av QElectroTech - + texts Tekster - + Here you can define the default appearance of the different texts of QElectroTech Standardverdier for de forskjellige tekstene - + Elements texts Komponenttekstene - - - + + + Font: Skrifttype - - + + ° ° - + Length : Lengde - - + + Rotation : Rotasjon - + Independent texts Uavhengige tekstfelt - + Other texts Øvrige tekster - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard Raster & tastatur - + Grid: 1 - 30 Raster: 1 - 30 - + DiagramEditor yGrid Skjemategningenes rasterhøyde - + The Grid must be active to see the changes. Endringene er bare synlig ved aktivert raster - + DiagramEditor xGrid Skjemategningenes rasterbredde - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Forskyvning 1 - 30 med tastatur - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Skjemategning piltaste venstre/høyre forskyvning - + DiagramEditor (key: up / down) yGrid Skjemategning piltaste opp/ned forskyvning - + Keyboard movement with the ALT key: 1 - 9 Forskyvning med tastene [ALT] + [1]..[9] - + DiagramEditor (key: left / right) xGrid Skjemategning piltaste venstre/høyre forskyvning - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Skjemategning piltaste opp/ned forskyvning - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + Tykk + + + + Italic + Kursiv + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Deaktivert - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Felles - + System System - + Arabic Arabisk - + Brazilian Brasiliansk - + Catalan Katalansk - + Czech Tsjekkisk - + German Tysk - + Danish Dansk - + Greek Gresk - + English Engelsk - + Spanish Spansk - + French Fransk - + Croatian Kroatisk - + Italian Italiensk - + Japanese - + Korean - + Polish Polsk - + Portuguese Portugisik - + Romanian Rumensk - + Russian Russisk - + Slovenian Slovensk - + Dutch Nederlandsk - + Norwegian Norsk (bokmål) - + Belgium-Flemish Flamsk - + Turkish Tyrkisk - + Hungarian Ungarsk - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection Filbane til QET sin felles samling - + Company collection path - + User Collection Path Filbane til brukersamlingen - + Company title-blocks - + User Title blocks Path Filbane til tegningsmalene - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6320,50 +7631,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) CSV-fil (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6373,6 +7702,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + Høyre + + + + Top + Topp + + + + Bottom + Bunn + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Navn: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Navn + + + + Function + Funksjon + + + + Type + Type + + + + Add terminal + + + + + Add gap + + + + + Delete + Sletter + + + + Up + Over + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6500,135 +8168,93 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Form + Form - Display - Display + Display - Table name - Tabellnavn + Tabellnavn - None Ingen - All - Alle + Alle - Lines to display : - Rader som vises + Rader som vises - Y : - Y : + Y : - - Geometry and lines - - - - Next table - Neste tabell + Neste tabell - - Fit table to sheet - - - - X : - X : + X : - Previous table - Forrige tabell + Forrige tabell - - Apply geometry to all tables linked to this one - - - - Previous table : - Forrige tabell + Forrige tabell - TextLabel - Tekstnavn + Tekstnavn - Header - Kolonneoverskrifter + Kolonneoverskrifter - - Margin - Kanter + Kanter - Alignment : - Justering + Justering - - Left - Venstre + Venstre - - Center - Midtstilt + Midtstilt - - Right - Høyre + Høyre - - Font - Skrifttype + Skrifttype - Table - Tabell + Tabell - Alignment: - Justering + Justering - Content - Innhold + Innhold @@ -6745,6 +8371,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6804,7 +8453,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Komponentkode @@ -6960,80 +8609,51 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Form + Form - X : - X : + X : - Advanced Editor - Avansert editor + Avansert editor - Size : - Størrelse + Størrelse - Angle: - Vinkel + Vinkel - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Innhold, størrelse og tekstenes skrifttype kan bare endres i den avanserte editoren + Innhold, størrelse og tekstenes skrifttype kan bare endres i den avanserte editoren - Click here to cancel html formatting - Klikk her for å slette HTML-formateringen + Klikk her for å slette HTML-formateringen - Text - Tekst + Tekst - @@ -7475,7 +9095,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Utskrift @@ -7493,7 +9113,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Avbryt @@ -7862,6 +9482,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7965,63 +9593,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Side - + Conductor Leder - + Sheet references Sidereferanser - + Cross-references Kryssreferanser - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Leder - + Elements Komponenter - + Sheets Sider - + + Cables + + + + Auto Numbering Autonummerering - + New sheet configuration page title Ny side - + New project configuration page title Nytt prosjekt @@ -8151,133 +9784,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Kodeformat 1 - - - - + + + + number format 01 Kodeformat 01 - - - - - + + + + + number format 001 Kodeformat 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Tekst - - - - + + + + number format 1 - Sheet Nummerformat 1 - side - - - - + + + + number format 01 - Sheet Nummerformat 01 - side - - - - + + + + number format 001 - Sheet Nummerformat 001 - side - - - - + + + + Sheet no. Sidenummer - - - - + + + + Sheet Side - - - - + + + + Plant System - - - - + + + + Location Lokasjon - - - + + + Element Line Komponentets rad - - - + + + Element Column Komponentets kolonne - - - + + + Element Prefix Komponent prefiks @@ -8378,12 +10011,12 @@ Do you still want to link this slave contact? PartText - + Move a text Forskyv en tekst - + Edit the text field Endre et tekstfelt @@ -8391,12 +10024,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8793,7 +10426,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Utskrift @@ -8807,101 +10440,106 @@ Its copy was kept as: Autonummerering - + Management Forvaltning - - + + Conductors Leder - + No. - + Name Navn - + Sheet Side - + Element Komponent - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Komponenter - - + + Sheets Sider - + + Cables + + + + Sheet Auto Numbering Automatisk sidenummerering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8909,7 +10547,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8917,49 +10555,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8967,21 +10605,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8990,7 +10628,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8998,7 +10636,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9006,13 +10644,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Slett nummereringsregelen - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9021,12 +10659,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9034,12 +10672,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9047,7 +10685,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9056,80 +10694,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech-Prosjekt (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9150,19 +10788,12 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - - Form - - - - Request - Forespørsel + Forespørsel - Reload - Last på nytt + Last på nytt @@ -9483,7 +11114,7 @@ Give them another numbering first. Page layout - + Side layout @@ -9658,127 +11289,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption Laster... Gjenoppbygger komponentsamlingen - + Loading... Sheets editor splash screen caption Laster... Tegningseditor - + Loading... Opening files splash screen caption Laster... Åpner filene - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QElektroTech-maler - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Brukermaler - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Skjema - + Electric Normal example text - translate length, not meaning Elektro - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech instillinger - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9787,152 +11420,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Laster... - + Loading... Systray icon splash screen caption Laster... Systemmeldinger - + QElectroTech systray menu title QElectroTech - + &Quit A&vbryt - + &Hide &Skjul - + &Show V&is - + &Hide diagram editor Skjul alle skje&maeditorer - + &Show diagram editors Vis a&lle skjemaeditorer - + &Hide element editor Skj&ul alle komponenteditorer - + &Show element editor Vi&s alle komponenteditorer - + &Hide title block template editor systray submenu entry Skjul alle t&egningsmaleditorer - + &Show title block template editors systray submenu entry Vis alle te&gningsmaleditorer - + &New diagram editor &Ny skjemaeditor - + &New element editor Ny kom&ponenteditor - + Closes QElectroTech Lukk &QElectroTech - + Reduces QElectroTech into the systray Minimer QElectroTech - + Restore QElectroTech Hent opp QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Skjemaeditor - + Element editors Komponenteditor - + Title block template editors systray menu entry Tegningsmal-editor - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Bruk: - + [options] [file]... [Opsjoner] [Fil]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9949,34 +11639,34 @@ Tilgjengelige opsjoner: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Angir filbane til komponentsamlingen - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Angir filbane til tegningsmal-samlingen - + --config-dir=DIR Define configuration directory --config-dir=DIR Angir filbane til konfigurasjonen - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Angir filbane til språkfilene @@ -9986,1430 +11676,1524 @@ Tilgjengelige opsjoner: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Prosjekter - + Collections Samlinger - + No modification Ingen endring - + Click an action to get back in the changes you made to your diagram Status tip Klikk på aksjonen som skal reverseres - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Denne listen inneholder all gjennomførte endringer på den aktuelle siden. Et utvalg reverserer alle endringer inntil selve utvalget. - + Undo dock title Reverser - + &Export E&ksporter - + Exports the current sheet to another format status bar tip Eksporter aktuell side til et annet filformat - + Print Utskrift - + Prints one or more sheet of the current project status bar tip Skriv ut en eller flere sider av prosjektet - + &Quit &Bekreft - + Closes QElectroTech status bar tip Lukk QElectroTech - + Undo Reverser - + Undoes the previous action status bar tip Reverser siste handling - + Redo Gjenta - + Restores the undone action status bar tip Gjenopprett siste reversering - + Cu&t K&lipp - + &Copy Ko&pier - + &Paste L&im - + Puts selected elements into the clipboard status bar tip Flytter utvalgte komponenter til mellomlageret - + Copies selected elements status bar tip Kopierer utvalgte komponenter til mellomlageret - + Pastes elements from the clipboard into the sheet status bar tip Limer mellomlagerets innhold på siden - + Reset conductors Resett ledere - + Reset the conductors path ignoring the user changes status bar tip Tegner ledere på nytt uten at endringene brukes - + Automatic creation conductor (s) Tool tip of auto conductor Aktiver automatisk kobling av ledere - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Koble automatisk der det er mulig - + Display the grid Vis rasteret - + Display or hide the grid of sheet Vis rasteret på sidene - + Sheet properties Sideegenskaper - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Endre sideegenskaper (størrelse, tegningsmal, lederegenskaper...) - + Project properties Prosjektegenskaper - + Add a sheet Sett inn ny side - - - + + + Delete this sheet Slett siden - + Clean project Rense prosjektet - + Add a summary Sett inn innholdsfortegnelse - + Export to CSV Eksporter som CSV-fil - + Launch the terminal block creation plugin Starte klemmeplan-generator-plugin - + Export the list of names of wires Eksporter listen av ledernavn - + Export the internal project database Eksporter den interne prosjektdatabasen - + using tabs Bruk fliker - + Shows the various opened projects in tabs status bar tip Viser projektene som fliker - + using windows eller i egne vinduer - + Shows the various opened projects in windows status bar tip Viser åpne prosjekter i egne vinduer - + &Tile &Fliser - + Arranges windows in a tile pattern status bar tip Plasserer vinduene som fliser - + &Cascade s&tablet - + Arranges windows in a cascade pattern status bar tip Viser vinduene stablet - + Select Utvalgsmodus - + Allows to select elements status bar tip Tillater utvalg av komponenter - + Move Visningsmodus - + Allows to view the sheet without modifying it status bar tip Tillater visning av sider uten mulighet for endring - + Next project Neste prosjekt - + Activates the next project status bar tip Aktiverer det neste prosjektet - + Previous project Forrige prosjekt - + Activates the previous project status bar tip Aktiverer det forrige prosjektet - + &New &Nytt - + &Open &Åpne - + &Save &Lagre - + Save as Lagre som - - + + &Close L&ukk - + Creates a new project status bar tip Lager et nytt prosjekt - + Opens an existing project status bar tip Åpner et eksisterende prosjekt - + Closes the current project status bar tip Lukker prosjektet - + Saves the current project and all its sheets status bar tip Lagrer prosjektet med alle prosjektsidene - + Saves the current project with a different file name status bar tip Lagrer prosjketet med et nytt filnavn - + Add a column Sett inn rad - + Remove a column Sletter en kolonne - + Add row Add row Setter inn råd - + Remove a row Remove row Sletter rad - + Add a column to the sheet status bar tip Tilføyer en kolonne på siden - + Remove a column from the sheet status bar tip Sletter en kolonne på siden - + Expands the sheet height status bar tip Øker sidenes høyde - + Shrinks the sheet height status bar tip Krymper til sidehøyden - + Delete Sletter - + Rotate Roterer - + Choose texts orientation Roterer tekstene - + Find in the panel Søk i skjemaet - + Edit the selected item Endre utvalgt - + Group selected texts Grupperer de utvalgte tekstene - + Add a nomenclature Legg til en register - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Skjemaeditor - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Deaktivert - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Verktøylinjer - + Element texts - + Conductor texts - + Text fields - + Tekstfelt - + Shapes - + Pictures - + Tables - + Cross-references Kryssreferanser - + See Display > Show - + Terminal block manager (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Gruppe - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Sletter de utvalgte komponentene fra siden - + Rotate selected elements and texts status bar tip Roterer utvalgte komponenter og tekster - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip Roterer de utvalgte tekstene i eksakt vinkel - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Finner de utvalgte komponeter i skjemaet - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Velg alle - + Select none Forkast hele utvalget - + Invert selection Inverter utvalget - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Velg alle komponeter på siden - + Deselect all elements on the sheet status bar tip Forkast utvalg av komponenter på siden - + Inverts selection of elements status bar tip Velger alt som ikke var valgt hittil, og forkaster alt som hittil har vært valgt - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In Forstørr - + Zoom Out Forminsk - + Zoom content Vis alt - + Fit in view Tilpass - + Reset zoom Ingen zoom - + Centre on the cursor - + Expand the sheet status bar tip Øker sidestørrelsen - + Shrinks the sheet status bar tip Forminsker sidestørrelsen - + Adjusts the zoom to display all the contents of sheet regardless of context Tilpasser størrelse slik at hele sideinnhold vises, uavhengig av tegningsmalen - + Adjusts the zoom on exactly the part of the sheet status bar tip Tilpasser størrelsen til tegningsmalen - + Restores default zoom level status bar tip Tilbakestiller til standardstørrelsen - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield Sett inn tekstfelt - + Add a picture Sett inn et bilde - + Add a PDF - + Add line Draw line Sett inn en linje - + Add a rectangle Sett inn en rektangel - + Add an ellipse Sett inn en ellipse - + Add an arc - + Sett inn en bue - + Add a polygon Sett in et polygon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Setter inn et tekstfelt på den aktuelle siden - + Add an image to the current sheet Setter in et bilde/grafikk på den aktuelle siden - + Adds a PDF page to the current sheet - + Add a line to the current sheet Setter inn en linje på den aktuelle siden - + Adds a rectangle on the current sheet Setter inn en rektangel på den aktuelle siden - + Add an ellipse to the current sheet Setter inn en ellipse på den aktuelle siden - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Setter inn et polygon på den aktuelle siden - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace Søk/erstatt - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools Verktøy + - Display Display + - Diagram Skjema + - Add Sett inn + - Depth toolbar title Dybde/nivå - + Scripts toolbar title - + &File &Fil - + &Edit &Endre - + &Project Prosjekt - + Displ&ay Statusl&inje - + Wi&ndows Vind&uer - + &Latest files Tidligere åpnet - + &Add - + Selection - + Align - + Rows and columns - + Depth Dybde/nivå - - + + Scripts - + Display or hide the main toolbar Viser/skjuler verktøylinjen - + Display or hide the Display toolbar Viser/skjuler statuslinjen - + Display or hide the Diagram toolbar Viser/skjuler skjema-verktøylinjen - + Show or hide the elements panel Viser/skjuler komponentpanelet - + Display or hide the undo list Viser/skjuler endringslisten - + Display projects Vis prosjektene - - + + Project %1 registered in the directory: %2. Prosjekt %1 lagret i filbane %2. - + Open a file Åpne en fil - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech-prosjekter (*.qet);; XML-filer (*.xml);;Alle filer (*) - - + + Unable to open file message box title Får ikke åpnet filen - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Det ser ut som om filen %1 du vil åpne ikke finnes - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Du har ikke tilstekkelig myndighet/tillatelse for å få adgang til filen - + Opening the file read-only message box title Åpner prosjekt i lesemodus - + The project you try to open does not seem writable. It will be opened read-only. Du har ikke tillatelse for å skrive prosjeket, den åpnes skrivebeskyttet isteden. - - + + Unable to open project message box title Får ikke åpnet prosjektet - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Det ser ut som om filen %1 ikke er noe QElectroTech-prosjektfil. Den kan ikke åpnes. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11418,7 +13202,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11427,24 +13211,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11455,23 +13239,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group Gruppe - + %n items put back on the grid @@ -11479,7 +13263,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11487,22 +13271,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11510,100 +13294,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Endre komponent - + Edit the text field edit text field Endre tekstboks - + Edit the image edit image Endre bilde - + Edit conductor edit conductor Endre leder - + Edit the selected object edit selected item Endre utvalg - + An error occurred while opening file %1. message box content Huffda, får ikke åpnet filen %1 - + Activates the project « %1 » Aktiverer prosjekt "%1" - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Fy faen, en feil - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11611,7 +13395,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11619,7 +13403,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11627,18 +13411,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11647,28 +13431,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11676,12 +13460,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11691,53 +13475,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11745,8 +13529,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12370,7 +14154,7 @@ please wait while importing... Element editors - + Komponenteditor @@ -12731,52 +14515,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Prosjekt "%1: %2" - + Project %1 displayed title for a title-less project - %1 is the file name Prosjekt %1 - + Untitled project displayed title for a project-less, file-less project Prosjekt uten tittel - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [skrivebeskyttet] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [endret] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12784,56 +14568,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message Det oppstod en feil ved bruk av sidemalen - + Warning message box title Advarsel - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Åpner prosjektet...</b><br/>Sidene lages</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Åpner prosjektet...</b><br/>Laster inn kryssreferansene</p> @@ -12859,166 +14643,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Lagre aktuell tegningsmal? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Vil du lagre malen %1? - + new_template template name suggestion when duplicating the default one Ny_tegningsmal - + Duplicate a title block template input dialog title Kopier tegningsmalen - + In order to duplicate this template, please enter a name for its copy input dialog text For å kopiere tegningsmalen sett inn et nytt navn til kopien - + &New menu entry &Ny - + &Open menu entry Å&pne - + Open from a file menu entry Åpne fra fil - + &Save menu entry &Lagre - + Save as menu entry Lagre s&om - + Save to a file menu entry Lagre som fil - + &Quit menu entry A&vslutt - + Cu&t menu entry K&lipp - + &Copy menu entry &Kopier - + &Paste menu entry Lim i&nn - + Manage logos menu entry Forvaltning av logoer - + Edit extra information menu entry Endre utvidet informasjon - + Zoom In menu entry Forstørr - + Zoom out menu entry Forminsk - + Fit in view menu entry Tilpass - + Reset zoom menu entry Opprinnelig størrelse - + Add a &row menu entry Sett inn &rad - + Add a &column menu entry Sett inn k&olonne - + &Merge cells menu entry Slå s&ammen feltene - + &Split cells menu entry Sk&ill sammenslåtte feltene - - - - - - - - - - @@ -13028,156 +14802,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Tegningsmal-editor - + &File menu title &Fil - + &Edit menu title &Endre - + Displ&ay menu title V&is - + Tools toolbar title Verktøy - + Edit toolbar title Endre - + Display toolbar title Vis - + No modification label displayed in the undo list when empty Ingen endring - + Undo dock title Tilbakeføringer - + Cell properties dock title Feltegenskaper - + [Changed] window title tag [Endret] - + [Read only] window title tag [Skrivebeskyttet] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Tegningsmal-editor - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Åpne en mal - + Open a file dialog title Åpne en fil - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech-tegningsmaler (*%1);;XML-filer (*.xml);;Alle filer (*) - + Save template as dialog window title Lagre tegningsmal som - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Lagre som - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech-tegningsmaler (*%1) - + Edit extra information window title Endre tilleggsinformasjon - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Dette tekstfeltet kan brukes for å nevne tegninsmalenes autor, lisens eller andre tilleggsinformasjoner @@ -13309,7 +15093,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13390,17 +15174,17 @@ the translated name of this folder could not be read, so its folder name is disp Sett inn - + Select an image ... Velg et bilde - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Bildefiler (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. Kunne ikke laste bildet @@ -13411,7 +15195,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Title Tittel @@ -13553,8 +15337,8 @@ the translated name of this folder could not be read, so its folder name is disp Koblingspunkt - + Text Tekst @@ -13601,12 +15385,12 @@ the translated name of this folder could not be read, so its folder name is disp tekst - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13688,7 +15472,7 @@ Vil du erstatte den? Kopier til mellomlageret - + Warning: the element has been saved with a more recent version of QElectroTech. Advarsel: Komponenten ble lagret med en nyere versjon av QElectroTech. @@ -13848,22 +15632,22 @@ Vil du erstatte den? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Installasjon av plugin qet_tb_generator<br>Se:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Benötigt python 3.5 oder höher.<br><B><U> Erste Installation unter Windows</B></U><br>1. Python 3.5 oder höher installieren<br> Siehe:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update under Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>Plug-in (Skript) flyttes i denne permen og kjøres så derifra:<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Feil ved start av qet_tb_generator-plugin @@ -13966,45 +15750,45 @@ Vil du erstatte den? - + - + Type Type - + - + Address - - - - + + + + Annotation Kommentar - - - - + + + + Cross-reference - - - - + + + + Function Funksjon @@ -14542,13 +16326,13 @@ Vil du erstatte den? Endre tegningsmalen - + delete %1 undo caption - %1 is a sentence listing the removed content Slett %1 - + Edit the cross reference edite the cross reference Endre kryssreferanser @@ -14572,8 +16356,8 @@ Vil du erstatte den? - + Rotate %1 @@ -14589,25 +16373,35 @@ Vil du erstatte den? Lage lederforbindelse - + Add a nomenclature Legg til et register - + Add a summary Sett inn innholdsfortegnelse + + + Add a cable list + + + + + Cable list + + Paste - + + - - + @@ -14648,83 +16442,113 @@ Vil du erstatte den? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type Jordleder - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function Fase - + Neutral neutral terminal element function N-leder - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14759,7 +16583,7 @@ Vil du erstatte den? - + Default layout @@ -14932,8 +16756,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15078,88 +16902,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 Sett inn %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Endre tekstfargen - + Rotate a text - + Edit line of a form Endre figurens linje - + Edit filling a form Endre figurens fylling - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Endre en komponenttekst - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15211,7 +17035,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Side @@ -15260,24 +17084,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table Endre tabellenes dimensjon @@ -15602,88 +17426,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Endre %1 - + a line en linje - + rectangle et rektangel - + an ellipse en ellipse - + an arc - + polyline et polygon - + a curve - + an shape en figur @@ -15732,6 +17556,14 @@ nothing has been changed. Endre et rektangel + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15770,6 +17602,17 @@ nothing has been changed. Komponent %1 finnes allerede. Hva skal du gjøre? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16330,7 +18173,7 @@ Disse variablene er tilgjengelig: &Delete - + &Slett @@ -16781,28 +18624,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Automatisk sidenummerering - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16828,13 +18681,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window Automatisk ledernummerering - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16871,13 +18724,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16899,12 +18780,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19694,7 +21575,7 @@ The other fields are not used. Color : - + Farge: @@ -19811,44 +21692,44 @@ The other fields are not used. - + Bridging the terminals - + Unbridge the terminals - + Properties Egenskaper - + Name: Navn: - + Comment : - + Description - + Plant: Anlegg/System: - + Location : - + Lokasjon: @@ -19856,13 +21737,13 @@ The other fields are not used. Type: - + Ungroup the terminals - + Generic @@ -19902,22 +21783,67 @@ The other fields are not used. Jordleder - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : - + Phase Fase - + Neutral N-leder - + Automatic position @@ -19927,12 +21853,12 @@ The other fields are not used. - + Group the terminals - + Function : @@ -19947,17 +21873,17 @@ The other fields are not used. - + LED : - + Independent terminals - + Modify terminal strip properties @@ -20026,12 +21952,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20073,7 +21999,7 @@ The other fields are not used. Header text - + Overskriftstekst @@ -20096,12 +22022,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20164,52 +22130,57 @@ The other fields are not used. TerminalStripModel - + Position Posisjon - + Stage - + Label Komponentkode - + Cross-reference - + Cable - + Color / wire number of the cable - + Type Type - + Function Funksjon - + led - + + Shield + + + + Number wire @@ -21336,7 +23307,7 @@ variablen "volta" kombiniert med verdi "1745" I tegningsmale CSV files (*.csv) - + CSV-fil (*.csv) @@ -21520,32 +23491,42 @@ variablen "volta" kombiniert med verdi "1745" I tegningsmale Vis som tabell - + Label cross reference Kryssreferansetekster - + Master Master - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Slave - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21562,115 +23543,141 @@ variablen "volta" kombiniert med verdi "1745" I tegningsmale %LM: plassering/lokasjon - + Option display cross Opsjoner ved visning som tabell - + Show the power contacts in the cross Vis lastkontakter - + Prefix of power contacts : Prefiks for lastkontakter: - + Prefix delayed contacts : Prefiks for tidsforsinkede kontakter: - + Prefix changeover contacts : Prefiks for vekslerkontakter: - + Coil Spole - + Organ of protection Vern - + Switch / button Bryter/knapp - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer Ved sidebunnen - + Under the label of the element Under komponentkoden - + Top Topp - + Bottom Bunn - + Left Venstre - + Right - + Høyre - + Text alignment Tekstjustering - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Eksporter den interne prosjektdatabasen - + untitled Uten_navn diff --git a/lang/qet_nl.ts b/lang/qet_nl.ts index 02eae35f9..950f25d2b 100644 --- a/lang/qet_nl.ts +++ b/lang/qet_nl.ts @@ -1158,6 +1158,23 @@ Noot: Geen van deze opties bepalen het al of niet automatisch nummeren maar alle + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Verwijderen + + BorderPropertiesWidget @@ -1182,7 +1199,7 @@ Noot: Geen van deze opties bepalen het al of niet automatisch nummeren maar alle Format: - + Formaat: @@ -1213,16 +1230,1067 @@ Noot: Geen van deze opties bepalen het al of niet automatisch nummeren maar alle Custom - + Eigen gegevens Landscape - + Landschap Portrait + Portret + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kabel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Installatie (=) + + + + Location (+) + Locatie (+) + + + + Type + Type + + + + Cores + + + + + Plant + Installatie + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Inclusief kopteksten + + + + Preview + Voorbeeld + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + Fout + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Kabel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kabel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Type + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Installatie (=) + + + + Location (+) + Locatie (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Lettertype: + + + + pt + + + + + Size: + + + + + Normal + Normaal + + + + Bold + Vetgedrukt + + + + Italic + Cursief + + + + Bold italic + + + + + Style: + Stijl : + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Uitlijning: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Voorbeeld : + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1269,13 +2337,13 @@ Noot: Geen van deze opties bepalen het al of niet automatisch nummeren maar alle Conductor - + Edit conductor properties undo caption Eigenschappen van één geleider wijzigen - + Edit the properties of several conductors undo caption Eigenschappen van meerdere geleiders wijzigen @@ -1331,7 +2399,7 @@ Noot: Geen van deze opties bepalen het al of niet automatisch nummeren maar alle Conductor color - + Geleiderkleur @@ -1793,13 +2861,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Overig Unknown - + Onbekend @@ -1917,7 +2985,7 @@ Continue? Diagram - + Change the depth Laagdiepte wijzigen @@ -2054,6 +3122,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2065,7 +3150,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2073,7 +3158,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2196,224 +3281,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image een afbeelding - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Selecteer een afbeelding... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Fout - + Unable to load the image. Kan afbeelding niet laden. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2444,106 +3559,139 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Geleiderkleur DiagramView - + Paste Here context menu action Hier plakken - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip In dit gebied kunnen schema's worden gemaakt door het toevoegen van elementen en deze d.m.v. geleiders met elkaar te verbinden. Tevens kunnen hier losse teksten worden geplaatst. - + Multiple paste Meervoudig plakken - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference + Schemabladenoverzicht + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Geselecteerde klemmen verbinden - + Untitled what to display for untitled diagrams Naamloos - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Fout - + The file could not be written. - + Choose the new color for this conductor Kies de nieuwe kleur voor deze geleider - + Edit conductor properties undo caption Eigenschappen van een geleider wijzigen @@ -2946,7 +4094,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3144,7 +4292,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3639,8 +4787,8 @@ Continue? - - + + Type Type @@ -3723,8 +4871,8 @@ Continue? - - + + Function Functie @@ -3756,7 +4904,7 @@ Continue? - + Simple Enkelvoudig @@ -3797,19 +4945,19 @@ Continue? - + Switch normally open Normaal geopend - + Switch normally closed Normaal gesloten - + switch Geïnverteerd @@ -3825,25 +4973,25 @@ Continue? - + Power switch Vermogen - + Switch-on delayed Vertraagd opkomend - + Switch-off delayed Vertraagd afvallend - + Switch-on and off delayed Vertraagd opkomend & afvallend @@ -3869,7 +5017,7 @@ Continue? - + Generic Algemeen @@ -3888,164 +5036,189 @@ Continue? Diode Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Nul - - - - - + + + + + T%1 - + Other fr: Autre - + Overig - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Commentaar - + Cross-reference - + Kruisverwijzing - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Geen - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5033,7 +6206,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Exporteren @@ -5414,97 +6587,127 @@ Teksten en nummers zijn ook beschikbaar. + Filter by label (e.g. Z1) + + + + Move to : Verplaatsen naar : - + Type : Type : - + Function : Functie : - + LED : LED : - + Apply displacement Verplaatsing toepassen - - + + Generic Algemeen - + Fuse Zekering - + Sectionable Deelbaar - + Diod Diode - + Ground Aarde - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Nul - + Without Zonder - + With Met - + Modify terminal strip properties Eigenschappen van aansluitklemmen wijzigen - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5550,12 +6753,12 @@ Teksten en nummers zijn ook beschikbaar. Gebruik systeemkleuren - + User Collection Path Pad naar de gebruikerscollectie - + Path of the Common Collection Pad naar de algemene collectie @@ -5577,6 +6780,7 @@ Teksten en nummers zijn ook beschikbaar. + Browse... Bladeren... @@ -5618,7 +6822,7 @@ Teksten en nummers zijn ook beschikbaar. min - + User Title blocks Path Pad naar eigen titelblokken @@ -5648,48 +6852,48 @@ Teksten en nummers zijn ook beschikbaar. Eigen titelblokkencollectie - + Elements management Elementenbeheer - + Highlight freshly integrated elements in the panel Markeer nieuw toegevoegde elementen in het paneel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Elk element bevat een vrij tekstveld met informatie over de auteur, de licentie of andere relevante informatie. Hieronder kan de standaardtekst voor nieuwe elementen worden opgegeven: - + Applied to the next launch of QElectroTech Toegepast na herstarten van QElectroTech - + Here you can define the default appearance of the different texts of QElectroTech Hier kan de standaardweergave van verschillende QElectroTech-teksten worden ingesteld - + Grid + Keyboard Raster + Toetsenbord - + Grid: 1 - 30 Raster in schemabewerker - + DiagramEditor xGrid In x-richting: (1 - 30) - + DiagramEditor yGrid In y-richting: (1 - 30) @@ -5873,8 +7077,11 @@ Hieronder kan de standaardtekst voor nieuwe elementen worden opgegeven: + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5885,149 +7092,217 @@ Hieronder kan de standaardtekst voor nieuwe elementen worden opgegeven: + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Taal - + texts Teksten - + Elements texts Elementteksten - - - + + + Font: Lettertype: - - + + ° ° - + Length : Grootte : - - + + Rotation : Rotatie : - + Independent texts Losse teksten - + Other texts Overige teksten - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Het raster moet geactiveerd zijn om de wijzigingen te kunnen zien. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Verplaatsing van selectie met pijltjestoetsen - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Pijltje links / rechts in x-richting: (1 - 30) - + DiagramEditor (key: up / down) yGrid Pijltje omhoog / omlaag in y-richting: (1 - 30) - + Keyboard movement with the ALT key: 1 - 9 Verplaatsing van selectie met ALT + pijltjestoetsen - + DiagramEditor (key: left / right) xGrid ALT + Pijltje links / rechts in x-richting: (1 - 9) - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid ALT + Pijltje omhoog / omlaag in y-richting: (1 - 9) - + View grid Raster - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Diagram-Editor rasterpuntgrootte: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 Element-Editor rasterpuntgrootte: 1 - 5 - + Editor Elementenbewerker - + Max. parts in Element Editor List Maximum aantal onderdelen in elementenbewerkerslijst @@ -6052,265 +7327,301 @@ Hieronder kan de standaardtekst voor nieuwe elementen worden opgegeven:Algemene configuratie - + + Bold italic + + + + + Bold + Vetgedrukt + + + + Italic + Cursief + + + + Normal + Normaal + + + Rounding up for 0.5 and more Naar boven afronden bij meer dan 0,5 - + Always top rounding Altijd naar boven afronden - + Always rounded down Altijd naar beneden afronden - + Rounding up for 0.75 and more Naar boven afronden bij meer dan 0.75 - + No rounding Niet afronden - + Disabled fr: Désactivée - + Uitschakelen - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Algemeen - + System Systeem - + Arabic Arabisch - + Brazilian Braziliaans - + Catalan Catalaans - + Czech Tsjechisch - + German Duits - + Danish Deens - + Greek Grieks - + English Engels - + Spanish Spaans - + French Frans - + Croatian Kroatisch - + Italian Italiaans - + Japanese Japans - + Korean - + Polish Pools - + Portuguese Portugees - + Romanian Roemeens - + Russian Russisch - + Slovenian Sloveens - + Dutch Nederlands - + Norwegian Noors - + Belgium-Flemish Belgisch Vlaams - + Turkish Turks - + Hungarian Hongaars - + Mongolian Mongools - + Ukrainian Oekraïens - + Chinese Chinees - + Swedish Zweeds - + + Cable text font + + + + + Core colors font + + + + Company collection path Map bedrijfscollectie - + Company title-blocks Map bedrijfstitelblokken - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6319,50 +7630,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Te hoge waarden kunnen leiden tot vastlopen van de applicatie. - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6372,6 +7701,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Links + + + + Right + Rechts + + + + Top + Boven + + + + Bottom + Onder + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Informatie + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Naam + + + + Function + Functie + + + + Type + Type + + + + Add terminal + + + + + Add gap + + + + + Delete + Verwijderen + + + + Up + Bovenaan + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Algemeen + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6499,135 +8167,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Tabeleigenchappen + Tabeleigenchappen - Display - Weergave + Weergave - Table name - Tabelnaam + Tabelnaam - None Geen - All - Alle + Alle - Lines to display : - Weergegeven rijen: + Weergegeven rijen: - Y : - Y : + Y : - Next table - Volgende tabel + Volgende tabel - X : - X : + X : - Previous table - Vorige tabel + Vorige tabel - Previous table : - Vorige tabel : + Vorige tabel : - Geometry and lines - Afmetingen en rijen + Afmetingen en rijen - Apply geometry to all tables linked to this one - Pas de afmetingen toe op alle hieraan gekoppelde tabellen + Pas de afmetingen toe op alle hieraan gekoppelde tabellen - Fit table to sheet - Pas de tabel aan op het schemablad + Pas de tabel aan op het schemablad - TextLabel - Tekstlabel + Tekstlabel - Header - Kop + Kop - - Margin - Marge + Marge - Alignment : - Uitlijning : + Uitlijning : - - Left - Links + Links - - Center - Midden + Midden - - Right - Rechts + Rechts - - Font - Lettertype + Lettertype - Table - Tabel + Tabel - Alignment: - Uitlijning: + Uitlijning: - Content - Inhoud + Inhoud @@ -6745,6 +8383,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6804,7 +8465,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Label @@ -6960,76 +8621,48 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Tekstbewerker + Tekstbewerker - X : - X : + X : - Advanced Editor - Geavanceerde tekstbewerker + Geavanceerde tekstbewerker - Size : - Breedte : + Breedte : - Angle: - Hoek : + Hoek : - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - De inhoud, de grootte en het lettertype van een tekst kan in html-weergave niet worden gewijzigd. + De inhoud, de grootte en het lettertype van een tekst kan in html-weergave niet worden gewijzigd. Hiervoor wordt de geavanceerde tekstbewerker gebruikt. - Text - Tekst + Tekst - @@ -7037,9 +8670,8 @@ Hiervoor wordt de geavanceerde tekstbewerker gebruikt. Lettertype - Click here to cancel html formatting - Klik hier om de html-opmaak te verwijderen + Klik hier om de html-opmaak te verwijderen @@ -7476,7 +9108,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Afdrukken @@ -7494,7 +9126,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Annuleren @@ -7693,7 +9325,7 @@ Do you still want to link this slave contact? Cross-reference - + Kruisverwijzing @@ -7863,6 +9495,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7966,63 +9606,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Schemablad - + Conductor Geleider - + Sheet references Schemabladenoverzicht - + Cross-references Kruisverwijzingen - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Geleiders - + Elements Elementen - + Sheets Schemabladen - + + Cables + + + + Auto Numbering Automatisch nummeren - + New sheet configuration page title Nieuw schemablad - + New project configuration page title Nieuw project @@ -8152,133 +9797,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Cijfer 1 - - - - + + + + number format 01 Cijfer 01 - - - - - + + + + + number format 001 Cijfer 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Tekst - - - - + + + + Sheet no. Schemabladnummer - - - - + + + + Sheet Schemablad - - - - + + + + number format 1 - Sheet Cijfer 1 - Schemablad - - - - + + + + number format 01 - Sheet Cijfer 01 - Schemablad - - - - + + + + number format 001 - Sheet Cijfer 001 - Schemablad - - - - + + + + Location Machinelocatie - - - - + + + + Plant Installatie - - - + + + Element Line Elementrij - - - + + + Element Column Elementkolom - - - + + + Element Prefix Elementvoorvoegsel @@ -8379,12 +10024,12 @@ Do you still want to link this slave contact? PartText - + Move a text Tekstveld verplaatsen - + Edit the text field Tekstveld wijzigen @@ -8392,12 +10037,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8800,7 +10445,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Afdrukken @@ -8814,101 +10459,106 @@ Its copy was kept as: Automatisch nummeren - + Management Beheer - - + + Conductors Geleiders - + No. - + Name Naam - + Sheet Schemablad - + Element Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Elementen - - + + Sheets Schemabladen - + + Cables + + + + Sheet Auto Numbering Automatische schemabladnummering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8916,7 +10566,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8924,49 +10574,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8974,21 +10624,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8997,7 +10647,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9005,7 +10655,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9013,13 +10663,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Nummering verwijderen - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9028,12 +10678,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9041,12 +10691,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9054,7 +10704,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9063,80 +10713,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech-project (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9157,19 +10807,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Dialoog + Dialoog - Request - Verzoek + Verzoek - Reload - Herladen + Herladen @@ -9665,73 +11312,75 @@ Do you want to save changes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QElectroTech titelbloksjablonen - + Company title-blocks title of the company's title block templates collection Bedrijfsstuklijsten - + User title blocks title of the user's title block templates collection Mijn titelbloksjablonen - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Fout - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9740,234 +11389,291 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Einde - + &Hide &Verbergen - + &Show &Herstellen - + &Hide diagram editor Verberg &alle schemabewerkingsvensters - + &Show diagram editors &Herstel alle schemabewerkingsvensters - + &Hide element editor &Verberg alle elementbewerkingsvensters - + &Show element editor &Herstel alle elementbewerkingsvensters - + &Hide title block template editor systray submenu entry &Verberg alle titelblokbewerkingsvensters - + &Show title block template editors systray submenu entry &Herstel alle titelblokbewerkingsvensters - + &New diagram editor &Nieuw schemabewerkingsvenster - + &New element editor &Nieuw elementbewerkingsvenster - + Closes QElectroTech QElectroTech afsluiten - + Reduces QElectroTech into the systray Minimaliseer QElectroTech naar het systeemvak - + Restore QElectroTech Herstel QElectroTech - + Diagram editors Schemabewerkingsvensters - + Element editors Elementbewerkingsvensters - + Title block template editors systray menu entry Titelblokbewerkingsvensters - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Gebruik: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Definieer de map voor de elementencollectie - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definieer de map voor de titelbloksjablonencollectie - + --config-dir=DIR Define configuration directory --config-dir=DIR Definieer de configuratiemap - + --data-dir=DIR Define data directory --data-dir=DIR Definieer de datamap - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Definieer de taalbestandenmap - + Loading... Initializing the elements collection cache splash screen caption Laden... Initialisatie van de elementencollectie-cache - + Loading... Sheets editor splash screen caption Laden... Schemabewerker - + Loading... Opening files splash screen caption Laden... Openen van bestanden - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schema - + Electric Normal example text - translate length, not meaning Electrisch - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configureer QElectroTech - + Loading... splash screen caption Laden... - + Loading... Systray icon splash screen caption Laden... systeemvakpictogram - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + [options] [file]... @@ -9976,7 +11682,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9996,900 +11702,950 @@ Opties : QETDiagramEditor - + Displ&ay Weer&gave - + Show or hide the elements panel Toon of verberg het apparatenpaneel - + Add a column Kolom toevoegen - + &Cascade &Achter elkaar - + &Paste P&lakken - + &Copy K&opiëren - + Cu&t Kn&ippen - + Select none Selecteer niets - + &Edit &Bewerken - + Remove a column Kolom verwijderen - + &Save &Opslaan - + Save as Opslaan als - + &Export E&xporteren - + Wi&ndows Ve&nsters - - + + &Close &Sluiten - + &File &Bestand - + Print Afdrukken - + Invert selection Selectie omkeren - + Select Selecteren - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Dit paneel toont de geschiedenis van acties op het huidige schemablad. Klik op een actie om deze ongedaan te maken. - + Display the grid Raster weergeven - + Display or hide the grid of sheet Toon of verberg het raster - + Sheet properties Schemabladeigenschappen - + Add a sheet Schemablad toevoegen - - - + + + Delete this sheet Schemablad verwijderen - + Move Schuiven - + &Tile &Naast elkaar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Schemabewerkingsvensters - + Export in pdf Exporteren als pdf - + Export one or more sheets of the current project status bar tip Eén of meer schemabladen uit het huidige project exporteren - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Uitschakelen - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Weergave van panelen en werkbalken - + Element texts - + Conductor texts - + Text fields - + Tekstvelden - + Shapes - + Pictures - + Tables - + Cross-references Kruisverwijzingen - + See Display > Show - + Export to CSV Exporteren naar CSV-formaat - + Terminal block manager (DEV) Aansluitklemmenbeheer - + Launch the terminal block creation plugin Start de plugin voor het maken van klemmenstroken - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Lijst met namen van geleiders exporteren - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Interne gegevens van het project exporteren - + &New &Nieuw - + Creates a new project status bar tip Maak een nieuw project - + Opens an existing project status bar tip Open een bestaand project - + Closes the current project status bar tip Sluit het huidige project - + Saves the current project and all its sheets status bar tip Sla het huidige project en alle schemabladen op - + Saves the current project with a different file name status bar tip Sla het huidige project onder een andere bestandsnaam op - + Add row Add row Rij toevoegen - + Remove a row Remove row Rij verwijderen - + Add a column to the sheet status bar tip Voeg een kolom aan het schemablad toe - + Remove a column from the sheet status bar tip Verwijder een kolom van het schemablad - + Expands the sheet height status bar tip Voeg een rij toe aan het schemablad - + Shrinks the sheet height status bar tip Verwijder een rij van het schemablad - + Rotate the group - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Groep - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Verwijder de geselecteerde elementen van het schemablad - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Selecteer alle elementen op het schemablad - + Deselect all elements on the sheet status bar tip Deselecteer alle elementen op het schemablad - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Expand the sheet status bar tip Schemablad vergroten - + Shrinks the sheet status bar tip Schemablad verkleinen - + Adjusts the zoom to display all the contents of sheet regardless of context Pas de zoom aan zodat de inhoud onafhankelijk van het kader wordt getoond - + Adjusts the zoom on exactly the part of the sheet status bar tip Pas de zoom aan zodat het kader volledig wordt getoond - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add line Draw line Lijn toevoegen - + Add a rectangle Rechthoek toevoegen - + Add an ellipse Ellips toevoegen - + Add an arc - + Cirkelboog toevoegen - + Add a polygon Veelhoek toevoegen - + Add a fillet - + + Add a generic device… + + + + + Draw a cable + + + + Adds an arc on the current sheet - + Rounds the corner between two lines of the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Scripts toolbar title - + + Numbering + + + + + Lists + + + + Selection - + Depth Lagen - - + + Scripts - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -10899,8 +12655,46 @@ If you save the project, these conductors will disappear from the file. Close it + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + - + %n items aligned @@ -10908,32 +12702,38 @@ If you save the project, these conductors will disappear from the file. Close it - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + + Edit the cable + edit cable + + + + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -10941,7 +12741,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -10949,7 +12749,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -10957,18 +12757,18 @@ If you save the project, these conductors will disappear from the file. Close it - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -10977,33 +12777,33 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Remembered after a restart - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11011,12 +12811,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11026,53 +12826,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11080,32 +12880,32 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Exports the current sheet to another format status bar tip Exporteer het huidige schemablad naar een ander formaat - + Prints one or more sheet of the current project status bar tip Druk een of meerdere schemabladen van het huidige project af + - Depth toolbar title Lagen - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11114,7 +12914,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11123,512 +12923,512 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + Project fonts message box title - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group Groep - + Pastes elements from the clipboard into the sheet status bar tip Plaats elementen van het klembord op het schemablad - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Bewerk de schemabladeigenschappen (afmetingen, titelblokinformatie, geleidereigenschappen...) - + Allows to view the sheet without modifying it status bar tip De inhoud van het schemablad verschuiven + - Tools Hoofdwerkbalk - + &Open &Open - + Open a file Open een bestand - + Reset zoom Geen zoom - + Rotate Draaien - + &Quit &Afsluiten - + Delete Verwijderen - + Select All Selecteer alles - + Fit in view Zoom kader - + Zoom Out Zoom uit - + Zoom In Zoom in - + Undo Ongedaan maken - + Redo Opnieuw - + Reset conductors Herinitialiseer alle geleiders - + Display or hide the main toolbar Toon of verberg Hoofdwerkbalk - + Display or hide the Display toolbar Toon of verberg Weergave werkbalk - + Display or hide the Diagram toolbar Toon of verberg Schema werkbalk + - Display Weergave + - Diagram Schema - + Add a textfield Tekstveld toevoegen - + No modification Geen wijzigingen - + Display or hide the undo list Toon of verberg lijst van wijzigingen - + Edit the selected item Wijzig geselecteerde item - + Group selected texts Groepeer de geselecteerde teksten - + Rotate selected elements and texts status bar tip Roteer geselecteerde elementen en teksten - + Rotate selected texts to a specific angle status bar tip Roteer geselecteerde teksten met specifieke hoek - + Search / Replace Zoeken/vervangen - + &Project &Project - + &Latest files &Recent geopend - - + + Project %1 registered in the directory: %2. Project %1 opgeslagen in map %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Bestand openen mislukt. Controleer of de juiste machtigingen aanwezig zijn. - + The project you try to open does not seem writable. It will be opened read-only. Project kan niet opgeslagen worden. Alleen lezen is mogelijk. - + using tabs Gebruik tabs - + using windows Gebruik vensters - + Display projects Projectweergave - + Project properties Projecteigenschappen - + Clean project Project opschonen - - + + Unable to open project message box title Project openen mislukt - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Bestand %1 is geen QElectroTech projectbestand en kan dus niet worden geopend. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Geschiedenis - + Click an action to get back in the changes you made to your diagram Status tip Klik een actie om deze ongedaan te maken - + Choose texts orientation Kies tekstoriëntatie - + Find in the panel Zoek in paneel - + Add a picture Afbeelding toevoegen - + Add a summary Schemabladenoverzicht toevoegen - + Zoom content Zoom inhoud - + Closes QElectroTech status bar tip Sluit QElectroTech volledig af - + Undoes the previous action status bar tip Maak de laatste actie ongedaan - + Restores the undone action status bar tip Doe de laatste actie opnieuw - + Puts selected elements into the clipboard status bar tip Verplaats de geselecteerde elementen naar het klembord - + Copies selected elements status bar tip Kopieer de geselecteerde elementen naar het klembord - + Inverts selection of elements status bar tip Selectie van elementen omkeren - + Find the selected item in the panel status bar tip Toon het geselecteerde element in het paneel - + Reset the conductors path ignoring the user changes status bar tip Teken alle geleiders opnieuw en verwerp alle wijzigingen - + Automatic creation conductor (s) Tool tip of auto conductor Automatisch geleiders maken - + Projects dock title Projecten - + Collections Collecties - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Maak automatisch geleiders tussen aansluitklemmen van elementen waar mogelijk - + Restores default zoom level status bar tip Herstel zoom - + Shows the various opened projects in windows status bar tip Toont de geopende projecten in vensters - + Add a nomenclature Stuklijst toevoegen - + Shows the various opened projects in tabs status bar tip Toont de geopende projecten in tabs - + Allows to select elements status bar tip Selecteren van elementen - + Add a curve - + Add a terminal plan Klemmenstrook toevoegen - + Adds a text field to the current sheet Een tekstveld aan het huidige schemablad toevoegen - + Add an image to the current sheet Een afbeelding aan het huidige schemablad toevoegen - + Adds a PDF page to the current sheet - + Add a line to the current sheet Een regel aan het huidige schemablad toevoegen - + Adds a rectangle on the current sheet Een rechthoek aan het huidige schemablad toevoegen - + Add an ellipse to the current sheet Een ellips aan het huidige schemablad toevoegen - + Adds a polyline to the current sheet Een dubbele lijn aan het huidige schemablad toevoegen - + Adds a Bézier curve to the current sheet - + Adds a terminal plan to the current sheet Klemmenstrook op het huidige schemablad toevoegen - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip + - Add Toevoegen - + &Add - + Align - + Rows and columns - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech projecten (*.qet);;XML-bestanden (*.xml);;Alle bestanden (*) - - + + Unable to open file message box title Kan het bestand niet openen - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Het bestand %1 bestaat niet (meer). - + Opening the file read-only message box title Open bestand alleen-lezen - + %n items put back on the grid @@ -11636,12 +13436,12 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + (%n locked objects left in place) @@ -11649,113 +13449,113 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Bewerk element - + Edit the text field edit text field Bewerk tekstveld - + Edit the image edit image Bewerk afbeelding - + Edit conductor edit conductor Bewerk geleider - + Edit the selected object edit selected item Bewerk geselecteerd object - + An error occurred while opening file %1. message box content Er is een fout opgetreden bij het openen van bestand %1. - + Activates the project « %1 » Activeer project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Fout - + Arranges windows in a tile pattern status bar tip Zet vensters in tegelpatroon - + Arranges windows in a cascade pattern status bar tip Zet vensters achter elkaar - + Next project Volgend project - + Previous project Vorig project - + Activates the next project status bar tip Activeer volgend project - + Activates the previous project status bar tip Activeer vorig project @@ -12320,7 +14120,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b Element editors - + Elementbewerkingsvensters @@ -12744,58 +14544,58 @@ dus graag even geduld... QETProject - + Warning message box title Waarschuwing - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Project:« %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Project %1 - + Untitled project displayed title for a project-less, file-less project Naamloos project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [alleen lezen] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [gewijzigd] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12803,13 +14603,13 @@ Do you wish to continue? - + An error occurred during the template integration. error message Fout bij sjabloon invoegen. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12818,7 +14618,7 @@ You are currently using QElectroTech in version %2 Qelectrotech versie %2 wordt nu gebruikt - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12827,32 +14627,32 @@ What do you wish to do ? Document openen ? - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Het te openen project is gedeeltelijk compatibel met deze versie %1 van QElectrotech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Om het volledig compatibel te maken, moet hetzelfde project met versie 0.8 of 0.80 van QElectroTech worden geopend en worden opgeslagen waarna het met deze versie kan worden geopend. Document toch openen? - + Warning message box title Waarschuwing - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Openen van project...</b><br/>Tekenenen van schemabladen</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Openen van huidig project...</b><br/>Genereren van kruisverwijzingen</p> @@ -12878,178 +14678,168 @@ Document toch openen? QETTitleBlockTemplateEditor - + Save current template? dialog title Actief sjabloon opslaan? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Moet sjabloon %1 worden opgeslagen? - + new_template template name suggestion when duplicating the default one nieuw_sjabloon - + Duplicate a title block template input dialog title Titelbloksjabloon kopiëren - + In order to duplicate this template, please enter a name for its copy input dialog text Geef een naam voor de kopie van dit sjabloon - + &New menu entry &Nieuw - + &Open menu entry &Open - + Open from a file menu entry Open uit bestand - + &Save menu entry &Opslaan - + Save as menu entry Opslaan als - + Save to a file menu entry Opslaan naar bestand - + &Quit menu entry &Afsluiten - + Manage logos menu entry Logobeheer - + Zoom In menu entry Zoom in - + Zoom out menu entry Zoom uit - + Fit in view menu entry Maak passend - + Reset zoom menu entry Geen zoom - + Save as dialog title Opslaan als - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech titelbloksjablonen (*%1) - + &Merge cells menu entry &Cellen samenvoegen - + Cu&t menu entry &Knippen - + &Copy menu entry K&opiëren - + &Paste menu entry P&lakken - + Edit extra information menu entry Bewerk overige gegevens - + Add a &row menu entry &Rij toevoegen - + Add a &column menu entry &Kolom toevoegen - + &Split cells menu entry Cellen &splitsen - - - - - - - - - - @@ -13059,144 +14849,154 @@ Document toch openen? + + + + + + + + + + Title block template editors - + Titelblokbewerkingsvensters - + &File menu title &Bestand - + &Edit menu title &Wijzig - + Displ&ay menu title Weer&gave - + Tools toolbar title Gereedschap - + Edit toolbar title Bewerk - + Display toolbar title Weergave - + No modification label displayed in the undo list when empty Ongewijzigd - + Undo dock title Geschiedenis - + Cell properties dock title Celeigenschappen - + [Changed] window title tag [Gewijzigd] - + [Read only] window title tag [Alleen lezen] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Bewerker voor titelbloksjablonen - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Fout - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Open een sjabloon - + Open a file dialog title Open een bestand - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech titelbloksjablonen (*%1);;XML bestanden (*.xml);; Alle bestanden (*) - + Save template as dialog window title Sjabloon opslaan als - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title Bewerken overige gegevens - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Dit veld kan worden gebruikt voor informatie over auteurs, licentie of andere relevante informatie. @@ -13236,7 +15036,7 @@ Document toch openen? De tekst met de GNU/GPL licentie is wel gevonden, maar openen lukt niet. Die ken je waarschijnlijk wel uit het hoofd.? - + Warning: the element has been saved with a more recent version of QElectroTech. Waarschuwing: het element is opgeslagen met een nieuwere versie van QElectroTech. @@ -13257,7 +15057,7 @@ Document toch openen? een grafisch element - + delete %1 undo caption - %1 is a sentence listing the removed content verwijderen %1 @@ -13765,7 +15565,7 @@ Document toch openen? - + Title Titel @@ -13781,18 +15581,18 @@ Document toch openen? Projecteigenschappen - + Select an image ... Selecteer een afbeelding... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Afbeeldingsbestanden (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13801,7 +15601,7 @@ Document toch openen? Fout - + Unable to load the image. Kan afbeelding niet laden. @@ -13842,8 +15642,8 @@ Document toch openen? Aansluiting - + Text Tekst @@ -13859,7 +15659,7 @@ Document toch openen? Informatie van meerdere elementen wijzigen - + Edit the cross reference edite the cross reference Bewerk de kruisverwijzingen @@ -13959,12 +15759,12 @@ the translated name of this folder could not be read, so its folder name is disp Collectie - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14075,8 +15875,8 @@ Moet deze worden vervangen ? - + Rotate %1 @@ -14215,45 +16015,45 @@ Moet deze worden vervangen ? - + - + Type Type - + - + Address - - - - + + + + Annotation Commentaar - - - - + + + + Cross-reference - + Kruisverwijzing - - - - + + + + Function Functie @@ -14588,45 +16388,55 @@ Moet deze worden vervangen ? Geleiders maken - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Installatie van de qet_tb_generator<br>Ga naar:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>vereist Python 3.5 of hoger.<br><B><U> Eerste installatie onder Windows</B></U><br>1. Installeer indien nodig Python 3.5 of hoger<br> Ga naar :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update onder Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>het script is nu uitvoerbaar in een terminal in directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Ga voor installatie van de qet_tb_generator plugin naar :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Eerste installatie onder macOSX</B></U><br>1. Installeer indien nodig alleen de python 3.11 bundle, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Voer het Profile.command script uit<br> omdat het programma het hardcoded PATH gebruikt om de qet-tb-generator plugin te localiseren <br> Ga naar :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Updaten onder macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Installatie van de qet_tb_generator<br>Ga naar:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Vereist Python 3.5 of hoger.<br><br><B><U> Eerste installatie onder Linux</B></U><br>1. Controleer of pip3 is geinstalleerd: pip3 --version<br>Installeer het indien nodig met: sudo apt get install python3-pip<br>2. Installeer daarne het programma: sudo pip3 install qet_tb_generator<br>3 Voer het programma uit: qet_tb_generator<br><br><B><U> Updaten onder Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Fout bij het laden van de qet_tb_generator plugin - + Add a nomenclature Een stuklijst toevoegen - + Add a summary Schemabladenoverzicht toevoegen + + + Add a cable list + + + + + Cable list + + Paste Plakken - + + - - + @@ -14667,83 +16477,113 @@ Moet deze worden vervangen ? Kies klem %1 - - + + Generic generic terminal element type Algemeen - + Fuse fuse terminal element type Gezekerd - + Sectionable sectional terminal element type Deelbaar - + Diode diode terminal element type Diode - + Ground ground terminal element type Aarde - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Algemeen - + Phase phase terminal element function Fase - + Neutral neutral terminal element function Nul - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14778,7 +16618,7 @@ Moet deze worden vervangen ? DXF-bestand importeren - + Default layout Standaard weergave @@ -14951,8 +16791,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15097,88 +16937,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 %1 toevoegen - + Edit the conductor properties - + Edit a text - + Change the color of a text Kleur van een tekst wijzigen - + Rotate a text - + Edit line of a form Lijnsoort van een vrije vorm wijzigen - + Edit filling a form Vulling van een vrije vorm wijzigen - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Een elementtekst wijzigen - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15230,7 +17070,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Schemablad @@ -15279,26 +17119,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Er is meer informatie dan in de tabellen kan worden weergegeven. Maak een nieuwe tabel of pas de huidige tabellen aan zodat alle informatie hierin kan worden weergegeven. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Er is meer informatie dan in de tabel kan worden weergegeven. Maak een nieuwe tabel of pas de huidige tabel aan zodat alle informatie hierin kan worden weergegeven. - + Table limitation Tabelgrenzen - + Modify the geometry of a table Geometrie van een tabel wijzigen @@ -15357,12 +17197,12 @@ nothing has been changed. QetShapeItem - + an shape een vrije vorm - + a line een lijn @@ -15633,78 +17473,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Wijzig %1 - + rectangle een rechthoek - + an ellipse een ellips - + an arc - + polyline een polylijn - + a curve @@ -15753,6 +17593,14 @@ nothing has been changed. Wijzig een rechthoek + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15791,6 +17639,17 @@ nothing has been changed. Het element « %1 » bestaat al. Hoe nu verder ? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16352,7 +18211,7 @@ met behulp van de volgende variabelen: &Delete - + &Verwijderen @@ -16803,28 +18662,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Automatische schemabladnummering - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16851,7 +18720,7 @@ Het veld "Waarde" heeft nu geen betekenis. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16888,13 +18757,41 @@ De andere velden hebben nu geen betekenis. De andere velden hebben nu geen betekenis. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16916,17 +18813,17 @@ The other fields are not used. - + New numbering… - + Rename numbering… - + Numbering conductors title window Automatische geleidernummering @@ -19834,42 +21731,42 @@ The other fields are not used. Samenstelling - + Bridging the terminals Klemmen doorverbinden - + Unbridge the terminals Klemmen scheiden - + Properties Eigenschappen - + Name: Naam : - + Comment : Commentaar : - + Description Beschrijving - + Plant: Installatie : - + Location : Locatie : @@ -19879,13 +21776,13 @@ The other fields are not used. Type : - + Ungroup the terminals Klemmen degroeperen - + Generic Algemeen @@ -19925,22 +21822,67 @@ The other fields are not used. Aarde - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Verplaatsen naar : - + Phase Fase - + Neutral Nul - + Automatic position Automatisch indelen @@ -19950,12 +21892,12 @@ The other fields are not used. Etage : - + Group the terminals Klemmen groeperen - + Function : Functie : @@ -19970,17 +21912,17 @@ The other fields are not used. Met - + LED : LED : - + Independent terminals Losse klemmen - + Modify terminal strip properties Eigenschappen van de klemmen wijzigen @@ -20049,12 +21991,12 @@ The other fields are not used. Klem niveau 0 : - + Headser : Begin : - + Bridge point Brug @@ -20096,7 +22038,7 @@ The other fields are not used. Header text - + Kopteksten @@ -20116,15 +22058,55 @@ The other fields are not used. Cross-reference + Kruisverwijzing + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Hoogte - + Preview: Voorbeeld : @@ -20187,52 +22169,57 @@ The other fields are not used. TerminalStripModel - + Position Positie - + Stage Etage - + Label Label - + Cross-reference Kruisverwijzing - + Cable Kabel - + Color / wire number of the cable Kleur / draadnummer - + Type Type - + Function Functie - + led LED - + + Shield + + + + Number wire Geleidernummer @@ -21545,32 +23532,42 @@ Door de associatie van de naam "volta" met de waarde "1745" Kruisweergave - + Label cross reference Formule voor het label van kruisverwijzingen - + Master Verwijzer - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Doel - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21587,115 +23584,141 @@ Door de associatie van de naam "volta" met de waarde "1745" %LM : De locatie - + Option display cross Opties voor kruisweergave - + Show the power contacts in the cross Toon vermogenscontacten in het kruis - + Prefix of power contacts : Voorvoegsel voor vermogenscontacten : - + Prefix delayed contacts : Voorvoegsel voor tijdvertraagde contacten : - + Prefix changeover contacts : Voorvoegsel voor wisselcontacten : - + Coil Spoel - + Organ of protection Beveiligingsorgaan - + Switch / button Schakelaar / drukknop - + Programmable Logic Controller (PLC) - + + Cable + Kabel + + + Footer Onderaan het blad - + Under the label of the element Onder het elementlabel - + Top Boven - + Bottom Onder - + Left Links - + Right Rechts - + Text alignment Op tekst uitgelijnd - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Interne projectgegevens exporteren - + untitled naamloos diff --git a/lang/qet_nl_BE.ts b/lang/qet_nl_BE.ts index 8a6c30b07..9e207563a 100644 --- a/lang/qet_nl_BE.ts +++ b/lang/qet_nl_BE.ts @@ -1158,6 +1158,23 @@ Let op: Deze opties blokkeren NIET de Automatisch nummering, maar passen alleen + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Verwijderen + + BorderPropertiesWidget @@ -1183,7 +1200,7 @@ Let op: Deze opties blokkeren NIET de Automatisch nummering, maar passen alleen Format: - + Formaat: @@ -1214,16 +1231,1067 @@ Let op: Deze opties blokkeren NIET de Automatisch nummering, maar passen alleen Custom - + Gebruiker Landscape - + Landschap Portrait + Portret + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kabel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Installatie (=) + + + + Location (+) + Locatie (+) + + + + Type + Type + + + + Cores + + + + + Plant + Installatie + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Kopteksten overnemen + + + + Preview + + + + + cable_list_ + + + + + Save As... + Bewaren als ... + + + + CSV files (*.csv) + + + + + Error + Fout + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Ja + + + + No + Les noms saisis à la main sont laissés tels quels. + Neen + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Ja + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Neen + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Kabel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kabel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Type + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Installatie (=) + + + + Location (+) + Locatie (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + Normaal + + + + Bold + Dik + + + + Italic + Cursief + + + + Bold italic + + + + + Style: + Stijl: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Voorbeeld : + + + + Reset + Reset + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1270,13 +2338,13 @@ Let op: Deze opties blokkeren NIET de Automatisch nummering, maar passen alleen Conductor - + Edit conductor properties undo caption Bewerk de eigenschappen van een geleider - + Edit the properties of several conductors undo caption Wijzig de eigenschappen van meerdere geleiders @@ -1918,7 +2986,7 @@ Continue? Diagram - + Change the depth Diepte aanpassen @@ -2055,6 +3123,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2066,7 +3151,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2074,7 +3159,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2197,224 +3282,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) SVG-afbeelding (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image een afbeelding - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Selecteer een afbeelding... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Fout - + Unable to load the image. Onmogelijk om de afbeelding op te halen. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2446,22 +3561,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2469,84 +3584,117 @@ Hold Shift and drag to move this text on its own DiagramView - + Paste Here context menu action Hier plakken - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip In dit gebied kan je tekeningen maken door toevoeging van elementen, geleiders, teksten en grafische afbeeldingen. - + Multiple paste Meermaals plakken - + Create a template context menu action Een sjabloon maken - + Make a cabinet thumbnail context menu action - + Sheet reference + Rapport pagina + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Verbind de geselecteerde aansluitklemmen - + Untitled what to display for untitled diagrams Naamloos - + + Remove this core from the line + + + + Registered template Model geregistreerd - + The template has been successfully saved as : %1 Het model is succesvol geregistreerd onder: %1 - + Error Fout - + The file could not be written. Het bestand kon niet worden geschreven. - + Choose the new color for this conductor Kies een nieuwe kleur voor de geleider - + Edit conductor properties undo caption Wijzig de eigenschappen van een geleider @@ -3147,7 +4295,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Een element automatisch nummeren @@ -3643,8 +4791,8 @@ Continue? - - + + Type Type @@ -3727,8 +4875,8 @@ Continue? - - + + Function Functie @@ -3760,7 +4908,7 @@ Continue? - + Simple Enkel @@ -3801,19 +4949,19 @@ Continue? - + Switch normally open Normaal open - + Switch normally closed Normaal gesloten - + switch Draairichtingsschakelaar @@ -3829,25 +4977,25 @@ Continue? - + Power switch Vermogen - + Switch-on delayed Vertraagd inschakelen - + Switch-off delayed Vertraagd uitschakelen - + Switch-on and off delayed Vertraagd in- en uitschakelen @@ -3873,7 +5021,7 @@ Continue? - + Generic Algemeen @@ -3892,164 +5040,189 @@ Continue? Diode Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Nul geleider - - - - - + + + + + T%1 T%1 - + Other fr: Autre Ander - + PLC Configuration PLC-configuratie - + + + - + - - - - + + Address Adres - - + + Annotation Commentaar - + Cross-reference Kruis verwijzing - - + + Nb. Nr. - + T1 T1 - + Header font Kop tekst letter type - + Set the font for column headers Configureer het lettertype van de kolomkop - + Text font Tekst letter type - + Set the text font in the cells Configureer het lettertype van de tekst in de cellen - + Show headers on the sheet Toon de kopteksten op het blad - + Show or hide the column headings of the PLC table on the sheet Toon of verberg de kolomkoppen van de PLC-tabel op het werkblad - + Jump to %1 after: Spring %1 na: - + None Geen - + Line H: H. lijn: - - + + mm mm - + Ref. Ref. - + Custom column name (blank = default) Aangepaste kolomnaam (leeg = standaard) - + Visible Zichtbaar - + Paste from the clipboard Plakken vanuit het klembord - - + + Heading font size: %1 %2pt Koptekst letter type: %1 %2pt - - + + Font size: %1 %2pt Tekst letter type: %1 %2pt - + Column header formatting Letter type van kolomkop - + Cell text font Letter type voor celtekst @@ -5054,7 +6227,7 @@ Door dit bestand te importeren, bevestigt u dat: ExportConfigPage - + Export configuration page title Export @@ -5439,97 +6612,127 @@ Tkest en cijfers zijn ook beschikbaar + Filter by label (e.g. Z1) + + + + Move to : Plaats in : - + Type : Type: - + Function : Functie : - + LED : LED : - + Apply displacement Pas de verplaatsing toe - - + + Generic Algemeen - + Fuse Samenvoegbaar - + Sectionable Verdeelbaar - + Diod Diode - + Ground Aarding - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Nul geleider - + Without Zonder - + With Met - + Modify terminal strip properties Eigenschappen van de klemmen aanpassen - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5575,17 +6778,17 @@ Tkest en cijfers zijn ook beschikbaar Gebruik de systeem kleuren - + User Collection Path Pad naar gebruikers collectie - + User Title blocks Path Pad naar gebruikers etiket - + Path of the Common Collection Pad naar de algemene collectie @@ -5607,6 +6810,7 @@ Tkest en cijfers zijn ook beschikbaar + Browse... Bladeren ... @@ -5649,18 +6853,18 @@ Tkest en cijfers zijn ook beschikbaar min - + Highlight freshly integrated elements in the panel Laat nieuw ingevoerde waarden van een elementen oplichten in het paneel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Elk element bevat informatie over de auteurs, licentie of andere informatie die u nuttig acht in een vrij veld. Hier kunt u de standaardwaarde voor dit veld opgeven voor de items die u gaat maken: - + Applied to the next launch of QElectroTech Wordt geactiveerd bij de volgende opstart van QElectroTech @@ -5700,32 +6904,32 @@ Hier kunt u de standaardwaarde voor dit veld opgeven voor de items die u gaat ma Map voor de gebruikers etiketten - + Elements management Beheer de elementen - + Here you can define the default appearance of the different texts of QElectroTech Hier kant u de standaardweergave van de verschillende teksten van QElectroTech definiëren - + Grid + Keyboard Raster + toetsenbord - + Grid: 1 - 30 Raster : 1 - 30 - + DiagramEditor xGrid Schema X raster - + DiagramEditor yGrid Schema Y raster @@ -5910,8 +7114,11 @@ Hier kunt u de standaardwaarde voor dit veld opgeven voor de items die u gaat ma + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5922,149 +7129,217 @@ Hier kunt u de standaardwaarde voor dit veld opgeven voor de items die u gaat ma + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Talen - + texts Teksten - + Elements texts Tekst elementen - - - + + + Font: Lettertype : - - + + ° ° - + Length : Text grootte: - - + + Rotation : Hoek : - + Independent texts Losse tekst - + Other texts Andere teksten - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Het raster moet actief zijn om wijziginge te kunne uitvoeren. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Toetsenbordbeweging: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Schema (sleutel: links / rechts) x raster - + DiagramEditor (key: up / down) yGrid Schema (sleutel: omhoog / omlaag) y raster - + Keyboard movement with the ALT key: 1 - 9 Totsenbord beweging met ALT : 1-9 - + DiagramEditor (key: left / right) xGrid Schema (sleutel: links / rechts) x raster - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Schema (sleutel: omhoog / omlaag) y raster - + View grid Raster - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Diagram-Editor rasterpuntgrootte: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 Element-Editor rasterpuntgrootte: 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Max. aantal element onderdelen ijn editor lijst @@ -6079,265 +7354,301 @@ Hier kunt u de standaardwaarde voor dit veld opgeven voor de items die u gaat ma Uitzomen voorbij het schema kader toestaan - + + Bold italic + + + + + Bold + Dik + + + + Italic + Cursief + + + + Normal + Normaal + + + Rounding up for 0.5 and more Afgerond voor 0,5 en hoger - + Always top rounding Altijd afgerond naar boven - + Always rounded down Altijd afgerond naar beneden - + Rounding up for 0.75 and more Afgerond voor 0,75 en hoger - + No rounding Niet afronden - + Disabled fr: Désactivée - + Uitgeschakeld - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Algemeen - + System Systeem - + Arabic Arabisch - + Brazilian Brasiliaans - + Catalan Catalaans - + Czech Tsjechisch - + German Duits - + Danish Deens - + Greek Grieks - + English Engels - + Spanish Spaans - + French Frans - + Croatian Croatisch - + Italian Italiaans - + Japanese Japans - + Korean Koreaans - + Polish Pools - + Portuguese Portugees - + Romanian Roemeens - + Russian Russisch - + Slovenian Sloveens - + Dutch Nederlands - + Norwegian Noors - + Belgium-Flemish Belgisch nederlands - + Turkish Turks - + Hungarian Hongaars - + Mongolian Mongools - + Ukrainian Oekraïens - + Chinese Chinees - + Swedish Zweeds - + + Cable text font + + + + + Core colors font + + + + Company collection path Bedrijfs elementen collectie pad - + Company title-blocks Bedrijfs etiketten collectie pad - + User macro path Gebruikers makro map - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6346,50 +7657,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Bestanden csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Hoge waarden kunnen leiden tot crashes van de applicatie. - + Experimental feature Experimentele functionaliteit - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6404,6 +7733,345 @@ Alle andere waarden dan 'Geen afronding' kunnen projectweergavefouten 3 - Wijzig het project op een andere computer en/of scherm die niet dezelfde parameters heeft als punt 1 en 2. + + GenericDevice + + + Left + Links + + + + Right + Rechts + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Informatie + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Naam: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Klemmen + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Klemmen + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Naam + + + + Function + Functie + + + + Type + Type + + + + Add terminal + + + + + Add gap + + + + + Delete + Verwijderen + + + + Up + Bovedn + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Algemeen + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6531,135 +8199,105 @@ Alle andere waarden dan 'Geen afronding' kunnen projectweergavefouten GraphicsTablePropertiesEditor - Table properties - Formulier + Formulier - Display - Weergave + Weergave - Table name - Tabelnaam + Tabelnaam - None Geen - All - Allemaal + Allemaal - Lines to display : - Lijnen weergeven: + Lijnen weergeven: - Y : - Y : + Y : - Next table - Volgende tabel + Volgende tabel - X : - X : + X : - Previous table - Vorige tabel + Vorige tabel - Previous table : - Vorige tabel: + Vorige tabel: - Geometry and lines - Geometrie en lijnen + Geometrie en lijnen - Apply geometry to all tables linked to this one - Pas geometrie toe op alle tabellen die aan deze zijn gekoppeld + Pas geometrie toe op alle tabellen die aan deze zijn gekoppeld - Fit table to sheet - Tabel aan schema toevoegen + Tabel aan schema toevoegen - TextLabel - Tekst etiket + Tekst etiket - Header - Hoofding + Hoofding - - Margin - Marge + Marge - Alignment : - Uitlijning : + Uitlijning : - - Left - Links + Links - - Center - Midden + Midden - - Right - Rechts + Rechts - - Font - Letter type + Letter type - Table - Tabel + Tabel - Alignment: - Uitlijning : + Uitlijning : - Content - Inhoud + Inhoud @@ -6777,6 +8415,29 @@ Alle andere waarden dan 'Geen afronding' kunnen projectweergavefouten + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6836,7 +8497,7 @@ Alle andere waarden dan 'Geen afronding' kunnen projectweergavefouten Label - + Etiket @@ -6993,76 +8654,48 @@ Positie vergrendelen IndiTextPropertiesWidget - Form - Vorm + Vorm - X : - X : + X : - Advanced Editor - Geavanceerde bewerkingen + Geavanceerde bewerkingen - Size : - Breedte : + Breedte : - Angle: - Hoek: + Hoek: - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - De inhoud, de grootte en het lettertype van de tekst kunnen niet worden gewijzigd omdat ze in HTML zijn opgemaakt. + De inhoud, de grootte en het lettertype van de tekst kunnen niet worden gewijzigd omdat ze in HTML zijn opgemaakt. Gebruik hiervoor de geavanceerde editor. - Text - Tekst + Tekst - @@ -7070,9 +8703,8 @@ Gebruik hiervoor de geavanceerde editor. Beleid - Click here to cancel html formatting - Klik hier om de HTML opmaak te verwijderen + Klik hier om de HTML opmaak te verwijderen @@ -7511,7 +9143,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Afdrukken @@ -7529,7 +9161,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Afbreken @@ -7898,6 +9530,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8001,63 +9641,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Schema bladzijde - + Conductor Geleider - + Sheet references Afdrukken paginas - + Cross-references Kruisverwijzing - + Guides Hulp lijnen - + Set the default automatic numbering rules for new projects: - + Conductors Geleiders - + Elements Elementen - + Sheets - + + Cables + + + + Auto Numbering Automatisch nummering - + New sheet configuration page title Nieuwe schema bladzijde - + New project configuration page title Nieuw project @@ -8187,133 +9832,133 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 Nummer soort 1 - - - - + + + + number format 01 Nummer soort 01 - - - - - + + + + + number format 001 Nummer soort 001 - - - - - + + + + + Cyclic (modulo) Cyclisch (modulo) - - - - - + + + + + Alphabetical Alfabetisch - - - - - + + + + + Text Tekst - - - - + + + + Sheet no. Nr schema - - - - + + + + Sheet Bladzijde - - - - + + + + number format 1 - Sheet Cijfer 1 - Bladzijde - - - - + + + + number format 01 - Sheet Cijfer 01 - Bladzijde - - - - + + + + number format 001 - Sheet Cijfer 001 - Bladzijde - - - - + + + + Location Locatie machine - - - - + + + + Plant Installatie - - - + + + Element Line Element rij - - - + + + Element Column Element kolom - - - + + + Element Prefix Element voorvoegsel @@ -8414,12 +10059,12 @@ Do you still want to link this slave contact? PartText - + Move a text Een tekst verplaatsen - + Edit the text field Wijzig een tekst @@ -8427,12 +10072,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8835,7 +10480,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Afdrukken @@ -8849,101 +10494,106 @@ Its copy was kept as: Automatisch nummering - + Management Beheer - - + + Conductors Geleiders - + No. - + Name Naam - + Sheet - + Element Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Elementen - - + + Sheets Schema bladzijden - + + Cables + + + + Sheet Auto Numbering Automatisch nummering scshema bladzijden - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8951,7 +10601,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8959,49 +10609,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9009,21 +10659,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9032,7 +10682,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9040,7 +10690,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9048,13 +10698,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Verwijder de nummering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9063,12 +10713,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9076,12 +10726,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9089,7 +10739,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9098,80 +10748,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9192,19 +10842,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Formulier + Formulier - Request - Verzoek + Verzoek - Reload - Herladen + Herladen @@ -9702,73 +11349,75 @@ Wilt u wijzigingen bewaren? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET titel blok sjablonen - + Company title-blocks title of the company's title block templates collection Bedrijfs etiketten - + User title blocks title of the user's title block templates collection Gebruiker titel blok sjabloon - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Fout - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9777,100 +11426,157 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Afsluiten - + &Hide &Verbergen - + &Show &Herstellen - + &Hide diagram editor &Verberg alle bewerkingen van het schema - + &Show diagram editors &Herstellen alle bewerkingen van het schema - + &Hide element editor &Verberg alle bewerkingen van dit element - + &Show element editor &Herstel alle bewerkingen van dit element - + &Hide title block template editor systray submenu entry &Verberg alle bewerkingen van dit titel blok sjabloon - + &Show title block template editors systray submenu entry &Herstel alle bewerkingen van dit titel blok sjabloon - + &New diagram editor &Nieuwe uitgever van het schema - + &New element editor &Nieuwe uitgever van het element - + Closes QElectroTech Sluit QElectroTech programma - + Reduces QElectroTech into the systray Verklein QElectroTech naar systray - + Restore QElectroTech Vergroot QElectroTech - + Diagram editors Bewerk de schema's - + Element editors Bewerk het element - + Title block template editors systray menu entry Bewerk het titel blok sjabloon - + Crash report Rapporteer de fouten - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech is tijdens de laatste uitvoering niet correct afgesloten. @@ -9878,22 +11584,22 @@ Here are the last messages logged before it closed — you can save them to incl Hieronder vindt u de laatste berichten die zijn vastgelegd vóór de afsluiting. U kunt deze opslaan om ze in een bugrapport op te nemen. - + Diagnostic report Diagnostisch rapport - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Dit bevat de meest recente logberichten voor deze sessie. Controleer de inhoud voordat u deze toevoegt aan een openbaar bugrapport. - + Usage: Gebruik: - + QElectroTech, an application to design electric diagrams. Available options: @@ -9910,7 +11616,7 @@ Beschikbare opties: - + [options] [file]... @@ -9919,114 +11625,114 @@ Beschikbare opties: - + --common-elements-dir=DIR Define the elements collection directory --gemeenschappelijke-map voor elementen-=MAP definieer de elementen collectie map - + --common-tbt-dir=DIR Define the title block templates collection directory --gemeenschappelijke-tbt-map=MAP Definieer de titel blok sjablonen collectie map - + --config-dir=DIR Define configuration directory --config-map=MAP Definieer configuratie map - + --data-dir=DIR Define data directory --data-dir=DIR Stel de gegevensmap in - + --lang-dir=DIR Define the language files directory --ltaal map=MAP Definieer de taalbestanden map - + Loading... Initializing the elements collection cache splash screen caption Laden... initialiseer elementen collectie cache - + Loading... Sheets editor splash screen caption Opladen... schema beheer - + Loading... Opening files splash screen caption Laden... Openen van bestanden - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schema - + Electric Normal example text - translate length, not meaning Electrisch - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech instellen - + Loading... splash screen caption splash screen onderschrift Laden ... - + Loading... Systray icon splash screen caption Laden... Systray icon - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -10035,1406 +11741,1500 @@ Beschikbare opties: QETDiagramEditor - + Displ&ay Weer&gave - + Show or hide the elements panel Weergeven of verbergen het elementen paneel - + Add a column Kolom toevoegen - + &Cascade &Trapsgewijs - + &Paste &Plakken - + &Copy Kop&ieren - + Cu&t Kn&ippen - + Select none Selecteer niets - + &Edit &Bewerken - + Remove a column Kolom verwijderen - + &Save B&ewaren - + Save as Bewaren als - + &Export E&xporteer - + Wi&ndows Ve&nsters - - + + &Close &Sluiten - + &File &Bestand - + Print Afdrukken - + Invert selection Selectie omkeren - + Select Selectie modus - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Dit paneel bevat de verschillende acties welke toegpast zij op de huidige schema bladzijde. Klikken op één van deze acties brengt het schema terug naar de inhoud juist na het toepassen van deze actie. - + Display the grid Geef rooster weer - + Display or hide the grid of sheet Verbergen of weergeven raster op de bladzijden - + Sheet properties Schema eigenschappen - + Add a sheet Schema bladzijde toevoegen - - - + + + Delete this sheet Schema baldzijde verwijderen - + Move Verplaatsen modus - + &Tile &Mozaïek - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Diagram editor - + Export in pdf Exporteer in pdf - + Export one or more sheets of the current project status bar tip Exporteer een of meer folio's van het huidige project - + View the guides Geef de hulp lijnen weer - + Shows or hides the guides Weergeven of verbergen van de hulp lijnen - + Export to CSV Exporteren in CSV-indeling - + Terminal block manager (DEV) Klemmen beheerder (DEV) - + Launch the terminal block creation plugin Start de creatie van klemmen - + Export the list of names of wires Exporteer de lijst met bestuurdersnamen - + Export the wiring diagram Exporteer het bedradingsschema - + Automatic numbering of terminals Automatische klem nummering - + Export the internal project database Exporteer de interne projectdatabase - + &New &Nieuw - + Creates a new project status bar tip Nieuw project aanmaken - + Opens an existing project status bar tip Bestaand project openen - + Closes the current project status bar tip Het huidige project sluiten - + Saves the current project and all its sheets status bar tip Bewaar het huidige project en al zijn schema bladzijden - + Saves the current project with a different file name status bar tip Bewaar het huidige project met een andere naam - + Add row Add row Een rij toevoegen - + Remove a row Remove row Verwijderen van een rij - + Add a column to the sheet status bar tip Voeg een kolom toe - + Remove a column from the sheet status bar tip Verwijder een kolom - + Expands the sheet height status bar tip Vergroot het schema in de hoogte - + Shrinks the sheet height status bar tip Verklein het schema in de hoogte - + Removes selected elements from the sheet status bar tip Verwijder de geselecteerde elementen van het schema - + Selects all elements on the sheet status bar tip Selecteer alle elementen op deze schema bladzijde - + Deselect all elements on the sheet status bar tip Selecteer niets op deze schema bladzijde - + Expand the sheet status bar tip Vergroot deze schema bladzijde - + Shrinks the sheet status bar tip Verklein deze schema bladzijde - + Adjusts the zoom to display all the contents of sheet regardless of context Uitzomen toegestaan buiten het schema kader - + Adjusts the zoom on exactly the part of the sheet status bar tip Pas de zoom waarde aan aan de exacte afmetingen van het schema kader - + Add line Draw line Teken een lijn - + Add a rectangle Rechthoek toevoegen - + Add an ellipse Voeg ellipse toe - + Add a polygon Polylijn toevoegen - + Exports the current sheet to another format status bar tip Exporteer de huidige schemabladzijde naar een ander formaat - + Prints one or more sheet of the current project status bar tip Afdrukken van één of meerdere schema bladzijden van het huidige project + - Depth toolbar title Diepte - + Group Groep - + Pastes elements from the clipboard into the sheet status bar tip Plaat elementen op het klembord - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Bewerk de bladzijde eigenschappen (afmetingen, informatie op de etiket, eigenschappen van de geleiders...) - + Allows to view the sheet without modifying it status bar tip U kan deze bladzijde alleen lezen en niet wijzigen + - Tools Gereedschappen - + &Open &Open - + Open a file Bestand openen - + Reset zoom Zoom 1:1 - + Rotate Draaien - + &Quit &Verlaten - + Delete Verwijderen - + Select All Selecteer alles - + Fit in view Passend maken - + Zoom Out Zoom Uit - + Zoom In Zoom In - + Undo Annuleer - + Redo Herdoen - + Reset conductors Reset geleiders - + Display or hide the main toolbar Weergeven of verbergen van de hoofdwerkbalk - + Display or hide the Display toolbar Tonen of verbergen van de weergave werkbalk - + Display or hide the Diagram toolbar Tonen of verbergen van de schema werkbalk + - Display Weergave + - Diagram Schema - + Add a textfield Toevoegen een tekstveld - + No modification Geen wijzigingen - + Display or hide the undo list Tonen of verbergen van de lijst met wijzigingen - + Edit the selected item Bewerk het geselecteerde item - + Group selected texts Groep van geslecteerde teksten - + Rotate selected elements and texts status bar tip Draai de geselecteerde elementen en teksten - + Rotate selected texts to a specific angle status bar tip Draai de geselecteerde teksten met specifieke hoek - + Search / Replace Zoeken/vervangen - + &Project &Project - + &Latest files &Onlangs geopende projecten - - + + Project %1 registered in the directory: %2. Project %1 bewaard in map %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Het lijkt erop dat het bestand dat u probeert te openen niet leesbaar is. Het is dus onmogelijk om het te openen. Controleer de bestandsrechten. - + The project you try to open does not seem writable. It will be opened read-only. Het lijkt erop dat het project dat u probeert te openen niet leesbaar is. Het zal geopend worden als alleen-lezen. - + using tabs Gebruik tabs - + using windows Gebruik vensters - + Display projects Weergeven projecten - + Project properties Project eigenschappen - + Clean project Reinig het project - - + + Unable to open project message box title Project openen mislukt - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Het lijkt erop dat het bestand %1 geen QElectroTech project is. Het kan niet worden geopend. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Annuleringen - + Click an action to get back in the changes you made to your diagram Status tip Klik op een actie om terug te gaan in de bewerkingen van uw schema - + Choose texts orientation Kies tekst orientatie - + Find in the panel Zoeken in paneel - + Add a picture Afbeelding toevoegen - + Add a summary Samenvatting toevoegen - + Zoom content Zoom op de inhoud - + Closes QElectroTech status bar tip Afsluiten QElectroTech - + Undoes the previous action status bar tip Annuleer de vorige actie - + Restores the undone action status bar tip Herstel de geannuleerde actie - + Puts selected elements into the clipboard status bar tip Verplaats de geselecteerde elementen naar het klembord - + Copies selected elements status bar tip Kopieert de geselecteerde elementen naar het klembord - + Inverts selection of elements status bar tip Deselecteert alle geselecteerde elementen en selecteert de niet-geselecteerde elementen - + Find the selected item in the panel status bar tip Vind het geselecteerde element in het paneel - + Reset the conductors path ignoring the user changes status bar tip Herberekent de paden van geleiders, ongeacht de veranderingen - + Automatic creation conductor (s) Tool tip of auto conductor Automatisch creatie van geleiders - + Projects dock title Projecten - + Collections Collectie - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Maak gebruik van automatische creatie van geleider(s) indien mogelijk - + Restores default zoom level status bar tip Herstel naar de standaard zoom instelling - + Shows the various opened projects in windows status bar tip Toont de verschillende geopende projecten in vensters - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Autoamtisch snijden van een geleider - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Automatisch de bestaande geleiders snijden bij het plaatsen van een element. - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Uitgeschakeld - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Weergeven - + Element texts - + Conductor texts - + Text fields - + Tekst veld - + Shapes - + Pictures - + Tables - + Cross-references Kruisverwijzing - + See Display > Show - + Add a nomenclature Nomenclatuur toevoegen - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Wiring list (database) - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Shows the various opened projects in tabs status bar tip Toont de verschillende geopende projecten in tabs - + Allows to select elements status bar tip Selecteert elementen - + Rotate the group Draai de groep - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + Groep - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Draai de selectie als groep rondom het middelpunt, in plaats van elk element afzonderlijk - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF Voeg een PDF toe - + Add an arc - + Voeg boog toe - + Add a curve - + Add a fillet - + Add a terminal plan Voeg een klemmen plan toe - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Voeg een tekstveld bij op de huidige schema bladzijde - + Add an image to the current sheet Voeg een afbeelding bij op de huidige schema bladzijde - + Adds a PDF page to the current sheet Voeg een PDF-pagina toe aan het huidige folio. - + Add a line to the current sheet Voeg een lijn toe aan de huidige schema bladzijde - + Adds a rectangle on the current sheet Voeg een recthoek toe aan de huidige schema bladzijde - + Add an ellipse to the current sheet Voeg een elpis toe aan de huidige schema bladzijde - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Voeg een polygoon toe aan de huidige schema bladzijde - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Voeg een klemmen plan toe op de huidige pagina - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element Een element bereiken - + Quickly search for and select an element in the sheet status bar tip Zoek en selecteer snel een item in de pagina - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Ja + + + + No + no + Neen + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add toevoegen - + Scripts toolbar title - + &Add - + Selection - + Align - + Rows and columns - + Depth Diepte - - + + Scripts - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Project QElectroTech (*.qet);;Bestand XML (*.xml);;Alle bestanden (*) - - + + Unable to open file message box title Kan het bestand niet openen - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Het lijkt erop dat het bestand %1 dat u probeert te openen niet bestaat. - + Opening the file read-only message box title Open het bestand als alleen lezen - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11443,7 +13243,7 @@ Het lijkt erop dat het bestand %1 dat u probeert te openen niet bestaat. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11452,24 +13252,24 @@ Het lijkt erop dat het bestand %1 dat u probeert te openen niet bestaat. - + Project fonts message box title Project eigenschappen - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11480,12 +13280,12 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal Klem kan niet worden verwijderd - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted De verwijdering kan niet worden uitgevoerd omdat de selectie een of meer gekoppelde terminals en/of terminals bevat die tot een terminal met meerdere niveaus behoren. @@ -11493,7 +13293,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunnen verwijderen. - + %n items put back on the grid @@ -11501,7 +13301,7 @@ Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunne - + %n items aligned @@ -11509,22 +13309,22 @@ Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunne - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11532,100 +13332,100 @@ Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunne - + Edit the element edit element Element bewerken - + Edit the text field edit text field Tekst veld bewerken - + Edit the image edit image Afbeelding bewerken - + Edit conductor edit conductor Bewerk geleiders - + Edit the selected object edit selected item Het geselecteerde object bewerken - + An error occurred while opening file %1. message box content Een fout heeft zich voorgedaan bij het open vanbestand %1. - + Activates the project « %1 » Activeer project " %1 " - + Are you sure you want to delete this sheet? Weet je zeker dat je deze pagina wilt verwijderen? - + Delete the sheets Verwijder de paginas - + Are you sure you want to delete the selected %1 sheets ? Weet u zeker dat u de geselecteerde %1 paginas wilt verwijderen? - + Delete %1 sheets Verwijder %1 paginas - - - - - - - + + + + + + + Move the sheets Verplaats de paginas - + Error message box title Fout - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11633,7 +13433,7 @@ Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunne - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11641,7 +13441,7 @@ Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunne - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11649,18 +13449,18 @@ Ontkoppel en/of verwijder de niveaus van de betreffende terminals om ze te kunne - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11669,28 +13469,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11698,12 +13498,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11713,53 +13513,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11767,41 +13567,41 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 - + Arranges windows in a tile pattern status bar tip Zet vensters in tegelpatroon - + Arranges windows in a cascade pattern status bar tip Zet vensters achter elkaar - + Next project Volgende project - + Previous project Vorige project - + Activates the next project status bar tip Activeert volgende project - + Activates the previous project status bar tip Activeert vorige project @@ -12790,58 +14590,58 @@ the conditions are not valid QETProject - + Warning message box title Aankondiging - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Project « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projectbestandsnaam %1 - + Untitled project displayed title for a project-less, file-less project Naamloos project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [alleen lezen] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [gewijzigd] - + Renumber elements - + Renumber elements (%1) - + Modified contact system Gewijzigd contactsysteem - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12853,13 +14653,13 @@ Bestaande ondergeschikte elementen worden niet automatisch toegewezen. U moet de Wilt u doorgaan? - + An error occurred during the template integration. error message Fout bij invoegen van het sjabloon. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12868,7 +14668,7 @@ You are currently using QElectroTech in version %2 U gebruikt momenteel QElectroTech versie %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12877,31 +14677,31 @@ What do you wish to do ? Wat wil je doen? - + Warning message box title Waarschuwing - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Het project dat u probeert te openen is gedeeltelijk compatibel met uw versie %1 van QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Om het volledig compatibel te maken, opent u hetzelfde project met versie 0.8 of 0.80 van QElectroTech, slaat u het project op en opent u het opnieuw met deze versie. Wat wil je doen? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align = "center"> <b> Open het huidige project ... </ b> <br/> Aanmaken van schema bladzijden </ p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align = "center"> <b> Het lopende project openen ... </ b> <br/> Kruisverwijzingen instellen </ p> @@ -12927,178 +14727,168 @@ Wat wil je doen? QETTitleBlockTemplateEditor - + Save current template? dialog title Bewaren van het actief sjabloon? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Wilt u sjabloon %1 bewaren? - + new_template template name suggestion when duplicating the default one Nieuw_sjabloon - + Duplicate a title block template input dialog title Dupliceer titel blok sjabloon - + In order to duplicate this template, please enter a name for its copy input dialog text Om dit sjabloon te kopieren, geef een naam voor de kopie - + &New menu entry &Nieuw - + &Open menu entry &Openen - + Open from a file menu entry Open van een bestand - + &Save menu entry B&ewaren - + Save as menu entry Bewaren als - + Save to a file menu entry Opslaan naar een bestand - + &Quit menu entry &Afsluiten - + Manage logos menu entry Beheer logos - + Zoom In menu entry Zoom In - + Zoom out menu entry Zoom uit - + Fit in view menu entry Past in scherm - + Reset zoom menu entry Reset zoom - + Save as dialog title Bewaaren als - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech titel blok sjablonen (*%1) - + &Merge cells menu entry Cellen samenvoegen &f - + Cu&t menu entry Kn&ippen - + &Copy menu entry Kop&ieren - + &Paste menu entry P&lakken - + Edit extra information menu entry Bewerk de extra informatie - + Add a &row menu entry Rij toevoegen &l - + Add a &column menu entry &Kolom toevoegen - + &Split cells menu entry Cellen &splitsen - - - - - - - - - - @@ -13108,144 +14898,154 @@ Wat wil je doen? + + + + + + + + + + Title block template editors Etiket editor - + &File menu title &Bestand - + &Edit menu title Wijzig &en - + Displ&ay menu title Weer&geven - + Tools toolbar title Gereedschappen - + Edit toolbar title Versie - + Display toolbar title Weergave - + No modification label displayed in the undo list when empty Geen wijzigingen - + Undo dock title Afbreken - + Cell properties dock title Cel eigenschappen - + [Changed] window title tag [Gewijzigd] - + [Read only] window title tag [Alleen lezen] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Titel blok sjabloon bewerker - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Fout - + Unable to save the template ‘%1’. message box content - %1 is a title block template name Het lukt niet om de sjabloon "%1" op te slaan. - + Open a title block template File > open dialog window title Open een titel blok sjabloon - + Open a file dialog title Open een bestand - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech titel blok sjablonen (*%1);;XML files (*.xml);; Alle bestanden (*) - + Save template as dialog window title Bewaar sjabloon als - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name De naam "%1" is niet geldig: deze mag de volgende tekens niet bevatten: \ / : * ? " < > | - + Edit extra information window title Bewerk de extra informatie - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. U kan dit leeg veld gebruiken voor informatie betreffende auteurs, licentie en andere info. @@ -13285,7 +15085,7 @@ Wat wil je doen? Het tekstbestand met de GNU / GPL licentie bestaat, maar kan niet worden geopend - goed, maar hoe dan ook, u kent deze toch van buiten (uit het hoofd)? - + Warning: the element has been saved with a more recent version of QElectroTech. Waarschuwing: het element is bewaard in een nieuwere versie van QElectroTech. @@ -13306,7 +15106,7 @@ Wat wil je doen? een grafisch element - + delete %1 undo caption - %1 is a sentence listing the removed content Verwijder %1 @@ -13815,7 +15615,7 @@ Wat wil je doen? - + Title Titel @@ -13831,18 +15631,18 @@ Wat wil je doen? Project eigenschappen - + Select an image ... Selecteer een afbeelding... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Afbeeldings bestanden (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13851,7 +15651,7 @@ Wat wil je doen? Fout - + Unable to load the image. Onmogelijk om de afbeelding op te halen. @@ -13892,8 +15692,8 @@ Wat wil je doen? Klem - + Text Tekst @@ -13909,7 +15709,7 @@ Wat wil je doen? Wijzig de informatie van meerdere elementen - + Edit the cross reference edite the cross reference Kruisverwijzing bewerken @@ -14009,12 +15809,12 @@ the translated name of this folder could not be read, so its folder name is disp Collectie - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14082,8 +15882,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14265,45 +16065,45 @@ Wilt u deze vervangen? - + - + Type Type - + - + Address Adres - - - - + + + + Annotation Commentaar - - - - + + + + Cross-reference Kruis verwijzing - - - - + + + + Function Functie @@ -14638,45 +16438,55 @@ Wilt u deze vervangen? Creatie van geleiders - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> De plug-in qet_tb_generator installeren <br> Bezoek: <a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generator </a> - vereist python 3.5 of hoger. <br> <B> <U> Eerste installatie op Windows </ U> <br> 1. Installeer, indien nodig, python 3.5 of hoger <br> Bezoek: <a href='https://www.python.org/downloads/'> python.org </a> <br> 2. pip install qet_tb_generator <br> <B> <U> Update voor Windows </ U> <br> python -m pip install - upgrade qet_tb_generator <br> directory <br> C: \ gebruikers \ XXXX \ AppData \ Local \ Programs \ Python \ Python36-32 \ Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Om de plugin qet_tb_generator te installeren<br>Ga naar:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>< B><U>Eerste installatie op macOSX</B></U><br>1. Installeer, indien nodig, alleen de python 3.11-bundel, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2- macos11.pkg</a><br>2 Voer het script Profile.command uit<br>omdat het programma een hardgecodeerd PATH gebruikt om de qet-tb-generator-plug-in te lokaliseren <br> Bezoek:<br><a href='https://qelectrotech .org/forum/viewtopic.php?pid=5674#p5674'>hoe</a><br>2. pip3 installeer qet_tb_generator<br><B><U> Update op macOSX</B></U><br> pip3 installeer --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Om de plug-in qet_tb_generator te installeren <br> Bezoek: <br> <a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generator </a> <br> < br> Python 3.5 of hoger vereist. <br> <br> <B> <U> Eerste installatie op Linux </B> </U> <br> 1. controleer of u pip3 hebt geïnstalleerd: pip3 --version <br> Indien niet installeren met: sudo apt-get install python3-pip <br> 2. Installeer het programma: sudo pip3 install qet_tb_generator <br> 3. Start het programma: qet_tb_generator <br> <br> <B> <U> Update op Linux </B> </U> <br> sudo pip3 install --upgrade qet_tb_generator <br> - + Error launching qet_tb_generator plugin Fout bij opstarten qet_tb_generator toepassing - + Add a nomenclature Nomenclatuur toevoegen - + Add a summary Samenvatting toevoegen + + + Add a cable list + + + + + Cable list + + Paste Plakken - + + - - + @@ -14697,83 +16507,113 @@ Wilt u deze vervangen? Compilatie: - - + + Generic generic terminal element type Algemeen - + Fuse fuse terminal element type Samenvoegbaar - + Sectionable sectional terminal element type Verdeelbaar - + Diode diode terminal element type Diode - + Ground ground terminal element type Aarding - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Algemeen - + Phase phase terminal element function Fase - + Neutral neutral terminal element function Nul geleider - - + + Digital input Digitale ingang - + Digital output Digitale uitgang - + Analogue input Analoge ingang - + Analogue output Analoge uitgang - + Universal input Universele ingang - + Universal output Universele uitgang @@ -14788,7 +16628,7 @@ Wilt u deze vervangen? Open een element - + Default layout Standaard lay-out @@ -15006,8 +16846,8 @@ Download deze door de onderstaande link te volgen en pak het uit in de installat - - + + Move %1 @@ -15152,88 +16992,88 @@ Download deze door de onderstaande link te volgen en pak het uit in de installat - + insert %1 Toevoegen %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Bewerken tekst kleur - + Rotate a text - + Edit line of a form Wijzig de eigenschappen van een vorm - + Edit filling a form Wijzig en vervang de eigenschappen van een vorm - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Wijzig een symbool tekst - + Automatically number an element Een element automatisch nummeren - + Renumber elements (%1) - + Search and replace - + Script @@ -15285,7 +17125,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15334,26 +17174,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. De weer te geven informatie is groter dan de maximale hoeveelheid die door de tabellen kan worden weergegeven. Voeg een nieuwe tabel toe of pas de bestaande tabellen aan om alle informatie te tonen. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. De weer te geven informatie is groter dan de maximale hoeveelheid die door de tabel kan worden weergegeven. Voeg een nieuwe tafel toe of pas de bestaande tabel aan om alle informatie weer te geven. - + Table limitation Tabel limieten - + Modify the geometry of a table Wijzig de geometrie van een tabel @@ -15412,12 +17252,12 @@ nothing has been changed. QetShapeItem - + an shape een vorm - + a line een lijn @@ -15688,78 +17528,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Wijzigen %1 - + rectangle een rechthoek - + an ellipse een elipse - + an arc - + polyline een polugoon - + a curve @@ -15808,6 +17648,14 @@ nothing has been changed. Wijzig een rechhoek + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15846,6 +17694,17 @@ nothing has been changed. Het element " %1 " bestaat reeds. Wat wilt u doen ? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16405,7 +18264,7 @@ Maak uw eigen tekst met behulp van de volgende variabelen: &Delete - + &Verwijderen @@ -16856,28 +18715,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Automatisch bladzijde nummering - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16905,7 +18774,7 @@ Het veld "Verhoging" wordt niet gebruikt. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16943,13 +18812,41 @@ De andere velden worden niet gebruikt. De andere velden worden niet gebruikt. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Automatisch nummering vand e elementen - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16987,17 +18884,17 @@ De overige velden worden niet gebruikt. De overige velden worden niet gebruikt. - + New numbering… - + Rename numbering… - + Numbering conductors title window Automatisch nummering geleider @@ -17443,7 +19340,7 @@ De overige velden worden niet gebruikt. Action - + Actie @@ -19900,22 +21797,22 @@ De overige velden worden niet gebruikt. TerminalStripEditor - + Properties Eigenschappen - + Name: Naam: - + Comment : Opmerking : - + Plant: Installatie : @@ -19961,7 +21858,7 @@ De overige velden worden niet gebruikt. - + Generic Algemeen @@ -19986,72 +21883,117 @@ De overige velden worden niet gebruikt. Aarding - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Verplaats in : - + Phase Fase - + Neutral Nul geleider - + Automatic position Automatisch positie - + Group the terminals Klemmen groeperen - + Ungroup the terminals Klemmen groep opheffen - + Bridging the terminals Plaats een brug op de klemmen - + Unbridge the terminals Verwijder brug van de klemmen - + Location : - + Description - + Function : Functie : - + Independent terminals Afzonderlijke klemmen - + Modify terminal strip properties Wijzig de klem eigenschappen @@ -20120,12 +22062,12 @@ De overige velden worden niet gebruikt. Klemmene niveau 0 : - + Headser : Het Begin : - + Bridge point Brugpunt @@ -20190,12 +22132,52 @@ De overige velden worden niet gebruikt. Kruis verwijzing - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Hoogte - + Preview: Voorbeeld : @@ -20258,55 +22240,60 @@ De overige velden worden niet gebruikt. TerminalStripModel - + Position Positie - + Stage Niveau - + Label Etiket - + Number wire Nummer geleider - + Cross-reference Kruisverwijzing - + Cable Kabel - + Color / wire number of the cable Kleur / nummer van draad in kabel - + Type Type - + Function Functie - + led led + + + Shield + + TerminalStripProjectConfigPage @@ -21620,32 +23607,42 @@ De volgende variabelen kunnen gebruikt worden: Weergeven in kruisverwijzing - + Label cross reference Weergave kruisverwijzing - + Master Master - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Slave - + (%f-%l%c) %f-%l%c - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21662,116 +23659,142 @@ De volgende variabelen kunnen gebruikt worden: % LM: Location - + Option display cross Eigenschappen kruisverwijzing - + Show the power contacts in the cross Tonen de vermogen contacten in het kruis - + Prefix of power contacts : Voorvoegsel voor vermogen contact : - + Prefix delayed contacts : Voorvoegsel voor tijdsghestuurd contact : - + Prefix changeover contacts : Voorvoegsel voor omkeer contact : - + Coil Spoel - + Organ of protection Beveiliging - + Switch / button Schakelaar / drukknop - + Programmable Logic Controller (PLC) PLC - + + Cable + Kabel + + + Footer Onder aan de bladzijde - + Under the label of the element Naast element code - + Top boven Top - + Bottom Bodem - + Left Links - + Right Rechts - + Text alignment Tekstuitlijning - + Text field + + + Text: + Tekst: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Exporteer de interne projectdatabase - + untitled Zonder naam diff --git a/lang/qet_no.ts b/lang/qet_no.ts index 763719586..608535a2f 100644 --- a/lang/qet_no.ts +++ b/lang/qet_no.ts @@ -1153,6 +1153,23 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + + + BorderPropertiesWidget @@ -1221,6 +1238,1057 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1264,13 +2332,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Edit the properties of several conductors undo caption @@ -1912,7 +2980,7 @@ Continue? Diagram - + Change the depth @@ -2049,6 +3117,23 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2060,7 +3145,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2068,7 +3153,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2191,224 +3276,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2439,22 +3554,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2462,84 +3577,117 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip - + Paste Here context menu action - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Edit conductor properties undo caption - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. - + Choose the new color for this conductor @@ -3139,7 +4287,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3634,8 +4782,8 @@ Continue? - - + + Type @@ -3718,8 +4866,8 @@ Continue? - - + + Function @@ -3751,7 +4899,7 @@ Continue? - + Simple @@ -3792,19 +4940,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3820,25 +4968,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3864,7 +5012,7 @@ Continue? - + Generic @@ -3888,164 +5036,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5017,7 +6190,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title @@ -5381,97 +6554,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5616,6 +6819,7 @@ that you create. Text and number inputs are + Browse... @@ -5799,8 +7003,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5811,472 +7018,576 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management - + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + min: - + Point-size in diagram-editor: 1 - 5 - - + + max: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6285,50 +7596,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6338,6 +7667,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6465,136 +8133,10 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None - - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - - Left - - - - - - Center - - - - - - Right - - - - - - Font - - - - - Table - - - - - Alignment: - - - - - Content - - @@ -6710,6 +8252,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6925,80 +8490,6 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - - Angle: - - - - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - - Text - - - - @@ -7827,6 +9318,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7930,63 +9429,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8116,133 +9620,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8343,12 +9847,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8356,12 +9860,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8754,7 +10258,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title @@ -8768,101 +10272,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name - + Sheet - + Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8870,7 +10379,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8878,49 +10387,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8928,21 +10437,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8951,7 +10460,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8959,7 +10468,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8967,13 +10476,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -8982,12 +10491,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -8995,12 +10504,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9008,7 +10517,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9017,80 +10526,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9108,24 +10617,6 @@ Give them another numbering first. - - ProjectDBModelPropertiesWidget - - - Form - - - - - Request - - - - - Reload - - - ProjectMainConfigPage @@ -9619,127 +11110,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning - + Electric Normal example text - translate length, not meaning - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9748,152 +11241,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption - + Loading... Systray icon splash screen caption - + QElectroTech systray menu title - + &Quit - + &Hide - + &Show - + &Hide diagram editor - + &Show diagram editors - + &Hide element editor - + &Show element editor - + &Hide title block template editor systray submenu entry - + &Show title block template editors systray submenu entry - + &New diagram editor - + &New element editor - + Closes QElectroTech - + Reduces QElectroTech into the systray - + Restore QElectroTech - + QElectroTech systray icon tooltip - + Diagram editors - + Element editors - + Title block template editors systray menu entry - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9904,31 +11454,31 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory @@ -9937,1430 +11487,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + No modification - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title - + &Export - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Print - + &Quit - + Undo - + Redo - + Cu&t - + &Copy - + &Paste - + Reset conductors - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + View the guides - + Shows or hides the guides - + Sheet properties - + Project properties - + Add a sheet - - - + + + Delete this sheet - + Clean project - + Add a summary - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - + using tabs - + using windows - + Select - + Move - + &Tile - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + &Cascade - + Next project - + Previous project - + &New - + &Open - + &Save - + Save as - - + + &Close - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column - + Remove a column - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Delete - + Rotate - + Rotate the group - + Choose texts orientation - + Find in the panel - + Edit the selected item - + Removes selected elements from the sheet status bar tip - + Rotate selected elements and texts status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip - + Find the selected item in the panel status bar tip - + Select All - + Select none - + Invert selection - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Inverts selection of elements status bar tip - + Zoom In - + Zoom Out - + Zoom content - + Fit in view - + Reset zoom - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip - + Add a textfield - + Add a picture - + Add a PDF - + Add a rectangle - + Add an ellipse - + Add a polygon - + Exports the current sheet to another format status bar tip - + Prints one or more sheet of the current project status bar tip - + Closes QElectroTech status bar tip - + Undoes the previous action status bar tip - + Restores the undone action status bar tip - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip - + Pastes elements from the clipboard into the sheet status bar tip - + Reset the conductors path ignoring the user changes status bar tip - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Shows the various opened projects in windows status bar tip - + Shows the various opened projects in tabs status bar tip - + Allows to select elements status bar tip - + Allows to view the sheet without modifying it status bar tip - + Arranges windows in a tile pattern status bar tip - + Projects dock title - + Collections - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Export to CSV - + Add a nomenclature - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + Arranges windows in a cascade pattern status bar tip - + Activates the next project status bar tip - + Activates the previous project status bar tip - + Add row Add row - + Remove a row Remove row - + Horizontal mirror - + Vertical mirror - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add line Draw line - + Add an arc - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools + - Display + - Diagram + - Add + - Depth toolbar title - + Scripts toolbar title - + &File - + &Edit - + &Project - + Displ&ay - + Wi&ndows - + &Latest files - + &Add - + Selection - + Align - + Rows and columns - + Depth - - + + Scripts - + Display or hide the main toolbar - + Display or hide the Display toolbar - + Display or hide the Diagram toolbar - + Show or hide the elements panel - + Display or hide the undo list - + Display projects - - + + Project %1 registered in the directory: %2. - + Open a file - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11369,7 +13013,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11378,24 +13022,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11406,23 +13050,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11430,7 +13074,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11438,22 +13082,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11461,100 +13105,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11562,7 +13206,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11570,7 +13214,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11578,18 +13222,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11598,28 +13242,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11627,12 +13271,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11642,53 +13286,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11696,8 +13340,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12682,52 +14326,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name - + Untitled project displayed title for a project-less, file-less project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12735,55 +14379,55 @@ Do you wish to continue? - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> - + An error occurred during the template integration. error message - + Warning message box title @@ -12810,166 +14454,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one - + Duplicate a title block template input dialog title - + In order to duplicate this template, please enter a name for its copy input dialog text - + &New menu entry - + &Open menu entry - + Open from a file menu entry - + &Save menu entry - + Save as menu entry - + Save to a file menu entry - + &Quit menu entry - + Cu&t menu entry - + &Copy menu entry - + &Paste menu entry - + Manage logos menu entry - + Edit extra information menu entry - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry - + Add a &row menu entry - + Add a &column menu entry - + &Merge cells menu entry - + &Split cells menu entry - - - - - - - - - - @@ -12979,156 +14613,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + &File menu title - + &Edit menu title - + Displ&ay menu title - + Tools toolbar title - + Edit toolbar title - + Display toolbar title - + No modification label displayed in the undo list when empty - + Undo dock title - + Cell properties dock title - + [Changed] window title tag - + [Read only] window title tag - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title - + Open a file dialog title - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension - + Save template as dialog window title - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension - + Edit extra information window title - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13164,7 +14808,7 @@ What do you wish to do ? - + delete %1 undo caption - %1 is a sentence listing the removed content @@ -13230,7 +14874,7 @@ What do you wish to do ? - + Title @@ -13527,45 +15171,45 @@ What do you wish to do ? - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -13710,12 +15354,12 @@ What do you wish to do ? - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) @@ -13736,7 +15380,7 @@ What do you wish to do ? - + @@ -13752,7 +15396,7 @@ What do you wish to do ? - + Unable to load the image. @@ -13884,8 +15528,8 @@ What do you wish to do ? - + Text @@ -14106,7 +15750,7 @@ What do you wish to do ? - + Warning: the element has been saved with a more recent version of QElectroTech. @@ -14298,10 +15942,10 @@ What do you wish to do ? - + + - - + @@ -14379,12 +16023,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14435,15 +16079,25 @@ Do you want to replace it ? - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14455,103 +16109,133 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14581,7 +16265,7 @@ Do you want to replace it ? - + Default layout @@ -14667,7 +16351,7 @@ Do you want to replace it ? - + Edit the cross reference edite the cross reference @@ -14691,8 +16375,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14876,8 +16560,8 @@ Please download it from the link below and unzip it into the installation folder - - + + Move %1 @@ -15022,88 +16706,88 @@ Please download it from the link below and unzip it into the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15155,7 +16839,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15204,24 +16888,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15280,12 +16964,12 @@ nothing has been changed. QetShapeItem - + an shape - + a line @@ -15556,78 +17240,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + rectangle - + an ellipse - + an arc - + polyline - + a curve @@ -15676,6 +17360,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15714,6 +17406,17 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16713,28 +18416,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16751,13 +18464,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16779,13 +18492,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16807,12 +18548,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19755,7 +21496,7 @@ The other fields are not used. - + Generic @@ -19780,92 +21521,137 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties - + Name: - + Comment : - + Plant: - + Location : - + Description - + Independent terminals - + Modify terminal strip properties @@ -19934,12 +21720,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20004,12 +21790,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20072,55 +21898,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21423,32 +23254,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21459,115 +23300,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Bottom - + Left - + Right - + Text alignment - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_pl.ts b/lang/qet_pl.ts index 1891cf942..ee31b33f6 100644 --- a/lang/qet_pl.ts +++ b/lang/qet_pl.ts @@ -1171,6 +1171,24 @@ Uwaga: te opcje nie pozwalają na zablokowanie automatycznej numeracji tylko ust %1 (najnowsza) + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + Usuń + + BorderPropertiesWidget @@ -1239,6 +1257,1069 @@ Uwaga: te opcje nie pozwalają na zablokowanie automatycznej numeracji tylko ust Pionowo + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Przewód + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + Szukaj: + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + Nowy wpis + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Instalacja (=) + + + + Location (+) + Lokalizacja (+) + + + + Type + Typ + + + + Cores + + + + + Plant + Instalacja + + + + Location + Lokalizacja + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + Nie można zapisać do pliku: +%1 +%2 + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Uwzględnij nagłówki + + + + Preview + Podgląd + + + + cable_list_ + + + + + Save As... + Zapisz jako... + + + + CSV files (*.csv) + + + + + Error + Błąd + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + Nr + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Rozmiar + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Anuluj + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Tak + + + + No + Les noms saisis à la main sont laissés tels quels. + Nie + + + + Cancel + Ne renumérote rien du tout. + Anuluj + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Tak + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Nie + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Anuluj + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + Przewód + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Przewód + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Typ + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Instalacja (=) + + + + Location (+) + Lokalizacja (+) + + + + Length + Rozmiar + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Atrybuty: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Pogrubienie + + + + Italic + Kursywa + + + + Bold italic + + + + + Style: + Typ: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Wyrównanie: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Zapowiedź: + + + + Reset + Przywróć + + + + CableTypeEntryDialog + + + New entry + Nowy wpis + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + Zapisz + + + + Cancel + Anuluj + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + Plik już istnieje i nie jest pusty. + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1282,13 +2363,13 @@ Uwaga: te opcje nie pozwalają na zablokowanie automatycznej numeracji tylko ust Conductor - + Edit conductor properties undo caption zmiana właściwości przewodu - + Edit the properties of several conductors undo caption zmiana właściwości wielu przewodów @@ -1939,7 +3020,7 @@ Kontynuować? Diagram - + Change the depth Zmiana głębokości @@ -2076,6 +3157,24 @@ Kontynuować? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2095,7 +3194,7 @@ Kontynuować? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Kliknij, aby umieścić wklejane obiekty, Esc lub prawy przycisk, aby anulować @@ -2219,228 +3318,258 @@ Kontynuować? DiagramImageItem - + resize niepewne zmiana rozmiaru - + rotate/skew obrót/pochylenie - + + crop + + + + Click: mode %1 Kliknięcie: tryb %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Przeciągnij narożnik/krawędź: zmień rozmiar (Ctrl = od środka, Shift = zachowaj proporcje) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Przeciągnij narożnik: obróć (Shift = co 15°); przeciągnij krawędź: nachyl (Shift = co 15°); czerwony punkt: przesuń środek obrotu - + -- %1: mode %2 -- %1: tryb %2 - + Click Kliknięcie - + Drag: resize (Shift = keep proportions, Ctrl = from center) Przeciągnij: zmień rozmiar (Shift = zachowaj proporcje, Ctrl = od środka) - + Drag: rotate (Shift = 15° steps) Przeciągnij: obróć (Shift = co 15°) - + Drag: skew (Shift = 15° steps) Przeciągnij: nachyl (Shift = co 15°) - + Drag: move the rotation center Przeciągnij: przesuń środek obrotu - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image Zmiana rozmiaru obrazu - + Rotate an image Obrót obrazu - + Skew an image Pochylenie obrazu - + Move an image's rotation center Przesuń środek obrotu obrazu - + Edit an image niepewne Zmiana obrazu - + Restore an image's proportions Przywróć proporcje obrazu - - + + Save image as... Zapisz obraz jako... - - + + Save original image as... Zapisz oryginalny obraz jako... - + PNG image (*.png) Obraz PNG (*.png) - + JPEG image (*.jpg *.jpeg) Obraz JPEG (*.jpg *.jpeg) - + BMP image (*.bmp) Obraz BMP (*.bmp) - + SVG image (*.svg) Obraz SVG (*.svg) - + All files (*) Wszystkie pliki (*) - + Transparency not preserved Przezroczystość nie zostanie zachowana - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? Ten format nie obsługuje przezroczystości: obraz zostanie zapisany w postaci sprzed zastosowania koloru przezroczystego. Kontynuować? - + Saving failed Zapis nie powiódł się - + Unable to save the image to this location. Nie można zapisać obrazu w tej lokalizacji. - + image obraz - + Replace the image... niepewne Zastąp obraz... - + Transparent color... Kolor przezroczysty... - + + Crop on the folio + + + + Crop... niepewne Przytnij... - + + Reset crop + + + + Horizontal mirror Odbij poziomo - + Vertical mirror Odbij pionowo - + Restore proportions Przywróć właściwości - + + Properties... + + + + Select an image ... Wybierz obraz... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Pliki obrazów (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Błąd - + Unable to load the image. Nie można załadować obrazu. - + Replace an image Zastąp obraz - + Horizontal mirror of an image Odbicie poziome obrazu - + Vertical mirror of an image Odbicie pionowe obrazu - + Set a transparent color Ustaw kolor przezroczysty - + Crop an image Przytnij obraz @@ -2472,22 +3601,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size Rozmiar uchwytów - + Text grid Siatka tekstów - + Sheet background color Kolor tła arkusza - + Conductor color Kolor przewodów @@ -2495,47 +3624,52 @@ Hold Shift and drag to move this text on its own DiagramView - + Paste Here context menu action Wklej tutaj - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Obszar do tworzenia schematów, poprzez wstawienie elementów i przyłączenie przewodów. Możliwe jest również niezależne wstawianie tekstów. - + Multiple paste niepewne Kopiuj wielokrotnie - + Create a template context menu action Utwórz szablon - + Make a cabinet thumbnail context menu action Generuj miniaturę szafy - + Sheet reference Odsyłacz arkusza - + + %1: %2 + + + + Add an image Dodanie obrazu - + Add %n image(s) Dodanie %n obrazu @@ -2544,39 +3678,44 @@ Hold Shift and drag to move this text on its own - + Images not added Nie dodano obrazów - + These files could not be added: Nie można było dodać tych plików: - + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Połącz wybrane zaciski - + Untitled what to display for untitled diagrams Bez tytułu - + + Remove this core from the line + + + + Registered template niepewne Zapisz szablon - + The template has been successfully saved as : %1 niepewne @@ -2584,22 +3723,22 @@ Hold Shift and drag to move this text on its own %1 - + Error Błąd - + The file could not be written. Nie można zapisać pliku. - + Choose the new color for this conductor Wybierz nowy kolor przewodu - + Edit conductor properties undo caption zmiana właściwości przewodu @@ -3202,7 +4341,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption niepewne @@ -3708,8 +4847,8 @@ Kontynuować? - - + + Type Typ @@ -3792,8 +4931,8 @@ Kontynuować? - - + + Function Funkcja @@ -3825,7 +4964,7 @@ Kontynuować? - + Simple Nieokreślona @@ -3866,19 +5005,19 @@ Kontynuować? - + Switch normally open Zwierny - + Switch normally closed Rozwierny - + switch Przełączny @@ -3894,25 +5033,25 @@ Kontynuować? - + Power switch Obwody główne - + Switch-on delayed Opóźnienie przy wzbudzeniu - + Switch-off delayed Opóźnienie przy odwzbudzeniu - + Switch-on and off delayed Opuźnienie przy wzbudzeniu & i odwzbudzeniu @@ -3938,7 +5077,7 @@ Kontynuować? - + Generic Standardowy @@ -3958,171 +5097,196 @@ Kontynuować? Diode Diodowy + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fazowy - + Neutral Neutralny - - - - - + + + + + T%1 T%1 - + Other fr: Autre Inne - + PLC Configuration Konfiguracja PLC - + + + - + - - - - + + Address niepewne Adres - - + + Annotation Komentarz - + Cross-reference niepewne Odsyłacz - - + + Nb. niepewne Nr - + T1 T1 - + Header font Czcionka nagłówka - + Set the font for column headers Skonfiguruj czcionkę nagłówków kolumn - + Text font Czcionka tekstu - + Set the text font in the cells Skonfiguruj czcionkę tekstu w komórkach - + Show headers on the sheet Pokaż nagłówki na arkuszu - + Show or hide the column headings of the PLC table on the sheet Pokaż lub ukryj nagłówki kolumn tabeli PLC na arkuszu - + Jump to %1 after: Odstęp %1 po: - + None Brak - + Line H: niepewne Wysokość linii: - - + + mm mm - + Ref. niepewne Odsył. - + Custom column name (blank = default) Niestandardowa nazwa kolumny (puste = domyślna) - + Visible niepewne Widoczny - + Paste from the clipboard Wklej ze schowka - - + + Heading font size: %1 %2pt niepewne Czcionka nagłówków: %1 %2 pkt - - + + Font size: %1 %2pt Czcionka tekstu: %1 %2 pkt - + Column header formatting Czcionka nagłówków kolumn - + Cell text font Czcionka tekstu w komórkach @@ -5132,7 +6296,7 @@ Importując ten plik, potwierdzasz, że: ExportConfigPage - + Export configuration page title Eksport @@ -5518,102 +6682,132 @@ Litery i cyfry mogą być używane. + Filter by label (e.g. Z1) + + + + Move to : niepewne Przenieś do: - + Type : Typ: - + Function : Funkcja: - + LED : LED: - + Apply displacement Zastosuj przemieszczenie - - + + Generic Standardowy - + Fuse niepewne Bezpiecznikowy - + Sectionable niepewne Odłącznikowy - + Diod niepewne Diodowy - + Ground niepewne Uziemiający - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fazowy - + Neutral Neutralny - + Without Brak - + With Obecny - + Modify terminal strip properties Zmiana właściwości zacisków - + The project has no terminal strip: create one with the + button Projekt nie ma żadnej listwy zaciskowej: utwórz ją przyciskiem + - + Apply or cancel the current changes before moving Zastosuj lub anuluj bieżące zmiany przed przeniesieniem - + Select the terminals to move in the table Zaznacz w tabeli zaciski do przeniesienia - + Move the selected terminals to the chosen terminal block Przenieś zaznaczone zaciski do wybranej listwy zaciskowej @@ -5659,17 +6853,17 @@ Litery i cyfry mogą być używane. Użyj kolorów systemu - + User Collection Path Ścieżka do kolekcji użytkownika - + User Title blocks Path Ścieżka do tabliczek rysunkowych użytkownika - + Path of the Common Collection Ścieżka do kolekcji wspólnej @@ -5691,6 +6885,7 @@ Litery i cyfry mogą być używane. + Browse... Przeglądaj... @@ -5732,18 +6927,18 @@ Litery i cyfry mogą być używane. min - + Highlight freshly integrated elements in the panel Wyróżnij w panelu elementy wstawiane jako nowe - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Każdy element posiada puste pole, przeznaczone na informacje o autorze, licencji i inne informacje, które uznasza za istotne Tutaj możesz określić domyślną zawartość tego pola: - + Applied to the next launch of QElectroTech Zmiany zostaną wdrożone przy kolejnym uruchomieniu QElectroTech @@ -5778,32 +6973,32 @@ Tutaj możesz określić domyślną zawartość tego pola: Katalog tabliczek rysunkowych użytkownika - + Elements management Zarządzanie elementami - + Here you can define the default appearance of the different texts of QElectroTech Tutaj możesz zdefiniować domyślny wygląd tekstów w QElectroTech - + Grid + Keyboard Siatka + klawiatura - + Grid: 1 - 30 Siatka: 1 - 30 - + DiagramEditor xGrid Edytor schematów xGrid - + DiagramEditor yGrid Edytor schematów yGrid @@ -5992,8 +7187,11 @@ Tutaj możesz określić domyślną zawartość tego pola: + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet Nie skonfigurowano @@ -6004,150 +7202,218 @@ Tutaj możesz określić domyślną zawartość tego pola: + Create... Utwórz... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Język - + texts Tekst - + Elements texts Tekst elemenu - - - + + + Font: Atrybuty: - - + + ° ° - + Length : Rozmiar: - - + + Rotation : Obrót: - + Independent texts Teksty niezależne - + Other texts Inne teksty - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Siatka musi być aktywna aby móc wprowadzać zmiany. - + Grid for texts moved with the mouse Siatka tekstów przesuwanych myszą - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Ułamek siatki arkuszy. Przytrzymaj Ctrl podczas przesuwania, aby umieścić swobodnie. - + Keyboard movement: 1 - 30 Przesunięcie klawiszem: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Edytor schematów (klawisz: lewo/prawo) xGrid - + DiagramEditor (key: up / down) yGrid Edytor schematów (klawisz: góra/dół) yGrid - + Keyboard movement with the ALT key: 1 - 9 Przesunięcie za pomocą klawisza Alt: 1 - 9 - + DiagramEditor (key: left / right) xGrid Edytor schematów (klawisz: lewo/prawo) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Edytor schematów (klawisz: góra/dół) yGrid - + View grid Wyświetlanie siatki - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). Przy zapisie elementu: odrzuć dwa zaciski o tej samej nazwie i zgłoś zaciski bez nazwy (IEC 61666). - + Check terminal names when saving Sprawdzaj nazwy zacisków przy zapisie - + Point-size in diagram-editor: 1 - 5 Rozmiar punktów siatki: 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Rozmiar punktów siatki edytora elementów: 1 - 5 - + Editor niepewne Edytor - + Max. parts in Element Editor List Maksymalna ilość na liście Edytora Elementów @@ -6162,223 +7428,259 @@ Tutaj możesz określić domyślną zawartość tego pola: Pozwól na powiększenie poza arkusz - + + Bold italic + + + + + Bold + Pogrubienie + + + + Italic + Kursywa + + + + Normal + + + + Rounding up for 0.5 and more niepewne Zaokrąglij do 0,5 i więcej - + Always top rounding Zawsze zaokrąglaj w górę - + Always rounded down Zawsze zaokrąglaj w dół - + Rounding up for 0.75 and more Zaokrąglij do 0,75 i więcej - + No rounding Bez zaokrąglenia - + Disabled fr: Désactivée Wyłączona - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Włączone przez zmienną środowiskową QET_ENABLE_SCRIPTING; to ustawienie nie ma wpływu, dopóki jest ona zdefiniowana. - + Not set (default: %1) hint shown in the material file field when no file is configured yet Nie skonfigurowano (domyślnie: %1) - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + Nie skonfigurowano (domyślnie: %1) + + + General configuration page title Ogólne - + System Systemowy - + Arabic Arabski - + Brazilian Brazylijski - + Catalan Kataloński - + Czech Czeski - + German Niemiecki - + Danish Duński - + Greek Grecki - + English Angielski - + Spanish Hiszpański - + French Francuski - + Croatian Chorwacki - + Italian Włoski - + Japanese Japoński - + Korean Koreański - + Polish Polski - + Portuguese Portugalski - + Romanian Rumuński - + Russian Rosyjski - + Slovenian Soweński - + Dutch Holenderski - + Norwegian Norweski - + Belgium-Flemish Belgijski-Flamandzki - + Turkish Turecki - + Hungarian Węgierski - + Mongolian Mongolski - + Ukrainian Ukraiński - + Chinese Chiński - + Swedish Szwedzki - + + Cable text font + + + + + Core colors font + + + + Company collection path niepewne Ścieżka do kolekcji firmowej - + Company title-blocks niepewne Ścieżka do firmowych tabliczek rysunkowych - + User macro path Ścieżka do makr użytkownika - + Folder not found Nie znaleziono katalogu - + The user collection folder: %1 does not exist and could not be created. @@ -6387,12 +7689,12 @@ does not exist and could not be created. nie istnieje i nie mógł zostać utworzony. - + No subfolder Brak podfolderów - + The user collection: %1 has no subfolder, so there is no prefix to configure. @@ -6401,34 +7703,34 @@ has no subfolder, so there is no prefix to configure. nie zawiera żadnego podfolderu: nie ma więc żadnego prefiksu do skonfigurowania. - + Prefix file cannot be read Nie można odczytać pliku prefiksów - + Prefix file damaged Plik prefiksów jest uszkodzony - + The file %1 is not a valid XML file: %2 Plik %1 nie jest prawidłowym plikiem XML: %2 - + Fix the file Popraw plik - + Rebuild Odbuduj - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6441,33 +7743,36 @@ nie zawiera żadnego podfolderu: nie ma więc żadnego prefiksu do skonfigurowan „Odbuduj”: drzewo folderów jest tworzone na nowo, ale wszystkie bieżące prefiksy zostaną utracone. Bieżący plik jest zachowywany pod nazwą qet_labels.xml.bak przed zastąpieniem. - + File: %1 Plik: %1 - + Select the materials list file Wybierz plik listy materiałów - - + + + + CSV files (*.csv) Plik csv (*.csv) - + Create the materials list file Utwórz plik listy materiałów - + Cannot create Nie można utworzyć - + + Cannot create the file: %1 %2 @@ -6476,17 +7781,32 @@ nie zawiera żadnego podfolderu: nie ma więc żadnego prefiksu do skonfigurowan %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Zbyt wysokie wartość mogą spowodować przeciążenie oprogramowania. - + Experimental feature Funkcjonalność eksperymentalna - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6501,6 +7821,347 @@ Wszelkie wartości inne niż „Brak zaokrąglenia” mogą powodować błędy r 3 - modyfikowania projektu na innym komputerze i/lub ekranie niemającym takich samych parametrów jak w punktach 1 i 2. + + GenericDevice + + + Left + + + + + Right + + + + + Top + Góra + + + + Bottom + Dół + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Nazwa: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Zaciski + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Zaciski + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Nazwa + + + + Function + Funkcja + + + + Type + Typ + + + + Add terminal + + + + + Add gap + + + + + Delete + Usuń + + + + Up + Powyżej + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6628,135 +8289,105 @@ Wszelkie wartości inne niż „Brak zaokrąglenia” mogą powodować błędy r GraphicsTablePropertiesEditor - Table properties - Z + Z - Display - Widok + Widok - Table name - Nazwa tabeli + Nazwa tabeli - None Brak - All - Wszystkie + Wszystkie - Lines to display : - Liczba wyświetlanych wierszy: + Liczba wyświetlanych wierszy: - Y : - Y: + Y: - Next table - Następna tabela + Następna tabela - X : - X: + X: - Previous table - Poprzednia tabela + Poprzednia tabela - Previous table : - Poprzednia tabela: + Poprzednia tabela: - Geometry and lines - Geometria i linie + Geometria i linie - Apply geometry to all tables linked to this one - Zastosuj geometrię do wszystkich powiązanych tabel + Zastosuj geometrię do wszystkich powiązanych tabel - Fit table to sheet - Dopasuj tabelę do arkusza + Dopasuj tabelę do arkusza - TextLabel - Etykieta + Etykieta - Header - Nagłówek + Nagłówek - - Margin - Marginesy + Marginesy - Alignment : - Wyrównanie: + Wyrównanie: - - Left - Lewo + Lewo - - Center - Środek + Środek - - Right - Prawo + Prawo - - Font - Czcionka + Czcionka - Table - Tabela + Tabela - Alignment: - Wyrównanie: + Wyrównanie: - Content - Zawartość + Zawartość @@ -6878,22 +8509,22 @@ Wszelkie wartości inne niż „Brak zaokrąglenia” mogą powodować błędy r ImageDrop - + not a file to nie jest plik - + the file is larger than 10 MB plik jest większy niż 10 MB - + the image has too many pixels obraz ma zbyt wiele pikseli - + unable to read the image nie można odczytać obrazu @@ -7113,76 +8744,60 @@ Wszelkie wartości inne niż „Brak zaokrąglenia” mogą powodować błędy r IndiTextPropertiesWidget - Form - Formuła + Formuła - X : - X: + X: - Advanced Editor - Zaawansowany edytor + Zaawansowany edytor - Size : - Rozmiar: + Rozmiar: - Angle: - Kąt: + Kąt: - - - px - px + px - ° - ° + ° - Y : - Y: + Y: - Width: - Szerokość: + Szerokość: - Text width; the text wraps at this width. Auto: no automatic line wrap - Szerokość tekstu, tekst jest zawijany. Auto: bez automatycznego zawijania wierszy + Szerokość tekstu, tekst jest zawijany. Auto: bez automatycznego zawijania wierszy - Auto - Auto + Auto - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Zawartość, rozmiar i atrybuty tekstu nie mogą być modyfikowane, ponieważ są sformatowane w html. + Zawartość, rozmiar i atrybuty tekstu nie mogą być modyfikowane, ponieważ są sformatowane w html. Użyj do tego zaawansowanego edytora. - Text - Tekst + Tekst - @@ -7190,9 +8805,8 @@ Użyj do tego zaawansowanego edytora. Atrybuty - Click here to cancel html formatting - Kliknij tutaj aby anulować formatowanie html + Kliknij tutaj aby anulować formatowanie html @@ -8031,6 +9645,14 @@ Czy mimo to chcesz powiązać ten zestyk podrzędny? %2 + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8136,63 +9758,68 @@ Czy mimo to chcesz powiązać ten zestyk podrzędny? NewDiagramPage - + Sheet Arkusz - + Conductor Przewód - + Sheet references Odsyłacze do arkuszy - + Cross-references Oznaczenia referencyjne - + Guides Pomoc - + Set the default automatic numbering rules for new projects: Zdefiniuj domyślne reguły automatycznej numeracji dla nowych projektów: - + Conductors Przewody - + Elements Elementy - + Sheets Arkusze - + + Cables + + + + Auto Numbering Automatyczna numeracja - + New sheet configuration page title Nowy arkusz - + New project configuration page title Nowy projekt @@ -8324,134 +9951,134 @@ Czy mimo to chcesz powiązać ten zestyk podrzędny? 0 - - - - - + + + + + number format 1 Numer 1 - - - - + + + + number format 01 Numer 01 - - - - - + + + + + number format 001 Numer 001 - - - - - + + + + + Cyclic (modulo) Modularnie (modulo) - - - - - + + + + + Alphabetical niepewny Alfabetycznie - - - - - + + + + + Text Tekst - - - - + + + + Sheet no. Nr arkusza - - - - + + + + Sheet Arkusz - - - - + + + + Plant Instalacja - - - + + + Element Line Linia elementu - - - - + + + + number format 1 - Sheet Numer 1 - Arkusz - - - - + + + + number format 01 - Sheet Numer 01 - Arkusz - - - - + + + + number format 001 - Sheet Numer 001 - Arkusz - - - - + + + + Location Lokalizacja - - - + + + Element Column Kolumna elementu - - - + + + Element Prefix Prefix elementu @@ -8565,12 +10192,12 @@ Czy mimo to chcesz powiązać ten zestyk podrzędny? PasteNumberingImport - + Numbering missing from this project Numeracja nieobecna w tym projekcie - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8990,7 +10617,7 @@ Jego kopia została zachowana jako: PrintConfigPage - + Printing configuration page title Drukowanie @@ -9004,101 +10631,106 @@ Jego kopia została zachowana jako: Automatyczna numeracja - + Management Zarządzanie - - + + Conductors Przewody - + No. Nr - + Name Nazwa - + Sheet Arkusz - + Element Element - + Frozen Zablokowany - + Assign a free number… Przydziel wolny numer… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. Nadaj zaznaczonemu elementowi numer, którego nikt nie ma: zachowuje on swoją numerację, zmienia się tylko numer. - - + + Elements Elementy - - + + Sheets Arkusze - + + Cables + + + + Sheet Auto Numbering Automatyczna numeracja arkuszy - + Import from another project... Importuj z innego projektu... - + Reuse the automatic numbering saved in another project Przejmij automatyczne numeracje zapisane w innym projekcie - + frozen zablokowany - + — free — — wolny — - + no element has this number (deleted or renumbered) żaden element nie ma tego numeru (usunięty lub przenumerowany) - + No element follows this numbering Żaden element nie stosuje tej numeracji - + %n elements follow this numbering, %1 with a frozen name %n element stosuje tę numerację, w tym %1 z zablokowaną nazwą @@ -9107,7 +10739,7 @@ Jego kopia została zachowana jako: - + ; %n numbers without an element ; %n numer bez elementu @@ -9116,49 +10748,49 @@ Jego kopia została zachowana jako: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. Ta numeracja ma kilka numerów (lub jeden numer na arkusz): nie można wybrać go ręcznie. - + Assign a free number Przydziel wolny numer - + This element's name is frozen: unfreeze it first. Nazwa tego elementu jest zablokowana: najpierw ją odblokuj. - + No number is free. Żaden numer nie jest wolny. - + %1 → %2 %1 → %2 - + Free number for element “%1” (%2): Wolny numer dla elementu „%1” (%2): - - + + Numbering name: Nazwa numeracji: - - + + Modify numbering Zmień numerację - + %n elements follow this numbering and will change formula and name. %n element stosuje tę numerację i zmieni formułę oraz nazwę. @@ -9167,21 +10799,21 @@ Jego kopia została zachowana jako: - - - - + + + + New numbering Nowa numeracja - - + + Rename numbering Zmień nazwę numeracji - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9194,7 +10826,7 @@ Najpierw je odblokuj (zobacz listę) lub tylko zmień nazwę numeracji. - + %n numberings followed by elements with a frozen name were not replaced. %n numeracja stosowana przez elementy z zablokowaną nazwą nie została zastąpiona. @@ -9203,7 +10835,7 @@ Najpierw je odblokuj (zobacz listę) lub tylko zmień nazwę numeracji. - + %n elements changed formula. %n element zmienił formułę. @@ -9212,13 +10844,13 @@ Najpierw je odblokuj (zobacz listę) lub tylko zmień nazwę numeracji. - - + + Delete numbering Usuń numerację - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9231,12 +10863,12 @@ Najpierw nadaj im inną numerację lub stałą nazwę. - + No sheet names this numbering Żaden arkusz nie wskazuje tej numeracji - + %n sheets name this numbering %n arkusz wskazuje tę numerację @@ -9245,12 +10877,12 @@ Najpierw nadaj im inną numerację lub stałą nazwę. - + No sheet follows this numbering Żaden arkusz nie stosuje tej numeracji - + %n sheets follow this numbering %n arkusz stosuje tę numerację @@ -9259,7 +10891,7 @@ Najpierw nadaj im inną numerację lub stałą nazwę. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9272,80 +10904,80 @@ Najpierw nadaj im inną numerację. - + Import numbering from a project Importuj numeracje z projektu - + Project QElectroTech (*.qet) Projekt QElectroTech (*.qet) - - + + Import not possible Import niemożliwy - + Unable to open %1 Nie można otworzyć %1 - + %1 is not a valid QElectroTech project. %1 nie jest prawidłowym projektem QElectroTech. - - + + No numbering Brak numeracji - - + + This project does not contain any automatic numbering. Ten projekt nie zawiera żadnej automatycznej numeracji. - + Numbering to import Numeracje do zaimportowania - + Numbering found in %1: Numeracje znalezione w %1: - + %1: %2 (already exists) %1: %2 (już istnieje) - + Replace numbering with the same name Zastąp numeracje o tej samej nazwie - + Import numberings Importuj numeracje - + Import complete Import zakończony - + %1 numbering(s) imported, %2 kept unchanged. Zaimportowano numeracji: %1, pozostawiono bez zmian: %2. - + %1 numbering(s) imported. Zaimportowano numeracji: %1. @@ -9366,19 +10998,16 @@ Najpierw nadaj im inną numerację. ProjectDBModelPropertiesWidget - Form - Forma + Forma - Request - Konfiguruj + Konfiguruj - Reload - Odśwież + Odśwież @@ -9902,51 +11531,51 @@ Czy chcesz zapisać zmiany? Tabliczki rysunkowe użytkownika - - + + Save settings as... dialog title Zapisz konfigurację jako... - - + + QElectroTech settings (*.conf) file dialog filter Konfiguracje QElectroTech (*.conf) - - + + Error message box title Błąd - + Cannot save the settings to “%1”. Nie można zapisać konfiguracji w „%1”. - + Load settings... dialog title Wczytaj konfigurację... - + “%1” is not a settings file saved by QElectroTech. „%1” nie jest konfiguracją zapisaną przez QElectroTech. - - + + Load settings message box title Wczytaj konfigurację - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9959,37 +11588,37 @@ QElectroTech zostanie następnie zamknięty. Uruchom go ponownie, aby użyć now Czy chcesz kontynuować? - + Toolbars, keyboard shortcuts, mouse and trackpad gestures Paski narzędzi, skróty klawiaturowe, gesty myszy i gładzika - + Defaults for new projects: folio, title block, wires, numbering Ustawienia domyślne nowych projektów: arkusz, tabliczka rysunkowa, przewody, numeracja - + All other settings: appearance, grid, language... Wszystkie pozostałe ustawienia: wygląd, siatka, język... - + Folders of the collections Foldery kolekcji - + Settings to save: Ustawienia do zapisania: - + The folders of your collections are saved only when every part is ticked. Foldery Twoich kolekcji są zapisywane tylko wtedy, gdy zaznaczone są wszystkie części. - + These settings will replace your current ones for: %1 All your other settings are kept. @@ -9998,142 +11627,142 @@ All your other settings are kept. Wszystkie pozostałe ustawienia zostaną zachowane. - + QElectroTech will then close. Start it again to use the new settings. QElectroTech zostanie następnie zamknięty. Uruchom go ponownie, aby użyć nowych ustawień. - + Projects already open keep their own defaults. Już otwarte projekty zachowują własne ustawienia domyślne. - + Do you want to continue? Czy chcesz kontynuować? - + The settings are loaded. They are used for the next new project. Ustawienia zostały wczytane. Zostaną użyte dla następnego nowego projektu. - + &Quit &Zakończ - + &Hide &Ukryj - + &Show &Pokaż - + &Hide diagram editor &Ukryj wszystkie edytory schematów - + &Show diagram editors &Pokaż wszystkie edytory schematów - + &Hide element editor &Ukryj wszystkie edytory elementów - + &Show element editor &Pokaż wszystkie edytory elementów - + &Hide title block template editor systray submenu entry &Ukryj wszystkie edytory tabliczek rysunkowych - + &Show title block template editors systray submenu entry &Pokaż wszystkie edytory tabliczek rysunkowych - + &New diagram editor &Nowy edytor schematów - + &New element editor &Nowy edytor elementów - + Closes QElectroTech Zamknij QElectroTech - + Reduces QElectroTech into the systray Zminimalizuj QElectroTech do systemowego zasobnika - + Restore QElectroTech Pokaż QElectroTech - + Diagram editors Edytory schematów - + Element editors Edytory elementów - + Title block template editors systray menu entry Edytory tabliczek rysunkowych - + Crash report Raport o awarii - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. Podczas ostatniego uruchomienia QElectroTech nie wyłączył się poprawnie. Oto ostatnie komunikaty zarejestrowane przed wyłączeniem -- możesz je zapisać i uwzględnić w raporcie o błędzie. - + Diagnostic report Raport diagnostyczny - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Zawartość najnowszych komunikatów dziennika dla tej sesji. Prosimy o zapoznanie się z treścią przed dołączeniem jej do publicznego zgłoszenia błędu. - + Usage: Użyć: - + QElectroTech, an application to design electric diagrams. Available options: @@ -10150,7 +11779,7 @@ Dostępne opcje: - + [options] [file]... @@ -10159,34 +11788,34 @@ Dostępne opcje: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Określ katalog elementów - + --common-tbt-dir=DIR Define the title block templates collection directory -common-tbt-dir=DIR Określ katalog kolekcji szablonów tabliczek rysunkowych - + --config-dir=DIR Define configuration directory --config-dir=DIR Określ konfigurację katalogu - + --data-dir=DIR Define data directory --data-dir=DIR Zdefiniuj folder data - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Określ katalog zawierający pliki językowe @@ -10211,61 +11840,61 @@ Dostępne opcje: Ładowanie ... Otwieranie plików - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schemat - + Electric Normal example text - translate length, not meaning Elektryczny - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Konfiguracja QElectroTech - + Loading... splash screen caption Ładowanie ... - + Loading... Systray icon splash screen caption Ładowanie ... Ikona w zasobniku systemowym - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -10274,1402 +11903,1496 @@ Dostępne opcje: QETDiagramEditor - + Displ&ay &Widok - + Show or hide the elements panel Pokazuje lub ukrywa panel elementów - + Add a column Wstaw kolumnę - + &Cascade &Kaskada - + &Paste &Wklej - + &Copy &Kopiuj - + Cu&t &Wytnij - + Select none Odznacz - + &Edit &Edycja - + Remove a column Usuń kolumnę - + &Save &Zapisz - + Save as Zapisz jako - + &Export &Eksportuj - + Wi&ndows &Okna - - + + &Close &Zamknij - + &File &Plik - + Print Drukuj - + Invert selection Odwróć zaznaczenie - + Select Tryb edycji - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Ten panel zawiera listę czynności wykonanych w bieżącym arkuszu. Kliknij wykonaną czynność z listy aby powrócić do etapu edycji schematu po jej zastosowaniu. - + Display the grid Pokaż siatkę - + Display or hide the grid of sheet Pokaż lub ukryj sietkę arkuszy - + Sheet properties Właściwości arkusza - + Add a sheet Wstaw arkusz - - - + + + Delete this sheet Usuń arkusz - + Move Tryb podglądu - + &Tile &Mozaika - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Edytor schematów - + Export in pdf Eksportuj do pdf - + Export one or more sheets of the current project status bar tip Eksportuj jeden lub kilka arkuszy bierzącego projektu - + View the guides Pokaż przewodniki - + Shows or hides the guides Pokaż lub ukryj przewodniki - + Export to CSV Eksportuj do farmatu CVS - + Terminal block manager (DEV) Menedżer listw zaciskowych (DEV) - + Launch the terminal block creation plugin Wtyczka do tworzenia listw zaciskowych - + Export the list of names of wires Wyeksportuj listę nazw przewodów - + Export the wiring diagram Eksportuj plan oprzewodowania - + Automatic numbering of terminals Automatyczna numeracja zacisków - + Export the internal project database Wyeksportuj wewnętrzną bazę danych projektu - + &New &Nowy - + Creates a new project status bar tip Tworzy nowy projekt - + Opens an existing project status bar tip Otwiera istniejący projekt - + Closes the current project status bar tip Zamyka bieżący projekt - + Saves the current project and all its sheets status bar tip Zapisuje bieżący projekt i wszystkie arkusze należące do projektu - + Saves the current project with a different file name status bar tip Zapisuje bieżący projekt z inną nazwą pliku - + Add row Add row Wstaw linię - + Remove a row Remove row Usuń wiersz - + Add a column to the sheet status bar tip Wstawia kolumnę do arkusza - + Remove a column from the sheet status bar tip Usuwa kolumnę z arkusza - + Expands the sheet height status bar tip Dodaje wiersz do arkusza - + Shrinks the sheet height status bar tip Usuwa wiersz z arkusza - + Removes selected elements from the sheet status bar tip Usuwa zaznaczenie elementów w arkuszu - + Selects all elements on the sheet status bar tip Zaznacza wszystkie elementy w arkuszu - + Deselect all elements on the sheet status bar tip Usuwa zaznaczenie wszystkich elementów w arkuszu - + Expand the sheet status bar tip Powiększa arkusz - + Shrinks the sheet status bar tip Pomniejsza arkusz - + Adjusts the zoom to display all the contents of sheet regardless of context Dostosowuje powiększenie w celu pokazania całej zawartości bez obramowania - + Adjusts the zoom on exactly the part of the sheet status bar tip Dostosowuje powiększenie do obramowania arkusza - + Add line Draw line Wstaw linię - + Add a rectangle Wstaw prostokąt - + Add an ellipse Wstaw elipsę - + Add a polygon Wstaw wielokąt - + Exports the current sheet to another format status bar tip Eksportuje bieżącą arkusz do innego formatu - + Prints one or more sheet of the current project status bar tip Drukuje jeden lub więcej arkuszy bieżącego projektu + - Depth toolbar title Głębokość - + Group Grupa - + Pastes elements from the clipboard into the sheet status bar tip Wkleja elementy ze schowka do arkusza - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Edytuje właściwości arkusza (rozmiar, informacje w tabliczce rysunkowej, właściwości przewodu...) - + Allows to view the sheet without modifying it status bar tip Podgląd arkusza bez możliwości edycji + - Tools Narzędzia - + &Open &Otwórz - + Open a file Otwórz plik - + Reset zoom Bez powiększenia - + Rotate Obróć - + &Quit &Zakończ - + Delete Usuń - + Select All Zaznacz wszystko - + Fit in view Dostosuj powiększenie - + Zoom Out Pomniejsz - + Zoom In Powiększ - + Undo Cofnij - + Redo Przywróć - + Reset conductors Przywróć trasy przewodów - + Display or hide the main toolbar Pokazuje lub ukrywa główny pasek narzędzi - + Display or hide the Display toolbar Pokazuje lub ukrywa pasek narzędzi Widok - + Display or hide the Diagram toolbar Pokazuje lub ukrywa pasek narzędzi Schemat + - Display Widok + - Diagram Schemat - + Add a textfield Wstaw pole tekstowe - + No modification Bez zmian - + Display or hide the undo list Pokazuje lub ukrywa listę zmian - + Edit the selected item Edycja zaznaczonej pozycji - + Group selected texts Grupowanie zaznaczonych tekstów - + Rotate selected elements and texts status bar tip Obraca zaznaczone elementy i teksty - + Rotate selected texts to a specific angle status bar tip Obraca zaznaczone teksty o dowolny kąt - + Search / Replace Znajdź/zastąp - + &Project &Projekt - + &Latest files &Ostatnio otwarte - - + + Project %1 registered in the directory: %2. Projekt %1 zapisany w kataligu: %2. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Wydaje się, że plik, który próbujesz otworzyć, nie jest do odczytu. Dlatego też nie można go otworzyć. Sprawdź uprawnienia do plików. - + The project you try to open does not seem writable. It will be opened read-only. Wydaje się, że projektu, który próbujesz otworzyć, nie można zapisać. Będzie on otwarty w trybie tylko do odczytu. - + using tabs za pomocą kart - + using windows za pomocą okien - + Display projects Pokaż projekty - + Project properties Właściwości projektu - + Clean project Wyczyść projekt - - + + Unable to open project message box title Projektu nie można otworzyć - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Wydaje się, że plik %1 nie jest plikiem projektu QElectroTech. Dlatego też nie można go otworzyć. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Cofnij - + Click an action to get back in the changes you made to your diagram Status tip Kliknij wykonaną czynność z listy, aby powrócić do etapu edycji schematu po jej zastosowaniu - + Choose texts orientation Orientacja tekstów - + Find in the panel Znajdź w panelu - + Add a picture Wstaw obraz - + Add a summary Wstaw spis arkuszy - + Zoom content Powiększenie zawartości - + Closes QElectroTech status bar tip Zamyka QElectroTech - + Undoes the previous action status bar tip Cofa poprzednią akcję - + Restores the undone action status bar tip Przywraca cofniętą akcję - + Puts selected elements into the clipboard status bar tip Umieszcza zaznaczone elementy w schowku - + Copies selected elements status bar tip Kopiuje zaznaczone elementy do schowka - + Inverts selection of elements status bar tip Odznacza zaznaczone elementy i zaznacza odznaczone elementy - + Find the selected item in the panel status bar tip Wyszukuje zaznaczony element w panelu - + Reset the conductors path ignoring the user changes status bar tip Przywraca trasy przewodów, niezależnie od zmian wprowadzonych przez użytkownika - + Automatic creation conductor (s) Tool tip of auto conductor Automatyczne wstawianie przewodu (ów) - + Projects dock title Projekty - + Collections Kolekcje - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Wstawia automatycznie przewód (y), jeżeli jest to możliwe - + Restores default zoom level status bar tip Przywraca domyślny poziom powiększenia - + Shows the various opened projects in windows status bar tip Pokazuje otwarte projekty w oknach - + Paste at the original position Wklej w punkcie początkowym - - + + Paste element information Wklej informacje o elemencie - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip Umieszcza elementy ze schowka w ich pierwotnej pozycji i przenosi kursor do tego punktu - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip Kopiuje wypełnione informacje elementu ze schowka do zaznaczonych elementów - + &Duplicate Po&wiel - + Copies the selection, offset by the configured spacing status bar tip Kopiuje zaznaczenie, przesunięte o skonfigurowany odstęp - + Configure duplication... Konfiguruj powielanie... - + Choose the spacing and direction used by Duplicate status bar tip Wybierz odstęp i kierunek używane przez Powiel - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Automatyczne odłączenie przewodu (w) - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Automatyczne odłączanie istniejących przewodów podczas umieszczania elementu - + Text grid Siatka tekstów - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Siatka przyciągania tekstów przesuwanych myszą. Przytrzymaj Ctrl podczas przesuwania, aby umieścić swobodnie. - + Disabled Wyłączona - + Keep headers visible Zachowaj widoczne nagłówki - + Keeps the sheet's column numbers and row letters visible at the edge of the view Utrzymuje numery kolumn i litery wierszy arkusza widoczne przy krawędzi widoku - + Show cell boundaries Pokaż granice pól - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Rysuje granice kolumn i wierszy arkusza na schemacie, tylko na ekranie - + Show Widok - + Element texts Teksty elementów - + Conductor texts Teksty przewodów - + Text fields Pola tekstowe - + Shapes Kształty - + Pictures Obrazy - + Tables Tabele - + Cross-references Oznaczenia referencyjne - + See Display > Show Zobacz Widok > Pokaż - + Add a nomenclature Wstaw spis elementów - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Wiring list (database) Lista połączeń (baza danych) - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings Wczytaj ponownie rysunki elementów - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Przerysowuje każdy umieszczony element według jego bieżącej definicji, bez zamykania i ponownego otwierania projektu (operacji nie można cofnąć) - + Run a script... Wykonaj skrypt... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Wykonuje skrypt JavaScript na bieżącym projekcie (zobacz qet.* w skrypcie, aby poznać dostępne API) - + Record a macro Nagraj makro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop Nagrywa to, co robisz w projekcie, aby asystent AI mógł zrobić z tego skrypt; kliknij ponownie, aby zatrzymać - + Manage scripts… Zarządzaj skryptami… - + Write a script and make it a button with an icon Napisz skrypt i zrób z niego przycisk z ikoną - + Open the scripts folder Otwórz folder skryptów - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button Każdy plik .js w tym folderze zaczynający się od nagłówka // ==QETScript== staje się przyciskiem - + Shows the various opened projects in tabs status bar tip Pokazuje otwarte projekty w kartach - + Allows to select elements status bar tip Pozwala zaznaczać elementy - + Rotate the group Obróć grupę - + Horizontal mirror Odbij poziomo - + Vertical mirror Odbij pionowo - - + + Group fr: Grouper Grupuj - + Ungroup Rozgrupuj - + Insert the last element Wstaw ostatni element - + Places the last inserted element again status bar tip Umieszcza ponownie ostatnio wstawiony element - + Search for a command… Szukaj polecenia… - + Type part of a command name and press Enter to launch it status bar tip Wpisz część nazwy polecenia i naciśnij Enter, aby je uruchomić - + Insert an element… Wstaw element… - + Opens the element picker at the cursor position status bar tip Otwiera wybór elementów w pozycji kursora - + Shortcut bar Pasek skrótów - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Otwiera w pozycji kursora polecenia przydatne dla zaznaczenia oraz wybór elementów - + Repeat the last command Powtórz ostatnie polecenie - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Uruchamia ponownie ostatnie narzędzie rysowania lub ostatnie wstawienie elementu (Enter na arkuszu) - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Obróć zaznaczenie jako grupę wokół jej środka, zamiast każdego elementu na swoim miejscu - + Flips the selected elements from left to right status bar tip Odbija zaznaczone elementy z lewej na prawą - + Flips the selected elements from top to bottom status bar tip Odbija zaznaczone elementy z góry na dół - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip Grupuje zaznaczone elementy, teksty, kształty i obrazy: są zaznaczane, przesuwane i kopiowane razem - + Breaks up the selected groups status bar tip Rozwiązuje zaznaczone grupy - + Align to grid Wyrównaj do siatki - + Puts the selected elements, images and texts back on the grid status bar tip Przywraca zaznaczone elementy, obrazy i teksty na siatkę - + Align left Wyrównaj do lewej - + Aligns the left edges of the selected items status bar tip Wyrównuje lewe krawędzie zaznaczonych obiektów - + Centre horizontally Wyśrodkuj w poziomie - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip Wyrównuje zaznaczone obiekty do jednej linii pionowej, elementy według ich punktu początkowego - + Align right Wyrównaj do prawej - + Aligns the right edges of the selected items status bar tip Wyrównuje prawe krawędzie zaznaczonych obiektów - + Align top Wyrównaj do góry - + Aligns the top edges of the selected items status bar tip Wyrównuje górne krawędzie zaznaczonych obiektów - + Centre vertically Wyśrodkuj w pionie - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip Wyrównuje zaznaczone obiekty do jednej linii poziomej, elementy według ich punktu początkowego - + Align bottom Wyrównaj do dołu - + Aligns the bottom edges of the selected items status bar tip Wyrównuje dolne krawędzie zaznaczonych obiektów - + Select all conductors Zaznacz wszystkie przewody - + Select all text fields Zaznacz wszystkie pola tekstowe - + Selects all conductors on the sheet, deselects the rest status bar tip Zaznacza wszystkie przewody arkusza, odznacza resztę - + Selects all text fields on the sheet, deselects the rest status bar tip Zaznacza wszystkie pola tekstowe arkusza, odznacza resztę - + Centre on the cursor Wyśrodkuj na kursorze - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip Centruje arkusz na punkcie pod kursorem myszy, bez zmiany powiększenia - + Add a PDF Wstaw PDF - + Add an arc Wstaw łuk - + Add a curve Dodaj krzywą - + Add a fillet Dodaj zaokrąglenie - + Add a terminal plan Wstaw plan listwy zaciskowej - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Wstaw pole tekstowe do bieżącego arkusza - + Add an image to the current sheet Wstaw obraz do bieżącego arkusza - + Adds a PDF page to the current sheet Wstaw stronę PDF do bieżącego arkusza - + Add a line to the current sheet Wstaw linię do bieżącego arkusza - + Adds a rectangle on the current sheet Wstaw prostokąt do bieżącego arkusza - + Add an ellipse to the current sheet Wstaw elipsę do aktualnego arkusza - + Adds an arc on the current sheet Wstaw łuk do bieżącego arkusza - + Adds a polyline to the current sheet Wstaw wielokąt do bieżącego arkusza - + Adds a Bézier curve to the current sheet Wstaw krzywą Béziera do bieżącego arkusza - + Rounds the corner between two lines of the current sheet Zaokrągla narożnik między dwiema liniami bieżącego arkusza - + Adds a terminal plan to the current sheet Wstaw plan listwy zaciskowej w bieżącym arkuszu - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element Przejdź do elementu - + Quickly search for and select an element in the sheet status bar tip Szybkie wyszukiwanie i wybieranie elementów w arkuszu - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + Automatyczna numeracja + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Tak + + + + No + no + Nie + + + + Cancel + cancel + Anuluj + + + + Edit the cable + edit cable + + + + Remembered after a restart Zachowywane po ponownym uruchomieniu + - Add Wstawienie - + Scripts toolbar title Skrypty - + &Add &Dodaj - + Selection Zaznaczenie - + Align Wyrównaj - + Rows and columns Wiersze i kolumny - + Depth Głębokość - - + + Scripts Skrypty - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Projekty QElectroTech (*.qet);;Pliki XML (*.xml);;Wszystkie pliki (*) - - + + Unable to open file message box title Nie można otworzyć pliku - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Wydaje się, że plik %1 który próbujesz otworzyć nie istnieje. - + Opening the file read-only message box title Otwórz plik tylko do odczytu - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11679,7 +13402,7 @@ Przytrzymaj Ctrl podczas przesuwania, aby umieścić swobodnie. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11689,24 +13412,24 @@ Przytrzymaj Ctrl podczas przesuwania, aby umieścić swobodnie. - + Project fonts message box title Zasady projektu - + Sheet %1: %2 Arkusz %1: %2 - + Conductors not loaded message box title Nie wczytano przewodów - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11724,19 +13447,19 @@ Jeśli zapiszesz projekt, te przewody znikną z pliku. Zamknij go bez zapisywani - + Unable to delete the terminal Nie można usunąć terminala - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted Usuwanięcie nie jest możliwe, ponieważ zaznaczenie zawiera jeden lub więcej zacisków z mostkami i/lub należących do zacisku wielopoziomowego. Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + %n items put back on the grid %n obiekt przywrócony na siatkę @@ -11745,7 +13468,7 @@ Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + %n items aligned Wyrównano %n obiekt @@ -11754,22 +13477,22 @@ Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + The selection is already on the grid Zaznaczenie jest już na siatce - + Select at least two unlocked elements, images, texts, shapes or groups Zaznacz co najmniej dwa niezablokowane elementy, obrazy, teksty, kształty lub grupy - + The selection is already aligned, to the nearest grid step Zaznaczenie jest już wyrównane, z dokładnością do siatki - + (%n locked objects left in place) (%n zablokowany obiekt pozostawiono na miejscu) @@ -11778,100 +13501,100 @@ Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + Edit the element edit element Edycja elementu - + Edit the text field edit text field Edycja pola tekstowego - + Edit the image edit image Edycja obrazu - + Edit conductor edit conductor Edycja właściwości przewodu - + Edit the selected object edit selected item Edycja zaznaczonego objektu - + An error occurred while opening file %1. message box content Wystąpił błąd podczas otwierania pliku %1. - + Activates the project « %1 » Aktywny projekt « %1 » - + Are you sure you want to delete this sheet? Czy na pewno chcesz usunąć ten arkusz? - + Delete the sheets Usunąć arkusze - + Are you sure you want to delete the selected %1 sheets ? Czy na pewno chcesz usunąć %1 wybranych arkuszy? - + Delete %1 sheets Usuń %1 arkuszy - - - - - - - + + + + + + + Move the sheets Przesunięcie arkuszy - + Error message box title Błąd - + Repeat: insert "%1" Powtórz: wstaw „%1” - + Repeat: %1 Powtórz: %1 - + sheet %1 arkusz %1 - + %n elements redrawn. Przerysowano %n element. @@ -11880,7 +13603,7 @@ Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + %n elements for which no definition could be found or which were illegible: their current design has been retained. %n element, którego definicji nie można znaleźć lub odczytać: zachowano jego bieżący rysunek. @@ -11889,7 +13612,7 @@ Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n element nie został przerysowany: zmienił się jego rozmiar, punkt uchwytu lub zaciski (zacisk dodany, usunięty lub przesunięty). @@ -11898,18 +13621,18 @@ Usuń mostki i/lub poziomy powiązanych zacisków, aby móc je usunąć - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. Aby je zaktualizować, należy je usunąć, a następnie wstawić ponownie. Uwaga: ta operacja usuwa przewody już podłączone do tych elementów, które trzeba będzie narysować ponownie. - - + + Run a script Wykonaj skrypt - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11922,28 +13645,28 @@ Skrypt działa z Twoimi uprawnieniami: może czytać i modyfikować otwarty proj Włączyć skrypty? To ustawienie można zmienić w Konfiguracja QElectroTech > Ogólne > Projekty. - + JavaScript scripts (*.js);;All files (*) Skrypty JavaScript (*.js);;Wszystkie pliki (*) - + Ignored: %1 Pominięto: %1 - - + + Stop Zatrzymaj - + Stop recording the macro Zatrzymaj nagrywanie makra - + ● Recording: %n steps ● Nagrywanie: %n krok @@ -11952,12 +13675,12 @@ Włączyć skrypty? To ustawienie można zmienić w Konfiguracja QElectroTech &g - + Macro recorded Makro nagrane - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11974,53 +13697,53 @@ Aby zrobić z niego skrypt, poproś swojego asystenta AI: poniższy przycisk kop - + &Copy the request for the assistant &Kopiuj prośbę dla asystenta - + &Open the folder &Otwórz folder - + Request copied: paste it into the assistant's window Prośba skopiowana: wklej ją w oknie asystenta - + Close the assistant's connection for the rest of the session Przerwij połączenie z asystentem do końca sesji - + Live mode: assistant connected Tryb bezpośredni: asystent połączony - + Live mode: waiting for an assistant Tryb bezpośredni: oczekiwanie na asystenta - - + + Assistant Asystent - + Ask before running a script the assistant wrote Pytaj przed wykonaniem skryptu napisanego przez asystenta - + Live mode: %1 %2 at %3 Tryb bezpośredni: %1 %2 o %3 - + %n kinds of items hidden Ukryto %n typ obiektów @@ -12029,41 +13752,41 @@ Aby zrobić z niego skrypt, poproś swojego asystenta AI: poniższy przycisk kop - - + + Texts %1 Teksty %1 - + Arranges windows in a tile pattern status bar tip Prezentuje okna w postaci mozaiki - + Arranges windows in a cascade pattern status bar tip Prezentuje okna w postaci kaskady - + Next project Następny projekt - + Previous project Poprzedni projekt - + Activates the next project status bar tip Uaktywnia następny projekt - + Activates the previous project status bar tip Uaktywnia poprzedni projekt @@ -13057,58 +14780,58 @@ wymagane warunki nie zostały spełnione QETProject - + Warning message box title Uwaga - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Untitled project displayed title for a project-less, file-less project Projekt bez tytułu - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [tylko do odczytu] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [zmieniony] - + Renumber elements Przenumeruj elementy - + Renumber elements (%1) Przenumeruj elementy (%1) - + Modified contact system Modyfikacja grup zestyków - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -13119,13 +14842,13 @@ Istniejące elementy podrzędne nie zostaną automatycznie przypisane. Konieczne Czy chcesz kontynuować? - + An error occurred during the template integration. error message Wystąpił błąd podczas integracji szablonu. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -13134,7 +14857,7 @@ You are currently using QElectroTech in version %2 Obecnie używasz QElectroTech w wersji %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -13143,32 +14866,32 @@ What do you wish to do ? Co chcesz zrobić? - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Projekt, który próbujesz otworzyć, jest częściowo zgodny z twoją wersją %1 QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Dla pełnej kompatybilności, otwórz ten projekt z wersją 0.8 lub 0.80 QElectroTech, zapisz projekt i otwórz go ponownie z tą wersją. Co chcesz zrobić? - + Warning message box title Ostrzeżenie - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Otwieranie projektu trwa...</b><br/>Tworzenie arkusza</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Otwieranie projektu trwa...</b><br/>Konfiguracja odsyłaczy</p> @@ -13552,7 +15275,7 @@ Co chcesz zrobić? Plik tekstowy zawierający licencję GNU/GPL istnieje, ale nie można go otworzyć - na pewno znasz ją sercem, prawda? - + Warning: the element has been saved with a more recent version of QElectroTech. Uwaga: element został zapisany w nowszej wersji QElectroTech. @@ -13573,7 +15296,7 @@ Co chcesz zrobić? element graficzny - + delete %1 undo caption - %1 is a sentence listing the removed content usunięcie %1 @@ -14091,7 +15814,7 @@ Co chcesz zrobić? - + Title Tytuł @@ -14168,8 +15891,8 @@ Co chcesz zrobić? Zacisk - + Text Tekst @@ -14185,7 +15908,7 @@ Co chcesz zrobić? Zmień informacje dotyczące wielu elementów - + Edit the cross reference edite the cross reference Edytuj odsyłacz @@ -14286,12 +16009,12 @@ the translated name of this folder could not be read, so its folder name is disp Kolekcja - + This group cannot be moved: the position of one of its elements is locked. Tej grupy nie można przesunąć: pozycja jednego z jej elementów jest zablokowana. - + Add %n conductors add a numbers of conductor one or more @@ -14361,8 +16084,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 Obrót %1 @@ -14539,45 +16262,45 @@ Czy chcesz ją zastąpić? - + - + Type Typ - + - + Address Adres - - - - + + + + Annotation Komentarz - - - - + + + + Cross-reference Odsyłacz - - - - + + + + Function Funkcja @@ -14945,36 +16668,46 @@ Czy chcesz ją zastąpić? Tworzenie przewodów - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Aby zainstalować wtyczkę qet_tb_generator<br>Odwiedź:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Wymagany python 3.5 or above.<br><B><U> Pierwsza instalacja w Windows</B></U><br>1. Instalacja, wymagany, python 3.5 lub nowszy<br> Odwiedź :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Aktualizacja w Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> niepewne Aby zainstalować wtyczkę qet_tb_generator<br>Odwiedź:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Pierwsza instalacja na macOSX</B></U><br>1. Zailstaluj, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Uruchom Profile.command script<br>ponieważ program używa zakodowanego na stałe PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Aby zainstalować wtyczkę qet_tb_generator<br>Odwiedź:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Wymagany python 3.5 lub nowszy.<br><br><B><U> Pierwsza instalacja w systemie Linux</B></U><br>1. sprawdź czy zainstalowano pip3 installed: pip3 --version<br>Jeżeli nie zainstalij przez: sudo apt-get install python3-pip<br>2. Zainstaluj program: sudo pip3 install qet_tb_generator<br>3. Uruchom program: qet_tb_generator<br><br><B><U> Aktualizacja w systemie Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Błąd podczas uruchamiania wtyczki qet_tb_generator - + Add a nomenclature Wstaw spis elementów - + Add a summary Wstaw spis arkuszy + + + Add a cable list + + + + + Cable list + + Paste @@ -14982,10 +16715,10 @@ Czy chcesz ją zastąpić? Sklej - + + - - + @@ -15026,83 +16759,113 @@ Czy chcesz ją zastąpić? Sortuj listwę zaciskową %1 - - + + Generic generic terminal element type Ogólne - + Fuse fuse terminal element type Bezpiecznikowy - + Sectionable sectional terminal element type Łączeniowy - + Diode diode terminal element type Diodowy - + Ground ground terminal element type Uziemiający - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Ogólny - + Phase phase terminal element function Fazowy - + Neutral neutral terminal element function Neutralny - - + + Digital input Wejście cyfrowe - + Digital output Wyjście cyfrowe - + Analogue input Wejście analogowe - + Analogue output Wyjście analogowe - + Universal input Wejście uniwersalne - + Universal output Wyjście uniwersalne @@ -15143,7 +16906,7 @@ Czy chcesz ją zastąpić? %p% przeprowadzone (%v nad %m) - + Default layout Domyślny układ @@ -15325,8 +17088,8 @@ Nie można wyrenderować strony PDF. - - + + Move %1 Przesunięcie %1 @@ -15481,88 +17244,88 @@ Nie można wyrenderować strony PDF. - + insert %1 Wstawianie %1 - + Edit the conductor properties Zmiana właściwości przewodu - + Edit a text Zmiana tekstu - + Change the color of a text Zmiana koloru tekstu - + Rotate a text Obrót tekstu - + Edit line of a form Zmiana obrysu kształtu - + Edit filling a form Zmiana wypełnienia - + Rotate a shape Obrót kształtu - - + + Change the shape of %1 Zmiana kształtu %1 - + Close/Open %1 Zamknięcie/otwarcie %1 - + Resize an image Zmiana rozmiaru obrazu - + Rotate an image Obrót obrazu - + Edit element text Zmień tekst elemenu - + Automatically number an element Automatyczne numerowanie elementu - + Renumber elements (%1) Przenumeruj elementy (%1) - + Search and replace Znajdź i zamień - + Script @@ -15620,7 +17383,7 @@ Aby ją włączyć: Konfiguracja QElectroTech > Ogólne > Projekty, lub zd Odblokuj nazwę elementu - + Sheet Arkusz @@ -15669,26 +17432,26 @@ Aby ją włączyć: Konfiguracja QElectroTech > Ogólne > Projekty, lub zd QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Wyświetlane informacje są większe niż maksymalna liczba, którą można wyświetlić w tabelach. Dodaj nową tabelę lub dostosuj istniejące tabele, aby wyświetlić wszystkie informacje. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Wyświetlane informacje są większe niż maksymalna liczba, którą można wyświetlić w tabeli. Dodaj nową tabelę lub dostosuj istniejącą, aby wyświetlić wszystkie informacje. - + Table limitation Ograniczenie tabeli - + Modify the geometry of a table Zmień wymiary tabeli @@ -16156,6 +17919,14 @@ nic nie zostało zmienione. Zmiana prostokąta + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -16194,6 +17965,18 @@ nic nie zostało zmienione. L'element « %1 » już istnieje. Co chcesz zrobić? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -17215,28 +18998,38 @@ qet.addText(f, "Tekst", 40, 40); Wróć do zapisanej definicji - + Move this variable up Przesuń tę zmienną w górę - + Move this variable down Przesuń tę zmienną w dół - + Delete this variable Usuń tę zmienną - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Automatyczna numeracja arkuszy - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17264,7 +19057,7 @@ Pole "Inkrementacja" nie jest używane. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17296,13 +19089,41 @@ Jeżeli numer określony w polu "Wartość" składa się z mniejszej i Pole "Inkrementacja" nie jest używane. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Automatyczne numerowanie elementu - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17340,17 +19161,17 @@ Pozostałe pola nie są używane. Pozostałe pola nie są używane. - + New numbering… Nowa numeracja… - + Rename numbering… Zmień nazwę numeracji… - + Numbering conductors title window Automatyczna numerfacja przewodów @@ -20264,42 +22085,42 @@ Pozostałe pola nie są używane. Układ - + Bridging the terminals Połączenie zacisków - + Unbridge the terminals Rozłączenie zacisków - + Properties Właściwości - + Name: Nazwa: - + Comment : Komentarz: - + Description Opis - + Plant: Instalacja: - + Location : Lokalizacja: @@ -20309,13 +22130,13 @@ Pozostałe pola nie są używane. Typ: - + Ungroup the terminals Rozgrupuj zaciski - + Generic Ogólne @@ -20355,42 +22176,67 @@ Pozostałe pola nie są używane. Uziemiający - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Cable : Przewód: - + Name of the cable of the selected terminals Nazwa przewodu zaznaczonych zacisków - + Set the cable name to all the selected terminals Przypisz nazwę przewodu wszystkim zaznaczonym zaciskom - + Apply the cable to the selection Przypisz przewód do zaznaczenia - + Move to : Przenieś do: - + Phase Fazowy - + Neutral Neutralny - + Automatic position Pozycja automatyczna @@ -20400,13 +22246,13 @@ Pozostałe pola nie są używane. Poziom: - + Group the terminals niepewne Grupuj zaciski - + Function : Funkcja: @@ -20421,7 +22267,7 @@ Pozostałe pola nie są używane. Obecny - + LED : LED: @@ -22052,32 +23898,42 @@ skojarzenie nazwy "volta" i wartości "1745" spowoduje zast Pokaż krzyż - + Label cross reference Etykieta oznaczenia referencyjnego - + Master Główny - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Podrzędny - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -22094,115 +23950,141 @@ skojarzenie nazwy "volta" i wartości "1745" spowoduje zast %LM: lokalizacja - + Option display cross Opcje wyświetlania krzyża - + Show the power contacts in the cross Pokaż zestyki i krzyż - + Prefix of power contacts : Prefiks dla zestyków obwodów głównych: - + Prefix delayed contacts : Prefiks dla zestyków działających z opóźnieniem: - + Prefix changeover contacts : Prefiks dla zestyków przełącznych: - + Coil Cewka - + Organ of protection Zabezpieczenie - + Switch / button Łącznik pokrętny/przyciskowy - + Programmable Logic Controller (PLC) Sterownik (PLC) - + + Cable + Przewód + + + Footer Dolna - + Under the label of the element Pod oznaczeniem elementu - + Top Góra - + Bottom Dół - + Left Lewy - + Right Prawy - + Text alignment Wyrównanie tekstu - + Text field Pole tekstowe + + + Text: + Tekst: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. Zapytanie jest puste. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Dozwolone jest tylko jedno zapytanie SELECT (znak ';' może wystąpić tylko na samym końcu). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Dozwolone są tylko zapytania tylko do odczytu (SELECT lub WITH ... SELECT). - + Export the internal project database Wyeksportuj wewnętrzną bazę danych projektu - + untitled Bez nazwy diff --git a/lang/qet_pt.ts b/lang/qet_pt.ts index 2f955dac7..f15857d4d 100644 --- a/lang/qet_pt.ts +++ b/lang/qet_pt.ts @@ -385,7 +385,7 @@ Middle - + Meio @@ -589,7 +589,7 @@ text alignment - + alinhamento do texto @@ -731,7 +731,7 @@ Element - + Elemento @@ -917,7 +917,7 @@ form Element - + Elemento @@ -1156,6 +1156,23 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Apagar + + BorderPropertiesWidget @@ -1182,7 +1199,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + Formato: @@ -1216,16 +1233,1067 @@ form Custom - + Personalisados Landscape - + Paisagem Portrait + Retrato + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + Antevisão + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + Erro + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Desfazer + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Desfazer + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Desfazer + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Fonte : + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Alinhamento : + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Desfazer + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1272,13 +2340,13 @@ form Conductor - + Edit conductor properties undo caption - + Editar as propriedades do condutor - + Edit the properties of several conductors undo caption @@ -1383,7 +2451,7 @@ form Edit conductor properties undo caption - + Editar as propriedades do condutor @@ -1412,7 +2480,7 @@ form Edit conductor properties undo caption - + Editar as propriedades do condutor @@ -1923,7 +2991,7 @@ Continue? Diagram - + Change the depth @@ -2066,6 +3134,23 @@ form + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2077,7 +3162,7 @@ form DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2085,7 +3170,7 @@ form DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2208,224 +3293,254 @@ form DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Erro - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2456,22 +3571,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2479,84 +3594,117 @@ Hold Shift and drag to move this text on its own DiagramView - + Paste Here context menu action Colar aqui - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Esta é a área onde cria os seus esquemas, colocando elementos e coloca os condutores ligados aos bornes. Nesta área também pode adicionar texto. - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Choose the new color for this conductor Escolher a nova cor do condutor - + Edit conductor properties undo caption + Editar as propriedades do condutor + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Erro - + The file could not be written. @@ -2672,7 +3820,7 @@ form Add text - + Adicionar texto @@ -2767,7 +3915,7 @@ form Information - + Informações @@ -2908,7 +4056,7 @@ form Middle - + Meio @@ -2980,7 +4128,7 @@ form px - + px @@ -3105,7 +4253,7 @@ form Middle - + Meio @@ -3162,7 +4310,7 @@ form Element - + Automatically number an element undo caption @@ -3663,8 +4811,8 @@ Continue? - - + + Type @@ -3747,8 +4895,8 @@ Continue? - - + + Function @@ -3780,7 +4928,7 @@ Continue? - + Simple Simples @@ -3821,19 +4969,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3849,25 +4997,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3893,7 +5041,7 @@ Continue? - + Generic @@ -3917,164 +5065,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Nenhum - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5053,7 +6226,7 @@ form ExportConfigPage - + Export configuration page title Exportar @@ -5426,97 +6599,127 @@ form + Filter by label (e.g. Z1) + + + + Move to : - + Type : Escrever : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5666,6 +6869,7 @@ form + Browse... @@ -5839,8 +7043,11 @@ form + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5851,152 +7058,220 @@ form + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Highlight freshly integrated elements in the panel Destacar no painel os elementos recém integrados - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List @@ -6009,322 +7284,358 @@ form - + Elements management Gestão de elementos - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: Fonte : - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + Normal + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Geral - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6333,50 +7644,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6386,6 +7715,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Esquerda + + + + Right + Direita + + + + Top + Topo + + + + Bottom + Fundo + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Informações + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Nome: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Nome + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + Apagar + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6513,138 +8181,32 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - form + form form form - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None Nenhum - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - Left - Esquerda + Esquerda - - Center - Centrado + Centrado - - Right - Direita + Direita - - - Font - - - - - Table - - - - Alignment: - Alinhamento : - - - - Content - + Alinhamento : @@ -6761,6 +8323,29 @@ form + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6979,83 +8564,25 @@ form IndiTextPropertiesWidget - Form - form + form form form - - X : - - - - - Advanced Editor - - - - - Size : - - - - Angle: - Ângulo: + Ângulo: - - - px - px + px - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - Text - Texto + Texto - @@ -7503,7 +9030,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Imprimir @@ -7893,6 +9420,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7999,63 +9534,68 @@ form NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8188,133 +9728,133 @@ form - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - Texto - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + Texto + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8415,12 +9955,12 @@ form PartText - + Move a text - + Edit the text field @@ -8428,12 +9968,12 @@ form PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8829,7 +10369,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Impressão @@ -8843,101 +10383,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name Nome - + Sheet - + Element Elemento - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8945,7 +10490,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8953,49 +10498,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9003,21 +10548,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9026,7 +10571,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9034,7 +10579,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9042,13 +10587,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9057,12 +10602,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9070,12 +10615,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9083,7 +10628,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9092,80 +10637,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9186,22 +10731,15 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - form + form form form - - Request - - - - Reload - Recarregar + Recarregar @@ -9467,7 +11005,7 @@ form Zoom Out - + Diminuir Zoom @@ -9522,7 +11060,7 @@ form Page layout - + Disposição da página @@ -9697,73 +11235,75 @@ Do you want to save changes? QETApp - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Molduras QET - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Molduras do utilizador - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Erro - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9772,121 +11312,178 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + &Quit &Sair - + &Hide &Esconder - + &Show &Ver - + &Hide diagram editor &Esconder os editores de esquemas - + &Show diagram editors &Mostrar os editores de esquemas - + &Hide element editor &Esconder os editores de elementos - + &Show element editor &Mostrar os editores de elementos - + &Hide title block template editor systray submenu entry &Esconder todos os editores de moldura - + &Show title block template editors systray submenu entry &Mostrar todos os editores de molduras - + &New diagram editor &Novo editor de esquema - + &New element editor &Novo editor de elemento - + Closes QElectroTech Fechar QElectroTech - + Reduces QElectroTech into the systray Minimizar QElectroTech para a bandeja de sistema - + Restore QElectroTech Restaurar QElectroTech - + Diagram editors Editores de esquemas - + Element editors Editores de elementos - + Title block template editors systray menu entry Editores de molduras - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Utilização: - + QElectroTech, an application to design electric diagrams. Available options: @@ -9903,7 +11500,7 @@ Opções disponiveis: - + [options] [file]... @@ -9912,111 +11509,111 @@ Opções disponiveis: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Define a directoria da colecção de elementos - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definir a pasta da colecção de modelos de molduras¶ - + --config-dir=DIR Define configuration directory --config-dir=DIR Define a directoria de configuração - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Define a directoria dos ficheiros de linguagem - + Loading... Initializing the elements collection cache splash screen caption A carregar... a Inicializar cache da colecção de elementos - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption A carregar... abertura dos ficheiros - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Esquema - + Electric Normal example text - translate length, not meaning Eléctrico - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configurar QElectroTech - + Loading... splash screen caption A carregar... - + Loading... Systray icon splash screen caption A carregar... Ícone da bandeja de sistema - + QElectroTech systray menu title QElectroTech - + QElectroTech systray icon tooltip QElectroTech @@ -10025,1040 +11622,1134 @@ Opções disponiveis: QETDiagramEditor - + Displ&ay Ve&r - + Show or hide the elements panel Mostra ou não o painel de elementos - + Add a column Adicionar uma coluna - + &Cascade &Cascata - + &Paste &Colar - + &Copy &Copiar - + Cu&t Cort&ar - + Select none Seleccionar nada - + &Edit &Editar - + Remove a column Eliminar uma coluna - + &Save &Guardar - + Save as Guardar como - + &Export &Exportar - + Wi&ndows Ja&nelas - - + + &Close &Fechar - + &File &Ficheiro - + Print Imprimir - + Invert selection Inverter a selecção - + Select Modo de selecção - + Move Modo de visualização - + &Tile &Mosaico - + Collections - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Editores de esquemas - + Exports the current sheet to another format status bar tip - + Prints one or more sheet of the current project status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Pastes elements from the clipboard into the sheet status bar tip - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Mostrar - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Add a sheet - - - + + + Delete this sheet - + Export to CSV - + Add a nomenclature - + Add a summary - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + Allows to view the sheet without modifying it status bar tip - + &New &Novo - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add row Add row Adicionar uma linha - + Remove a row Remove row Apagar uma linha - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Rotate the group - + Horizontal mirror - + Vertical mirror - + Edit the selected item - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom content - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a picture - + Add a PDF - + Add line Draw line Adicionar uma linha - + Add a rectangle Adicionar um rectângulo - + Add an ellipse Adicionar uma elipse - + Add an arc - + Adicionar um arco - + Add a polygon - + Adicionar um polígono - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Desfazer + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Add + - Depth toolbar title Profundidade - + Scripts toolbar title - - + + Scripts - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11069,7 +12760,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n items aligned @@ -11077,32 +12768,32 @@ If you save the project, these conductors will disappear from the file. Close it - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11110,7 +12801,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11118,7 +12809,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11126,18 +12817,18 @@ If you save the project, these conductors will disappear from the file. Close it - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11146,28 +12837,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11175,12 +12866,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11190,53 +12881,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11244,380 +12935,380 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 + - Tools Ferramentas - + &Open &Abrir - + Open a file Abrir um ficheiro - + Reset zoom Sem zoom - + Rotate Rodar - + &Quit &Sair - + Delete Apagar - + Select All Seleccionar tudo - + Fit in view Ajustar à janela - + Zoom Out Diminuir Zoom - + Zoom In Aumentar Zoom - + Undo Desfazer - + Redo Refazer - + Reset conductors Reinicializar os condutores - + &Latest files - + Display or hide the main toolbar Mostra ou esconde a barra de ferramentas principal - + Display or hide the Display toolbar Mostra ou esconde a barra de ferramentas Mostrar - + Display or hide the Diagram toolbar Mostra ou esconde a barra de ferramentas Esquema + - Display mostra + - Diagram Esquema - + Add a textfield Adicionar um campo de texto - + No modification Sem modificações - + Display or hide the undo list Mostra ou esconde a lista de acções modificadas - + Rotate selected elements and texts status bar tip Roda os elementos e textos seleccionados - + Rotate selected texts to a specific angle status bar tip Roda os textos seleccionados com ângulo definido - + &Project &Projecto - - + + Project %1 registered in the directory: %2. - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. A leitura do ficheiro que está a tentar abrir não parece ser possível e, por isso, não pode ser aberto. Por favor verifique as permissões do ficheiro. - + The project you try to open does not seem writable. It will be opened read-only. O projecto que está a tentar abrir não parece ter prmissões de escrita. Será aberto em modo só de leitura. - + using tabs Usar separadores - + using windows usar janelas - + Display projects Mostra os projectos - + Project properties Propriedades do projecto - + Clean project Limpar o projecto - - + + Unable to open project message box title Não é possível abrir o projecto - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content O ficheiro %1 não é um ficheiro de projecto QElectroTech. Por esse motivo não é possível abrir o ficheiro. - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Desfazer - + Click an action to get back in the changes you made to your diagram Status tip Clicar sobre uma acção para voltar atrás na edição do seu esquema - + Choose texts orientation Orientar os textos - + Find in the panel Encontrar no painel - + Closes QElectroTech status bar tip Fecha QElectroTech - + Undoes the previous action status bar tip Anula a acção anterior - + Restores the undone action status bar tip Restaura a acção anulada - + Puts selected elements into the clipboard status bar tip Transfere os elementos seleccionados para a área de transferência - + Copies selected elements status bar tip Copia os elementos seleccionados para a área de transferência - + Inverts selection of elements status bar tip Anula a selecção dos elementos seleccionados e selecciona os elementos não seleccionados anteriormente - + Reset the conductors path ignoring the user changes status bar tip Calcula novamente os caminhos dos condutores sem ter em conta as modificações - + Projects dock title Projectos - + Restores default zoom level status bar tip Restaura o Zoom padrão - + Shows the various opened projects in windows status bar tip Apresenta os projectos abertos em janelas - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Shows the various opened projects in tabs status bar tip Apresenta os projectos abertos em separadores - + Allows to select elements status bar tip Permite seleccionar elementos - + &Add - + Selection - + Align - + Rows and columns - + Depth Profundidade - - + + Unable to open file message box title Não é possível abrir o ficheiro - + Opening the file read-only message box title Abrir o ficheiro em modo só de leitura - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11626,7 +13317,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11635,29 +13326,29 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + Project fonts message box title - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11665,12 +13356,12 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + (%n locked objects left in place) @@ -11678,113 +13369,113 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Erro - + Arranges windows in a tile pattern status bar tip Dispôe as janelas em mosaico - + Arranges windows in a cascade pattern status bar tip Dispôe as janelas em cascata - + Next project Projecto seguinte - + Previous project Projecto anterior - + Activates the next project status bar tip Activa o projecto seguinte - + Activates the previous project status bar tip Activa o projecto anterior @@ -12347,7 +14038,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b Element editors - + Editores de elementos @@ -12771,58 +14462,58 @@ please wait while importing... QETProject - + Warning message box title Aviso - + Project %1 displayed title for a title-less project - %1 is the file name Projecto %1 - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Untitled project displayed title for a project-less, file-less project Projecto sem título - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [só leitura] - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12830,50 +14521,50 @@ Do you wish to continue? - + An error occurred during the template integration. error message Aconteceu um erro durante a integração do modelo. - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12899,178 +14590,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Guardar o modelo actual? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Deseja guardar o modelo %1 ? - + new_template template name suggestion when duplicating the default one Novo modelo - + Duplicate a title block template input dialog title Duplicar o modelo de moldura - + In order to duplicate this template, please enter a name for its copy input dialog text Para duplicar este modelo digite o nome desejado para esta cópia - + &New menu entry &Novo - + &Open menu entry &Abrir - + Open from a file menu entry Abrir a partir de um ficheiro - + &Save menu entry &Guardar - + Save as menu entry Guardar como - + Save to a file menu entry Salvar como arquivo - + &Quit menu entry &Sair - + Manage logos menu entry Gerir logotipos - + Zoom In menu entry Aumentar zoom - + Zoom out menu entry Diminuir zoom - + Fit in view menu entry Ajustar à janela - + Reset zoom menu entry Sem zoom - + Save as dialog title Guardar em - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Modelos de molduras QElectroTech (*%1) - + &Merge cells menu entry &Unir as células - + Cu&t menu entry Cort&ar - + &Copy menu entry Cop&iar - + &Paste menu entry &Colar - + Edit extra information menu entry Editar informações complementares - + Add a &row menu entry adicionar uma &linha - + Add a &column menu entry Adicionar uma &coluna - + &Split cells menu entry &Separar as células - - - - - - - - - - @@ -13080,144 +14761,154 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Editores de molduras - + &File menu title &Ficheiro - + &Edit menu title &Editar - + Displ&ay menu title Ve&r - + Tools toolbar title Ferramentas - + Edit toolbar title Edição - + Display toolbar title mostrar - + No modification label displayed in the undo list when empty Sem modificações - + Undo dock title Desfazer - + Cell properties dock title Propriedades da célula - + [Changed] window title tag [Modificado] - + [Read only] window title tag [Modo leitura] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectrotech - Editor de modelos de moldura - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Erro - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Abrir um modelo - + Open a file dialog title Abrir um ficheiro - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Modelos de molduras QElectrotech (*%1);;Ficheiros XML (*.xml);;Todos os ficheiros (*) - + Save template as dialog window title Guardar o modelo como - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title Editar informações complementares - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Utilize os campos livres para colocar o autor da moldura, licença, ou qualquer informação que julgue pertinente. @@ -13257,13 +14948,13 @@ What do you wish to do ? O ficheiro de texto que contém a licença GNU/GPL existe mas não pôde ser aberto - ah, de qualquer modo conhece-a de cor, não é? - + Warning: the element has been saved with a more recent version of QElectroTech. Aviso: o elemento foi guardado usando uma versão mais recente de QElectroTech. - + delete %1 undo caption - %1 is a sentence listing the removed content apagar %1 @@ -13787,7 +15478,7 @@ What do you wish to do ? - + @@ -13814,8 +15505,8 @@ What do you wish to do ? Terminal - + Text Texto @@ -13869,8 +15560,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -13899,7 +15590,7 @@ the translated name of this folder could not be read, so its folder name is disp Edit conductor properties undo caption - + Editar as propriedades do condutor @@ -13915,10 +15606,10 @@ the translated name of this folder could not be read, so its folder name is disp - + + - - + @@ -13929,17 +15620,17 @@ the translated name of this folder could not be read, so its folder name is disp - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13990,12 +15681,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14046,113 +15737,153 @@ Do you want to replace it ? - + Add a nomenclature - + Add a summary - - + + Add a cable list + + + + + Cable list + + + + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14168,7 +15899,7 @@ Do you want to replace it ? - + Title @@ -14295,45 +16026,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -14668,7 +16399,7 @@ Do you want to replace it ? - + Default layout @@ -14780,7 +16511,7 @@ Do you want to replace it ? - + Edit the cross reference edite the cross reference @@ -14969,8 +16700,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15115,88 +16846,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15248,7 +16979,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15297,24 +17028,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15639,88 +17370,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + rectângulo - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15769,6 +17500,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15807,6 +17546,17 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16252,7 +18002,7 @@ The following variables can be used: Title: - + Nome: @@ -16361,7 +18111,7 @@ Create your own text using the following variables: &Delete - + &Apagar @@ -16818,28 +18568,38 @@ form - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16856,13 +18616,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16884,13 +18644,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16912,12 +18700,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19859,7 +21647,7 @@ form - + Generic @@ -19884,82 +21672,127 @@ form - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties Propriedades - + Name: Nome: - + Comment : - + Plant: - + Location : - + Description @@ -19977,12 +21810,12 @@ form - + Independent terminals - + Modify terminal strip properties @@ -20054,12 +21887,12 @@ form - + Headser : - + Bridge point @@ -20124,12 +21957,52 @@ form - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20145,7 +22018,7 @@ form Middle - + Meio @@ -20192,55 +22065,60 @@ form TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -20580,7 +22458,7 @@ The following variables can be used: Title: - + Nome: @@ -21552,32 +23430,42 @@ form - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21588,115 +23476,141 @@ form - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Topo - + Bottom - + Fundo - + Left - + Esquerda - + Right - + Direita - + Text alignment - + Text field + + + Text: + Texto: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled @@ -21777,7 +23691,7 @@ form Center - + Centrado diff --git a/lang/qet_pt_BR.ts b/lang/qet_pt_BR.ts index 11015961b..d781d5195 100644 --- a/lang/qet_pt_BR.ts +++ b/lang/qet_pt_BR.ts @@ -632,7 +632,7 @@ Change the angle of an arc - + Alterar o ângulo de um arco @@ -1161,6 +1161,23 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua %1 (a mais recente) + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Excluir + + BorderPropertiesWidget @@ -1200,7 +1217,7 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Format: - + Formato: @@ -1216,16 +1233,1069 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Custom - + Personalizados Landscape - + Paisagem Portrait + Retrato + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Cabo + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + Pesquisar: + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + Nova entrada + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Instalação (=) + + + + Location (+) + Localização (+) + + + + Type + Tipo + + + + Cores + + + + + Plant + Instalação + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + Não foi possível gravar no arquivo: +%1 +%2 + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + incluir cabeçalhos + + + + Preview + Visualização + + + + cable_list_ + + + + + Save As... + Salvar como... + + + + CSV files (*.csv) + + + + + Error + Erro + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + N.º + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Comprimento + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Cancelar + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Sim + + + + No + Les noms saisis à la main sont laissés tels quels. + Não + + + + Cancel + Ne renumérote rien du tout. + Cancelar + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Sim + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Não + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Cancelar + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Cabo + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Cabo + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Tipo + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Instalação (=) + + + + Location (+) + Localização (+) + + + + Length + Comprimento + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Fonte: + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + Texto em negrito + + + + Italic + Texto em itálico + + + + Bold italic + + + + + Style: + Estilo: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Alinhamento: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Visualização : + + + + Reset + Redefinir + + + + CableTypeEntryDialog + + + New entry + Nova entrada + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + Salvar + + + + Cancel + Cancelar + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + O arquivo já existe e não está vazio. + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1272,13 +2342,13 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Conductor - + Edit conductor properties undo caption Editar as propriedades de um condutor - + Edit the properties of several conductors undo caption Editar as propriedades de vários condutores @@ -1924,7 +2994,7 @@ Continuar? Diagram - + Change the depth Modificar a profundidade @@ -2061,6 +3131,23 @@ Continuar? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2072,7 +3159,7 @@ Continuar? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. Clique: posicionar no tamanho original. Clicar e arrastar: posicionar e redimensionar. Clique direito: girar 90°. Ctrl+roda do mouse: ajustar o tamanho. @@ -2080,7 +3167,7 @@ Continuar? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Clique para posicionar a colagem, Esc ou clique direito para cancelar @@ -2203,224 +3290,254 @@ Continuar? DiagramImageItem - + resize redimensionar - + rotate/skew girar/inclinar - + + crop + + + + Click: mode %1 Clique: modo %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Arraste um canto/borda: redimensionar (Ctrl = a partir do centro, Shift = manter proporções) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Arraste um canto: girar (Shift = em passos de 15°); arraste uma borda: inclinar (Shift = em passos de 15°); ponto vermelho: mover o centro de rotação - + -- %1: mode %2 -- %1: modo %2 - + Click Clique - + Drag: resize (Shift = keep proportions, Ctrl = from center) Arraste: redimensionar (Shift = manter proporções, Ctrl = a partir do centro) - + Drag: rotate (Shift = 15° steps) Arraste: girar (Shift = em passos de 15°) - + Drag: skew (Shift = 15° steps) Arraste: inclinar (Shift = em passos de 15°) - + Drag: move the rotation center Arraste: mover o centro de rotação - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image Redimensionar uma imagem - + Rotate an image Girar uma imagem - + Skew an image Inclinar uma imagem - + Move an image's rotation center Mover o centro de rotação de uma imagem - + Edit an image Editar uma imagem - + Restore an image's proportions Restaurar as proporções de uma imagem - - + + Save image as... Salvar a imagem como... - - + + Save original image as... Salvar a imagem original como... - + PNG image (*.png) Imagem PNG (*.png) - + JPEG image (*.jpg *.jpeg) Imagem JPEG (*.jpg *.jpeg) - + BMP image (*.bmp) Imagem BMP (*.bmp) - + SVG image (*.svg) Imagem SVG (*.svg) - + All files (*) Todos os arquivos (*) - + Transparency not preserved Transparência não preservada - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? Este formato não suporta transparência: a imagem será salva como estava antes da aplicação da cor transparente. Continuar? - + Saving failed Falha ao salvar - + Unable to save the image to this location. Não foi possível salvar a imagem neste local. - + image uma imagem - + Replace the image... Substituir a imagem... - + Transparent color... Cor transparente... - + + Crop on the folio + + + + Crop... Recortar... - + + Reset crop + + + + Horizontal mirror Espelhar horizontalmente - + Vertical mirror Espelhar verticalmente - + Restore proportions Restaurar proporções - + + Properties... + + + + Select an image ... Selecione uma imagem... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Arquivos de imagem (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Erro - + Unable to load the image. Não é possível carregar a imagem. - + Replace an image Substituir uma imagem - + Horizontal mirror of an image Espelhamento horizontal de uma imagem - + Vertical mirror of an image Espelhamento vertical de uma imagem - + Set a transparent color Definir uma cor transparente - + Crop an image Recortar uma imagem @@ -2452,107 +3569,140 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Grade dos textos - + Sheet background color - + Cor de fundo da página - + Conductor color - + Cor do condutor DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Esta é a área na qual criamos os esquemas, inserindo componentes e interconectando os seus terminais. Também podemos inserir textos diversos. - + Paste Here context menu action Colar aqui - + Multiple paste Colagem múltipla - + Create a template context menu action Criar um modelo - + Make a cabinet thumbnail context menu action Gerar uma miniatura do painel - + Sheet reference Referência de página - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Conectar os terminais selecionados - + Untitled what to display for untitled diagrams Sem título - + + Remove this core from the line + + + + Registered template Modelo salvo - + The template has been successfully saved as : %1 O modelo foi salvo com sucesso em: %1 - + Error Erro - + The file could not be written. Não foi possível gravar o arquivo. - + Choose the new color for this conductor Escolha a nova cor do condutor - + Edit conductor properties undo caption Editar as propriedades de um condutor @@ -2991,7 +4141,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3153,7 +4303,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Numerar automaticamente um elemento @@ -3657,8 +4807,8 @@ Continuar? - - + + Type Tipo @@ -3741,8 +4891,8 @@ Continuar? - - + + Function Função @@ -3774,7 +4924,7 @@ Continuar? - + Simple Simples @@ -3815,19 +4965,19 @@ Continuar? - + Switch normally open Normalmente aberto - + Switch normally closed Normalmente fechado - + switch Inversor @@ -3843,25 +4993,25 @@ Continuar? - + Power switch Contato de Potência - + Switch-on delayed Temporizado ao trabalho - + Switch-off delayed Temporizado ao repouso - + Switch-on and off delayed Temporizado ao trabalho e ao repouso @@ -3887,7 +5037,7 @@ Continuar? - + Generic Genérico @@ -3906,164 +5056,189 @@ Continuar? Diode Diodo + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutro - - - - - + + + + + T%1 T%1 - + Other fr: Autre Outro - + PLC Configuration Configuração do CLP - + + + - + - - - - + + Address Endereço - - + + Annotation Comentário - + Cross-reference Ref. cruzada - - + + Nb. Nº - + T1 T1 - + Header font Fonte dos cabeçalhos - + Set the font for column headers Configurar a fonte dos cabeçalhos de colunas - + Text font Fonte do texto - + Set the text font in the cells Configurar a fonte do texto nas células - + Show headers on the sheet Exibir os cabeçalhos na folha - + Show or hide the column headings of the PLC table on the sheet Exibir ou ocultar os cabeçalhos de colunas da tabela CLP na folha - + Jump to %1 after: Quebra %1 após: - + None Nenhum - + Line H: Alt. linha: - - + + mm mm - + Ref. Ref. - + Custom column name (blank = default) Nome personalizado da coluna (vazio = padrão) - + Visible Visível - + Paste from the clipboard Colar da área de transferência - - + + Heading font size: %1 %2pt Fonte dos cabeçalhos: %1 %2pt - - + + Font size: %1 %2pt Fonte do texto: %1 %2pt - + Column header formatting Fonte dos cabeçalhos de colunas - + Cell text font Fonte do texto das células @@ -5069,7 +6244,7 @@ Ao importar este arquivo, você confirma que: ExportConfigPage - + Export configuration page title Exportar @@ -5453,97 +6628,127 @@ que você cria. Entradas de texto e números + Filter by label (e.g. Z1) + + + + Move to : Mover para: - + Type : Tipo: - + Function : Função: - + LED : LED: - + Apply displacement Aplicar deslocamento - - + + Generic Genérico - + Fuse Fusível - + Sectionable Secionável - + Diod Diodo - + Ground Terra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fase - + Neutral Neutro - + Without Sem - + With Com - + Modify terminal strip properties Editar propriedades da régua de terminais - + The project has no terminal strip: create one with the + button O projeto não tem nenhum bloco de terminais: crie um com o botão + - + Apply or cancel the current changes before moving Aplique ou cancele as alterações em andamento antes de mover - + Select the terminals to move in the table Selecione na tabela os terminais a mover - + Move the selected terminals to the chosen terminal block Mover os terminais selecionados para a régua de terminais escolhida @@ -5630,12 +6835,12 @@ que você cria. Entradas de texto e números Formulário - + User Collection Path Endereço de usuário coletados - + Path of the Common Collection Endereço de coletados comuns @@ -5657,6 +6862,7 @@ que você cria. Entradas de texto e números + Browse... Navegar... @@ -5702,48 +6908,48 @@ que você cria. Entradas de texto e números Local do armazenamento do usuário - + Elements management Gestão de elementos - + Highlight freshly integrated elements in the panel Destacar no painel os elementos recém integrados - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Cada elemento inclui informações sobre seus autores, licença ou qualquer outra informação que você considera útil em um campo livre. Aqui você pode especificar o valor padrão deste campo para os elementos que você irá criar: - + Applied to the next launch of QElectroTech Aplicado ao próximo lançamento do QElectroTech - + Here you can define the default appearance of the different texts of QElectroTech Aqui você pode definir a aparência padrão de diferentes textos QElectroTech - + Grid + Keyboard Grade + Teclado - + Grid: 1 - 30 Grade: 1 - 30 - + DiagramEditor xGrid Editor de diagrama: grade X - + DiagramEditor yGrid Editor de diagrama: grade Y @@ -5927,8 +7133,11 @@ Aqui você pode especificar o valor padrão deste campo para os elementos que vo + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet Não configurado @@ -5939,372 +7148,476 @@ Aqui você pode especificar o valor padrão deste campo para os elementos que vo + Create... Criar... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Idioma - + texts Textos - + Elements texts Textos dos elementos - - - + + + Font: Fonte: - - + + ° ° - + Length : Comprimento: - - + + Rotation : Rotação: - + Independent texts Textos independentes - + Other texts Outros textos - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. A Grade deve estar ativa para poder ver as modificações. - + Grid for texts moved with the mouse Grade dos textos movidos com o mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Fração da grade das páginas. Mantenha Ctrl pressionado durante o movimento para posicionar livremente. - + Keyboard movement: 1 - 30 Movimento do teclado: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Editor de diagrama (tecla: esquerda / direita) XGrade - + DiagramEditor (key: up / down) yGrid Editor de diagrama (tecla: cima / baixo) YGrade - + Keyboard movement with the ALT key: 1 - 9 Movimento do teclado com a tecla ALT: 1 - 9 - + DiagramEditor (key: left / right) xGrid Editor de diagrama (tecla: esquerda / direita) XGrade - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Editor de diagrama (tecla: cima / baixo) YGrade - + View grid Exibição da grade - - + + max: máx: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). Ao salvar um elemento: recusar dois terminais com o mesmo nome e sinalizar os terminais sem nome (IEC 61666). - + Check terminal names when saving Verificar os nomes dos terminais ao salvar - + Point-size in diagram-editor: 1 - 5 Tamanho dos pontos da grade do editor de diagrama: 1 - 5 - - + + min: mín: - + Point-size in element-editor: 1 - 5 Tamanho dos pontos da grade do editor de elementos: 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Máx. de peças na lista do editor de elementos - + + Bold italic + + + + + Bold + Texto em negrito + + + + Italic + Texto em itálico + + + + Normal + Normal + + + Rounding up for 0.5 and more Arredondar para 0,5 e mais - + Always top rounding Sempre arredondar para cima - + Always rounded down Sempre arredondar para baixo - + Rounding up for 0.75 and more Arredondar para 0,75 e mais - + No rounding Sem arredondamento - + Disabled fr: Désactivée Desativada - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Ativado pela variável de ambiente QET_ENABLE_SCRIPTING; esta configuração não tem efeito enquanto ela estiver definida. - + Not set (default: %1) hint shown in the material file field when no file is configured yet Não configurado (padrão: %1) - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + Não configurado (padrão: %1) + + + General configuration page title Geral - + System Sistema - + Arabic Árabe - + Brazilian Português BR - + Catalan Catalão - + Czech Checo - + German Alemão - + Danish Dinamarquês - + Greek Grego - + English Inglês - + Spanish Espanhol - + French Francês - + Croatian Croata - + Italian Italiano - + Japanese Japonês - + Korean Coreano - + Polish Polonês - + Portuguese Português - + Romanian Romeno - + Russian Russo - + Slovenian Esloveno - + Dutch Holandês - + Norwegian Noruega - + Belgium-Flemish Belgo-Flamengo - + Turkish Turco - + Hungarian Húngaro - + Mongolian Mongol - + Ukrainian Ucraniano - + Chinese Chinês - + Swedish Sueco - + + Cable text font + + + + + Core colors font + + + + Company collection path Caminho da coleção da empresa - + Company title-blocks Caminho dos blocos da empresa - + User Title blocks Path Caminho do armazenamento do usuário - + User macro path Caminho das macros do usuário - + Folder not found Diretório não encontrado - + The user collection folder: %1 does not exist and could not be created. @@ -6313,12 +7626,12 @@ does not exist and could not be created. não existe e não pôde ser criado. - + No subfolder Nenhuma subpasta - + The user collection: %1 has no subfolder, so there is no prefix to configure. @@ -6327,34 +7640,34 @@ has no subfolder, so there is no prefix to configure. não contém nenhuma subpasta: portanto não há nenhum prefixo a configurar. - + Prefix file cannot be read Arquivo de prefixos ilegível - + Prefix file damaged Arquivo de prefixos danificado - + The file %1 is not a valid XML file: %2 O arquivo %1 não é um arquivo XML válido: %2 - + Fix the file Corrigir o arquivo - + Rebuild Reconstruir - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6367,33 +7680,36 @@ não contém nenhuma subpasta: portanto não há nenhum prefixo a configurar. - + File: %1 Arquivo: %1 - + Select the materials list file Selecionar o arquivo da lista de materiais - - + + + + CSV files (*.csv) Arquivos csv (*.csv) - + Create the materials list file Criar o arquivo da lista de materiais - + Cannot create Não foi possível criar - + + Cannot create the file: %1 %2 @@ -6402,17 +7718,32 @@ não contém nenhuma subpasta: portanto não há nenhum prefixo a configurar. - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Valores altos podem causar travamentos do aplicativo. - + Experimental feature Funcionalidade experimental - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6427,6 +7758,345 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render 3 - editar o projeto em outro computador e/ou tela que não tenha as mesmas configurações dos itens 1 e 2. + + GenericDevice + + + Left + Esquerda + + + + Right + Direita + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Nome: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Terminais + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Terminais + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + Função + + + + Type + Tipo + + + + Add terminal + + + + + Add gap + + + + + Delete + Excluir + + + + Up + Em cima + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Genérico + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6512,7 +8182,7 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Available commands - + Comandos disponíveis @@ -6527,7 +8197,7 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Context: - + Contexto: @@ -6554,135 +8224,105 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render GraphicsTablePropertiesEditor - Table properties - Formulário + Formulário - Display - Exibir + Exibir - Table name - Nome da tabela + Nome da tabela - None Nenhum - All - Todos + Todos - Lines to display : - Linhas a serem exibidas: + Linhas a serem exibidas: - Y : - Y: + Y: - Next table - Tabela seguinte + Tabela seguinte - X : - X: + X: - Previous table - Tabela anterior + Tabela anterior - Previous table : - Tabela anterior: + Tabela anterior: - Geometry and lines - Geometria e linhas + Geometria e linhas - Apply geometry to all tables linked to this one - Aplicar geometria a todas as tabelas vinculadas a esta + Aplicar geometria a todas as tabelas vinculadas a esta - Fit table to sheet - Ajusta a tabela a página + Ajusta a tabela a página - TextLabel - Rótulo do texto + Rótulo do texto - Header - Em cima + Em cima - - Margin - Margem + Margem - Alignment : - Alinhamento: + Alinhamento: - - Left - Esquerda + Esquerda - - Center - Centro + Centro - - Right - Direita + Direita - - Font - Fonte + Fonte - Table - Tabela + Tabela - Alignment: - Alinhamento: + Alinhamento: - Content - Conteúdo + Conteúdo @@ -6800,6 +8440,29 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Voltar à imagem completa, sem recorte + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -7015,76 +8678,48 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render IndiTextPropertiesWidget - Form - Formulário + Formulário - X : - X: + X: - Advanced Editor - Editor avançado + Editor avançado - Size : - Tamanho: + Tamanho: - Angle: - Ângulo: + Ângulo: - - - px - px + px - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - O conteúdo, tamanho e fonte do texto não podem ser alterados porque estão formatados em html. + O conteúdo, tamanho e fonte do texto não podem ser alterados porque estão formatados em html. Por favor, use o editor avançado para isso. - Text - Texto + Texto - @@ -7092,9 +8727,8 @@ Por favor, use o editor avançado para isso. Fonte - Click here to cancel html formatting - Clique aqui para cancelar a formatação html + Clique aqui para cancelar a formatação html @@ -7535,7 +9169,7 @@ Esta configuração fica em Configurar QElectroTech > Geral > Projetos. Print - + Imprimir @@ -7553,7 +9187,7 @@ Esta configuração fica em Configurar QElectroTech > Geral > Projetos. &Cancel - + &Cancelar @@ -7930,6 +9564,14 @@ Deseja vincular este contato escravo mesmo assim? %2 + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8033,63 +9675,68 @@ Deseja vincular este contato escravo mesmo assim? NewDiagramPage - + Sheet Página - + Conductor Condutor - + Sheet references Relatórios da página - + Cross-references Referências cruzadas - + Guides Guias - + Set the default automatic numbering rules for new projects: Definir as regras de numeração automática padrão para os novos projetos: - + Conductors Condutores - + Elements Elementos - + Sheets Páginas - + + Cables + + + + Auto Numbering Autonumeração - + New sheet configuration page title Nova página - + New project configuration page title Novo projeto @@ -8219,133 +9866,133 @@ Deseja vincular este contato escravo mesmo assim? 0 - - - - - + + + + + number format 1 Formato numérico 1 - - - - + + + + number format 01 Formato numérico 01 - - - - - + + + + + number format 001 Formato numérico 001 - - - - - + + + + + Cyclic (modulo) Cíclico (módulo) - - - - - + + + + + Alphabetical Alfabético - - - - - + + + + + Text Texto - - - - + + + + Sheet no. N° Página - - - - + + + + Sheet Página - - - - + + + + number format 1 - Sheet Dígito 1 - Página - - - - + + + + number format 01 - Sheet Dígito 01 - Página - - - - + + + + number format 001 - Sheet Dígito 001 - Página - - - - + + + + Location LocalMaq - - - - + + + + Plant Instalação - - - + + + Element Line Linha do elemento - - - + + + Element Column Coluna do Elemento - - - + + + Element Prefix Prefixo do elemento @@ -8432,7 +10079,7 @@ Deseja vincular este contato escravo mesmo assim? Change a rectangle - + Editar um retângulo @@ -8446,12 +10093,12 @@ Deseja vincular este contato escravo mesmo assim? PartText - + Move a text Mover um texto - + Edit the text field Editar um campo de texto @@ -8459,12 +10106,12 @@ Deseja vincular este contato escravo mesmo assim? PasteNumberingImport - + Numbering missing from this project Numeração ausente neste projeto - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8877,7 +10524,7 @@ Sua cópia foi mantida em: PrintConfigPage - + Printing configuration page title Imprimindo @@ -8891,96 +10538,101 @@ Sua cópia foi mantida em: Autonumeração - - + + Conductors Condutores - + No. N.º - + Name Nome - + Sheet Página - + Element Elemento - + Frozen Congelado - + Assign a free number… Atribuir um número livre… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. Dar ao elemento selecionado um número que ninguém tem: ele mantém sua numeração, só o número muda. - - + + Elements Elementos - - + + Sheets Páginas - + + Cables + + + + Sheet Auto Numbering Autonumeração da página - + Import from another project... Importar de outro projeto... - + Reuse the automatic numbering saved in another project Reutilizar as numerações automáticas salvas em outro projeto - + frozen congelado - + — free — — livre — - + no element has this number (deleted or renumbered) nenhum elemento tem este número (excluído ou renumerado) - + No element follows this numbering Nenhum elemento segue esta numeração - + %n elements follow this numbering, %1 with a frozen name %n elemento segue esta numeração, %1 com nome congelado @@ -8988,7 +10640,7 @@ Sua cópia foi mantida em: - + ; %n numbers without an element ; %n número sem elemento @@ -8996,49 +10648,49 @@ Sua cópia foi mantida em: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. Esta numeração tem vários números (ou um número por página): não é possível escolher um manualmente. - + Assign a free number Atribuir um número livre - + This element's name is frozen: unfreeze it first. O nome deste elemento está congelado: descongele-o primeiro. - + No number is free. Nenhum número está livre. - + %1 → %2 %1 → %2 - + Free number for element “%1” (%2): Número livre para o elemento “%1” (%2): - - + + Numbering name: Nome da numeração: - - + + Modify numbering Modificar a numeração - + %n elements follow this numbering and will change formula and name. %n elemento segue esta numeração e vai mudar de fórmula e de nome. @@ -9046,21 +10698,21 @@ Sua cópia foi mantida em: - - - - + + + + New numbering Nova numeração - - + + Rename numbering Renomear a numeração - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9071,7 +10723,7 @@ Descongele-os primeiro (veja a lista), ou apenas renomeie a numeração. - + %n numberings followed by elements with a frozen name were not replaced. %n numeração seguida por elementos com nome congelado não foi substituída. @@ -9079,7 +10731,7 @@ Descongele-os primeiro (veja a lista), ou apenas renomeie a numeração. - + %n elements changed formula. %n elemento mudou de fórmula. @@ -9087,13 +10739,13 @@ Descongele-os primeiro (veja a lista), ou apenas renomeie a numeração. - - + + Delete numbering Excluir a numeração - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9104,12 +10756,12 @@ Dê a eles outra numeração ou um nome fixo primeiro. - + No sheet names this numbering Nenhuma página nomeia esta numeração - + %n sheets name this numbering %n página nomeia esta numeração @@ -9117,12 +10769,12 @@ Dê a eles outra numeração ou um nome fixo primeiro. - + No sheet follows this numbering Nenhuma página segue esta numeração - + %n sheets follow this numbering %n página segue esta numeração @@ -9130,7 +10782,7 @@ Dê a eles outra numeração ou um nome fixo primeiro. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9141,85 +10793,85 @@ Dê a elas outra numeração primeiro. - + Import numbering from a project Importar as numerações de um projeto - + Project QElectroTech (*.qet) Projeto QElectroTech (*.qet) - - + + Import not possible Não foi possível importar - + Unable to open %1 Não foi possível abrir %1 - + %1 is not a valid QElectroTech project. %1 não é um projeto válido do QElectroTech. - - + + No numbering Nenhuma numeração - - + + This project does not contain any automatic numbering. Este projeto não contém nenhuma numeração automática. - + Numbering to import Numerações a importar - + Numbering found in %1: Numerações encontradas em %1: - + %1: %2 (already exists) %1: %2 (já existe) - + Replace numbering with the same name Substituir as numerações com o mesmo nome - + Import numberings Importar numerações - + Import complete Importação concluída - + %1 numbering(s) imported, %2 kept unchanged. %1 numeração(ões) importada(s), %2 mantida(s) como estava(m). - + %1 numbering(s) imported. %1 numeração(ões) importada(s). - + Management Gestão @@ -9240,19 +10892,16 @@ Dê a elas outra numeração primeiro. ProjectDBModelPropertiesWidget - Form - Formulário + Formulário - Request - Consulta + Consulta - Reload - Recarregar + Recarregar @@ -9750,127 +11399,129 @@ Você deseja salvar as alterações? QETApp - + Loading... Initializing the elements collection cache splash screen caption Carregando... Inicialização do cache das coleções de elementos - + Loading... Sheets editor splash screen caption Carregando... Editor de esquema - + Loading... Opening files splash screen caption Carregando... Abertura de arquivos - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Blocos de legenda do QET - + Company title-blocks title of the company's title block templates collection Blocos de elementos da empresa - + User title blocks title of the user's title block templates collection Blocos de elementos do usuário - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Esquema - + Electric Normal example text - translate length, not meaning Elétrico - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configurar o QElectroTech - + + Save settings as... dialog title Salvar a configuração como... - - + + QElectroTech settings (*.conf) file dialog filter Configurações do QElectroTech (*.conf) - - + + Error message box title Erro - + Cannot save the settings to “%1”. Não foi possível salvar a configuração em “%1”. - + Load settings... dialog title Carregar uma configuração... - + “%1” is not a settings file saved by QElectroTech. “%1” não é uma configuração salva pelo QElectroTech. - + + Load settings message box title Carregar uma configuração - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9883,146 +11534,203 @@ Em seguida, o QElectroTech será fechado. Reinicie-o para usar a nova configura Deseja continuar? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Carregando... - + Loading... Systray icon splash screen caption Carregando... Ícone da bandeja do sistema - + QElectroTech systray menu title QElectroTech - + &Quit Sai&r - + &Hide &Esconder - + &Show &Mostrar - + &Hide diagram editor &Esconder todos os editores de esquema - + &Show diagram editors &Mostrar todos os editores de esquemas - + &Hide element editor &Esconder os editores de elementos - + &Show element editor &Mostrar todos os editores de elementos - + &Hide title block template editor systray submenu entry &Esconder todos os editores de blocos de legenda - + &Show title block template editors systray submenu entry &Mostrar todos os editores de blocos de legenda - + &New diagram editor &Novo editor de esquemas - + &New element editor &Novo editor de elementos - + Closes QElectroTech Fechar o aplicativo QElectroTech - + Reduces QElectroTech into the systray Minimizar QElectroTech para a bandeja do sistema - + Restore QElectroTech Restaurar QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Editores de esquemas - + Element editors Editores de elementos - + Title block template editors systray menu entry Editores de blocos de legenda - + Crash report Relatório de falha - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. O QElectroTech não foi encerrado corretamente na última execução. Estas são as últimas mensagens registradas antes da parada -- você pode salvá-las para anexar a um relatório de bug. - + Diagnostic report Relatório de diagnóstico - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Contém as últimas mensagens de registro desta sessão. Verifique o conteúdo antes de anexá-lo a um relatório de bug público. - + Usage: Utilização : - + [options] [file]... @@ -10031,7 +11739,7 @@ Estas são as últimas mensagens registradas antes da parada -- você pode salv - + QElectroTech, an application to design electric diagrams. Available options: @@ -10048,35 +11756,35 @@ Opções disponíveis: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Define a pasta da coleção de elementos - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Define a pasta da coleção de modelos de blocos de legenda - + --config-dir=DIR Define configuration directory --config-dir=DIR Define a pasta de configuração - + --data-dir=DIR Define data directory --data-dir=DIR Define a pasta de dados - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Define a pasta dos arquivos de idioma @@ -10086,1115 +11794,1165 @@ Opções disponíveis: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Projetos - + Collections Coleções - + No modification Sem modificações - + Click an action to get back in the changes you made to your diagram Status tip Clique sobre uma ação para desfazer as alterações que você efetuou no seu esquema - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Este painel lista as diferentes ações efetuadas sobre a página atual. Clicar sobre uma ação permite retornar ao estado do esquema logo após sua aplicação. - + Undo dock title Desfazer - + &Export E&xportar - + Print Imprimir - + &Quit Sai&r - + Undo Desfazer - + Redo Refazer - + Undoes the previous action status bar tip Desfaz a ação anterior - + Restores the undone action status bar tip Refaz a ação anulada - + Cu&t Cor&tar - + &Copy Co&piar - + &Paste C&olar - + Puts selected elements into the clipboard status bar tip Transfere os elementos selecionados para a área de transferência - + Copies selected elements status bar tip Copia os elementos selecionados para a área de transferência - + Pastes elements from the clipboard into the sheet status bar tip Cola os elementos da área de transferência na página - + Reset conductors Reinicializar os condutores - + Automatic creation conductor (s) Tool tip of auto conductor Criação automática de condutor(es) - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Utilizar a criação automática de fios quando possível - + Display the grid Exibir a grade - + Display or hide the grid of sheet Mostrar ou ocultar a grade das páginas - + Sheet properties Propriedades da página - + Project properties Propriedades do projeto - + Add a sheet Acrescentar uma página - - - + + + Delete this sheet Excluir esta página - + Clean project Limpar o projeto - + Add a summary Adicionar um resumo - + using tabs Usando abas - + using windows Usando janelas - + Select Modo de seleção - + Move Modo de visualização - + &Tile &Mosaico - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Editor de esquemas - + Export in pdf Exportar em pdf - + Export one or more sheets of the current project status bar tip Exportar uma ou mais páginas do projeto atual - + Paste at the original position Colar no ponto de origem - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip Coloca os elementos da área de transferência em sua posição de origem e move o cursor para esse ponto - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate Dupli&car - + Copies the selection, offset by the configured spacing status bar tip Copia a seleção, deslocada pelo espaçamento configurado - + Configure duplication... Configurar a duplicação... - + Choose the spacing and direction used by Duplicate status bar tip Escolher o espaçamento e a direção usados por Duplicar - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Corte automático de condutor(es) - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Cortar automaticamente os condutores existentes ao posicionar um elemento - + Text grid Grade dos textos - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Grade de encaixe dos textos movidos com o mouse. Mantenha Ctrl pressionado durante o movimento para posicionar livremente. - + Disabled Desativada - + View the guides Exibir as guias - + Shows or hides the guides Exibe ou oculta as guias - + Keep headers visible Manter os cabeçalhos visíveis - + Keeps the sheet's column numbers and row letters visible at the edge of the view Mantém os números de coluna e as letras de linha da página visíveis na borda da visualização - + Show cell boundaries Exibir os limites das zonas - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Desenha os limites das colunas e linhas da página no diagrama, somente na tela - + Show Exibir - + Element texts Textos dos elementos - + Conductor texts Textos dos condutores - + Text fields Campos de texto - + Shapes Formas - + Pictures Imagens - + Tables Tabelas - + Cross-references Referências cruzadas - + See Display > Show Veja Exibição > Exibir - + Export to CSV Exportar em formato CSV - + Terminal block manager (DEV) Gerenciador de régua de terminais (DEV) - + Launch the terminal block creation plugin Iniciar o plugin de criação de terminal - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Exportar a lista de nomes dos condutores - + Export the wiring diagram Exportar o plano de fiação - + Wiring list (database) Lista de fiação (banco de dados) - + Automatic numbering of terminals Numeração automática dos terminais - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings Recarregar os desenhos dos elementos - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Redesenha cada elemento posicionado de acordo com a sua definição atual, sem precisar fechar e reabrir o projeto (ação não reversível) - + Run a script... Executar um script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Executa um script JavaScript no projeto atual (veja qet.* no script para a API disponível) - + Record a macro Gravar uma macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop Grava o que você faz no projeto, para que um assistente de IA faça um script com isso; clique novamente para parar - + Manage scripts… Gerenciar os scripts… - + Write a script and make it a button with an icon Escrever um script e transformá-lo em um botão com um ícone - + Open the scripts folder Abrir a pasta dos scripts - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button Cada arquivo .js desta pasta que começa com um cabeçalho // ==QETScript== se torna um botão - + Export the internal project database Exportar o banco de dados interno do projeto - + &Cascade &Cascata - + Next project Projeto seguinte - + Previous project Projeto anterior - + &New &Novo - + &Open &Abrir - + &Save &Salvar - + Save as Salvar como - - + + &Close &Fechar - + Creates a new project status bar tip Cria um novo projeto - + Opens an existing project status bar tip Abre um projeto existente - + Closes the current project status bar tip Fecha o projeto atual - + Saves the current project and all its sheets status bar tip Salva o projeto atual e todas as suas páginas - + Saves the current project with a different file name status bar tip Salva o projeto atual com outro nome de arquivo - + Add a column Adicionar uma coluna - + Remove a column Remover uma coluna - + Add row Add row Adicionar uma linha - + Remove a row Remove row Excluir uma linha - + Add a column to the sheet status bar tip Adiciona uma coluna à página - + Remove a column from the sheet status bar tip Elimina uma coluna da página - + Expands the sheet height status bar tip Aumenta a altura da página - + Shrinks the sheet height status bar tip Diminui a altura da página - + Delete Excluir - + Rotate Girar - + Rotate the group Girar o grupo - + Choose texts orientation Escolha a orientação dos textos - + Horizontal mirror - + Espelhar horizontalmente - + Vertical mirror - + Espelhar verticalmente - + Find in the panel Procurar no painel - + Edit the selected item Editar o item selecionado - - + + Group fr: Grouper Agrupar - + Ungroup Desagrupar - + Insert the last element Inserir o último elemento - + Places the last inserted element again status bar tip Posiciona novamente o último elemento inserido - + Search for a command… Pesquisar um comando… - + Type part of a command name and press Enter to launch it status bar tip Digite parte do nome de um comando e pressione Enter para executá-lo - + Insert an element… Inserir um elemento… - + Opens the element picker at the cursor position status bar tip Abre o seletor de elementos na posição do cursor - + Shortcut bar Barra de atalhos - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Abre, na posição do cursor, os comandos úteis para a seleção e o seletor de elementos - + Repeat the last command Repetir o último comando - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Executa novamente a última ferramenta de desenho ou a última inserção de elemento (Enter na página) - + Removes selected elements from the sheet status bar tip Remove os elementos selecionados da página - + Rotate selected elements and texts status bar tip Gira os elementos e textos selecionados - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Gira a seleção como um grupo em torno do seu centro, em vez de cada elemento no próprio lugar - + Rotate selected texts to a specific angle status bar tip Gira os textos selecionados para um ângulo definido - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Procurar o elemento selecionado no painel - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip Agrupa os elementos, textos, formas e imagens selecionados: eles são selecionados, movidos e copiados juntos - + Breaks up the selected groups status bar tip Desfaz os grupos selecionados - + Align to grid Alinhar à grade - + Puts the selected elements, images and texts back on the grid status bar tip Recoloca na grade os elementos, imagens e textos selecionados - + Align left Alinhar à esquerda - + Aligns the left edges of the selected items status bar tip Alinha as bordas esquerdas dos objetos selecionados - + Centre horizontally Centralizar horizontalmente - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip Alinha os objetos selecionados em uma mesma vertical, pelo ponto de origem no caso dos elementos - + Align right Alinhar à direita - + Aligns the right edges of the selected items status bar tip Alinha as bordas direitas dos objetos selecionados - + Align top Alinhar ao topo - + Aligns the top edges of the selected items status bar tip Alinha as bordas superiores dos objetos selecionados - + Centre vertically Centralizar verticalmente - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip Alinha os objetos selecionados em uma mesma horizontal, pelo ponto de origem no caso dos elementos - + Align bottom Alinhar à base - + Aligns the bottom edges of the selected items status bar tip Alinha as bordas inferiores dos objetos selecionados - + Select All Selecionar tudo - + Select none Desmarcar todos - + Invert selection Inverter a seleção - + Select all conductors Selecionar todos os condutores - + Select all text fields Selecionar todos os campos de texto - + Selects all elements on the sheet status bar tip Seleciona todos os elementos da página - + Deselect all elements on the sheet status bar tip Desmarca todos os elementos da página - + Inverts selection of elements status bar tip Alterna a seleção dos elementos - + Selects all conductors on the sheet, deselects the rest status bar tip Seleciona todos os condutores da página e desmarca o restante - + Selects all text fields on the sheet, deselects the rest status bar tip Seleciona todos os campos de texto da página e desmarca o restante - + Zoom In Aumentar Zoom - + Zoom Out Diminuir Zoom - + Zoom content Zoom sobre o conteúdo - + Fit in view Ajustar à janela - + Reset zoom Restaurar zoom - + Centre on the cursor Centralizar no cursor - + Expand the sheet status bar tip Aumenta a página - + Shrinks the sheet status bar tip Diminui a página - + Adjusts the zoom to display all the contents of sheet regardless of context Ajusta o zoom para exibir toda a página independentemente das bordas - + Adjusts the zoom on exactly the part of the sheet status bar tip Ajusta o zoom exatamente sobre as bordas da página - + Restores default zoom level status bar tip Restaura o zoom padrão - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip Centraliza a página no ponto sob o cursor do mouse, sem alterar o zoom - + Add a textfield Adicionar um campo de texto - + Add a picture Adicionar uma imagem - + Add a PDF Adicionar um PDF - + Add line Draw line Adicionar uma linha - + Add a rectangle Adicionar um retângulo - + Add an ellipse Adicionar uma elipse - + Add an arc Adicionar um arco - + Add a polygon Adicionar uma linha poligonal - + Add a fillet Adicionar um arredondamento - + + Add a generic device… + + + + + Draw a cable + + + + Adds an arc on the current sheet Adiciona um arco na página atual - + Rounds the corner between two lines of the current sheet Arredonda o canto entre duas linhas da página atual - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Scripts toolbar title Scripts - + + Numbering + + + + + Lists + + + + Selection - + Depth Profundidade - - + + Scripts Scripts - + Sheet %1: %2 Página %1: %2 - + Conductors not loaded message box title Condutores não carregados - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11208,8 +12966,46 @@ Se você salvar o projeto, este condutor desaparecerá do arquivo. Feche-o sem s Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o sem salvar para manter o arquivo como está. + + + Automatic numbering + window title + Numeração automática + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Sim + + + + No + no + Não + + + + Cancel + cancel + Cancelar + - + %n items aligned %n objeto alinhado @@ -11217,32 +13013,38 @@ Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o s - + Select at least two unlocked elements, images, texts, shapes or groups Selecione pelo menos dois elementos, imagens, textos, formas ou grupos não travados - + The selection is already aligned, to the nearest grid step A seleção já está alinhada, dentro da tolerância da grade - + + Edit the cable + edit cable + + + + Repeat: insert "%1" Repetir: inserir « %1 » - + Repeat: %1 Repetir: %1 - + sheet %1 página %1 - + %n elements redrawn. %n elemento redesenhado. @@ -11250,7 +13052,7 @@ Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o s - + %n elements for which no definition could be found or which were illegible: their current design has been retained. %n elemento cuja definição não foi encontrada ou está ilegível: o desenho atual foi mantido. @@ -11258,7 +13060,7 @@ Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o s - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n elemento não redesenhado: o tamanho, o ponto de inserção ou os terminais mudaram (terminal adicionado, removido ou movido). @@ -11266,18 +13068,18 @@ Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o s - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. Para atualizá-los, é necessário excluí-los e inseri-los novamente. Atenção: esta operação exclui os condutores já ligados a esses elementos, que precisarão ser redesenhados. - - + + Run a script Executar um script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11290,33 +13092,33 @@ Um script é executado com as suas permissões: ele pode ler e modificar o proje Ativar os scripts? Esta configuração pode ser alterada em Configurar o QElectroTech > Geral > Projetos. - + Remembered after a restart - + JavaScript scripts (*.js);;All files (*) Scripts JavaScript (*.js);;Todos os arquivos (*) - + Ignored: %1 Ignorado: %1 - - + + Stop Parar - + Stop recording the macro Parar a gravação da macro - + ● Recording: %n steps ● Gravando: %n etapa @@ -11324,12 +13126,12 @@ Ativar os scripts? Esta configuração pode ser alterada em Configurar o QElectr - + Macro recorded Macro gravada - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11343,53 +13145,53 @@ Para transformá-la em um script, peça ao seu assistente de IA: o botão abaixo - + &Copy the request for the assistant &Copiar o pedido para o assistente - + &Open the folder &Abrir a pasta - + Request copied: paste it into the assistant's window Pedido copiado: cole-o na janela do assistente - + Close the assistant's connection for the rest of the session Cortar a conexão do assistente pelo resto da sessão - + Live mode: assistant connected Modo direto: assistente conectado - + Live mode: waiting for an assistant Modo direto: aguardando um assistente - - + + Assistant Assistente - + Ask before running a script the assistant wrote Perguntar antes de executar um script escrito pelo assistente - + Live mode: %1 %2 at %3 Modo direto: %1 %2 às %3 - + %n kinds of items hidden %n tipo de objeto oculto @@ -11397,335 +13199,335 @@ Para transformá-la em um script, peça ao seu assistente de IA: o botão abaixo - - + + Texts %1 Textos %1 - + Exports the current sheet to another format status bar tip Exportar a página atual em outro formato - + Prints one or more sheet of the current project status bar tip Imprimir uma ou mais páginas do projeto atual - + Closes QElectroTech status bar tip Fechar o aplicativo QElectroTech - + Reset the conductors path ignoring the user changes status bar tip Redefinir os caminhos dos condutores ignorando as modificações do usuário - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Edite as propriedades da página (dimensões, informações do bloco de legenda, propriedades dos condutores...) - + Shows the various opened projects in windows status bar tip Exibe os vários projetos abertos em janelas - + Shows the various opened projects in tabs status bar tip Exibe os vários projetos abertos em abas - + Allows to select elements status bar tip Permite selecionar elementos - + Allows to view the sheet without modifying it status bar tip Permite visualizar a página, porém sem poder editá-la - + Arranges windows in a tile pattern status bar tip Dispõe as janelas lado a lado - + Add a nomenclature Adicionar nomenclatura - + Arranges windows in a cascade pattern status bar tip Dispõe as janelas em cascata - + Activates the next project status bar tip Ativa o próximo projeto - + Activates the previous project status bar tip Ativa o projeto anterior - + Group selected texts Agrupar textos selecionados - + Add a curve Adicionar uma curva - + Add a terminal plan Adicionar um plano de terminal - + Adds a text field to the current sheet Adiciona um campo de texto a página atual - + Add an image to the current sheet Adiciona uma imagem a página atual - + Adds a PDF page to the current sheet Adiciona uma página do PDF na página atual - + Add a line to the current sheet Adiciona uma linha a página atual - + Adds a rectangle on the current sheet Adiciona um retângulo a página atual - + Add an ellipse to the current sheet Adiciona uma elipse a página atual - + Adds a polyline to the current sheet Adiciona uma polilinha na página atual - + Adds a Bézier curve to the current sheet Adiciona uma curva de Bézier ao fólio atual - + Adds a terminal plan to the current sheet Adiciona um plano de bloco terminal na folha atual - + Search / Replace Localizar / substituir - + Navigate to an element Ir para um elemento - + Quickly search for and select an element in the sheet status bar tip Localiza e seleciona rapidamente um elemento da página + - Tools Ferramentas + - Display Exibir + - Diagram Esquema + - Add Adicionar + - Depth toolbar title Profundidade - + &File Ar&quivo - + &Edit &Editar - + &Project &Projeto - + Displ&ay E&xibir - + Wi&ndows Ja&nelas - + &Latest files Abertos &recentemente - + &Add Adi&cionar - + Align Alinhar - + Rows and columns Linhas e colunas - + Display or hide the main toolbar Alterna a exibição da barra de ferramentas "Principal" - + Display or hide the Display toolbar Alterna a exibição da barra de ferramentas "Exibir" - + Display or hide the Diagram toolbar Alterna a exibição da barra de ferramentas "Esquema" - + Show or hide the elements panel Alterna a exibição do painel de elementos - + Display or hide the undo list Alterna a exibição da lista de alterações - + Display projects Exibir os projetos - - + + Project %1 registered in the directory: %2. Projeto %1 salvo na pasta: %2. - + Open a file Abrir um arquivo - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Projetos QElectroTech (*.qet);;Arquivos XML (*.xml);;Todos os arquivos (*) - - + + Unable to open file message box title Não é possível abrir o arquivo - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Aparentemente o arquivo %1 que você está tentando abrir não existe. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Aparentemente o arquivo que você está tentando abrir não é acessível para leitura. Portanto, é impossível abri-lo. Por favor, verifique as permissões do arquivo. - + Opening the file read-only message box title Abrir o projeto em modo somente de leitura - + The project you try to open does not seem writable. It will be opened read-only. Aparentemente o projeto que você está tentando abrir não é acessível para escrita. Portanto ele será aberto em modo somente de leitura. - - + + Unable to open project message box title Não é possível abrir o projeto - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Parece que o arquivo %1 não é um arquivo de projeto QElectroTech. Portanto, ele não pode ser aberto. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11734,7 +13536,7 @@ Para transformá-la em um script, peça ao seu assistente de IA: o botão abaixo - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11743,30 +13545,30 @@ Para transformá-la em um script, peça ao seu assistente de IA: o botão abaixo - + Project fonts message box title Fontes do projeto - + Unable to delete the terminal Não é possível excluir o terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted A exclusão não pode ser realizada porque a seleção contém um ou mais terminais em ponte e/ou pertencentes a um terminal de múltiplos níveis. Remova as pontes e/ou exclua os níveis dos terminais envolvidos para poder excluí-los - + Group Grupo - + %n items put back on the grid %n objeto recolocado na grade @@ -11774,12 +13576,12 @@ Remova as pontes e/ou exclua os níveis dos terminais envolvidos para poder excl - + The selection is already on the grid A seleção já está na grade - + (%n locked objects left in place) (%n objeto travado mantido no lugar) @@ -11787,79 +13589,79 @@ Remova as pontes e/ou exclua os níveis dos terminais envolvidos para poder excl - + Edit the element edit element Editar o elemento - + Edit the text field edit text field Editar o campo de texto - + Edit the image edit image Editar a imagem - + Edit conductor edit conductor Editar o condutor - + Edit the selected object edit selected item Editar o objeto selecionado - + An error occurred while opening file %1. message box content Ocorreu um erro ao abrir o arquivo %1. - + Activates the project « %1 » Ativar o projeto « %1 » - + Are you sure you want to delete this sheet? Tem certeza de que deseja excluir esta página? - + Delete the sheets Excluir páginas - + Are you sure you want to delete the selected %1 sheets ? Tem certeza de que deseja excluir as %1 páginas selecionadas? - + Delete %1 sheets Excluir %1 páginas - - - - - - - + + + + + + + Move the sheets Mover as páginas - + Error message box title Erro @@ -12847,52 +14649,52 @@ as condições não são válidas QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projeto « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Projeto %1 - + Untitled project displayed title for a project-less, file-less project Projeto sem título - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [somente leitura] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [Modificado] - + Renumber elements Renumerar elementos - + Renumber elements (%1) Renumerar elementos (%1) - + Modified contact system Sistema de contatos modificado - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12903,19 +14705,19 @@ Os elementos escravos existentes não serão atribuídos automaticamente. Você Deseja continuar? - + An error occurred during the template integration. error message Ocorreu um erro durante a integração do modelo. - + Warning message box title Aviso - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12924,7 +14726,7 @@ You are currently using QElectroTech in version %2 Você está usando o QElectroTech na versão %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12933,32 +14735,32 @@ What do you wish to do ? O que você deseja fazer? - + Warning message box title Aviso - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. O projeto que você está tentando abrir é parcialmente compatível com sua versão %1 do QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Para torná-lo totalmente compatível, abra este mesmo projeto com a versão 0.8 ou 0.80 do QElectroTech e salve o projeto e abra-o novamente com esta versão. O que você deseja fazer? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Abrindo o projeto atual...</b><br/>Criação das páginas</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Abertura do projeto...</b><br/>Configurando referências cruzadas</p> @@ -12984,166 +14786,156 @@ O que você deseja fazer? QETTitleBlockTemplateEditor - + Save current template? dialog title Salvar o modelo atual? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Você deseja salvar o modelo %1? - + new_template template name suggestion when duplicating the default one Novo modelo - + Duplicate a title block template input dialog title Duplicar um modelo de bloco de legenda - + In order to duplicate this template, please enter a name for its copy input dialog text Para duplicar este modelo digite o nome desejado para a cópia - + &New menu entry &Novo - + &Open menu entry &Abrir - + Open from a file menu entry Abrir a partir de um arquivo - + &Save menu entry &Salvar - + Save as menu entry Salvar como - + Save to a file menu entry Salvar em um arquivo - + &Quit menu entry Sai&r - + Cu&t menu entry Cor&tar - + &Copy menu entry Co&piar - + &Paste menu entry C&olar - + Manage logos menu entry Gerenciar logotipos - + Edit extra information menu entry Editar informações complementares - + Zoom In menu entry Aumentar Zoom - + Zoom out menu entry Diminuir Zoom - + Fit in view menu entry Ajustar à janela - + Reset zoom menu entry Restaurar zoom - + Add a &row menu entry Adicionar uma &linha - + Add a &column menu entry Adicionar uma &coluna - + &Merge cells menu entry &Unir as células - + &Split cells menu entry &Separar as células - - - - - - - - - - @@ -13153,156 +14945,166 @@ O que você deseja fazer? + + + + + + + + + + Title block template editors Editor de blocos de legenda - + &File menu title Ar&quivo - + &Edit menu title &Editar - + Displ&ay menu title E&xibir - + Tools toolbar title Ferramentas - + Edit toolbar title Edição - + Display toolbar title Exibir - + No modification label displayed in the undo list when empty Sem modificações - + Undo dock title Desfazer - + Cell properties dock title Propriedades da célula - + [Changed] window title tag [Modificado] - + [Read only] window title tag [Somente leitura] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectrotech - Editor de modelos de bloco de legenda - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Erro - + Unable to save the template ‘%1’. message box content - %1 is a title block template name Não foi possível salvar o modelo « %1 ». - + Open a title block template File > open dialog window title Abrir um modelo - + Open a file dialog title Abrir um arquivo - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Modelos de bloco de legenda QElectrotech (*%1);;Arquivos XML (*.xml);;Todos os arquivos (*) - + Save template as dialog window title Salvar o modelo como - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name O nome « %1 » não é válido: não deve conter os seguintes caracteres: \ / : * ? " < > | - + Save as dialog title Salvar como - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Modelos de bloco de legenda QElectroTech (*%1) - + Edit extra information window title Editar informações complementares - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Você pode utilizar este campo para indicar os autores do bloco de legenda, a licença do mesmo, ou qualquer outra informação que considere útil. @@ -13361,7 +15163,7 @@ O que você deseja fazer? um elemento gráfico - + delete %1 undo caption - %1 is a sentence listing the removed content excluir %1 @@ -13421,18 +15223,18 @@ O que você deseja fazer? Adicionar - + Select an image ... Selecione uma imagem... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Arquivos de imagem (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13441,7 +15243,7 @@ O que você deseja fazer? Erro - + Unable to load the image. Não é possível carregar a imagem. @@ -13452,7 +15254,7 @@ O que você deseja fazer? - + Title Título @@ -13589,8 +15391,8 @@ O que você deseja fazer? Terminal - + Text Texto @@ -13845,7 +15647,7 @@ O que você deseja fazer? Profundidade - + Warning: the element has been saved with a more recent version of QElectroTech. Aviso: o elemento foi salvo por uma versão mais recente do QElectroTech. @@ -14018,7 +15820,7 @@ O que você deseja fazer? Editar informações para vários elementos - + Edit the cross reference edite the cross reference Editar as referências cruzadas @@ -14065,12 +15867,12 @@ the translated name of this folder could not be read, so its folder name is disp Coleção - + This group cannot be moved: the position of one of its elements is locked. Este grupo não pode ser movido: a posição de um dos seus elementos está travada. - + Add %n conductors add a numbers of conductor one or more @@ -14138,8 +15940,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 Girar %1 @@ -14321,45 +16123,45 @@ Deseja substituí-lo? - + - + Type Tipo - + - + Address Endereço - - - - + + + + Annotation Comentário - - - - + + + + Cross-reference Ref. cruzada - - - - + + + + Function Função @@ -14694,45 +16496,55 @@ Deseja substituí-lo? Criação do condutor - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Para instalar o plugin qet_tb_generator<br>Acesse:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requer python 3.5 ou superior.<br><B><U> Primeira instalação no Windows</B></U><br>1. Instale, se necessário, python 3.5 ou superior<br>Acesse:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U>Atualização no Windows</B></U> <br>python -m pip install --upgrade qet_tb_generator<br>>> o usuário pode iniciar em um terminal esse script neste diretório <br>C: \ users \ XXXX \ AppData \ Local \ Programas \ Python \ Python36-32 \ Scripts<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Para instalar o plugin qet_tb_generator<br>Acesse:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Primeira instalação no macOSX</B></U><br>1. Instale, se necessário, apenas o pacote python 3.11, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Execute o script Profile.command<br>porque o programa usa PATH codificado para localizar o plugin qet-tb-generator <br> Acesse:<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>como fazer</a><br>2. pip3 install qet_tb_generator<br><B><U> Atualização no macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Para instalar o plugin qet_tb_generator<br>Acesse:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requer python 3.5 ou superior.<br><br><B><U> Primeira instalação no Linux</B></U><br>1. verifique se o pip3 está instalado: pip3 --version<br>Se não estiver, instale com: sudo apt-get install python3-pip<br>2. Instale o programa: sudo pip3 install qet_tb_generator<br>3. Execute o programa: qet_tb_generator<br><br><B><U>Atualizar no Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Erro ao iniciar o plugin qet_tb_generator - + Add a nomenclature Adicionar nomenclatura - + Add a summary Adicionar um resumo + + + Add a cable list + + + + + Cable list + + Paste Colar - + + - - + @@ -14773,83 +16585,113 @@ Deseja substituí-lo? Ordenar bloco terminal %1 - - + + Generic generic terminal element type Genérico - + Fuse fuse terminal element type Fusível - + Sectionable sectional terminal element type Secionável - + Diode diode terminal element type Diodo - + Ground ground terminal element type Terra - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Genérico - + Phase phase terminal element function Fase - + Neutral neutral terminal element function Neutro - - + + Digital input Entrada digital - + Digital output Saída digital - + Analogue input Entrada analógica - + Analogue output Saída analógica - + Universal input Entrada universal - + Universal output Saída universal @@ -14884,7 +16726,7 @@ Deseja substituí-lo? Importar um arquivo dxf - + Default layout Layout padrão @@ -15061,8 +16903,8 @@ Faça o download seguindo o link abaixo e descompacte-o na pasta de instalação - - + + Move %1 Mover %1 @@ -15207,88 +17049,88 @@ Faça o download seguindo o link abaixo e descompacte-o na pasta de instalação - + insert %1 Adicionar %1 - + Edit the conductor properties Editar as propriedades do condutor - + Edit a text Editar um texto - + Change the color of a text Modificador de cor de texto - + Rotate a text Girar um texto - + Edit line of a form Editar o contorno de uma forma - + Edit filling a form Editar o preenchimento de uma forma - + Rotate a shape Girar uma forma - - + + Change the shape of %1 Alterar a forma de %1 - + Close/Open %1 Fechar/Abrir %1 - + Resize an image Redimensionar uma imagem - + Rotate an image Girar uma imagem - + Edit element text Editar texto do elemento - + Automatically number an element Numerar automaticamente um elemento - + Renumber elements (%1) Renumerar os elementos (%1) - + Search and replace Localizar e substituir - + Script @@ -15344,7 +17186,7 @@ Para ativá-la: Configurar o QElectroTech > Geral > Projetos, ou defina a Descongelar o nome do elemento - + Sheet Página @@ -15367,12 +17209,12 @@ Para ativá-la: Configurar o QElectroTech > Geral > Projetos, ou defina a Horizontal mirror - + Espelhar horizontalmente Vertical mirror - + Espelhar verticalmente @@ -15394,26 +17236,26 @@ Para ativá-la: Configurar o QElectroTech > Geral > Projetos, ou defina a QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. A informação a ser exibida é maior do que a quantidade máxima que pode ser exibida pelas tabelas. Adicione uma nova tabela ou ajuste as tabelas existentes para mostrar todas as informações. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. A informação a ser exibida é maior do que a quantidade máxima que pode ser exibida pela tabela. Adicione uma nova tabela ou ajuste a tabela existente para exibir todas as informações. - + Table limitation Limitação de tabela - + Modify the geometry of a table Modifique a geometria de uma tabela @@ -15745,88 +17587,88 @@ nada foi modificado. Alterar o tipo de um nó - + Resize %1 Redimensionar %1 - + Rotate %1 Girar %1 - + Skew %1 Inclinar %1 - + Move the rotation center Mover o centro de rotação - + Round the corners of %1 Arredondar os cantos de %1 - + Change the angle of an arc Alterar o ângulo de um arco - + Change the curve of an arc Modificar a curvatura de um arco - - + + Change the shape of %1 Alterar a forma de %1 - + Change the curvature of %1 Alterar a curvatura de %1 - + Edit %1 Editar %1 - + a line uma linha - + rectangle um retângulo - + an ellipse uma elipse - + an arc um arco - + polyline uma linha poligonal - + a curve uma curva - + an shape uma forma @@ -15875,6 +17717,14 @@ nada foi modificado. Editar um retângulo + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15913,6 +17763,17 @@ nada foi modificado. O elemento « %1 » já existe. O que você deseja fazer? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16928,28 +18789,38 @@ qet.addText(f, "Texto", 40, 40); Voltar à definição salva - + Move this variable up Mover esta variável para cima - + Move this variable down Mover esta variável para baixo - + Delete this variable Excluir esta variável - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Autonumeração da página - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16977,7 +18848,7 @@ O campo "Incremento" não é usado. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17015,13 +18886,41 @@ Os outros campos não são utilizados. Os outros campos não são utilizados. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Autonumeração de elementos - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17060,17 +18959,17 @@ Os outros campos não são usados. Os outros campos não são usados. - + New numbering… Nova numeração… - + Rename numbering… Renomear a numeração… - + Numbering conductors title window Autonumeração do Condutor @@ -17491,7 +19390,7 @@ Os outros campos não são usados. Category - + Categoria @@ -17516,7 +19415,7 @@ Os outros campos não são usados. Action - + Ação @@ -19978,42 +21877,42 @@ Os outros campos não são usados. Arranjo - + Bridging the terminals Pontear os terminais - + Unbridge the terminals Remover ponte dos terminais - + Properties Propriedades - + Name: Nome: - + Comment : Comentário: - + Description Descrição - + Plant: Instalação: - + Location : Localização: @@ -20023,13 +21922,13 @@ Os outros campos não são usados. Tipo: - + Ungroup the terminals Desagrupar terminais - + Generic Genérico @@ -20069,22 +21968,67 @@ Os outros campos não são usados. Terra - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Mover para: - + Phase Fase - + Neutral Neutro - + Automatic position Posição automática @@ -20094,12 +22038,12 @@ Os outros campos não são usados. Estágio: - + Group the terminals Agrupar os terminais - + Function : Função: @@ -20114,17 +22058,17 @@ Os outros campos não são usados. Com - + LED : LED: - + Independent terminals Terminais independentes - + Modify terminal strip properties Editar propriedades da régua de terminais @@ -20193,12 +22137,12 @@ Os outros campos não são usados. Novo Terminal 0 : - + Headser : No topo : - + Bridge point Ponto de ponte @@ -20263,12 +22207,52 @@ Os outros campos não são usados. Referência cruzada - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Altura - + Preview: Visualização : @@ -20331,52 +22315,57 @@ Os outros campos não são usados. TerminalStripModel - + Position Posição - + Stage Estágio - + Label Legenda - + Cross-reference Referência cruzada - + Cable Cabo - + Color / wire number of the cable Cor / número do fio do cabo - + Type Tipo - + Function Função - + led led - + + Shield + + + + Number wire Número do condutor @@ -21291,7 +23280,7 @@ associar o nome "variável_personalizada" e o valor "1745" v Add → - + Adicionar → @@ -21301,27 +23290,27 @@ associar o nome "variável_personalizada" e o valor "1745" v ← Remove - + ← Remover Move up - + Subir Move down - + Descer Available commands - + Comandos disponíveis In the bar, in order - + Na barra, em ordem @@ -21694,32 +23683,42 @@ associar o nome "variável_personalizada" e o valor "1745" v Exibir em cruz - + Label cross reference Legenda das referências cruzadas - + Master Mestre - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Escravo - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21736,115 +23735,141 @@ associar o nome "variável_personalizada" e o valor "1745" v %LM: Localização - + Option display cross Opção de visualização em cruz - + Show the power contacts in the cross Exibir os contatos de potência na cruz - + Prefix of power contacts : Prefixo dos contatos de potência: - + Prefix delayed contacts : Prefixo dos contatos temporizados: - + Prefix changeover contacts : Prefixo dos contatos reversores: - + Coil Bobina - + Organ of protection Elemento de proteção - + Switch / button Botão seletor - + Programmable Logic Controller (PLC) Controlador Lógico Programável (CLP) - + + Cable + Cabo + + + Footer Embaixo da página - + Under the label of the element Sob o rótulo do elemento - + Top Topo - + Bottom Inferior - + Left Esquerda - + Right Direita - + Text alignment Alinhamento do texto - + Text field Campo de texto + + + Text: + Texto: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. A consulta está vazia. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Apenas uma consulta SELECT é permitida (o caractere ';' só pode aparecer no final). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Somente consultas de leitura (SELECT ou WITH ... SELECT) são permitidas. - + Export the internal project database Exportar o banco de dados interno do projeto - + untitled Sem Nome diff --git a/lang/qet_ro.ts b/lang/qet_ro.ts index 750b53327..3136d5d6f 100644 --- a/lang/qet_ro.ts +++ b/lang/qet_ro.ts @@ -385,7 +385,7 @@ Middle - + Mijloc @@ -403,7 +403,7 @@ Edit - + Editare @@ -589,7 +589,7 @@ text alignment - + aliniament text @@ -726,7 +726,7 @@ Element - + Element @@ -886,7 +886,7 @@ Conductor - + Conductor @@ -918,7 +918,7 @@ Element - + Element @@ -1161,6 +1161,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + Șterge + + BorderPropertiesWidget @@ -1195,7 +1213,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + Format : @@ -1216,16 +1234,1077 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + Personalizat Landscape - + Peisaj Portrait + Portret + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + Tip + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + Previzualizare + + + + cable_list_ + + + + + Save As... + Salvează ca... + + + + CSV files (*.csv) + Fișiere csv (*.csv) + + + + Error + Eroare + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Anulează + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Anulează + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Anulează + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Tip + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Font : + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Text aldin + + + + Italic + Text cursiv + + + + Bold italic + + + + + Style: + Stil : + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Aliniament : + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Anulează + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1272,13 +2351,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Editați proprietățile unui conductor - + Edit the properties of several conductors undo caption @@ -1334,7 +2413,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor color - + Culoare conductor @@ -1384,7 +2463,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Edit conductor properties undo caption - + Editați proprietățile unui conductor @@ -1414,7 +2493,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Edit conductor properties undo caption - + Editați proprietățile unui conductor @@ -1923,7 +3002,7 @@ Continue? Diagram - + Change the depth @@ -2060,6 +3139,24 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2071,7 +3168,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2079,7 +3176,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2202,224 +3299,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image o imagine - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Selectați o imagine... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Eroare - + Unable to load the image. Nu se poate încărca imaginea. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2450,107 +3577,141 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Culoare conductor DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Aceasta este zona în care concepeți schemele dumneavoastră prin adăugarea elementelor și conductorilor între terminale. De asemenea puteți adăuga texte independente. - + Paste Here context menu action Lipește aici - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Raport folio - + Edit conductor properties undo caption + Editați proprietățile unui conductor + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams Nedenumit - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Eroare - + The file could not be written. - + Choose the new color for this conductor Alegeți noua culoare pentru acest conductor @@ -2663,7 +3824,7 @@ Hold Shift and drag to move this text on its own Add text - + Adaugă text @@ -2758,7 +3919,7 @@ Hold Shift and drag to move this text on its own Information - + Informații @@ -2823,7 +3984,7 @@ Hold Shift and drag to move this text on its own Edit - + Editare @@ -2899,7 +4060,7 @@ Hold Shift and drag to move this text on its own Middle - + Mijloc @@ -2968,7 +4129,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3093,7 +4254,7 @@ Hold Shift and drag to move this text on its own Middle - + Mijloc @@ -3150,7 +4311,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3645,8 +4806,8 @@ Continue? - - + + Type Tip @@ -3729,8 +4890,8 @@ Continue? - - + + Function @@ -3762,7 +4923,7 @@ Continue? - + Simple Simplu @@ -3803,19 +4964,19 @@ Continue? - + Switch normally open Normal deschis - + Switch normally closed Normal închis - + switch Inversor @@ -3831,25 +4992,25 @@ Continue? - + Power switch Putere - + Switch-on delayed Comutare temporizată - + Switch-off delayed Temporizare pauză - + Switch-on and off delayed @@ -3875,7 +5036,7 @@ Continue? - + Generic @@ -3894,164 +5055,189 @@ Continue? Diode + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Faze - + Neutral Neutru - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Comentariu - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Nimic - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5031,7 +6217,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Export @@ -5395,97 +6581,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : Tip : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground Împământare - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Faze - + Neutral Neutru - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5561,7 +6777,7 @@ that you create. Text and number inputs are Utilizează gesturi touchpad - + Highlight freshly integrated elements in the panel Evidențiază elementele integrate recent în panou @@ -5645,6 +6861,7 @@ that you create. Text and number inputs are + Browse... @@ -5818,8 +7035,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5830,467 +7050,571 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management Administrare elemente - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: Font : - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + Text aldin + + + + Italic + Text cursiv + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title General - + System Sistem - + Arabic Arabă - + Brazilian - + Catalan Catalană - + Czech Cehă - + German Germană - + Danish - + Greek Greacă - + English Engleză - + Spanish Spaniolă - + French Franceză - + Croatian Croată - + Italian Italiană - + Japanese - + Korean - + Polish Poloneză - + Portuguese Portugheză - + Romanian Română - + Russian Rusă - + Slovenian Slovenă - + Dutch Olandeză - + Norwegian - + Belgium-Flemish Belgiană-flamandă - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6299,50 +7623,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Fișiere csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6352,6 +7694,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Stânga + + + + Right + Dreapta + + + + Top + Sus + + + + Bottom + Dedesubt + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + Informații + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Nume : + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Nume + + + + Function + + + + + Type + Tip + + + + Add terminal + + + + + Add gap + + + + + Delete + Șterge + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6479,135 +8162,33 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Formular + Formular - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None Nimic - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - TextLabel - Text etichetă + Text etichetă - - Header - - - - - - Margin - - - - - Alignment : - - - - - Left - Stânga + Stânga - - Center - Centru + Centru - - Right - Dreapta + Dreapta - - - Font - - - - - Table - - - - Alignment: - Aliniament : - - - - Content - + Aliniament : @@ -6724,6 +8305,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6783,7 +8387,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Etichetă @@ -6939,80 +8543,22 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Formular + Formular - - X : - - - - - Advanced Editor - - - - - Size : - - - - Angle: - Unghi: + Unghi: - - - px - px + px - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - Text - Text + Text - @@ -7033,7 +8579,7 @@ Please use the advanced editor for this. Edit the text field - + Editare câmp text @@ -7316,7 +8862,7 @@ Please use the advanced editor for this. Sheet no. - + Nr folio @@ -7454,7 +9000,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Tipărește @@ -7473,7 +9019,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Anulează @@ -7611,7 +9157,7 @@ With the qet MCP server: read it with qet_recording_read, write a script that do Sheet no. - + Nr folio @@ -7843,6 +9389,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7946,63 +9500,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Folio - + Conductor Conductor - + Sheet references Rapoarte folio - + Cross-references Referință încrucișată - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title Proiect nou @@ -8132,133 +9691,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Format număr 1 - - - - + + + + number format 01 Format număr 01 - - - - - + + + + + number format 001 Format număr 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Text - - - - + + + + number format 1 - Sheet - - - - + + + + number format 01 - Sheet - - - - + + + + number format 001 - Sheet - - - - + + + + Sheet no. Nr folio - - - - + + + + Sheet Folio - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8359,25 +9918,25 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field - + Editare câmp text PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8774,7 +10333,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Tipărește @@ -8788,101 +10347,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name Nume - + Sheet Folio - + Element Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8891,7 +10455,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8900,49 +10464,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8951,21 +10515,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8975,7 +10539,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8984,7 +10548,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8993,13 +10557,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Șterge numerotarea - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9009,12 +10573,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9023,12 +10587,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9037,7 +10601,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9047,80 +10611,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9141,19 +10705,12 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Formular + Formular - - Request - - - - Reload - Reâncarcă + Reâncarcă @@ -9474,7 +11031,7 @@ Give them another numbering first. Page layout - + Dispunere în pagină @@ -9650,127 +11207,129 @@ Doriți să se salveze modificările ? QETApp - + Loading... Initializing the elements collection cache splash screen caption Se încarcă... Se inițializează cache colecție elemente - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption Se încarcă... Se deschid fișiere - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Cartușe QET - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Cartușe utilizator - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schemă - + Electric Normal example text - translate length, not meaning Electric - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Configurare QElectroTech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Eroare - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9779,145 +11338,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Se încarcă... - + Loading... Systray icon splash screen caption Se încarcă... Pictograma din bara de sistem - + QElectroTech systray menu title QElectroTech - + &Quit &Termină - + &Hide &Ascunde - + &Show &Arată - + &Hide diagram editor &Ascunde editoarele de schemă - + &Show diagram editors &Arată toate editoarele de schemă - + &Hide element editor &Ascunde toate editoarele de elemente - + &Show element editor &Arată toate editoarele de elemente - + &Hide title block template editor systray submenu entry &Ascunde toate editoarele de cartuș - + &Show title block template editors systray submenu entry &Arată toate editoarele de cartuș - + &New diagram editor Editor de schemă &nou - + &New element editor Editor de element &nou - + Closes QElectroTech Închide aplicația QElectroTech - + Reduces QElectroTech into the systray Minimizează QElectroTech în bara de sistem - + Restore QElectroTech Restaurează QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Editoare de schemă - + Element editors Editoare element - + Title block template editors systray menu entry Editoare cartuș - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Utilizare : - + [options] [file]... @@ -9926,7 +11542,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9943,32 +11559,32 @@ Opțiuni disponibile: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Definește dosarul colecției de elemente - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Definește dosarul colecției de cartușe - + --config-dir=DIR Define configuration directory --config-dir=DIR Definește dosarul de configurare - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --config-dir=DIR Definește dosarul care conține fișierele de limbă @@ -9977,1405 +11593,1455 @@ Opțiuni disponibile: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title Anulări - + No modification Nici o modificare - + Click an action to get back in the changes you made to your diagram Status tip Apăsați pe o acțiune pentru a reveni la modificările efectuate schemei - + &New &Nou - + &Open &Deschide - - + + &Close &Închide - + &Save &Salvează - + Save as Salvează ca - + &Export E&xportă - + Print Tipărește - + &Quit &Termină - + Undo Anulează - + Redo Refă - + Cu&t Ta&ie - + &Copy Cop&iază - + &Paste Li&pește - + Add row Add row Adaugă o linie - + Remove a row Remove row Elimină un rând - + Select All Selectează tot - + Select none Deselectează tot - + Invert selection Inversează selecția + - Depth toolbar title Adâncime - + Delete Șterge - + Rotate Rotește - + Choose texts orientation Orientare texte - + Find in the panel Găsește în panou - + Reset conductors Reinițializarea conductorilor - + Add a textfield Adaugă un câmp text - + Add a column Adaugă o coloană - + Add a picture Adaugă o imagine - + Remove a column Elimină o coloană - + Project properties Proprietățile proiectului - + Clean project Curăță proiectul - + Add a summary Adaugă un rezumat - + Zoom In Mărește zoom - + Zoom Out Scade zoom - + Zoom content Focalizare pe conținut - + Fit in view Potrivește zoom - + Reset zoom Fără zoom - + using tabs utilizând file - + using windows utilizând ferestre - + Select Mod Selectare - + Move Mod Vizualizare - + &Tile &Mozaic - + &Cascade &Cascadă - + Next project Proiectul următor - + Previous project Proiectul anterior - + Add a rectangle Adaugă un dreptunghi - + Add an ellipse Adaugă o elipsă - + Find the selected item in the panel status bar tip Găsește în panou elementul selectat - - + + Project %1 registered in the directory: %2. Proiect %1 înregistrat în director: %2. - - + + Unable to open file message box title Nu se poate deschide fișierul - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Se pare că fișierul %1 pe care încercați să-l deschideți nu există sau nu mai există. - + Opening the file read-only message box title Deschide proiectul numai pentru citire - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Eroare - + Closes QElectroTech status bar tip Închide aplicația QElectroTech - + Undoes the previous action status bar tip Anlează acțiunea precedentă - + Restores the undone action status bar tip Refă acțiunea anulată - + Puts selected elements into the clipboard status bar tip Transferă elementele selectate în memoria tampon - + Copies selected elements status bar tip Copiază elementele selectate în memoria tampon - + Inverts selection of elements status bar tip Deselectează elementele selectate și selectează-le pe cele neselectate - + Reset the conductors path ignoring the user changes status bar tip Recalculează calea conductorilor, ignorând modificările - + Rotate selected elements and texts status bar tip Rotește elementele și textele selectate - + Edit the selected item Editează elementul selectat - + Rotate selected texts to a specific angle status bar tip Rotește textele selectate la un unghi specificat - + Automatic creation conductor (s) Tool tip of auto conductor Creează automat conductor(i) - + Projects dock title Proiecte - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Utilizează crearea automată a conductorilor când este posibil - + Restores default zoom level status bar tip Revenino la factorul de zoom implicit - + Add line Draw line Adaugă o linie - + Shows the various opened projects in windows status bar tip Prezentați diferitele proiecte deschise în ferestre - + Shows the various opened projects in tabs status bar tip Prezentați diferitele proiecte deschise în file - + Allows to select elements status bar tip Permite selectarea elementelor - + Arranges windows in a tile pattern status bar tip Dispune ferestrele în mozaic - + Collections - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Editoare de schemă - + Exports the current sheet to another format status bar tip - + Prints one or more sheet of the current project status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Pastes elements from the clipboard into the sheet status bar tip - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Afișează - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references Referință încrucișată - + See Display > Show - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Add a sheet - - - + + + Delete this sheet - + Export to CSV - + Add a nomenclature - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + Arranges windows in a cascade pattern status bar tip Dispune ferestrele în cascadă - + Allows to view the sheet without modifying it status bar tip - + Activates the next project status bar tip Activează proiectul următor - + Activates the previous project status bar tip Activează proiectul anterior - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Rotate the group - + Horizontal mirror - + Vertical mirror - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF - + Add an arc - + Adaugă un arc de cerc - + Add a polygon - + Adaugă un poligon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + Scripts toolbar title - + &File &Fișier - + &Edit &Editare - + &Project &Proiect - + + Numbering + + + + + Lists + + + + Displ&ay Afișa&re - + Wi&ndows Feres&tre - + &Latest files Deschise &recent - + &Add - + Selection - + Align - + Rows and columns - + Depth Adâncime - - + + Scripts - + Display or hide the main toolbar Afișează sau nu bara de unelte principală - + Display or hide the Display toolbar Afișează sau nu bara de unelte Vizualizare - + Display or hide the Diagram toolbar Afișează sau nu bara de unelte Schemă - + Show or hide the elements panel Afișează sau nu panoul de aparate - + Display or hide the undo list Afișează sau nu lista modificărilor - + Display projects Afișează proiectele - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11386,8 +13052,46 @@ If you save the project, these conductors will disappear from the file. Close it + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Anulează + - + %n items aligned @@ -11396,32 +13100,38 @@ If you save the project, these conductors will disappear from the file. Close it - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + + Edit the cable + edit cable + + + + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11430,7 +13140,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11439,7 +13149,7 @@ If you save the project, these conductors will disappear from the file. Close it - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11448,18 +13158,18 @@ If you save the project, these conductors will disappear from the file. Close it - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11468,33 +13178,33 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Remembered after a restart - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11503,12 +13213,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11519,53 +13229,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11574,92 +13284,92 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 + - Tools Unelte - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip + - Display Vizualizare + - Diagram Schemă + - Add Adaugă - + Open a file Deschide un fișier - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Se pare că fișierul pe care încercați să-l deschideți nu este accesibil pentru citire. Este, în consecință, imposiibil de deschis. Verificați permisiunile asupra fișierului. - + The project you try to open does not seem writable. It will be opened read-only. Se pare că proiectul pe care încercați să-l deschideți nu este accesibil pentru scriere. Va fi deschis numai pentru citire. - - + + Unable to open project message box title Nu se poate deschide proiectul - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Se pare că fișierul %1 nu este un proiect QElectroTech. În consecință, nu a putut fi deschis. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11669,7 +13379,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11679,29 +13389,29 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + Project fonts message box title - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11710,12 +13420,12 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + (%n locked objects left in place) @@ -11724,31 +13434,31 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Editare element - + Edit the text field edit text field Editare câmp text - + Edit the image edit image Editare imagine - + Edit conductor edit conductor - + Edit the selected object edit selected item Editează obiectele selectate @@ -12387,7 +14097,7 @@ please wait while importing... Element editors - + Editoare element @@ -12739,52 +14449,52 @@ condițiile nu sunt valide QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name Proiect %1 - + Untitled project displayed title for a project-less, file-less project Proiect fără titlu - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [doar citire] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modificat] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12792,56 +14502,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message A intervenit o eroare în timpul introducerii modelului. - + Warning message box title Avertisment - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12867,178 +14577,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Se salvează modelul curent? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Doriți să salvați modelul %1 ? - + new_template template name suggestion when duplicating the default one model_nou - + Duplicate a title block template input dialog title Duplică model cartuș - + In order to duplicate this template, please enter a name for its copy input dialog text Pentru a se duplica acest model, introduceți un nume pentru copia sa - + &New menu entry &Nou - + &Open menu entry &Deschide - + Open from a file menu entry Deschide dintr-un fișier - + &Save menu entry &Salvează - + Save as menu entry Salvează ca - + Save to a file menu entry Salvează în fișier - + &Quit menu entry &Termină - + Manage logos menu entry Administrare logo-uri - + Zoom In menu entry Mărește zoom - + Zoom out menu entry Scade zoom - + Fit in view menu entry Potrivește zoom - + Reset zoom menu entry Fără zoom - + Save as dialog title Salvează ca - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Modele cartuș QElectroTech (*%1) - + &Merge cells menu entry &Combină celulele - + Cu&t menu entry Ta&ie - + &Copy menu entry Cop&iază - + &Paste menu entry Li&pește - + Edit extra information menu entry Editați informațiile suplimentare - + Add a &row menu entry Adaugă un &rând - + Add a &column menu entry Adaugă o &coloană - + &Split cells menu entry De&sparte celulele - - - - - - - - - - @@ -13048,144 +14748,154 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Editoare cartuș - + &File menu title &Fișier - + &Edit menu title &Editare - + Displ&ay menu title Afișa&re - + Tools toolbar title Unelte - + Edit toolbar title Editare - + Display toolbar title Afișare - + No modification label displayed in the undo list when empty Nici o modificare - + Undo dock title Anulări - + Cell properties dock title Proprietățile celulei - + [Changed] window title tag [Modificat] - + [Read only] window title tag [Doar citire] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Editor modele cartuș - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Eroare - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Deschide un model - + Open a file dialog title Deschide un fișier - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Modele cartușe QElectroTech (*%1);;Fișiere XML (*.xml);; Toate fișierele (*) - + Save template as dialog window title Salvează modelul ca - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Edit extra information window title Editați informațiile suplimentare - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Puteți utiliza acest câmp pentru a menționa autorii cartușului, licența acestuia, sau toate celelalte informații pe care le considerați utile. @@ -13209,7 +14919,7 @@ What do you wish to do ? QObject - + Warning: the element has been saved with a more recent version of QElectroTech. Atenție : elementul a fost salvat cu o versiune mai nouă de QElectroTech. @@ -13230,7 +14940,7 @@ What do you wish to do ? - + delete %1 undo caption - %1 is a sentence listing the removed content șterge %1 @@ -13763,7 +15473,7 @@ What do you wish to do ? - + Title Titlu @@ -13779,18 +15489,18 @@ What do you wish to do ? Proprietățile proiectului - + Select an image ... Selectați o imagine... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13799,7 +15509,7 @@ What do you wish to do ? Eroare - + Unable to load the image. Nu se poate încărca imaginea. @@ -13840,8 +15550,8 @@ What do you wish to do ? Bornă - + Text Text @@ -13931,8 +15641,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14065,45 +15775,45 @@ the translated name of this folder could not be read, so its folder name is disp - + - + Type Tip - + - + Address - - - - + + + + Annotation Comentariu - - - - + + + + Cross-reference - - - - + + + + Function @@ -14413,15 +16123,25 @@ the translated name of this folder could not be read, so its folder name is disp - + Add a nomenclature - + Add a summary Adaugă un rezumat + + + Add a cable list + + + + + Cable list + + Compilation: @@ -14433,83 +16153,113 @@ the translated name of this folder could not be read, so its folder name is disp - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type Împământare - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function Faze - + Neutral neutral terminal element function Neutru - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14522,7 +16272,7 @@ the translated name of this folder could not be read, so its folder name is disp Edit conductor properties undo caption - + Editați proprietățile unui conductor @@ -14538,10 +16288,10 @@ the translated name of this folder could not be read, so its folder name is disp - + + - - + @@ -14578,12 +16328,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14635,22 +16385,22 @@ Do you want to replace it ? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14680,7 +16430,7 @@ Do you want to replace it ? - + Default layout @@ -14761,7 +16511,7 @@ Do you want to replace it ? - + Edit the cross reference edite the cross reference @@ -14952,8 +16702,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15108,88 +16858,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15243,7 +16993,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Folio @@ -15292,24 +17042,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15368,12 +17118,12 @@ nothing has been changed. QetShapeItem - + an shape o formă - + a line o linie @@ -15644,78 +17394,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + rectangle un dreptunghi - + an ellipse o elipsă - + an arc - + polyline o linie multiplă - + a curve @@ -15764,6 +17514,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15802,6 +17560,18 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16081,7 +17851,7 @@ nothing has been changed. Edit - + Editare @@ -16355,7 +18125,7 @@ Create your own text using the following variables: &Delete - + &Șterge @@ -16806,28 +18576,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16844,13 +18624,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16872,13 +18652,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16900,12 +18708,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -17008,7 +18816,7 @@ The other fields are not used. Solid line - + Linie continuă @@ -19809,12 +21617,12 @@ The other fields are not used. TerminalStripEditor - + Properties Proprietăți - + Name: Nume : @@ -19860,7 +21668,7 @@ The other fields are not used. - + Generic @@ -19885,82 +21693,127 @@ The other fields are not used. Împământare - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase Faze - + Neutral Neutru - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Comment : - + Plant: - + Location : - + Description - + Independent terminals - + Modify terminal strip properties @@ -20029,12 +21882,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20099,12 +21952,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20120,7 +22013,7 @@ The other fields are not used. Middle - + Mijloc @@ -20167,55 +22060,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label Etichetă - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type Tip - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21337,7 +23235,7 @@ asociind numele "volta" cu valoarea "1745" se va înlocui %{ CSV files (*.csv) - + Fișiere csv (*.csv) @@ -21521,32 +23419,42 @@ asociind numele "volta" cu valoarea "1745" se va înlocui %{ Vizualizare încrucișată - + Label cross reference - + Master - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Sclav - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21557,115 +23465,141 @@ asociind numele "volta" cu valoarea "1745" se va înlocui %{ - + Option display cross Opțiuni afișare încrucișată - + Show the power contacts in the cross Afișează contactele de putere în cruce - + Prefix of power contacts : Prefix contacte de putere : - + Prefix delayed contacts : Prefix contacte temporizate : - + Prefix changeover contacts : Prefix contacte inversoare : - + Coil Bobină - + Organ of protection Organ de protecție - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer În partea de jos a paginii - + Under the label of the element Sub eticheta elementului - + Top - + Sus - + Bottom - + Dedesubt - + Left - + Stânga - + Right - + Dreapta - + Text alignment - + Text field + + + Text: + Text : + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_rs.ts b/lang/qet_rs.ts index 4590ee77a..f0e24e0f0 100644 --- a/lang/qet_rs.ts +++ b/lang/qet_rs.ts @@ -1161,6 +1161,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + + + BorderPropertiesWidget @@ -1229,6 +1247,1067 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1272,13 +2351,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Edit the properties of several conductors undo caption @@ -1923,7 +3002,7 @@ Continue? Diagram - + Change the depth @@ -2060,6 +3139,24 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2071,7 +3168,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2079,7 +3176,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2202,224 +3299,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2450,22 +3577,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2473,84 +3600,118 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip - + Paste Here context menu action - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Choose the new color for this conductor - + Edit conductor properties undo caption - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. @@ -3150,7 +4311,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3645,8 +4806,8 @@ Continue? - - + + Type @@ -3729,8 +4890,8 @@ Continue? - - + + Function @@ -3762,7 +4923,7 @@ Continue? - + Simple @@ -3803,19 +4964,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3831,25 +4992,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3875,7 +5036,7 @@ Continue? - + Generic @@ -3899,164 +5060,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5030,7 +6216,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title @@ -5394,97 +6580,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5639,6 +6855,7 @@ that you create. Text and number inputs are + Browse... @@ -5812,8 +7029,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5824,472 +7044,576 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management - + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6298,50 +7622,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6351,6 +7693,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6478,136 +8161,10 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None - - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - - Left - - - - - - Center - - - - - - Right - - - - - - Font - - - - - Table - - - - - Alignment: - - - - - Content - - @@ -6723,6 +8280,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6938,80 +8518,6 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - - Angle: - - - - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - - Text - - - - @@ -7842,6 +9348,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7945,63 +9459,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8131,133 +9650,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8358,12 +9877,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8371,12 +9890,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8773,7 +10292,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title @@ -8787,101 +10306,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name - + Sheet - + Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8890,7 +10414,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8899,49 +10423,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8950,21 +10474,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8974,7 +10498,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8983,7 +10507,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8992,13 +10516,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9008,12 +10532,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9022,12 +10546,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9036,7 +10560,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9046,80 +10570,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9137,24 +10661,6 @@ Give them another numbering first. - - ProjectDBModelPropertiesWidget - - - Form - - - - - Request - - - - - Reload - - - ProjectMainConfigPage @@ -9648,127 +11154,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning - + Electric Normal example text - translate length, not meaning - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9777,152 +11285,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption - + Loading... Systray icon splash screen caption - + QElectroTech systray menu title - + &Quit - + &Hide - + &Show - + &Hide diagram editor - + &Show diagram editors - + &Hide element editor - + &Show element editor - + &Hide title block template editor systray submenu entry - + &Show title block template editors systray submenu entry - + &New diagram editor - + &New element editor - + Closes QElectroTech - + Reduces QElectroTech into the systray - + Restore QElectroTech - + QElectroTech systray icon tooltip - + Diagram editors - + Element editors - + Title block template editors systray menu entry - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9933,31 +11498,31 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory @@ -9966,1430 +11531,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + Projects dock title - + Collections - + No modification - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title - + &Export - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Exports the current sheet to another format status bar tip - + Print - + Prints one or more sheet of the current project status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + &Quit - + Closes QElectroTech status bar tip - + Undo - + Undoes the previous action status bar tip - + Redo - + Restores the undone action status bar tip - + Cu&t - + &Copy - + &Paste - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip - + Pastes elements from the clipboard into the sheet status bar tip - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset conductors - + Reset the conductors path ignoring the user changes status bar tip - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Project properties - + Add a sheet - - - + + + Delete this sheet - + Clean project - + Export to CSV - + Add a nomenclature - + Add a summary - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + using tabs - + Shows the various opened projects in tabs status bar tip - + using windows - + Shows the various opened projects in windows status bar tip - + &Tile - + Arranges windows in a tile pattern status bar tip - + &Cascade - + Arranges windows in a cascade pattern status bar tip - + Select - + Allows to select elements status bar tip - + Move - + Allows to view the sheet without modifying it status bar tip - + Next project - + Activates the next project status bar tip - + Previous project - + Activates the previous project status bar tip - + &New - + &Open - + &Save - + Save as - - + + &Close - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column - + Remove a column - + Add row Add row - + Remove a row Remove row - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Delete - + Rotate - + Rotate the group - + Choose texts orientation - + Horizontal mirror - + Vertical mirror - + Find in the panel - + Edit the selected item - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotate selected elements and texts status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All - + Select none - + Invert selection - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Inverts selection of elements status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In - + Zoom Out - + Zoom content - + Fit in view - + Reset zoom - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield - + Add a picture - + Add a PDF - + Add line Draw line - + Add a rectangle - + Add an ellipse - + Add an arc - + Add a polygon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools + - Display + - Diagram + - Add + - Depth toolbar title - + Scripts toolbar title - + &File - + &Edit - + &Project - + Displ&ay - + Wi&ndows - + &Latest files - + &Add - + Selection - + Align - + Rows and columns - + Depth - - + + Scripts - + Display or hide the main toolbar - + Display or hide the Display toolbar - + Display or hide the Diagram toolbar - + Show or hide the elements panel - + Display or hide the undo list - + Display projects - - + + Project %1 registered in the directory: %2. - + Open a file - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11399,7 +13058,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11409,24 +13068,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11438,23 +13097,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11463,7 +13122,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11472,22 +13131,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11496,100 +13155,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11598,7 +13257,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11607,7 +13266,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11616,18 +13275,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11636,28 +13295,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11666,12 +13325,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11682,53 +13341,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11737,8 +13396,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12727,52 +14386,52 @@ please wait while importing... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name - + Untitled project displayed title for a project-less, file-less project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12780,56 +14439,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message - + Warning message box title - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12855,166 +14514,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one - + Duplicate a title block template input dialog title - + In order to duplicate this template, please enter a name for its copy input dialog text - + &New menu entry - + &Open menu entry - + Open from a file menu entry - + &Save menu entry - + Save as menu entry - + Save to a file menu entry - + &Quit menu entry - + Cu&t menu entry - + &Copy menu entry - + &Paste menu entry - + Manage logos menu entry - + Edit extra information menu entry - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry - + Add a &row menu entry - + Add a &column menu entry - + &Merge cells menu entry - + &Split cells menu entry - - - - - - - - - - @@ -13024,156 +14673,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + &File menu title - + &Edit menu title - + Displ&ay menu title - + Tools toolbar title - + Edit toolbar title - + Display toolbar title - + No modification label displayed in the undo list when empty - + Undo dock title - + Cell properties dock title - + [Changed] window title tag - + [Read only] window title tag - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title - + Open a file dialog title - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension - + Save template as dialog window title - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension - + Edit extra information window title - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13200,10 +14859,10 @@ What do you wish to do ? - + + - - + @@ -13280,7 +14939,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Default layout @@ -13355,7 +15014,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13414,17 +15073,17 @@ the translated name of this folder could not be read, so its folder name is disp - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13589,8 +15248,8 @@ Please download it by following the link and unzip it in the installation folder - + Text @@ -13642,12 +15301,12 @@ Please download it by following the link and unzip it in the installation folder - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13729,21 +15388,31 @@ Do you want to replace it ? - + Warning: the element has been saved with a more recent version of QElectroTech. - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Compilation: @@ -13755,83 +15424,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14046,22 +15745,22 @@ Please download it from the link below and unzip it into the installation folder - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14083,7 +15782,7 @@ Please download it from the link below and unzip it into the installation folder - + Title @@ -14210,45 +15909,45 @@ Please download it from the link below and unzip it into the installation folder - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -14793,13 +16492,13 @@ Please download it from the link below and unzip it into the installation folder - + delete %1 undo caption - %1 is a sentence listing the removed content - + Edit the cross reference edite the cross reference @@ -14824,8 +16523,8 @@ Please download it from the link below and unzip it into the installation folder - + Rotate %1 @@ -14935,8 +16634,8 @@ Please download it from the link below and unzip it into the installation folder - - + + Move %1 @@ -15091,88 +16790,88 @@ Please download it from the link below and unzip it into the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15226,7 +16925,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15275,24 +16974,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15617,88 +17316,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15747,6 +17446,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15785,6 +17492,18 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16788,28 +18507,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16826,13 +18555,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16854,13 +18583,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16882,12 +18639,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19832,7 +21589,7 @@ The other fields are not used. - + Generic @@ -19857,92 +21614,137 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties - + Name: - + Comment : - + Plant: - + Location : - + Description - + Independent terminals - + Modify terminal strip properties @@ -20011,12 +21813,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20081,12 +21883,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20149,55 +21991,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21502,32 +23349,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21538,115 +23395,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Bottom - + Left - + Right - + Text alignment - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_ru.ts b/lang/qet_ru.ts index 4ba966c36..eaec5df41 100644 --- a/lang/qet_ru.ts +++ b/lang/qet_ru.ts @@ -634,7 +634,7 @@ Change the angle of an arc - + Изменить угол дуги @@ -958,12 +958,12 @@ Renumber elements - + Перенумеровать элементы Renumber elements (%1) - + Перенумеровать элементы (%1) @@ -1171,6 +1171,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol %1 (самая последняя) + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + Удалить + + BorderPropertiesWidget @@ -1201,7 +1219,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + Формат: @@ -1227,16 +1245,1079 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + Пользовательские Landscape - + Альбомная Portrait + Книжная + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Кабель + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + Поиск: + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + Новая запись + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Установка (=) + + + + Location (+) + Расположение (+) + + + + Type + Тип + + + + Cores + + + + + Plant + Установка + + + + Location + Расположение + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + Не удалось записать в файл: +%1 +%2 + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + включить заголовки + + + + Preview + Предпросмотр + + + + cable_list_ + + + + + Save As... + Сохранить как... + + + + CSV files (*.csv) + + + + + Error + Ошибка + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + Длина + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Отмена + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + Да + + + + No + Les noms saisis à la main sont laissés tels quels. + Нет + + + + Cancel + Ne renumérote rien du tout. + Отмена + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + Да + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + Нет + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Отмена + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + Кабель + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Кабель + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Тип + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Установка (=) + + + + Location (+) + Расположение (+) + + + + Length + Длина + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Шрифт: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Жирный + + + + Italic + Курсив + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Выравнивание: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Предварительный просмотр: + + + + Reset + Сбросить + + + + CableTypeEntryDialog + + + New entry + Новая запись + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + Сохранить + + + + Cancel + Отмена + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + Файл уже существует и не пуст. + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1283,13 +2364,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption Редактировать свойства проводника - + Edit the properties of several conductors undo caption Редактировать свойства нескольких проводников @@ -1940,7 +3021,7 @@ Continue? Diagram - + Change the depth Изменить глубину @@ -2077,6 +3158,24 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2088,7 +3187,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. Клик: разместить в исходном размере. нажать и потянуть: разместить и изменить размер. Клик правой кнопкой мыши: повернуть на 90°. Ctrl + колесико: настроить размер. @@ -2096,7 +3195,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste Нажмите, чтобы разместить коллаж; нажмите Esc или щелкните правой кнопкой мыши, чтобы отменить @@ -2219,224 +3318,254 @@ Continue? DiagramImageItem - + resize изменить размер - + rotate/skew повернуть/наклонить - + + crop + + + + Click: mode %1 Нажмите: режим %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) Перетаскивание угла/края: изменение размера (Ctrl — от центра, Shift — с сохранением пропорций) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center Перетащить угол: повернуть (Shift = с шагом 15°); перетащить грань: наклонить (Shift = с шагом 15°); красная точка: переместить центр вращения - + -- %1: mode %2 -- %1: режим %2 - + Click Нажать - + Drag: resize (Shift = keep proportions, Ctrl = from center) Перетаскивание: изменение размера (Shift — сохранить пропорции, Ctrl — от центра) - + Drag: rotate (Shift = 15° steps) Перетащить: повернуть (Shift = с шагом 15°) - + Drag: skew (Shift = 15° steps) Перетаскивание: наклон (Shift = с шагом 15°) - + Drag: move the rotation center Перетащить: переместить центр вращения - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image Изменить размер изображения - + Rotate an image Повернуть изображение - + Skew an image Наклонить изображение - + Move an image's rotation center Смещение центра вращения изображения - + Edit an image Изменить изображение - + Restore an image's proportions Восстановить пропорции изображения - - + + Save image as... Сохранить изображение как... - - + + Save original image as... Сохранить исходное изображение как... - + PNG image (*.png) Изображение PNG (*.png) - + JPEG image (*.jpg *.jpeg) Изображение JPEG (*.jpg, *.jpeg) - + BMP image (*.bmp) Изображение BMP (*.bmp) - + SVG image (*.svg) Изображение SVG (*.svg) - + All files (*) Все файлы (*) - + Transparency not preserved Прозрачность не сохраняется - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? Этот формат не поддерживает прозрачность: изображение будет сохранено в том виде, в каком оно было до применения прозрачного цвета. Продолжить? - + Saving failed Ошибка при сохранении - + Unable to save the image to this location. Не удалось сохранить изображение в этом месте. - + image Изображение - + Replace the image... Заменить изображение... - + Transparent color... Прозрачный цвет... - + + Crop on the folio + + + + Crop... Обрезать... - + + Reset crop + + + + Horizontal mirror Отразить по горизонтали - + Vertical mirror Отразить по вертикали - + Restore proportions Восстановить пропорции - + + Properties... + + + + Select an image ... Выберите изображение... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Графические файлы (*.png, *.jpg, *.jpeg, *.bmp, *.svg) - + Error Ошибка - + Unable to load the image. Невозможно загрузить изображение. - + Replace an image Заменить изображение - + Horizontal mirror of an image Отразить изображение по горизонтали - + Vertical mirror of an image Отразить изображение по вертикали - + Set a transparent color Определить прозрачный цвет - + Crop an image Обрезать изображение @@ -2468,22 +3597,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Список текстов - + Sheet background color - + Цвет фона листа - + Conductor color @@ -2491,84 +3620,118 @@ Hold Shift and drag to move this text on its own DiagramView - + Paste Here context menu action Вставить здесь - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Это поле для построения схем, куда вы добавляете элементы и соединения между их выводами. Вы также можете добавить произвольные надписи. - + Multiple paste Множественная вставка - + Create a template context menu action Создать шаблон - + Make a cabinet thumbnail context menu action - + Sheet reference Ссылка на страницу - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Подключить выводы - + Untitled what to display for untitled diagrams Без имени - + + Remove this core from the line + + + + Registered template Новый шаблон - + The template has been successfully saved as : %1 Шаблон был успешно сохранен под именем: %1 - + Error Ошибка - + The file could not be written. Не удалось записать файл. - + Choose the new color for this conductor Выбрать новый цвет для проводника - + Edit conductor properties undo caption Изменить свойства проводника @@ -2982,7 +4145,7 @@ Hold Shift and drag to move this text on its own px - + пикс @@ -3170,7 +4333,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption Автоматическая нумерация элемента @@ -3673,8 +4836,8 @@ Continue? - - + + Type Тип @@ -3757,8 +4920,8 @@ Continue? - - + + Function Функция @@ -3790,7 +4953,7 @@ Continue? - + Simple Простой @@ -3831,19 +4994,19 @@ Continue? - + Switch normally open (NO) нормально открытый - + Switch normally closed (NC) нормально закрытый - + switch (CO) переключающийся @@ -3859,25 +5022,25 @@ Continue? - + Power switch Силовой - + Switch-on delayed Включение с задержкой - + Switch-off delayed Выключение с задержкой - + Switch-on and off delayed Включение и выключение по времени @@ -3903,7 +5066,7 @@ Continue? - + Generic Общий @@ -3922,164 +5085,189 @@ Continue? Diode Диод + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Фаза - + Neutral Нейтраль - - - - - + + + + + T%1 T%1 - + Other fr: Autre Прочее - + PLC Configuration Конфигурация ПЛК - + + + - + - - - - + + Address Адрес - - + + Annotation Аннотация - + Cross-reference Ссылка - - + + Nb. № - + T1 T1 - + Header font Шрифт заголовков - + Set the font for column headers Настройка шрифта заголовков столбцов - + Text font Шрифт текста - + Set the text font in the cells Настройка шрифта текста в ячейках - + Show headers on the sheet Показывать заголовки на листе - + Show or hide the column headings of the PLC table on the sheet Показать или скрыть заголовки столбцов таблицы ПЛК на листе - + Jump to %1 after: Перейти к %1 после: - + None Нет - + Line H: H. строки: - - + + mm мм - + Ref. Арт. - + Custom column name (blank = default) Пользовательское название столбца (пустое поле = значение по умолчанию) - + Visible Видимый - + Paste from the clipboard Вставить из буфера обмена - - + + Heading font size: %1 %2pt Шрифт заголовков: %1 %2pt - - + + Font size: %1 %2pt Шрифт текста: %1 %2pt - + Column header formatting Шрифт заголовков столбцов - + Cell text font Шрифт текста в ячейках @@ -5088,7 +6276,7 @@ QElectroTech не может автоматически определить п ExportConfigPage - + Export configuration page title Экспорт @@ -5473,97 +6661,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : Переместить в: - + Type : Тип: - + Function : Функция: - + LED : Индикатор: - + Apply displacement Применить перемещение - - + + Generic Общий - + Fuse Предохранитель - + Sectionable Секционный - + Diod Диод - + Ground Заземление - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Фаза - + Neutral Нейтраль - + Without Без - + With С - + Modify terminal strip properties Изменить свойства клеммных колодок - + The project has no terminal strip: create one with the + button В проекте нет клеммной колодки: создайте её с помощью кнопки «+» - + Apply or cancel the current changes before moving Перед перемещением примените или отмените текущие изменения - + Select the terminals to move in the table Выберите в таблице клеммы, которые необходимо переместить - + Move the selected terminals to the chosen terminal block Переместить выбранные клеммы на указанную клеммную колодку @@ -5609,17 +6827,17 @@ that you create. Text and number inputs are Использовать системные цвета - + User Collection Path Путь к коллекции пользователя - + User Title blocks Path Путь к штампам пользователя - + Path of the Common Collection Путь к общей коллекции @@ -5641,6 +6859,7 @@ that you create. Text and number inputs are + Browse... Выбрать... @@ -5683,18 +6902,18 @@ that you create. Text and number inputs are мин - + Highlight freshly integrated elements in the panel Выделять недавно добавленные элементы в панели - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Каждый элемент содержит информацию о его авторах, его лицензии или любую другую информацию, которую вы сочтете полезной в свободном доступе. Здесь вы можете указать значение этого поля по умолчанию для создаваемых вами элементов: - + Applied to the next launch of QElectroTech Применится при следующем запуске QElectroTech @@ -5734,32 +6953,32 @@ that you create. Text and number inputs are Каталог штампов пользователя - + Elements management Управление элементами - + Here you can define the default appearance of the different texts of QElectroTech Определение установок по умолчанию для различных текстов QElectroTech - + Grid + Keyboard Сетка и клавиатура - + Grid: 1 - 30 Сетка: 1-30 - + DiagramEditor xGrid Линии по горизонтали (X-линии) - + DiagramEditor yGrid Линии по вертикали (Y-линии) @@ -5943,8 +7162,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet Не настроено @@ -5956,149 +7178,217 @@ that you create. Text and number inputs are + Create... Создать... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Языки - + texts Тексты - + Elements texts Текст элементов - - - + + + Font: Шрифт: - - + + ° ° - + Length : Длина: - - + + Rotation : Вращение: - + Independent texts Независимый текст - + Other texts Другой текст - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Чтобы видеть изменения, сетка должна быть активной. - + Grid for texts moved with the mouse Сетка текстов, перемещаемых с помощью мыши - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. Привязка к сетки листа. Удерживайте клавишу Ctrl во время перемещения, чтобы разместить элементы в произвольном порядке. - + Keyboard movement: 1 - 30 Перемещение с клавиатуры: 1-30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Клавиша влево/вправо — по горизонтали (по X-линии) - + DiagramEditor (key: up / down) yGrid Клавиша вверх/вниз — по вертикали (по Y-линии) - + Keyboard movement with the ALT key: 1 - 9 Перемещение с клавиатуры с помощью клавиши ALT: 1-9 - + DiagramEditor (key: left / right) xGrid Клавиша влево/вправо — по горизонтали (по X-линии) - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Клавиша вверх/вниз — по вертикали (по Y-линии) - + View grid Показывать в виде таблицы - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). При регистрации элемента: отклонять два терминала с одинаковыми названиями и указывать терминалы без названий (IEC 61666). - + Check terminal names when saving Проверять названия терминалов при регистрации - + Point-size in diagram-editor: 1 - 5 Размер точек сетки в Diagram-Editor: 1–5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Размер точек сетки в редакторе элементов: 1–5 - + Editor Редактор - + Max. parts in Element Editor List Максимальное количество элементов в списке редактора элементов @@ -6113,223 +7403,259 @@ that you create. Text and number inputs are Разрешить масштаб меньше размера листа - + + Bold italic + + + + + Bold + Жирный + + + + Italic + Курсив + + + + Normal + + + + Rounding up for 0.5 and more Округлять в большую сторону до 0,5 и выше - + Always top rounding Всегда округлять в большую сторону - + Always rounded down Всегда округлять в меньшую сторону - + Rounding up for 0.75 and more Округлять в большую сторону до 0,75 и выше - + No rounding Не округлять - + Disabled fr: Désactivée Отключено - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. Включается с помощью переменной среды QET_ENABLE_SCRIPTING; этот параметр не действует, пока она определена. - + Not set (default: %1) hint shown in the material file field when no file is configured yet подсказка, отображаемая в поле «Файл материала», если файл ещё не настроен Не настроено (по умолчанию: %1) - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + Не настроено (по умолчанию: %1) + + + General configuration page title Общее - + System Система? Системный - + Arabic Арабский - + Brazilian Бразильский - + Catalan Каталонский - + Czech Чешский - + German Немецкий - + Danish Датский - + Greek Греческий - + English Английский - + Spanish Испанский - + French Французский - + Croatian Хорватский - + Italian Итальянский - + Japanese Японский - + Korean Корейский - + Polish Польский - + Portuguese Португальский - + Romanian Румынский - + Russian Русский - + Slovenian Словенский - + Dutch Немецкий/Нидерландский Голландский - + Norwegian Норвежский - + Belgium-Flemish Бельгийский - + Turkish Турецкий - + Hungarian Венгерский - + Mongolian Монгольский - + Ukrainian Украинский - + Chinese Китайский - + Swedish Шведский - + + Cable text font + + + + + Core colors font + + + + Company collection path Путь к коллекции компании - + Company title-blocks Путь к штампам компании - + User macro path Путь к пользовательским шаблонам - + Folder not found Каталог не найден - + The user collection folder: %1 does not exist and could not be created. @@ -6338,12 +7664,12 @@ does not exist and could not be created. не существует, и его не удалось создать. - + No subfolder Подпапок нет - + The user collection: %1 has no subfolder, so there is no prefix to configure. @@ -6352,34 +7678,34 @@ has no subfolder, so there is no prefix to configure. не содержит подпапок: следовательно, настраивать префикс не нужно. - + Prefix file cannot be read Нечитаемый файл префиксов - + Prefix file damaged Поврежденный файл префиксов - + The file %1 is not a valid XML file: %2 Файл %1 не является допустимым XML-файлом: %2 - + Fix the file Исправить файл - + Rebuild Восстановить - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6392,33 +7718,36 @@ has no subfolder, so there is no prefix to configure. «Перестроить»: дерево папок воссоздаётся, но все текущие префиксы теряются. Текущий файл сохраняется под именем qet_labels.xml.bak перед заменой. - + File: %1 Файл: %1 - + Select the materials list file Выбрать файл из списка материалов - - + + + + CSV files (*.csv) Файлы csv (*.csv) - + Create the materials list file Создать файл со списком материалов - + Cannot create Создание невозможно - + + Cannot create the file: %1 %2 @@ -6427,17 +7756,32 @@ has no subfolder, so there is no prefix to configure. %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Слишком высокие значения могут привести к сбоям в работе приложения. - + Experimental feature Экспериментальная функция - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6452,6 +7796,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje 3 — редактирования проекта на другом компьютере и/или экране, параметры которых отличаются от указанных в пунктах 1 и 2. + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + Информация + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Имя: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + Клеммы + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + Клеммы + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Имя + + + + Function + Функция + + + + Type + Тип + + + + Add terminal + + + + + Add gap + + + + + Delete + Удалить + + + + Up + Вверху + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Общий + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6537,7 +8222,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Available commands - + Доступные команды @@ -6579,135 +8264,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Форма + Форма - Display - Вид + Вид - Table name - Имя таблицы + Имя таблицы - None Ничего - All - Все + Все - Lines to display : - Строки для отображения: + Строки для отображения: - Y : - Y: + Y: - Next table - Следующая таблица + Следующая таблица - X : - X: + X: - Previous table - Предыдущая таблица + Предыдущая таблица - Previous table : - Предыдущая таблица: + Предыдущая таблица: - Geometry and lines - Геометрия и строки + Геометрия и строки - Apply geometry to all tables linked to this one - Применить геометрию ко всем таблицам, связанным с этой + Применить геометрию ко всем таблицам, связанным с этой - Fit table to sheet - Подогнать область по листу + Подогнать область по листу - TextLabel - Текстовая метка + Текстовая метка - Header - Заголовок + Заголовок - - Margin - Поле + Поле - Alignment : - Выравнивание: + Выравнивание: - - Left - Влево + Влево - - Center - По центру + По центру - - Right - Вправо + Вправо - - Font - Шрифт + Шрифт - Table - Таблица + Таблица - Alignment: - Выравнивание: + Выравнивание: - Content - Содержание + Содержание @@ -6825,6 +8480,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje Вернуться к полному изображению без обрезки + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -7040,75 +8718,47 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Форма + Форма - X : - X: + X: - Advanced Editor - Расширенный редактор + Расширенный редактор - Size : - Размер: + Размер: - Angle: - Угол: + Угол: - - - px - пикс + пикс - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Содержание, размер и шрифт текста нельзя изменить, поскольку он в формате html. Пожалуйста, используйте для этого расширенный редактор. + Содержание, размер и шрифт текста нельзя изменить, поскольку он в формате html. Пожалуйста, используйте для этого расширенный редактор. - Text - Текст + Текст - @@ -7116,9 +8766,8 @@ Please use the advanced editor for this. Шрифт - Click here to cancel html formatting - Отменить форматирование HTML + Отменить форматирование HTML @@ -7555,7 +9204,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Печать @@ -7574,7 +9223,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Отмена @@ -7956,6 +9605,14 @@ Do you still want to link this slave contact? %2 + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -8059,63 +9716,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Лист - + Conductor Проводник - + Sheet references Отчеты о листах - + Cross-references Перекрестные ссылки - + Guides Направляющие - + Set the default automatic numbering rules for new projects: Задайте правила автоматической нумерации по умолчанию для новых проектов: - + Conductors Проводники - + Elements Элементы - + Sheets Листы - + + Cables + + + + Auto Numbering Автонумерация - + New sheet configuration page title Новый лист - + New project configuration page title Новый проект @@ -8245,134 +9907,134 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 Формат числа: 1 - - - - + + + + number format 01 Формат числа: 01 - - - - - + + + + + number format 001 Формат числа: 001 - - - - - + + + + + Cyclic (modulo) Циклический (по модулю) - - - - - + + + + + Alphabetical По алфавиту - - - - - + + + + + Text Текст - - - - + + + + Sheet no. № схемы? № листа - - - - + + + + Sheet Лист - - - - + + + + number format 1 - Sheet Формат числа: 1 — Лист - - - - + + + + number format 01 - Sheet Формат числа: 01 — Лист - - - - + + + + number format 001 - Sheet Формат числа: 001 — Лист - - - - + + + + Location Расположение - - - - + + + + Plant Установка - - - + + + Element Line Строка элемента - - - + + + Element Column Столбец элемента - - - + + + Element Prefix Префикс элемента @@ -8460,7 +10122,7 @@ Do you still want to link this slave contact? Change a rectangle - + Редактировать прямоугольник @@ -8474,12 +10136,12 @@ Do you still want to link this slave contact? PartText - + Move a text Переместить текст - + Edit the text field Редактировать текстовое поле @@ -8487,12 +10149,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8911,7 +10573,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Печать @@ -8925,101 +10587,106 @@ Its copy was kept as: Автонумерация - + Management Управление - - + + Conductors Проводники - + No. - + Name Имя - + Sheet Лист - + Element Элемент - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Элементы - - + + Sheets Листы - + + Cables + + + + Sheet Auto Numbering Автонумерация листов - + Import from another project... Импортировать из другого проекта... - + Reuse the automatic numbering saved in another project Использовать автоматическую нумерацию, сохраненную в другом проекте - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -9028,7 +10695,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -9037,49 +10704,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9088,21 +10755,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9112,7 +10779,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9121,7 +10788,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9130,13 +10797,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Удалить нумерацию - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9146,12 +10813,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9160,12 +10827,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9174,7 +10841,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9184,80 +10851,80 @@ Give them another numbering first. - + Import numbering from a project Импорт нумерации из проекта - + Project QElectroTech (*.qet) Проект QElectroTech (*.qet) - - + + Import not possible Импорт невозможен - + Unable to open %1 Не удается открыть %1 - + %1 is not a valid QElectroTech project. %1 не является допустимым проектом QElectroTech. - - + + No numbering Нумерация отсутствует - - + + This project does not contain any automatic numbering. В этом проекте отсутствует автоматическая нумерация. - + Numbering to import Номера, которые необходимо импортировать - + Numbering found in %1: Номера, найденные в %1: - + %1: %2 (already exists) %1 : %2 (уже существует) - + Replace numbering with the same name Заменить одноименные нумерации - + Import numberings - + Import complete Импорт завершен - + %1 numbering(s) imported, %2 kept unchanged. %1 номер(а) импортировано, %2 оставлены без изменений. - + %1 numbering(s) imported. %1 импортированный номер (номера). @@ -9278,19 +10945,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Форма + Форма - Request - Запрос + Запрос - Reload - Перезагрузка + Перезагрузка @@ -9790,128 +11454,130 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption Загрузка... Инициализация кэша коллекций элементов - + Loading... Sheets editor splash screen caption Загрузка... Редактор схем - + Loading... Opening files splash screen caption Загрузка... Открытие файлов - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR Переведите эту строку в RTL, если вы переводите на язык с письмом справа налево, иначе переводите в LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Штампы QET - + Company title-blocks title of the company's title block templates collection Штампы компании - + User title blocks title of the user's title block templates collection Штампы пользователя - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Схема - + Electric Normal example text - translate length, not meaning Электрическая - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Настройка QElectroTech - + + Save settings as... dialog title Сохранить настройки как... - - + + QElectroTech settings (*.conf) file dialog filter Настройки QElectroTech (*.conf) - - + + Error message box title Ошибка - + Cannot save the settings to “%1”. Не удалось сохранить настройки в «%1». - + Load settings... dialog title Загрузить настройки... - + “%1” is not a settings file saved by QElectroTech. «%1» не является настройкой, сохраненной в QElectroTech. - + + Load settings message box title Загрузить конфигурацию - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9924,146 +11590,203 @@ Do you want to continue? Хотите продолжить? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Загрузка... - + Loading... Systray icon splash screen caption Загрузка... Значок в трее - + QElectroTech systray menu title QElectroTech - + &Quit &Выход - + &Hide &Скрыть - + &Show &Показать - + &Hide diagram editor &Скрыть редактор схем - + &Show diagram editors &Показать редактор схем - + &Hide element editor &Скрыть редактор элементов - + &Show element editor &Показать редактор элементов - + &Hide title block template editor systray submenu entry &Скрыть редактор штампов - + &Show title block template editors systray submenu entry &Показать редактор штампов - + &New diagram editor &Новый редактор схем - + &New element editor &Новый редактор элементов - + Closes QElectroTech Закрыть QElectroTech - + Reduces QElectroTech into the systray Свернуть QElectroTech в трей - + Restore QElectroTech Восстановить QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Редакторы схем - + Element editors Редакторы элементов - + Title block template editors systray menu entry Редакторы штампов - + Crash report Отчет о сбое - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. QElectroTech не завершил работу должным образом при последнем запуске. Ниже приведены последние сообщения, зафиксированные перед завершением работы — вы можете сохранить их, чтобы приложить к отчёту об ошибке. - + Diagnostic report Диагностический отчет - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. Здесь содержатся последние записи журнала данного сеанса. Проверьте их содержание, прежде чем прикреплять их к публичному отчету об ошибке. - + Usage: Использование: - + [options] [file]... @@ -10072,7 +11795,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -10089,35 +11812,35 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Задаёт каталог с коллекцией элементов - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Задаёт каталог с коллекцией штампов - + --config-dir=DIR Define configuration directory --config-dir=DIR Задаёт каталог конфигурации - + --data-dir=DIR Define data directory --data-dir=DIR Задаёт каталог с данными - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Задаёт каталог с языковыми файлами @@ -10127,880 +11850,974 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Undo dock title История - + No modification Нет изменений - + Click an action to get back in the changes you made to your diagram Status tip Выберите действие, чтобы откатить изменения, сделанные в схеме - + &New &Новый - + &Open &Открыть - - + + &Close &Закрыть - + &Save &Сохранить - + Save as Сохранить как - + &Export &Экспорт - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip В этой панели показаны различные изменения на текущем листе. При выборе изменения лист будет возвращён в то состояние, в котором он находился сразу после его применения. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors Редактор схем - + Print Печать - + Export in pdf Экспорт в PDF - + Export one or more sheets of the current project status bar tip подсказка в строке состояния Экспорт одного или нескольких листов текущего проекта - + &Quit &Выход - + Undo Отмена - + Redo Повторить - + Cu&t &Вырезать - + &Copy &Копировать - + &Paste Вст&авить - + Automatic disconnection of conductor(s) Tool tip of auto break conductor Автоматическое отключение проводника (проводников) - + Automatically cut existing conductors when placing an element Status tip of auto break conductor Автоматически обрезать существующие проводники при размещении элемента - + Display the grid Показать сетку - + Display or hide the grid of sheet Показать или скрыть сетку листа - + Text grid Список текстов - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. Сетка для выравнивания текста при перемещении мышью. Удерживайте клавишу Ctrl во время перемещения, чтобы разместить текст в произвольном месте. - + Disabled Отключено - + View the guides Показать руководство - + Shows or hides the guides Отображать или скрывать направляющие - + Keep headers visible Оставить заголовки видимыми - + Keeps the sheet's column numbers and row letters visible at the edge of the view Оставить номера столбцов и буквы строк листа видимыми на краю окна просмотра - + Show cell boundaries Показать границы ячеек - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only Начертите границы столбцов и строк листа на схеме — только на экране - + Show Показывать - + Element texts - + Conductor texts - + Text fields - + Текстовые поля - + Shapes - + Pictures - + Tables - + Cross-references Перекрестные ссылки - + See Display > Show - + Sheet properties Свойства листа - + Add a sheet Добавить лист - - - + + + Delete this sheet Удалить этот лист - + Export to CSV Экспорт в формат CSV - + Terminal block manager (DEV) Управление клеммными колодками (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Экспорт списка имен проводников - + Export the wiring diagram Экспорт схемы прокладки кабелей - + Wiring list (database) Схема подключения (база данных) - + Automatic numbering of terminals Автоматическая нумерация клемм - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings Обновить чертежи элементов - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) Перерисовать каждый размещенный элемент в соответствии с его текущим определением без необходимости закрывать и заново открывать проект (это действие нельзя отменить) - + Run a script... Запустить скрипт... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) Выполняет скрипт JavaScript в текущем проекте (доступные API см. в разделе qet.* в скрипте) - + Record a macro Запись макроса - + Records what you do on the project, for an AI assistant to make a script of; click again to stop Записывайте свои действия в рамках проекта, чтобы помощник на базе ИИ преобразовал их в скрипт; щелкните еще раз, чтобы остановить запись - + Manage scripts… Управление скриптами… - + Write a script and make it a button with an icon Написать скрипт и превратить его в кнопку с иконкой - + Open the scripts folder Открыть папку со скриптами - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button Каждый файл .js в этой папке, который начинается с заголовка // ==QETScript==, превращается в кнопку - + Export the internal project database Экспорт внутренней базы данных проекта - + Creates a new project status bar tip Создать новый проект - + Opens an existing project status bar tip Открыть существующий проект - + Closes the current project status bar tip Закрыть текущий проект - + Saves the current project and all its sheets status bar tip Сохранить текущий проект и все его листы - + Saves the current project with a different file name status bar tip Сохранить текущий проект с другим именем - + Add row Add row Добавить ряд Добавить строку - + Remove a row Remove row Удалить строку - + Add a column to the sheet status bar tip Добавить столбец - + Remove a column from the sheet status bar tip Удалить столбец - + Expands the sheet height status bar tip Увеличивает высоту листа - + Shrinks the sheet height status bar tip Уменьшает высоту листа - + Rotate the group Повернуть группу - + Horizontal mirror - + Отразить по горизонтали - + Vertical mirror - + Отразить по вертикали - - + + Group fr: Grouper Группировать - + Ungroup Разгруппировать - + Insert the last element Вставить последний элемент - + Places the last inserted element again status bar tip Снова вставить последний добавленный элемент - + Search for a command… Поиск команды… - + Type part of a command name and press Enter to launch it status bar tip Введите часть названия команды и нажмите Enter, чтобы запустить её - + Insert an element… Вставить элемент… - + Opens the element picker at the cursor position status bar tip Открыть окно выбора элементов в месте нахождения курсора - + Shortcut bar Панель быстрого доступа - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip Открывает в месте нахождения курсора команды, необходимые для выделения, а также средство выбора элементов - + Repeat the last command Повторить последнюю команду - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip Повторить последнее действие с инструментом рисования или последнюю вставку элемента (ввод на лист) - + Removes selected elements from the sheet status bar tip Удалить выбранные элементы - + Rotates the selection as a group around its centre, rather than each element in place status bar tip Поворачивает выделенную область как единое целое вокруг её центра, а не каждый элемент по отдельности - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip Объединяет выбранные элементы, текст, фигуры и изображения: их можно выделять, перемещать и копировать вместе - + Breaks up the selected groups status bar tip Удалить выбранные группы - + Align to grid Выровнять по сетке - + Puts the selected elements, images and texts back on the grid status bar tip Вставляет выделенные элементы, изображения и текст по сетке - + Align left Выравнивание по левому краю - + Aligns the left edges of the selected items status bar tip Выравнивает левые края выделенных объектов - + Centre horizontally Центрировать по горизонтали - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip Выравнивает выделенные объекты по одной вертикали, ориентируясь на их начальные точки для элементов - + Align right Выравнивание по правому краю - + Aligns the right edges of the selected items status bar tip Выравнивает правые края выделенных объектов - + Align top Выравнивание по верху - + Aligns the top edges of the selected items status bar tip Выравнивает верхние края выделенных объектов - + Centre vertically Центрировать по вертикали - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip Выравнивает выбранные объекты по одной горизонтальной линии, ориентируясь на их начальные точки для элементов - + Align bottom Выравнивание по нижнему краю - + Aligns the bottom edges of the selected items status bar tip Выравнивает нижние края выделенных объектов - + Select All Выделить всё - + Select none Снять выделение - + Invert selection Инвертировать выделение - + Select all conductors Выбрать все проводники - + Select all text fields Выделить все текстовые поля - + Selects all conductors on the sheet, deselects the rest status bar tip Выделяет все проводники на листе, снимает выделение с остальных - + Selects all text fields on the sheet, deselects the rest status bar tip Выделяет все текстовые поля на листе, снимает выделение с остальных - + Centre on the cursor Выравнивание по курсору - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip Выровнять лист по точке под курсором мыши, не изменяя масштаб - + Add a PDF Добавить PDF-файл - + Add an arc Добавить дугу - + Add a curve Добавить кривую - + Add a fillet Добавить скругление - + Add a terminal plan Добавить схему расположения терминалов - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Добавить текстовое поле в текущий лист - + Add an image to the current sheet Добавить изображение в текущий лист - + Adds a PDF page to the current sheet Добавляет страницу PDF на текущий лист - + Add a line to the current sheet Добавить линию в текущий лист - + Adds a rectangle on the current sheet Добавить прямоугольник в текущий лист - + Add an ellipse to the current sheet Добавить эллипс в текущий лист - + Adds an arc on the current sheet Добавляет дугу на текущем листе - + Adds a polyline to the current sheet Добавить ломаную линию в текущий лист - + Adds a Bézier curve to the current sheet Добавляет кривую Безье на текущем листе - + Rounds the corner between two lines of the current sheet Скругляет угол между двумя строками на текущем листе - + Adds a terminal plan to the current sheet Добавляет схему клеммной колодки на текущий лист - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element Перейти к элементу - + Quickly search for and select an element in the sheet status bar tip Быстрый поиск и выделение элемента на листе - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + Да + + + + No + no + Нет + + + + Cancel + cancel + Отмена + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Depth toolbar title Глубина - + Scripts toolbar title Скрипты - + &Add &Добавить - + Selection - + Align Выровнять - + Rows and columns Строки и столбцы - + Depth Глубина - - + + Scripts Скрипты - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11010,7 +12827,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11020,24 +12837,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title Шрифты проекта - + Sheet %1: %2 Лист %1: %2 - + Conductors not loaded message box title Провода не подключены - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11055,24 +12872,24 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal Удаление терминала невозможно - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted Удаление невозможно, так как в выделенном наборе есть одна или несколько клемм, соединенных мостом и/или относящихся к многоуровневой клемме. Разобъедините и/или удалите уровни соответствующих клемм, чтобы их можно было удалить. - + Group Группа - + %n items put back on the grid %n элемент возвращен на сетку @@ -11081,7 +12898,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned %n выровненный объект @@ -11090,22 +12907,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups Выберите как минимум два элемента: изображения, текст, фигуры или незаблокированные группы - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) (%n заблокированный объект остался на месте) @@ -11114,29 +12931,29 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + An error occurred while opening file %1. message box content содержимое окна сообщения Ошибка при открытии файла %1. - + Repeat: insert "%1" Повторить: вставку «%1» - + Repeat: %1 Повторить: %1 - + sheet %1 лист %1 - + %n elements redrawn. %n перерисованный элемент. @@ -11145,7 +12962,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. %n элемент, определение которого не найдено или нечитаемо: их текущий рисунок был сохранен. @@ -11154,7 +12971,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). %n элемент, не перерисованный: их размер, точка захвата или границы изменились (граница добавлена, удалена или перемещена). @@ -11163,18 +12980,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. Чтобы обновить их, необходимо удалить их, а затем вставить заново. Внимание: при выполнении этой операции будут удалены проводники, уже подключенные к этим элементам, и их придётся проложить заново. - - + + Run a script Запустить скрипт - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11187,28 +13004,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener Включить скрипты? Этот параметр можно изменить в меню «Настройки QElectroTech» > «Общие» > «Проекты». - + JavaScript scripts (*.js);;All files (*) Скрипты JavaScript (*.js);;Все файлы (*) - + Ignored: %1 Игнорируется: %1 - - + + Stop Остановить - + Stop recording the macro Остановить запись макроса - + ● Recording: %n steps ● Записано: %n шаг @@ -11217,12 +13034,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded Запись макроса - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11239,53 +13056,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant &Скопировать запрос для помощника - + &Open the folder &Открыть папку - + Request copied: paste it into the assistant's window Скопированный запрос: вставьте его в окно мастера - + Close the assistant's connection for the rest of the session Отключить подключение помощника до конца сеанса - + Live mode: assistant connected Прямой режим: подключенный помощник - + Live mode: waiting for an assistant Прямой режим: ожидание помощника - - + + Assistant Помощник - + Ask before running a script the assistant wrote Запросить подтверждение перед запуском скрипта, созданного мастером - + Live mode: %1 %2 at %3 Прямой режим: %1 %2 — %3 - + %n kinds of items hidden @@ -11294,632 +13111,632 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 Тексты %1 - + Delete Удалить - + Rotate Повернуть - + Choose texts orientation Выбрать направление текста - + Find in the panel Найти в панели - + Reset conductors Восстановить проводники - + Add a textfield Добавить текстовое поле - + Add a column Добавить столбец - + Add a picture Добавить изображение - + Remove a column Удалить столбец - + Project properties Свойства проекта - + Clean project Очистить проект - + Add a summary Добавить заключение - + Zoom In Увеличить - + Zoom Out Уменьшить - + Zoom content Масштабировать выбранное - + Fit in view Подогнать размер - + Reset zoom Восстановить масштаб - + using tabs Использовать вкладки - + using windows Использовать окна - + Select Режим выделения - + Move Режим просмотра - + &Tile &Мозаика - + &Cascade &Каскад - + Next project Следующий проект - + Previous project Предыдущий проект - + Selects all elements on the sheet status bar tip Выделяет все элементы на листе - + Deselect all elements on the sheet status bar tip Снимает выделение со всех элементов листа - + Expand the sheet status bar tip Увеличивает лист - + Shrinks the sheet status bar tip Уменьшает лист - + Adjusts the zoom to display all the contents of sheet regardless of context Изменяет масштаб для отображения всего содержимого листа независимо от контекста - + Adjusts the zoom on exactly the part of the sheet status bar tip Изменяет масштаб для отображения только части листа - + Add a rectangle Добавить прямоугольник - + Add an ellipse Добавить эллипс - + Add a polygon Добавить ломаную линию - + Find the selected item in the panel status bar tip Ищет выбранный элемент в панели - - + + Project %1 registered in the directory: %2. Проект %1 сохранён в каталоге: %2. - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Проекты QElectroTech (*.qet);;Файлы XML (*.xml);;Все файлы (*) - - + + Unable to open file message box title Невозможно открыть файл - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Файл %1, который вы пытаетесь открыть, не существует. - + Opening the file read-only message box title Открытие файла в режиме "только чтение" - + Activates the project « %1 » Активирует проект «%1» - + Are you sure you want to delete this sheet? Вы уверены, что хотите удалить этот лист? - + Delete the sheets Удалить лист - + Are you sure you want to delete the selected %1 sheets ? Вы уверены, что хотите удалить %1 выбранных листов? - + Delete %1 sheets Удалить %1 листов - - - - - - - + + + + + + + Move the sheets Перемещение листов - + Error message box title Ошибка - + Closes QElectroTech status bar tip Закрывает QElectroTech - + Undoes the previous action status bar tip Отменяет последнее действие - + Restores the undone action status bar tip Выполняет отменённое действие - + Puts selected elements into the clipboard status bar tip Копирует выделенные элементы в буфер обмена - + Copies selected elements status bar tip Копирует выделенные элементы - + Inverts selection of elements status bar tip Инвертирует выделение - + Reset the conductors path ignoring the user changes status bar tip Пересчитывает трассы проводников, игнорируя сделанные пользователем изменения - + Edit the selected item Редактировать выбранный элемент - + Rotate selected elements and texts status bar tip Поворот выбранных элементов и текстов - + Rotate selected texts to a specific angle status bar tip Повернуть выбранный текст на определённый угол - + Automatic creation conductor (s) Tool tip of auto conductor Автоматическое создание проводников - + Projects dock title Проекты - + Collections Коллекции - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Использовать автоматическое создание проводников, когда это возможно - + Restores default zoom level status bar tip Сбрасывает масштаб - + Add line Draw line Добавить линию - + Shows the various opened projects in windows status bar tip Показывает разные открытые проекты в окнах - + Shows the various opened projects in tabs status bar tip Показывает разные открытые проекты во вкладках - + Allows to select elements status bar tip Позволяет выбирать элементы - + Arranges windows in a tile pattern status bar tip Разместить окна мозаикой - - + + Paste element information - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + Arranges windows in a cascade pattern status bar tip Разместить окна каскадом - + Activates the next project status bar tip Активирует следующий проект - + Activates the previous project status bar tip Активирует предыдущий проект - + &File &Файл - + &Edit &Правка - + &Project П&роект - + Displ&ay &Вид - + Wi&ndows &Окно - + &Latest files &Недавно открытые - + Display or hide the main toolbar Отобразить или скрыть главную панель инструментов - + Display or hide the Display toolbar Отобразить или скрыть панель инструментов «Вид» - + Display or hide the Diagram toolbar Отобразить или скрыть панель инструментов «Схема» - + Show or hide the elements panel Отобразить или скрыть панель элементов - + Display or hide the undo list Отобразить или скрыть список изменений - + Display projects Показывать проекты + - Tools Инструменты - + Exports the current sheet to another format status bar tip Экспортировать текущий лист в другой формат - + Prints one or more sheet of the current project status bar tip Печатать один или более листов текущего проекта - + Paste at the original position Вернуться в исходную точку - + Pastes elements from the clipboard into the sheet status bar tip Вставляет на лист элементы из буфера обмена - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip Верни элементы буфера обмена в исходное положение и перемести курсор в эту точку - + &Duplicate &Дубликат - + Copies the selection, offset by the configured spacing status bar tip Скопировать выделенную область, сместив её на заданное расстояние - + Configure duplication... Настроить дублирование... - + Choose the spacing and direction used by Duplicate status bar tip Выбрать интервал и направление, используемые функцией «Дублировать» - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Редактирует свойства листа (размеры, информацию шаблонов, свойства проводников...) - + Add a nomenclature Добавить номенклатуру - + Launch the terminal block creation plugin Запустить плагин создания клеммной колодки - + Allows to view the sheet without modifying it status bar tip Позволяет просматривать листы, не изменяя их - + Group selected texts Сгруппировать выбранные тексты - + Search / Replace Найти/заменить + - Display Вид + - Diagram Схема + - Add Добавить - + Open a file Открыть файл - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Файл, который вы пытаетесь открыть, недоступен для чтения и не может быть открыт. Проверьте права доступа. - + The project you try to open does not seem writable. It will be opened read-only. Проект, который вы пытаетесь открыть, недоступен для записи. Он будет открыт в режиме "только для чтения". - - + + Unable to open project message box title Невозможно открыть проект - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Файл %1 не является проектом QElectroTech. Он не может быть открыт. - + Edit the element edit element Редактировать элемент - + Edit the text field edit text field Редактировать текстовое поле - + Edit the image edit image Редактировать изображение - + Edit conductor edit conductor Редактировать проводник - + Edit the selected object edit selected item Редактировать выбранный объект @@ -12918,53 +14735,53 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path отображаемый заголовок для ProjectView -% 1 - это заголовок проекта, -% 2 - это путь к проекту Проект «%1: %2» - + Project %1 displayed title for a title-less project - %1 is the file name Проект %1 - + Untitled project displayed title for a project-less, file-less project Проект без имени - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [только чтение] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [изменён] - + Renumber elements Перенумеровать элементы - + Renumber elements (%1) Перенумеровать элементы (%1) - + Modified contact system Модифицированная система контактов - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12975,7 +14792,7 @@ Do you wish to continue? Хотите продолжить? - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12984,7 +14801,7 @@ You are currently using QElectroTech in version %2 В настоящее время вы используете QElectroTech версии %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12993,43 +14810,43 @@ What do you wish to do ? Что вы хотите сделать? - + Warning message box title Предупреждение - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Проект, который вы пытаетесь открыть, частично совместим с вашей версией %1 программы QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Чтобы обеспечить полную совместимость, откройте этот же проект в версии 0.8 или 0.80 QElectroTech, сохраните проект и снова откройте его в этой версии. Что вы хотите сделать? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Открытие текущего проекта...</b><br/>Создание листов</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Открытие текущего проекта...</b><br/>Настройка перекрестных ссылок</p> - + An error occurred during the template integration. error message Во время интеграции шаблона произошла ошибка. - + Warning message box title Предупреждение @@ -13056,178 +14873,168 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Сохранить текущий шаблон? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Хотите сохранить шаблон %1? - + new_template template name suggestion when duplicating the default one новый_шаблон - + Duplicate a title block template input dialog title Дублировать шаблон штампа - + In order to duplicate this template, please enter a name for its copy input dialog text Чтобы дублировать этот шаблон, пожалуйста, введите имя для его копии - + &New menu entry &Новый - + &Open menu entry &Открыть - + Open from a file menu entry Открыть из файла - + &Save menu entry &Сохранить - + Save as menu entry Сохранить как - + Save to a file menu entry Сохранить в файл - + &Quit menu entry &Выход - + Manage logos menu entry Управление логотипами - + Zoom In menu entry Увеличить - + Zoom out menu entry Уменьшить - + Fit in view menu entry Подогнать размер - + Reset zoom menu entry Восстановить масштаб - + Save as dialog title Сохранить как - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Шаблоны штампов QElectroTech (*%1) - + &Merge cells menu entry &Объединить ячейки - + Cu&t menu entry &Вырезать - + &Copy menu entry &Копировать - + &Paste menu entry Вст&авить - + Edit extra information menu entry Редактировать дополнительную информацию - + Add a &row menu entry Добавить ст&року - + Add a &column menu entry Добавить с&толбец - + &Split cells menu entry Раз&делить ячейки - - - - - - - - - - @@ -13237,144 +15044,154 @@ What do you wish to do ? + + + + + + + + + + Title block template editors Редактор шаблонов - + &File menu title &Файл - + &Edit menu title &Правка - + Displ&ay menu title &Вид - + Tools toolbar title Инструменты - + Edit toolbar title Правка - + Display toolbar title Вид - + No modification label displayed in the undo list when empty Нет изменений - + Undo dock title История - + Cell properties dock title Свойства ячейки - + [Changed] window title tag [Изменено] - + [Read only] window title tag [Только чтение] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech — Редактор штампов - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 — %2 - - + + Error message box title Ошибка - + Unable to save the template ‘%1’. message box content - %1 is a title block template name Не удалось сохранить шаблон «%1». - + Open a title block template File > open dialog window title Открыть шаблон штампа - + Open a file dialog title Открыть файл - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Шаблоны штампов QElectroTech (*%1);;Файлы XML (*.xml);; Все файлы (*) - + Save template as dialog window title Сохранить шаблон как - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name Имя «%1» недействительно: оно не должно содержать следующие символы: \ / : * ? " < > | - + Edit extra information window title Изменить дополнительную информацию - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Вы можете использовать это поле, чтобы указать авторов этого шаблона, его лицензию или любую другую информацию, которую сочтете полезной. @@ -13400,7 +15217,7 @@ What do you wish to do ? QObject - + Warning: the element has been saved with a more recent version of QElectroTech. Предупреждение: элементы были сохранены с помощью более новой версии QElectroTech. @@ -13421,7 +15238,7 @@ What do you wish to do ? графический элемент - + delete %1 undo caption - %1 is a sentence listing the removed content удалить %1 @@ -13957,7 +15774,7 @@ What do you wish to do ? - + Title Название @@ -13973,18 +15790,18 @@ What do you wish to do ? Свойства проекта - + Select an image ... Выберите изображение... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Файлы изображений (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13993,7 +15810,7 @@ What do you wish to do ? Ошибка - + Unable to load the image. Невозможно загрузить изображение. @@ -14034,8 +15851,8 @@ What do you wish to do ? Вывод - + Text Текст @@ -14051,7 +15868,7 @@ What do you wish to do ? Изменить информацию для нескольких элементов - + Edit the cross reference edite the cross reference Редактировать перекрестную ссылку @@ -14151,12 +15968,12 @@ the translated name of this folder could not be read, so its folder name is disp Коллекция - + This group cannot be moved: the position of one of its elements is locked. Эту группу нельзя переместить: положение одного из её элементов заблокировано. - + Add %n conductors add a numbers of conductor one or more добавить номера одного или нескольких проводников @@ -14227,8 +16044,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 Повернуть %1 @@ -14410,45 +16227,45 @@ Do you want to replace it ? - + - + Type Тип - + - + Address Адрес - - - - + + + + Annotation Аннотация - - - - + + + + Cross-reference Ссылка - - - - + + + + Function Функция @@ -14783,45 +16600,55 @@ Do you want to replace it ? Создание проводников - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Чтобы установить плагин qet_tb_generator<br>Посетите:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Требуется python 3.5 или выше.<br><B><U>Первая установка в Windows</B></U><br>1. При необходимости установите python 3.5 или более позднюю версию<br>Посетите:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U>Обновление в Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>пользователь может запустить в терминале этот сценарий в этом каталоге<br>C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Чтобы установить плагин qet_tb_generator<br>, перейдите по ссылке:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> Сначала установите на macOSX</B></U><br>1. При необходимости установите только пакет Python 3.11: <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2. Запустите скрипт Profile.command<br>, так как программа использует жестко заданный путь (PATH) для поиска плагина qet-tb-generator <br>. Перейдите по ссылке: <br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>инструкция</a><br>2. pip3 install qet_tb_generator<br><B><U> Обновление на macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Чтобы установить плагин qet_tb_generator<br>Посетите:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Требуется Python 3.5 или выше.<br><br><B><U>Первая установка в Linux</B></U><br>1. Проверьте, что у вас установлен pip3: pip3 --version<br> Если не установлено, то: sudo apt-get install python3-pip<br>2. Установите программу: sudo pip3 install qet_tb_generator<br>3. Запустите программу: qet_tb_generator<br><br><B><U>Обновление в Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Ошибка при запуске плагина qet_tb_generator - + Add a nomenclature Добавить номенклатуру - + Add a summary Добавить заключение + + + Add a cable list + + + + + Cable list + + Paste Вставить - + + - - + @@ -14862,83 +16689,113 @@ Do you want to replace it ? Выбор клеммной колодки %1 - - + + Generic generic terminal element type Общий - + Fuse fuse terminal element type Предохранитель - + Sectionable sectional terminal element type Секционный - + Diode diode terminal element type Диод - + Ground ground terminal element type Заземление - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Общий - + Phase phase terminal element function Фаза - + Neutral neutral terminal element function Нейтраль - - + + Digital input Дискретный вход - + Digital output Дискретный выход - + Analogue input Аналоговый вход - + Analogue output Аналоговый выход - + Universal input Универсальный вход - + Universal output Универсальный выход @@ -14973,7 +16830,7 @@ Do you want to replace it ? Импортировать файл в формате DXF - + Default layout Настройки по умолчанию @@ -15152,8 +17009,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 Переместить %1 @@ -15308,88 +17165,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 Добавить %1 - + Edit the conductor properties Изменить свойства проводника - + Edit a text Изменить текст - + Change the color of a text Изменить цвет текста - + Rotate a text Повернуть текст - + Edit line of a form Изменить линию фигуры - + Edit filling a form Изменить заливку фигуры - + Rotate a shape Поворот фигуры - - + + Change the shape of %1 Изменить форму %1 - + Close/Open %1 Закрыть/Открыть %1 - + Resize an image Изменить размер изображения - + Rotate an image Повернуть изображение - + Edit element text Редактировать текст элемента - + Automatically number an element Автоматическая нумерация элемента - + Renumber elements (%1) - + Перенумеровать элементы (%1) - + Search and replace Найти и заменить - + Script @@ -15447,7 +17304,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Лист @@ -15470,12 +17327,12 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ Horizontal mirror - + Отразить по горизонтали Vertical mirror - + Отразить по вертикали @@ -15496,26 +17353,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Количество информации выходит за пределы допустимого для отображения в таблицах. Пожалуйста, добавьте новую или скорректируйте существующие таблицы, чтобы отобразить информацию полностью. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Количество информации выходит за пределы допустимого для отображения в таблице. Добавьте новую или скорректируйте существующую таблицу, чтобы отобразить информацию полностью. - + Table limitation Ограничение таблицы - + Modify the geometry of a table Изменить геометрию области таблицы @@ -15581,12 +17438,12 @@ nothing has been changed. QetShapeItem - + an shape фигура - + a line линия @@ -15857,78 +17714,78 @@ nothing has been changed. Изменить тип узла - + Resize %1 Изменить размер %1 - + Rotate %1 Повернуть %1 - + Skew %1 Наклонить %1 - + Move the rotation center Переместить центр вращения - + Round the corners of %1 Скруглить углы %1 - + Change the angle of an arc Изменить угол дуги - + Change the curve of an arc - - + + Change the shape of %1 Изменить форму %1 - + Change the curvature of %1 Изменить кривизну на %1 - + Edit %1 Изменить %1 - + rectangle прямоугольник - + an ellipse эллипс - + an arc дуга - + polyline ломаная линия - + a curve кривая @@ -15977,6 +17834,14 @@ nothing has been changed. Редактировать прямоугольник + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -16015,6 +17880,18 @@ nothing has been changed. Элемент «%1» уже существует. Что вы хотите сделать? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -17034,28 +18911,38 @@ qet.addText(f, «Текст», 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Автонумерация листов - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17084,7 +18971,7 @@ The "Incrementation" field is not used. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17122,13 +19009,41 @@ The other fields are not used. Остальные поля не используются. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Элемент «Автонумерация» - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17166,17 +19081,17 @@ The other fields are not used. Остальные поля не используются. - + New numbering… - + Rename numbering… - + Numbering conductors title window Автонумерация проводников @@ -17598,7 +19513,7 @@ The other fields are not used. Category - + Категория @@ -17623,7 +19538,7 @@ The other fields are not used. Action - + Действие @@ -20086,42 +22001,42 @@ The other fields are not used. Макет - + Bridging the terminals Соединить выводы - + Unbridge the terminals Разъединить выводы - + Properties Свойства - + Name: Имя: - + Comment : Аннотация: - + Description Описание - + Plant: Установка: - + Location : Расположение: @@ -20131,13 +22046,13 @@ The other fields are not used. Тип: - + Ungroup the terminals Разгруппировать выводы - + Generic Общий @@ -20177,22 +22092,67 @@ The other fields are not used. Заземление - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Переместить в: - + Phase Фаза - + Neutral Нейтраль - + Automatic position Автоматическое положение @@ -20202,12 +22162,12 @@ The other fields are not used. Ярус: - + Group the terminals Сгруппировать выводы - + Function : Функция: @@ -20222,17 +22182,17 @@ The other fields are not used. Есть - + LED : Индикатор: - + Independent terminals Независимые выводы - + Modify terminal strip properties Изменить свойства клеммных колодок @@ -20301,12 +22261,12 @@ The other fields are not used. 0 уровень клемм: - + Headser : Заголовок: - + Bridge point Перемычка @@ -20371,12 +22331,52 @@ The other fields are not used. Перекрестная ссылка - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Высота - + Preview: Предварительный просмотр: @@ -20439,52 +22439,57 @@ The other fields are not used. TerminalStripModel - + Position Положение - + Stage Ярус - + Label Метка - + Cross-reference Перекрестная ссылка - + Cable Кабель - + Color / wire number of the cable Цвет/номер провода кабеля - + Type Тип - + Function Функция - + led индикатор - + + Shield + + + + Number wire Номер проводника @@ -21398,7 +23403,7 @@ The following variables can be used: Add → - + Добавить → @@ -21408,27 +23413,27 @@ The following variables can be used: ← Remove - + ← Удалить Move up - + Поднять Move down - + Опустить Available commands - + Доступные команды In the bar, in order - + В строке, в указанном порядке @@ -21803,32 +23808,42 @@ The following variables can be used: Показывать перекрестие - + Label cross reference Метка перекрестной ссылки - + Master Главный - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Подчинённый - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21845,115 +23860,141 @@ The following variables can be used: % LM: расположение - + Option display cross Настройки отображения перекрестия - + Show the power contacts in the cross Показывать силовые контакты на перекрестии - + Prefix of power contacts : Префикс силовых контактов: - + Prefix delayed contacts : Префикс контактов с задержкой: - + Prefix changeover contacts : Префикс контактов переключения: - + Coil Катушка - + Organ of protection Устройство защиты - + Switch / button Переключатель/кнопка - + Programmable Logic Controller (PLC) ПЛК (PLC) - + + Cable + Кабель + + + Footer Внизу страницы - + Under the label of the element Под меткой элемента - + Top Вверху - + Bottom Внизу - + Left Слева - + Right Справа - + Text alignment Выравнивание - + Text field Текстовое поле + + + Text: + Текст: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. Запрос пуст. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). Допускается только один запрос SELECT (символ «;» может встречаться только в самом конце). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. Допускаются только запросы, предназначенные только для чтения (SELECT или WITH ... SELECT). - + Export the internal project database Экспортировать внутреннюю базу данных проекта - + untitled без имени diff --git a/lang/qet_sk.ts b/lang/qet_sk.ts index 38d5491df..0fd369319 100644 --- a/lang/qet_sk.ts +++ b/lang/qet_sk.ts @@ -1161,6 +1161,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + + + BorderPropertiesWidget @@ -1229,6 +1247,1067 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1272,13 +2351,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Edit the properties of several conductors undo caption @@ -1923,7 +3002,7 @@ Continue? Diagram - + Change the depth @@ -2060,6 +3139,24 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2071,7 +3168,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2079,7 +3176,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2202,224 +3299,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2450,22 +3577,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2473,83 +3600,117 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip - + Paste Here context menu action - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. - + Choose the new color for this conductor - + Edit conductor properties undo caption @@ -3150,7 +4311,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3645,8 +4806,8 @@ Continue? - - + + Type @@ -3729,8 +4890,8 @@ Continue? - - + + Function @@ -3762,7 +4923,7 @@ Continue? - + Simple @@ -3803,19 +4964,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3831,25 +4992,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3875,7 +5036,7 @@ Continue? - + Generic @@ -3894,164 +5055,189 @@ Continue? Diode + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5030,7 +6216,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title @@ -5394,97 +6580,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5629,6 +6845,7 @@ that you create. Text and number inputs are + Browse... @@ -5812,8 +7029,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5824,472 +7044,576 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management - + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6298,50 +7622,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6351,6 +7693,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6478,136 +8161,10 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None - - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - - Left - - - - - - Center - - - - - - Right - - - - - - Font - - - - - Table - - - - - Alignment: - - - - - Content - - @@ -6723,6 +8280,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6938,80 +8518,6 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - - Angle: - - - - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - - Text - - - - @@ -7842,6 +9348,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7945,63 +9459,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8131,133 +9650,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8358,12 +9877,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8371,12 +9890,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8773,7 +10292,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title @@ -8787,101 +10306,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name - + Sheet - + Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8890,7 +10414,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8899,49 +10423,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8950,21 +10474,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8974,7 +10498,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8983,7 +10507,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8992,13 +10516,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9008,12 +10532,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9022,12 +10546,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9036,7 +10560,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9046,80 +10570,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9137,24 +10661,6 @@ Give them another numbering first. - - ProjectDBModelPropertiesWidget - - - Form - - - - - Request - - - - - Reload - - - ProjectMainConfigPage @@ -9648,127 +11154,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning - + Electric Normal example text - translate length, not meaning - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9777,152 +11285,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption - + Loading... Systray icon splash screen caption - + QElectroTech systray menu title - + &Quit - + &Hide - + &Show - + &Hide diagram editor - + &Show diagram editors - + &Hide element editor - + &Show element editor - + &Hide title block template editor systray submenu entry - + &Show title block template editors systray submenu entry - + &New diagram editor - + &New element editor - + Closes QElectroTech - + Reduces QElectroTech into the systray - + Restore QElectroTech - + QElectroTech systray icon tooltip - + Diagram editors - + Element editors - + Title block template editors systray menu entry - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9933,31 +11498,31 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory @@ -9966,1430 +11531,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + Projects dock title - + Collections - + No modification - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title - + &Export - + Exports the current sheet to another format status bar tip - + Print - + Prints one or more sheet of the current project status bar tip - + &Quit - + Closes QElectroTech status bar tip - + Undo - + Undoes the previous action status bar tip - + Redo - + Restores the undone action status bar tip - + Cu&t - + &Copy - + &Paste - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip - + Pastes elements from the clipboard into the sheet status bar tip - + Reset conductors - + Reset the conductors path ignoring the user changes status bar tip - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Display the grid - + Display or hide the grid of sheet - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Project properties - + Add a sheet - - - + + + Delete this sheet - + Clean project - + Add a summary - + Export to CSV - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Export in pdf - + Export one or more sheets of the current project status bar tip - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Add a nomenclature - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + using tabs - + Shows the various opened projects in tabs status bar tip - + using windows - + Shows the various opened projects in windows status bar tip - + &Tile - + Arranges windows in a tile pattern status bar tip - + &Cascade - + Arranges windows in a cascade pattern status bar tip - + Select - + Allows to select elements status bar tip - + Move - + Allows to view the sheet without modifying it status bar tip - + Next project - + Activates the next project status bar tip - + Previous project - + Activates the previous project status bar tip - + &New - + &Open - + &Save - + Save as - - + + &Close - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column - + Remove a column - + Add row Add row - + Remove a row Remove row - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Delete - + Rotate - + Rotate the group - + Choose texts orientation - + Horizontal mirror - + Vertical mirror - + Find in the panel - + Edit the selected item - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotate selected elements and texts status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All - + Select none - + Invert selection - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Inverts selection of elements status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In - + Zoom Out - + Zoom content - + Fit in view - + Reset zoom - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield - + Add a picture - + Add a PDF - + Add line Draw line - + Add a rectangle - + Add an ellipse - + Add an arc - + Add a polygon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools + - Display + - Diagram + - Add + - Depth toolbar title - + Scripts toolbar title - + &File - + &Edit - + &Project - + Displ&ay - + Wi&ndows - + &Latest files - + &Add - + Selection - + Align - + Rows and columns - + Depth - - + + Scripts - + Display or hide the main toolbar - + Display or hide the Display toolbar - + Display or hide the Diagram toolbar - + Show or hide the elements panel - + Display or hide the undo list - + Display projects - - + + Project %1 registered in the directory: %2. - + Open a file - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11399,7 +13058,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11409,24 +13068,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11438,23 +13097,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11463,7 +13122,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11472,22 +13131,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11496,100 +13155,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11598,7 +13257,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11607,7 +13266,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11616,18 +13275,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11636,28 +13295,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11666,12 +13325,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11682,53 +13341,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11737,8 +13396,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12727,52 +14386,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name - + Untitled project displayed title for a project-less, file-less project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12780,56 +14439,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message - + Warning message box title - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12855,166 +14514,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one - + Duplicate a title block template input dialog title - + In order to duplicate this template, please enter a name for its copy input dialog text - + &New menu entry - + &Open menu entry - + Open from a file menu entry - + &Save menu entry - + Save as menu entry - + Save to a file menu entry - + &Quit menu entry - + Cu&t menu entry - + &Copy menu entry - + &Paste menu entry - + Manage logos menu entry - + Edit extra information menu entry - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry - + Add a &row menu entry - + Add a &column menu entry - + &Merge cells menu entry - + &Split cells menu entry - - - - - - - - - - @@ -13024,156 +14673,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + &File menu title - + &Edit menu title - + Displ&ay menu title - + Tools toolbar title - + Edit toolbar title - + Display toolbar title - + No modification label displayed in the undo list when empty - + Undo dock title - + Cell properties dock title - + [Changed] window title tag - + [Read only] window title tag - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title - + Open a file dialog title - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension - + Save template as dialog window title - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension - + Edit extra information window title - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13301,7 +14960,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13380,17 +15039,17 @@ the translated name of this folder could not be read, so its folder name is disp - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13401,7 +15060,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Title @@ -13543,8 +15202,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Text @@ -13591,12 +15250,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13678,7 +15337,7 @@ Do you want to replace it ? - + Warning: the element has been saved with a more recent version of QElectroTech. @@ -13846,22 +15505,22 @@ Do you want to replace it ? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -13964,45 +15623,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -14542,13 +16201,13 @@ Do you want to replace it ? - + delete %1 undo caption - %1 is a sentence listing the removed content - + Edit the cross reference edite the cross reference @@ -14573,8 +16232,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14590,25 +16249,35 @@ Do you want to replace it ? - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Paste - + + - - + @@ -14649,83 +16318,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14760,7 +16459,7 @@ Do you want to replace it ? - + Default layout @@ -14935,8 +16634,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15091,88 +16790,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15226,7 +16925,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15275,24 +16974,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15617,88 +17316,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15747,6 +17446,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15785,6 +17492,18 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16788,28 +18507,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16826,13 +18555,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16854,13 +18583,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16882,12 +18639,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19796,42 +21553,42 @@ The other fields are not used. - + Bridging the terminals - + Unbridge the terminals - + Properties - + Name: - + Comment : - + Description - + Plant: - + Location : @@ -19841,13 +21598,13 @@ The other fields are not used. - + Ungroup the terminals - + Generic @@ -19887,22 +21644,67 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : - + Phase - + Neutral - + Automatic position @@ -19912,12 +21714,12 @@ The other fields are not used. - + Group the terminals - + Function : @@ -19932,17 +21734,17 @@ The other fields are not used. - + LED : - + Independent terminals - + Modify terminal strip properties @@ -20011,12 +21813,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20081,12 +21883,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20149,52 +21991,57 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led - + + Shield + + + + Number wire @@ -21502,32 +23349,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21538,115 +23395,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Bottom - + Left - + Right - + Text alignment - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_sl.ts b/lang/qet_sl.ts index aaa281790..574461871 100644 --- a/lang/qet_sl.ts +++ b/lang/qet_sl.ts @@ -1169,6 +1169,25 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + + Delete + + + BorderPropertiesWidget @@ -1237,6 +1256,1077 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1280,13 +2370,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Edit the properties of several conductors undo caption @@ -1934,7 +3024,7 @@ Continue? Diagram - + Change the depth @@ -2071,6 +3161,25 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + + DiagramEventAddElement @@ -2082,7 +3191,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2090,7 +3199,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2213,224 +3322,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2461,22 +3600,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2484,84 +3623,119 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip - + Paste Here context menu action - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Choose the new color for this conductor - + Edit conductor properties undo caption - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. @@ -3161,7 +4335,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3656,8 +4830,8 @@ Continue? - - + + Type @@ -3740,8 +4914,8 @@ Continue? - - + + Function @@ -3773,7 +4947,7 @@ Continue? - + Simple @@ -3814,19 +4988,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3842,25 +5016,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3886,7 +5060,7 @@ Continue? - + Generic @@ -3910,164 +5084,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5043,7 +6242,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title @@ -5407,97 +6606,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5652,6 +6881,7 @@ that you create. Text and number inputs are + Browse... @@ -5825,8 +7055,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5837,472 +7070,576 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management - + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6311,50 +7648,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6364,6 +7719,349 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6491,136 +8189,10 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None - - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - - Left - - - - - - Center - - - - - - Right - - - - - - Font - - - - - Table - - - - - Alignment: - - - - - Content - - @@ -6736,6 +8308,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6951,80 +8546,6 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - - Angle: - - - - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - - Text - - - - @@ -7857,6 +9378,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7960,63 +9489,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8146,133 +9680,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8373,12 +9907,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8386,12 +9920,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8792,7 +10326,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title @@ -8806,101 +10340,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name - + Sheet - + Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8910,7 +10449,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8920,49 +10459,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8972,21 +10511,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8997,7 +10536,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9007,7 +10546,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9017,13 +10556,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9034,12 +10573,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9049,12 +10588,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9064,7 +10603,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9075,80 +10614,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9166,24 +10705,6 @@ Give them another numbering first. - - ProjectDBModelPropertiesWidget - - - Form - - - - - Request - - - - - Reload - - - ProjectMainConfigPage @@ -9677,127 +11198,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning - + Electric Normal example text - translate length, not meaning - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9806,152 +11329,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption - + Loading... Systray icon splash screen caption - + QElectroTech systray menu title - + &Quit - + &Hide - + &Show - + &Hide diagram editor - + &Show diagram editors - + &Hide element editor - + &Show element editor - + &Hide title block template editor systray submenu entry - + &Show title block template editors systray submenu entry - + &New diagram editor - + &New element editor - + Closes QElectroTech - + Reduces QElectroTech into the systray - + Restore QElectroTech - + QElectroTech systray icon tooltip - + Diagram editors - + Element editors - + Title block template editors systray menu entry - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9962,31 +11542,31 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory @@ -9995,1430 +11575,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + Projects dock title - + Collections - + No modification - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title - + &Export - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Exports the current sheet to another format status bar tip - + Print - + Prints one or more sheet of the current project status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + &Quit - + Closes QElectroTech status bar tip - + Undo - + Undoes the previous action status bar tip - + Redo - + Restores the undone action status bar tip - + Cu&t - + &Copy - + &Paste - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip - + Pastes elements from the clipboard into the sheet status bar tip - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset conductors - + Reset the conductors path ignoring the user changes status bar tip - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Project properties - + Add a sheet - - - + + + Delete this sheet - + Clean project - + Export to CSV - + Add a nomenclature - + Add a summary - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + using tabs - + Shows the various opened projects in tabs status bar tip - + using windows - + Shows the various opened projects in windows status bar tip - + &Tile - + Arranges windows in a tile pattern status bar tip - + &Cascade - + Arranges windows in a cascade pattern status bar tip - + Select - + Allows to select elements status bar tip - + Move - + Allows to view the sheet without modifying it status bar tip - + Next project - + Activates the next project status bar tip - + Previous project - + Activates the previous project status bar tip - + &New - + &Open - + &Save - + Save as - - + + &Close - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column - + Remove a column - + Add row Add row - + Remove a row Remove row - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Delete - + Rotate - + Rotate the group - + Choose texts orientation - + Horizontal mirror - + Vertical mirror - + Find in the panel - + Edit the selected item - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotate selected elements and texts status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All - + Select none - + Invert selection - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Inverts selection of elements status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In - + Zoom Out - + Zoom content - + Fit in view - + Reset zoom - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield - + Add a picture - + Add a PDF - + Add line Draw line - + Add a rectangle - + Add an ellipse - + Add an arc - + Add a polygon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools + - Display + - Diagram + - Add + - Depth toolbar title - + Scripts toolbar title - + &File - + &Edit - + &Project - + Displ&ay - + Wi&ndows - + &Latest files - + &Add - + Selection - + Align - + Rows and columns - + Depth - - + + Scripts - + Display or hide the main toolbar - + Display or hide the Display toolbar - + Display or hide the Diagram toolbar - + Show or hide the elements panel - + Display or hide the undo list - + Display projects - - + + Project %1 registered in the directory: %2. - + Open a file - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11429,7 +13103,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11440,24 +13114,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11470,23 +13144,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11496,7 +13170,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11506,22 +13180,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11531,100 +13205,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11634,7 +13308,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11644,7 +13318,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11654,18 +13328,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11674,28 +13348,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11705,12 +13379,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11722,53 +13396,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11778,8 +13452,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12772,52 +14446,52 @@ please wait while importing... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name - + Untitled project displayed title for a project-less, file-less project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12825,56 +14499,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message - + Warning message box title - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12900,166 +14574,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one - + Duplicate a title block template input dialog title - + In order to duplicate this template, please enter a name for its copy input dialog text - + &New menu entry - + &Open menu entry - + Open from a file menu entry - + &Save menu entry - + Save as menu entry - + Save to a file menu entry - + &Quit menu entry - + Cu&t menu entry - + &Copy menu entry - + &Paste menu entry - + Manage logos menu entry - + Edit extra information menu entry - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry - + Add a &row menu entry - + Add a &column menu entry - + &Merge cells menu entry - + &Split cells menu entry - - - - - - - - - - @@ -13069,156 +14733,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + &File menu title - + &Edit menu title - + Displ&ay menu title - + Tools toolbar title - + Edit toolbar title - + Display toolbar title - + No modification label displayed in the undo list when empty - + Undo dock title - + Cell properties dock title - + [Changed] window title tag - + [Read only] window title tag - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title - + Open a file dialog title - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension - + Save template as dialog window title - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension - + Edit extra information window title - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13285,7 +14959,7 @@ What do you wish to do ? - + @@ -13301,10 +14975,10 @@ What do you wish to do ? - + + - - + @@ -13358,17 +15032,17 @@ What do you wish to do ? - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13499,8 +15173,8 @@ What do you wish to do ? - + Text @@ -13615,12 +15289,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13703,21 +15377,31 @@ Do you want to replace it ? - + Warning: the element has been saved with a more recent version of QElectroTech. - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Compilation: @@ -13729,83 +15413,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -13970,22 +15684,22 @@ Do you want to replace it ? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -14007,7 +15721,7 @@ Do you want to replace it ? - + Title @@ -14134,45 +15848,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -14507,7 +16221,7 @@ Do you want to replace it ? - + Default layout @@ -14773,13 +16487,13 @@ Do you want to replace it ? - + delete %1 undo caption - %1 is a sentence listing the removed content - + Edit the cross reference edite the cross reference @@ -14805,8 +16519,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14994,8 +16708,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15160,88 +16874,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15297,7 +17011,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15346,24 +17060,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15688,88 +17402,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15818,6 +17532,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15856,6 +17578,19 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + + RenumberElementsDialog @@ -16863,28 +18598,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16901,13 +18646,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16929,13 +18674,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16957,12 +18730,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19909,7 +21682,7 @@ The other fields are not used. - + Generic @@ -19934,92 +21707,137 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties - + Name: - + Comment : - + Plant: - + Location : - + Description - + Independent terminals - + Modify terminal strip properties @@ -20088,12 +21906,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20158,12 +21976,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20226,55 +22084,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21581,32 +23444,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21617,115 +23490,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Bottom - + Left - + Right - + Text alignment - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_sr.ts b/lang/qet_sr.ts index a3991f746..37bfc6f44 100644 --- a/lang/qet_sr.ts +++ b/lang/qet_sr.ts @@ -1161,6 +1161,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + + + BorderPropertiesWidget @@ -1229,6 +1247,1067 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + + + + + Location (+) + + + + + Type + + + + + Cores + + + + + Plant + + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + + + + + Preview + + + + + cable_list_ + + + + + Save As... + + + + + CSV files (*.csv) + + + + + Error + + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + + + + + Location (+) + + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + + + + + Italic + + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type + + + ClickableImageLabel @@ -1272,13 +2351,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption - + Edit the properties of several conductors undo caption @@ -1923,7 +3002,7 @@ Continue? Diagram - + Change the depth @@ -2060,6 +3139,24 @@ Continue? + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2071,7 +3168,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2079,7 +3176,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2202,224 +3299,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error - + Unable to load the image. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2450,22 +3577,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2473,84 +3600,118 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip - + Paste Here context menu action - + Multiple paste - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Choose the new color for this conductor - + Edit conductor properties undo caption - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 - + Connect the selected terminals - + Untitled what to display for untitled diagrams - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error - + The file could not be written. @@ -3150,7 +4311,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3645,8 +4806,8 @@ Continue? - - + + Type @@ -3729,8 +4890,8 @@ Continue? - - + + Function @@ -3762,7 +4923,7 @@ Continue? - + Simple @@ -3803,19 +4964,19 @@ Continue? - + Switch normally open - + Switch normally closed - + switch @@ -3831,25 +4992,25 @@ Continue? - + Power switch - + Switch-on delayed - + Switch-off delayed - + Switch-on and off delayed @@ -3875,7 +5036,7 @@ Continue? - + Generic @@ -3899,164 +5060,189 @@ Continue? Ground + + + Anti-parallel diodes + + + + + Resistor + + - Phase + Varistor + Test socket + + + + + Diode (reversed) + + + + + Phase + + + + Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + PLC Configuration - + + - + - - - + + Address - - + + Annotation - + Cross-reference - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5030,7 +6216,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title @@ -5394,97 +6580,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : - + Type : - + Function : - + LED : - + Apply displacement - - + + Generic - + Fuse - + Sectionable - + Diod - + Ground - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase - + Neutral - + Without - + With - + Modify terminal strip properties - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5639,6 +6855,7 @@ that you create. Text and number inputs are + Browse... @@ -5812,8 +7029,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5824,472 +7044,576 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management - + Highlight freshly integrated elements in the panel - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: - + Languages - + Applied to the next launch of QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts - - - + + + Font: - - + + ° - + Length : - - + + Rotation : - + Independent texts - + Other texts - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard - + Grid: 1 - 30 - + DiagramEditor yGrid - + The Grid must be active to see the changes. - + DiagramEditor xGrid - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid - + DiagramEditor (key: up / down) yGrid - + Keyboard movement with the ALT key: 1 - 9 - + DiagramEditor (key: left / right) xGrid - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + + + + + Italic + + + + + Normal + + + + Rounding up for 0.5 and more - + Always top rounding - + Always rounded down - + Rounding up for 0.75 and more - + No rounding - + Disabled fr: Désactivée - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title - + System - + Arabic - + Brazilian - + Catalan - + Czech - + German - + Danish - + Greek - + English - + Spanish - + French - + Croatian - + Italian - + Japanese - + Korean - + Polish - + Portuguese - + Romanian - + Russian - + Slovenian - + Dutch - + Norwegian - + Belgium-Flemish - + Turkish - + Hungarian - + Mongolian - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection - + Company collection path - + User Collection Path - + Company title-blocks - + User Title blocks Path - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6298,50 +7622,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6351,6 +7693,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + + + + + Function + + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + + + + + Up + + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6478,136 +8161,10 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - - Table properties - - - - - Display - - - - - Table name - - - - - Geometry and lines - - - - - All - - - - - Next table - - - - None - - - Fit table to sheet - - - - - Y : - - - - - X : - - - - - Previous table - - - - - Apply geometry to all tables linked to this one - - - - - Previous table : - - - - - Lines to display : - - - - - TextLabel - - - - - Header - - - - - - Margin - - - - - Alignment : - - - - - - Left - - - - - - Center - - - - - - Right - - - - - - Font - - - - - Table - - - - - Alignment: - - - - - Content - - @@ -6723,6 +8280,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6938,80 +8518,6 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - - Form - - - - - X : - - - - - Advanced Editor - - - - - Size : - - - - - Angle: - - - - - - - px - - - - - ° - - - - - Y : - - - - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - - The contents, the size and the font of the text can not be modified because formatted in html. -Please use the advanced editor for this. - - - - - Click here to cancel html formatting - - - - - Text - - - - @@ -7842,6 +9348,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7945,63 +9459,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet - + Conductor - + Sheet references - + Cross-references - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors - + Elements - + Sheets - + + Cables + + + + Auto Numbering - + New sheet configuration page title - + New project configuration page title @@ -8131,133 +9650,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 - - - - - number format 01 - - - - - - - - - number format 001 - - - - - - - - - Cyclic (modulo) - - - - - - - - - Alphabetical - - - - - - - - - Text - - - - - - - number format 1 - Sheet + + + + number format 01 - - - number format 01 - Sheet + + + + number format 001 + + + + + + + + + Cyclic (modulo) - - - + + + + + Alphabetical + + + + + + + + + Text + + + + + + + + number format 1 - Sheet + + + + + + + + number format 01 - Sheet + + + + + + + number format 001 - Sheet - - - - + + + + Sheet no. - - - - + + + + Sheet - - - - + + + + Plant - - - - + + + + Location - - - + + + Element Line - - - + + + Element Column - - - + + + Element Prefix @@ -8358,12 +9877,12 @@ Do you still want to link this slave contact? PartText - + Move a text - + Edit the text field @@ -8371,12 +9890,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8773,7 +10292,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title @@ -8787,101 +10306,106 @@ Its copy was kept as: - + Management - - + + Conductors - + No. - + Name - + Sheet - + Element - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements - - + + Sheets - + + Cables + + + + Sheet Auto Numbering - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8890,7 +10414,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8899,49 +10423,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8950,21 +10474,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8974,7 +10498,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -8983,7 +10507,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -8992,13 +10516,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9008,12 +10532,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9022,12 +10546,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9036,7 +10560,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9046,80 +10570,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9137,24 +10661,6 @@ Give them another numbering first. - - ProjectDBModelPropertiesWidget - - - Form - - - - - Request - - - - - Reload - - - ProjectMainConfigPage @@ -9648,127 +11154,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption - + Loading... Sheets editor splash screen caption - + Loading... Opening files splash screen caption - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR - + QET title blocks title of the title block templates collection provided by QElectroTech - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection - + Q Single-letter example text - translate length, not meaning - + QET Small example text - translate length, not meaning - + Diagram Normal example text - translate length, not meaning - + Electric Normal example text - translate length, not meaning - + QElectroTech Long example text - translate length, not meaning - + Configure QElectroTech window title - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9777,152 +11285,209 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption - + Loading... Systray icon splash screen caption - + QElectroTech systray menu title - + &Quit - + &Hide - + &Show - + &Hide diagram editor - + &Show diagram editors - + &Hide element editor - + &Show element editor - + &Hide title block template editor systray submenu entry - + &Show title block template editors systray submenu entry - + &New diagram editor - + &New element editor - + Closes QElectroTech - + Reduces QElectroTech into the systray - + Restore QElectroTech - + QElectroTech systray icon tooltip - + Diagram editors - + Element editors - + Title block template editors systray menu entry - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: - + [options] [file]... - + QElectroTech, an application to design electric diagrams. Available options: @@ -9933,31 +11498,31 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory - + --common-tbt-dir=DIR Define the title block templates collection directory - + --config-dir=DIR Define configuration directory - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory @@ -9966,1430 +11531,1524 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title - + QElectroTech status bar message - + Projects dock title - + Collections - + No modification - + Click an action to get back in the changes you made to your diagram Status tip - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip - + Undo dock title - + &Export - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Exports the current sheet to another format status bar tip - + Print - + Prints one or more sheet of the current project status bar tip - + Export in pdf - + Export one or more sheets of the current project status bar tip - + &Quit - + Closes QElectroTech status bar tip - + Undo - + Undoes the previous action status bar tip - + Redo - + Restores the undone action status bar tip - + Cu&t - + &Copy - + &Paste - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip - + Copies selected elements status bar tip - + Pastes elements from the clipboard into the sheet status bar tip - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset conductors - + Reset the conductors path ignoring the user changes status bar tip - + Automatic creation conductor (s) Tool tip of auto conductor - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show - + Element texts - + Conductor texts - + Text fields - + Shapes - + Pictures - + Tables - + Cross-references - + See Display > Show - + Sheet properties - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip - + Project properties - + Add a sheet - - - + + + Delete this sheet - + Clean project - + Export to CSV - + Add a nomenclature - + Add a summary - + Terminal block manager (DEV) - + Launch the terminal block creation plugin - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database - + using tabs - + Shows the various opened projects in tabs status bar tip - + using windows - + Shows the various opened projects in windows status bar tip - + &Tile - + Arranges windows in a tile pattern status bar tip - + &Cascade - + Arranges windows in a cascade pattern status bar tip - + Select - + Allows to select elements status bar tip - + Move - + Allows to view the sheet without modifying it status bar tip - + Next project - + Activates the next project status bar tip - + Previous project - + Activates the previous project status bar tip - + &New - + &Open - + &Save - + Save as - - + + &Close - + Creates a new project status bar tip - + Opens an existing project status bar tip - + Closes the current project status bar tip - + Saves the current project and all its sheets status bar tip - + Saves the current project with a different file name status bar tip - + Add a column - + Remove a column - + Add row Add row - + Remove a row Remove row - + Add a column to the sheet status bar tip - + Remove a column from the sheet status bar tip - + Expands the sheet height status bar tip - + Shrinks the sheet height status bar tip - + Delete - + Rotate - + Rotate the group - + Choose texts orientation - + Horizontal mirror - + Vertical mirror - + Find in the panel - + Edit the selected item - + Group selected texts - - + + Group fr: Grouper - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip - + Rotate selected elements and texts status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All - + Select none - + Invert selection - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip - + Deselect all elements on the sheet status bar tip - + Inverts selection of elements status bar tip - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In - + Zoom Out - + Zoom content - + Fit in view - + Reset zoom - + Centre on the cursor - + Expand the sheet status bar tip - + Shrinks the sheet status bar tip - + Adjusts the zoom to display all the contents of sheet regardless of context - + Adjusts the zoom on exactly the part of the sheet status bar tip - + Restores default zoom level status bar tip - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield - + Add a picture - + Add a PDF - + Add line Draw line - + Add a rectangle - + Add an ellipse - + Add an arc - + Add a polygon - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet - + Add an image to the current sheet - + Adds a PDF page to the current sheet - + Add a line to the current sheet - + Adds a rectangle on the current sheet - + Add an ellipse to the current sheet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools + - Display + - Diagram + - Add + - Depth toolbar title - + Scripts toolbar title - + &File - + &Edit - + &Project - + Displ&ay - + Wi&ndows - + &Latest files - + &Add - + Selection - + Align - + Rows and columns - + Depth - - + + Scripts - + Display or hide the main toolbar - + Display or hide the Display toolbar - + Display or hide the Diagram toolbar - + Show or hide the elements panel - + Display or hide the undo list - + Display projects - - + + Project %1 registered in the directory: %2. - + Open a file - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) - - + + Unable to open file message box title - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. - + Opening the file read-only message box title - + The project you try to open does not seem writable. It will be opened read-only. - - + + Unable to open project message box title - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11399,7 +13058,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11409,24 +13068,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11438,23 +13097,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group - + %n items put back on the grid @@ -11463,7 +13122,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11472,22 +13131,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11496,100 +13155,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element - + Edit the text field edit text field - + Edit the image edit image - + Edit conductor edit conductor - + Edit the selected object edit selected item - + An error occurred while opening file %1. message box content - + Activates the project « %1 » - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11598,7 +13257,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11607,7 +13266,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11616,18 +13275,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11636,28 +13295,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11666,12 +13325,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11682,53 +13341,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11737,8 +13396,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12727,52 +14386,52 @@ please wait while importing... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path - + Project %1 displayed title for a title-less project - %1 is the file name - + Untitled project displayed title for a project-less, file-less project - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title - + %1 [modified] displayed title for a modified project - %1 is a displayable title - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12780,56 +14439,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message - + Warning message box title - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> @@ -12855,166 +14514,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title - + Do you wish to save the template %1? dialog content - %1 is a title block template name - + new_template template name suggestion when duplicating the default one - + Duplicate a title block template input dialog title - + In order to duplicate this template, please enter a name for its copy input dialog text - + &New menu entry - + &Open menu entry - + Open from a file menu entry - + &Save menu entry - + Save as menu entry - + Save to a file menu entry - + &Quit menu entry - + Cu&t menu entry - + &Copy menu entry - + &Paste menu entry - + Manage logos menu entry - + Edit extra information menu entry - + Zoom In menu entry - + Zoom out menu entry - + Fit in view menu entry - + Reset zoom menu entry - + Add a &row menu entry - + Add a &column menu entry - + &Merge cells menu entry - + &Split cells menu entry - - - - - - - - - - @@ -13024,156 +14673,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + &File menu title - + &Edit menu title - + Displ&ay menu title - + Tools toolbar title - + Edit toolbar title - + Display toolbar title - + No modification label displayed in the undo list when empty - + Undo dock title - + Cell properties dock title - + [Changed] window title tag - + [Read only] window title tag - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag - + QElectroTech - Title block template editor titleblock template editor: base window title - + %1 - %2 window title: %1 is the base window title, %2 is a template name - - + + Error message box title - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title - + Open a file dialog title - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension - + Save template as dialog window title - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension - + Edit extra information window title - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. @@ -13240,7 +14899,7 @@ What do you wish to do ? - + @@ -13256,10 +14915,10 @@ What do you wish to do ? - + + - - + @@ -13313,17 +14972,17 @@ What do you wish to do ? - + Select an image ... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. @@ -13454,8 +15113,8 @@ What do you wish to do ? - + Text @@ -13570,12 +15229,12 @@ the translated name of this folder could not be read, so its folder name is disp - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13657,21 +15316,31 @@ Do you want to replace it ? - + Warning: the element has been saved with a more recent version of QElectroTech. - + Add a nomenclature - + Add a summary + + + Add a cable list + + + + + Cable list + + Compilation: @@ -13683,83 +15352,113 @@ Do you want to replace it ? - - + + Generic generic terminal element type - + Fuse fuse terminal element type - + Sectionable sectional terminal element type - + Diode diode terminal element type - + Ground ground terminal element type - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function - + Phase phase terminal element function - + Neutral neutral terminal element function - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -13916,22 +15615,22 @@ Do you want to replace it ? - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin @@ -13953,7 +15652,7 @@ Do you want to replace it ? - + Title @@ -14080,45 +15779,45 @@ Do you want to replace it ? - + - + Type - + - + Address - - - - + + + + Annotation - - - - + + + + Cross-reference - - - - + + + + Function @@ -14453,7 +16152,7 @@ Do you want to replace it ? - + Default layout @@ -14717,13 +16416,13 @@ Do you want to replace it ? - + delete %1 undo caption - %1 is a sentence listing the removed content - + Edit the cross reference edite the cross reference @@ -14748,8 +16447,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14935,8 +16634,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15091,88 +16790,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text - + Rotate a text - + Edit line of a form - + Edit filling a form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15226,7 +16925,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15275,24 +16974,24 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. - + Table limitation - + Modify the geometry of a table @@ -15617,88 +17316,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 - + a line - + rectangle - + an ellipse - + an arc - + polyline - + a curve - + an shape @@ -15747,6 +17446,14 @@ nothing has been changed. + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15785,6 +17492,18 @@ nothing has been changed. + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16788,28 +18507,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16826,13 +18555,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16854,13 +18583,41 @@ The other fields are not used. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16882,12 +18639,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19832,7 +21589,7 @@ The other fields are not used. - + Generic @@ -19857,92 +21614,137 @@ The other fields are not used. - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : - + Move to : - + Phase - + Neutral - + Automatic position - + Group the terminals - + Ungroup the terminals - + Bridging the terminals - + Unbridge the terminals - + Properties - + Name: - + Comment : - + Plant: - + Location : - + Description - + Independent terminals - + Modify terminal strip properties @@ -20011,12 +21813,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20081,12 +21883,52 @@ The other fields are not used. - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20149,55 +21991,60 @@ The other fields are not used. TerminalStripModel - + Position - + Stage - + Label - + Number wire - + Cross-reference - + Cable - + Color / wire number of the cable - + Type - + Function - + led + + + Shield + + TerminalStripProjectConfigPage @@ -21502,32 +23349,42 @@ The following variables can be used: - + Label cross reference - + Master - + %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave - + (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21538,115 +23395,141 @@ The following variables can be used: - + Option display cross - + Show the power contacts in the cross - + Prefix of power contacts : - + Prefix delayed contacts : - + Prefix changeover contacts : - + Coil - + Organ of protection - + Switch / button - + Programmable Logic Controller (PLC) - + + Cable + + + + Footer - + Under the label of the element - + Top - + Bottom - + Left - + Right - + Text alignment - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database - + untitled diff --git a/lang/qet_sv.ts b/lang/qet_sv.ts index 72853f314..bbeb1cfd0 100644 --- a/lang/qet_sv.ts +++ b/lang/qet_sv.ts @@ -1158,6 +1158,23 @@ Notera: Dessa alternativ TILLÅTER ELLER BLOCKERAR INTE auto-numreringen, endast + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + Delete + Ta bort + + BorderPropertiesWidget @@ -1203,7 +1220,7 @@ Notera: Dessa alternativ TILLÅTER ELLER BLOCKERAR INTE auto-numreringen, endast Format: - + Format: @@ -1213,16 +1230,1067 @@ Notera: Dessa alternativ TILLÅTER ELLER BLOCKERAR INTE auto-numreringen, endast Custom - + Anpassad Landscape - + Landskap Portrait + Porträtt + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kabel + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Anläggning (=) + + + + Location (+) + Placering (+) + + + + Type + + + + + Cores + + + + + Plant + Anläggning + + + + Location + + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + Inkludera rubriker + + + + Preview + Översikt + + + + cable_list_ + + + + + Save As... + Spara som... + + + + CSV files (*.csv) + + + + + Error + Fel + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Ångra + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Ångra + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Ångra + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + CablePropertiesDialog + + + Cable + Kabel + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kabel + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Anläggning (=) + + + + Location (+) + Placering (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Typsnitt: + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + Fet text + + + + Italic + Kursiv text + + + + Bold italic + + + + + Style: + Stil: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Justering: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Ångra + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1269,13 +2337,13 @@ Notera: Dessa alternativ TILLÅTER ELLER BLOCKERAR INTE auto-numreringen, endast Conductor - + Edit conductor properties undo caption Ändra egenskaper för en förbindning - + Edit the properties of several conductors undo caption Ändra egenskaper för flera förbindningar @@ -1793,13 +2861,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Annan Unknown - + Okända @@ -1917,7 +2985,7 @@ Continue? Diagram - + Change the depth Ändra djup @@ -2054,6 +3122,23 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + DiagramEventAddElement @@ -2065,7 +3150,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2073,7 +3158,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2196,224 +3281,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image en bild - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Välj en bild... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Fel - + Unable to load the image. Det går inte att ladda bilden. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2444,22 +3559,22 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color @@ -2467,84 +3582,117 @@ Hold Shift and drag to move this text on its own DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Det här är det område där du utformar ditt schema genom att lägga till symboler och dra förbindningar mellan deras anslutningspunkter. Det är också möjligt att lägga till oberoende texter. - + Paste Here context menu action Klistra in här - + Multiple paste Klistra in flera - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Bladhänvisning - + Choose the new color for this conductor Välj ny färg för denna förbindning - + Edit conductor properties undo caption Ändra egenskaper för en förbindning - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Anslut de markerade plintarna - + Untitled what to display for untitled diagrams Namnlöst - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Fel - + The file could not be written. @@ -2962,7 +4110,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3144,7 +4292,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3639,8 +4787,8 @@ Continue? - - + + Type Typ @@ -3723,8 +4871,8 @@ Continue? - - + + Function Funktion @@ -3756,7 +4904,7 @@ Continue? - + Simple Enkel @@ -3797,19 +4945,19 @@ Continue? - + Switch normally open Slutande (NO) - + Switch normally closed Brytande (NC) - + switch Växlande @@ -3825,25 +4973,25 @@ Continue? - + Power switch Kraftkontakt - + Switch-on delayed Tillslagsfördröjd - + Switch-off delayed Frånslagsfördröjd - + Switch-on and off delayed Till- och frånslagsfördröjd @@ -3869,7 +5017,7 @@ Continue? - + Generic Generisk @@ -3893,164 +5041,189 @@ Continue? Ground Jord + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fas - + Neutral Neutral - - - - - + + + + + T%1 - + Other fr: Autre - + Annan - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Kommentar - + Cross-reference - + Korsreferens - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Ingen - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5034,7 +6207,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Exportera @@ -5418,97 +6591,127 @@ som du skapar. Text- och nummerinmatningar är + Filter by label (e.g. Z1) + + + + Move to : Flytta till: - + Type : Typ: - + Function : Funktion: - + LED : LED: - + Apply displacement Applicera förflyttning - - + + Generic Generisk - + Fuse Säkring - + Sectionable Frånskiljbar - + Diod Diod - + Ground Jord - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Fas - + Neutral Neutral - + Without Utan - + With - + Modify terminal strip properties Ändring av egenskaper för plintar - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5653,6 +6856,7 @@ som du skapar. Text- och nummerinmatningar är + Browse... Bläddra... @@ -5836,8 +7040,11 @@ som du skapar. Text- och nummerinmatningar är + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5848,473 +7055,577 @@ som du skapar. Text- och nummerinmatningar är + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management Symbolhantering - + Highlight freshly integrated elements in the panel Markera nyligen infogade symboler i panelen - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Varje symbol innehåller information om dess författare, dess licens eller annan information som du anser vara användbar i ett fritt fält. Här kan du ange standardvärdet för detta fält för de symboler du skapar: - + Languages Språk - + Applied to the next launch of QElectroTech Tillämpas vid nästa start av QElectroTech - + texts Texter - + Here you can define the default appearance of the different texts of QElectroTech Här kan du ange standardutseendet för olika texter i QElectroTech - + Elements texts Symboltexter - - - + + + Font: Typsnitt: - - + + ° ° - + Length : Längd: - - + + Rotation : Rotation: - + Independent texts Fristående texter - + Other texts Övriga texter - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard Rutnät + tangentbord - + Grid: 1 - 30 Rutnät: 1-30 - + DiagramEditor yGrid Schemaredigerare rutnät-Y: - + The Grid must be active to see the changes. Rutnät måste vara aktiverat för att ändringarna ska synas. - + DiagramEditor xGrid Schemaredigerare rutnät-X: - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Tangentbordsförflyttning: 1-30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Schemaredigerare (tangent: vänster/höger) rutnät-X: - + DiagramEditor (key: up / down) yGrid Schemaredigerare (tangent: upp/ned) rutnät-Y: - + Keyboard movement with the ALT key: 1 - 9 Tangentbordsförflyttning med ALT: 1-9 - + DiagramEditor (key: left / right) xGrid Schemaredigerare (tangent: vänster/höger) rutnät-X: - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Schemaredigerare (tangent: upp/ned) rutnät-Y: - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor Redigerare - + Max. parts in Element Editor List Maximalt antal delar i symbolredigerare - + + Bold italic + + + + + Bold + Fet text + + + + Italic + Kursiv text + + + + Normal + Normal + + + Rounding up for 0.5 and more Avrunda uppåt för 0,5 och över - + Always top rounding Avrunda alltid uppåt - + Always rounded down Avrunda alltid nedåt - + Rounding up for 0.75 and more Avrunda uppåt för 0,75 och över - + No rounding Ingen avrundning - + Disabled fr: Désactivée - + Av - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Allmänt - + System System - + Arabic Arabiska - + Brazilian Brasilianska - + Catalan Katalanska - + Czech Tjeckiska - + German Tyska - + Danish Danska - + Greek Grekiska - + English Engelska - + Spanish Spanska - + French Franska - + Croatian Kroatiska - + Italian Italienska - + Japanese Japanska - + Korean - + Polish Polska - + Portuguese Portugisiska - + Romanian Rumänska - + Russian Ryska - + Slovenian Slovenska - + Dutch Nederländska - + Norwegian Norska - + Belgium-Flemish Belgiska - + Turkish Turkiska - + Hungarian Ungerska - + Mongolian Mongoliska - + Ukrainian Ukrainska - + Chinese Kinesiska - + Swedish Svenska - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection Sökväg till gemensamt symbolbibliotek - + Company collection path Sökväg till organisationens symbolbibliotek - + User Collection Path Sökväg till personligt symbolbibliotek - + Company title-blocks Sökväg till organisationens titelblockbibliotek - + User Title blocks Path Sökväg till personligt titelblockbibliotek - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6323,50 +7634,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash För höga värden kan leda till att programmet krascher. - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6376,6 +7705,345 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + Vänster + + + + Right + Höger + + + + Top + Topp + + + + Bottom + Botten + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + GenericDeviceInformationPage + + + Information + Information + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Namn: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Namn + + + + Function + Funktion + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + Ta bort + + + + Up + Ovan + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Generisk + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6503,135 +8171,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Formulär + Formulär - Display - Visning + Visning - Table name - Namn på tabell + Namn på tabell - Geometry and lines - Geometri och linjer + Geometri och linjer - All - Allt + Allt - Next table - Nästa tabell + Nästa tabell - None Ingen - Fit table to sheet - Anpassa tabell till blad + Anpassa tabell till blad - Y : - Y: + Y: - X : - X: + X: - Previous table - Föregående tabell + Föregående tabell - Apply geometry to all tables linked to this one - Tillämpa geometri på alla relaterade tabeller + Tillämpa geometri på alla relaterade tabeller - Previous table : - Föregående tabell: + Föregående tabell: - Lines to display : - Rader att visa: + Rader att visa: - TextLabel - TextEtikett + TextEtikett - Header - Rubrik + Rubrik - - Margin - Marginaler + Marginaler - Alignment : - Justering: + Justering: - - Left - Vänster + Vänster - - Center - Centrerad + Centrerad - - Right - Höger + Höger - - Font - Typsnitt + Typsnitt - Table - Tabell + Tabell - Alignment: - Justering: + Justering: - Content - Innehåll + Innehåll @@ -6749,6 +8387,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6808,7 +8469,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Etikett @@ -6964,81 +8625,52 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Formulär + Formulär - X : - X: + X: - Advanced Editor - Avancerad redigering + Avancerad redigering - Size : - Storlek: + Storlek: - Angle: - Vinkel: + Vinkel: - - - px - px + px - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Textens innehåll, storlek och typsnitt kan inte ändras eftersom den är formaterad i html. + Textens innehåll, storlek och typsnitt kan inte ändras eftersom den är formaterad i html. Använd den avancerade redigeraren för detta. - Click here to cancel html formatting - Klicka här för att ta bort html-formateringen + Klicka här för att ta bort html-formateringen - Text - Text + Text - @@ -7481,7 +9113,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Skriv ut @@ -7499,7 +9131,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Avbryt @@ -7698,7 +9330,7 @@ Do you still want to link this slave contact? Cross-reference - + Korsreferens @@ -7868,6 +9500,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7971,63 +9611,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Blad - + Conductor Förbindningar - + Sheet references Bladhänvisningar - + Cross-references Korsreferenser - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Förbindningar - + Elements Symboler - + Sheets Blad - + + Cables + + + + Auto Numbering Auto-numrering - + New sheet configuration page title Nytt blad - + New project configuration page title Nytt projekt @@ -8157,133 +9802,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Siffra 1 - - - - + + + + number format 01 Siffra 01 - - - - - + + + + + number format 001 Siffra 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Text - - - - + + + + number format 1 - Sheet Siffra 1 - Blad - - - - + + + + number format 01 - Sheet Siffra 01 - Blad - - - - + + + + number format 001 - Sheet Siffra 001 - Blad - - - - + + + + Sheet no. N° blad - - - - + + + + Sheet Blad - - - - + + + + Plant Anläggning - - - - + + + + Location Placering - - - + + + Element Line Symbolrad - - - + + + Element Column Symbolkolumn - - - + + + Element Prefix Symbolprefix @@ -8384,12 +10029,12 @@ Do you still want to link this slave contact? PartText - + Move a text Flytta en text - + Edit the text field Ändra en textetikett @@ -8397,12 +10042,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8805,7 +10450,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Utskrift @@ -8819,101 +10464,106 @@ Its copy was kept as: Auto-numrering - + Management Hantering - - + + Conductors Förbindningar - + No. - + Name Namn - + Sheet - + Element Symboler - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Symboler - - + + Sheets Blad - + + Cables + + + + Sheet Auto Numbering Auto-numrering av blad - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8921,7 +10571,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8929,49 +10579,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -8979,21 +10629,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9002,7 +10652,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9010,7 +10660,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9018,13 +10668,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Ta bort numrering - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9033,12 +10683,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9046,12 +10696,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9059,7 +10709,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9068,80 +10718,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech-projekt (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9162,19 +10812,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Form + Form - Request - Begäran + Begäran - Reload - Ladda om + Ladda om @@ -9671,127 +11318,129 @@ Vill du spara ändringarna? QETApp - + Loading... Initializing the elements collection cache splash screen caption Laddar... Initialisering av cache för symbolbibliotek - + Loading... Sheets editor splash screen caption Laddar... Schemaredigerare - + Loading... Opening files splash screen caption Laddar... Öppnar file - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET-titelblock - + Company title-blocks title of the company's title block templates collection Organisationens titelblock - + User title blocks title of the user's title block templates collection Personliga titelblock - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Schema - + Electric Normal example text - translate length, not meaning Elektrisk - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Konfigurera QElectroTech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Fel - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9800,145 +11449,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Laddar... - + Loading... Systray icon splash screen caption Laddar... Ikoner för systray - + QElectroTech systray menu title QElectroTech - + &Quit &Avsluta - + &Hide &Dölj - + &Show &Återställ - + &Hide diagram editor &Dölj alla schemaredigerare - + &Show diagram editors &Återställ alla schemaredigerare - + &Hide element editor &Dölj alla symbolredigerare - + &Show element editor &Återställ alla symbolredigerare - + &Hide title block template editor systray submenu entry &Dölj alla titelblockredigerare - + &Show title block template editors systray submenu entry &Återställ alla titelblockredigerare - + &New diagram editor &Ny schemaredigerare - + &New element editor &Ny symbolredigerare - + Closes QElectroTech Stäng programmet QElectroTech - + Reduces QElectroTech into the systray Stäng QElectroTech till systray - + Restore QElectroTech Återställ QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Schemaredigerare - + Element editors Symbolredigerare - + Title block template editors systray menu entry Titelblockredigerare - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Användning: - + [options] [file]... @@ -9947,7 +11653,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9964,34 +11670,34 @@ Tillgängliga alternativ : - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Ange mappen för symbolbibliotek - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Ange mappen för titelblockbibliotek - + --config-dir=DIR Define configuration directory --config-dir=DIR Ange konfigurationsmappen - + --data-dir=DIR Define data directory --data-dir=DIR Definiera datamapp - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Ange mappen som innehåller språkfilerna @@ -10001,1430 +11707,1524 @@ Tillgängliga alternativ : QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Projekt - + Collections Symbolbibliotek - + No modification Inga ändringar - + Click an action to get back in the changes you made to your diagram Status tip Klicka på en åtgärd för att gå bakåt i redigeringen av schemat - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip Denna panel listar de olika åtgärder som utförts på det aktuella bladet. Om du klickar på en åtgärd återgår du till schemats status precis efter att åtgärden utfördes. - + Undo dock title Ändringar - + &Export E&xportera - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Schemaredigerare - + Exports the current sheet to another format status bar tip Exporterar det aktuella bladet till ett annat format - + Print Skriv ut - + Prints one or more sheet of the current project status bar tip Skriver ut ett eller flera blad från det aktuella projektet - + Export in pdf Exportera som pdf - + Export one or more sheets of the current project status bar tip Exporterar ett eller flera blad från det aktuella projektet - + &Quit &Avsluta - + Closes QElectroTech status bar tip Stäng programmet QElectroTech - + Undo Ångra - + Undoes the previous action status bar tip Ångrar föregående åtgärd - + Redo Gör om - + Restores the undone action status bar tip Återställer ångrad åtgärd - + Cu&t &Klipp ut - + &Copy K&opiera - + &Paste K&listra in - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip Överför markerade objekt till urklipp - + Copies selected elements status bar tip Kopierar markerade objekt till urklipp - + Pastes elements from the clipboard into the sheet status bar tip Placera urklippsobjekt på blad - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset conductors Återställ förbindningar - + Reset the conductors path ignoring the user changes status bar tip Återställ förbindningar utan att ta hänsyn till ändringar - + Automatic creation conductor (s) Tool tip of auto conductor Skapa förbindningar automatiskt - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Använd automatiskt skapande av förbindningar där det är möjligt - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid Visa rutnät - + Display or hide the grid of sheet Visar eller döljer rutnät på blad - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Av - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Visa - + Element texts - + Conductor texts - + Text fields - + Textetiketter - + Shapes - + Pictures - + Tables - + Cross-references Korsreferenser - + See Display > Show - + Sheet properties Bladegenskaper - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Redigera bladegenskaper (mått, titelblock-information, förbindningsegenskaper etc.) - + Project properties Projektegenskaper - + Add a sheet Lägg till ett blad - - - + + + Delete this sheet Ta bort blad - + Clean project Städa upp projektet - + Export to CSV Exportera i CSV-format - + Add a nomenclature Lägg till en förteckning - + Add a summary Lägg till en innehållsförteckning - + Terminal block manager (DEV) Plintradshanterare (DEV) - + Launch the terminal block creation plugin Starta plugin för skapande av plintrader - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Exportera lista med ledarnamn - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Exportera den interna projektdatabasen - + using tabs Användning av flikar - + Shows the various opened projects in tabs status bar tip Visar de olika projekt som är öppna som flikar - + using windows Användning av fönster - + Shows the various opened projects in windows status bar tip Visar de olika projekt som är öppna i underfönster - + &Tile &Sida vid sida - + Arranges windows in a tile pattern status bar tip Arrangera fönster sida vid sida - + &Cascade &Överlappande - + Arranges windows in a cascade pattern status bar tip Arrangera fönster överlappande - + Select Markeringsläge - + Allows to select elements status bar tip Används för att markera objekt - + Move Visningsläge - + Allows to view the sheet without modifying it status bar tip Gör det möjligt att visa bladet utan att ändra i det - + Next project Nästa projekt - + Activates the next project status bar tip Aktivera följande projekt - + Previous project Föregående projekt - + Activates the previous project status bar tip Aktiverar föregående projekt - + &New &Nytt - + &Open &Öppna - + &Save &Spara - + Save as Spara som - - + + &Close S&täng - + Creates a new project status bar tip Skapar ett nytt projekt - + Opens an existing project status bar tip Öppnar ett befintligt projekt - + Closes the current project status bar tip Stänger det aktuella projektet - + Saves the current project and all its sheets status bar tip Sparar det aktuella projektet och alla dess blad - + Saves the current project with a different file name status bar tip Sparar det aktuella projektet med ett annat filnamn - + Add a column Lägg till kolumn - + Remove a column Ta bort kolumn - + Add row Add row Lägg till rad - + Remove a row Remove row Ta bort rad - + Add a column to the sheet status bar tip Lägger till en kolumn på bladet - + Remove a column from the sheet status bar tip Tar bort en kolumn på bladet - + Expands the sheet height status bar tip Ökar bladets höjd - + Shrinks the sheet height status bar tip Minskar bladets höjd - + Delete Ta bort - + Rotate Rotera - + Rotate the group - + Choose texts orientation Textrotering - + Horizontal mirror - + Vertical mirror - + Find in the panel Hitta i panelen - + Edit the selected item Redigera det markerade objektet - + Group selected texts Gruppera markerade textetiketter - - + + Group fr: Grouper - + Grupp - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Tar bort markerade objekt från bladet - + Rotate selected elements and texts status bar tip Roterar markerade objekt och texter - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip Roterar markerade texter till en exakt vinkel - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Visar den valda symbolen i panelen - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Markera allt - + Select none Avmarkera allt - + Invert selection Invertera markering - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Markerar alla objekt på bladet - + Deselect all elements on the sheet status bar tip Avmarkerar alla objekt på bladet - + Inverts selection of elements status bar tip Avmarkerar markerade objekt och markerar omarkerade objekt - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In Zooma in - + Zoom Out Zooma ut - + Zoom content Zooma innehåll - + Fit in view Zooma anpassad - + Reset zoom Återställ zoom - + Centre on the cursor - + Expand the sheet status bar tip Förstora bladet - + Shrinks the sheet status bar tip Förminska bladet - + Adjusts the zoom to display all the contents of sheet regardless of context Anpassar zoomen för att visa hela innehållet i bladet, utan ram - + Adjusts the zoom on exactly the part of the sheet status bar tip Anpassar zoomen exakt till bladets ram - + Restores default zoom level status bar tip Återställer standardzoom - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield Lägg till ett textfält - + Add a picture Lägg till en bild - + Add a PDF - + Add line Draw line Lägg till en linje - + Add a rectangle Lägg till en rektangel - + Add an ellipse Lägg till en ellips - + Add an arc - + Lägg till en båge - + Add a polygon Lägg till en polygon - + Add a curve - + Add a fillet - + Add a terminal plan Lägg till en plintrad - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Lägger till ett textfält till det aktuella bladet - + Add an image to the current sheet Lägger till en bild till det aktuella bladet - + Adds a PDF page to the current sheet - + Add a line to the current sheet Lägger till en linje till det aktuella bladet - + Adds a rectangle on the current sheet Lägger till en bild till det aktuella bladet - + Add an ellipse to the current sheet Lägger till en ellips till det aktuella bladet - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Lägger till en polygontill det aktuella bladet - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Lägger till en plintrad till det aktuella bladet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace Sök/ersätt - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Ångra + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools Verktyg + - Display Visning + - Diagram Schema + - Add Lägg till + - Depth toolbar title Djup - + Scripts toolbar title - + &File &Fil - + &Edit &Redigera - + &Project &Projekt - + Displ&ay &Visning - + Wi&ndows Fön&ster - + &Latest files &Nyligen öppnat - + &Add - + Selection - + Align - + Rows and columns - + Depth Djup - - + + Scripts - + Display or hide the main toolbar Huruvida huvudverktygsfältet ska visas eller inte - + Display or hide the Display toolbar Huruvida verktygsfältet Visning ska visas eller inte - + Display or hide the Diagram toolbar Huruvida verktygsfältet Schema ska visas eller inte - + Show or hide the elements panel Huruvida symbolpanelen ska visas eller inte - + Display or hide the undo list Huruvida listan över ändringar ska visas eller inte - + Display projects Visning av projekt - - + + Project %1 registered in the directory: %2. Projekt %1 sparat i katalog: %2. - + Open a file Öppna en fil - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech-projekt (*.qet);;XML-filer (*.xml);;Alla filer (*) - - + + Unable to open file message box title Det går inte att öppna filen - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Det verkar som om filen %1 du försöker öppna inte finns eller inte längre finns. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Det verkar som om filen du försöker öppna inte är läsbar. Det är därför omöjligt att öppna den. Kontrollera filens behörigheter. - + Opening the file read-only message box title Öppna projektet i skrivskyddat läge - + The project you try to open does not seem writable. It will be opened read-only. Det verkar som om projektet du försöker öppna inte är skrivbart. Det kommer därför att öppnas som skrivskyddat. - - + + Unable to open project message box title Det går inte att öppna projektet - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Det verkar som om filen "%1" inte är en QElectroTech-projektfil. Den kan inte öppnas. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11433,7 +13233,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11442,24 +13242,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11470,23 +13270,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group Grupp - + %n items put back on the grid @@ -11494,7 +13294,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11502,22 +13302,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11525,100 +13325,100 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Redigera symbol - + Edit the text field edit text field Redigera textfält - + Edit the image edit image Redigera bild - + Edit conductor edit conductor Redigera förbindning - + Edit the selected object edit selected item Redigera markerat objekt - + An error occurred while opening file %1. message box content Ett fel uppstod när filen "%1" öppnades. - + Activates the project « %1 » Aktiverar projektet "%1" - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Fel - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11626,7 +13426,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11634,7 +13434,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11642,18 +13442,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11662,28 +13462,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11691,12 +13491,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11706,53 +13506,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11760,8 +13560,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12343,7 +14143,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Element editors - + Symbolredigerare @@ -12748,52 +14548,52 @@ ha tålamod under importeringen... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Projekt « %1 : %2 » - + Project %1 displayed title for a title-less project - %1 is the file name Projekt %1 - + Untitled project displayed title for a project-less, file-less project Namnlöst projekt - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [skrivskyddad] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [modifierad] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12801,19 +14601,19 @@ Do you wish to continue? - + An error occurred during the template integration. error message Ett fel uppstod under modellintegreringen. - + Warning message box title Varning - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12822,7 +14622,7 @@ You are currently using QElectroTech in version %2 Du använder för närvarande QElectroTech version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12831,32 +14631,32 @@ What do you wish to do ? Vad vill du göra? - + Warning message box title Varning - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Projektet du försöker öppna är delvis kompatibelt med din version %1 av QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? För att göra det helt kompatibelt, öppna samma projekt med QElectroTech version 0.8 eller 0.80, spara projektet och öppna det igen med denna version. Vad vill du göra? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Öppnar det aktuella projektet...</b><br/>Skapar blad</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Öppnar det aktuella projektet...</b><br/>Skapar korsreferenser</p> @@ -12882,166 +14682,156 @@ Vad vill du göra? QETTitleBlockTemplateEditor - + Save current template? dialog title Spara aktuell mall? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Vill du spara mallen %1? - + new_template template name suggestion when duplicating the default one ny_mall - + Duplicate a title block template input dialog title Duplicera en titelblockmall - + In order to duplicate this template, please enter a name for its copy input dialog text För att duplicera denna mall, ange önskat namn för kopian - + &New menu entry &Ny - + &Open menu entry &Öppna - + Open from a file menu entry Öppna från en fil - + &Save menu entry &Spara - + Save as menu entry Spara som - + Save to a file menu entry Spara till fil - + &Quit menu entry &Avsluta - + Cu&t menu entry &Klipp ut - + &Copy menu entry K&opiera - + &Paste menu entry K&listra in - + Manage logos menu entry Hantering av logotyper - + Edit extra information menu entry Redigera komplementerande information - + Zoom In menu entry Zooma in - + Zoom out menu entry Zooma ut - + Fit in view menu entry Zooma anpassad - + Reset zoom menu entry Återställ zoom - + Add a &row menu entry Lägg till en &rad - + Add a &column menu entry Lägg till en &kolumn - + &Merge cells menu entry &Sammanfoga celler - + &Split cells menu entry S&eparera celler - - - - - - - - - - @@ -13051,156 +14841,166 @@ Vad vill du göra? + + + + + + + + + + Title block template editors - + Titelblockredigerare - + &File menu title &Fil - + &Edit menu title &Redigera - + Displ&ay menu title &Visning - + Tools toolbar title Verktyg - + Edit toolbar title Redigera - + Display toolbar title Visning - + No modification label displayed in the undo list when empty Inga ändringar - + Undo dock title Ändringar - + Cell properties dock title Cellegenskaper - + [Changed] window title tag [Ändrad] - + [Read only] window title tag [Skrivskyddad] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Redigerare för titelblockmall - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Fel - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Öppna en titelblockmall - + Open a file dialog title Öppna en fil - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech titelblockmallar (*%1);;XML-filer (*.xml);; Alla filer (*) - + Save template as dialog window title Spara mall som - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Spara som - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech titelblockmallar (*%1) - + Edit extra information window title Redigera komplementerande information - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Du kan använda detta fria fält för att nämna upphovsmännen till titelblockmallen, dess licens eller annan information som du anser vara användbar. @@ -13231,10 +15031,10 @@ Vad vill du göra? laddar %p% (%v av %m) - + + - - + @@ -13311,7 +15111,7 @@ the translated name of this folder could not be read, so its folder name is disp Sök/ersätt avancerat - + Default layout Förinställd layout @@ -13386,7 +15186,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13447,17 +15247,17 @@ the translated name of this folder could not be read, so its folder name is disp Ändra storlek på blad - + Select an image ... Välj en bild... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Bildfiler (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. Det går inte att ladda bilden. @@ -13604,8 +15404,8 @@ the translated name of this folder could not be read, so its folder name is disp Anslutning - + Text Text @@ -13657,12 +15457,12 @@ the translated name of this folder could not be read, so its folder name is disp Importera en DXF-fil - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13744,21 +15544,31 @@ Vill du ersätta den? Exportera till urklipp - + Warning: the element has been saved with a more recent version of QElectroTech. Varning: symbolen har registrerats med en senare version av QElectroTech. - + Add a nomenclature Lägg till en förteckning - + Add a summary Lägg till en innehållsförteckning + + + Add a cable list + + + + + Cable list + + Compilation: @@ -13770,83 +15580,113 @@ Vill du ersätta den? Kompilering: - - + + Generic generic terminal element type Generisk - + Fuse fuse terminal element type Säkring - + Sectionable sectional terminal element type Frånskiljbar - + Diode diode terminal element type Diod - + Ground ground terminal element type Jord - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Generisk - + Phase phase terminal element function Fas - + Neutral neutral terminal element function Neutral - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -13995,22 +15835,22 @@ Vill du ersätta den? Djup - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Så här installerar du insticksprogrammet qet_tb_generator:<br>Besök:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Kräver Python 3.5 eller högre.<br><B><U> Första installation på Windows</B></U><br>1. Installera, om nödvändigt, Python 3.5 eller högre<br>Besök:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U>Uppdatera på Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>användare kan köra detta script i denna mapp<br>C:\users\<användare>\AppData\Local\Programs\Python\Python36-32\Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> Så här installerar du insticksprogrammet qet_tb_generator:<br>Besök:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U>Första installation på macOSX</B></U><br>1. Installera, om nödvändigt, paketet python 3.11, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Kör skriptet Profile.command<br> eftersom programmet använder hårdkodad PATH för att lokalisera pluginprogrammet qet-tb-generator<br>Besök:<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U>Uppdatera på macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Så här installerar du insticksprogrammet qet_tb_generator:<br>Besök:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Kräver Python 3.5 eller högre.<br><br><B><U>Första installation på Linux</B></U><br>1. Kontrollera att du har pip3 installerat: pip3 --version<br>Om inte, installera med: sudo apt-get install python3-pip<br>2. Installera programmet: sudo pip3 install qet_tb_generator<br>3. Kör programmet: qet_tb_generator<br><br><B><U>Uppdatera på Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Fel vid start av plugin qet_tb_generator @@ -14032,7 +15872,7 @@ Vill du ersätta den? - + Title Titel @@ -14159,45 +15999,45 @@ Vill du ersätta den? - + - + Type - + - + Address - - - - + + + + Annotation Kommentar - - - - + + + + Cross-reference - + Korsreferens - - - - + + + + Function Funktion @@ -14740,13 +16580,13 @@ Vill du ersätta den? Ändra titelblock - + delete %1 undo caption - %1 is a sentence listing the removed content Ta bort %1 - + Edit the cross reference edite the cross reference Redigera korsreferensen @@ -14770,8 +16610,8 @@ Vill du ersätta den? - + Rotate %1 @@ -14959,8 +16799,8 @@ Ladda ner den genom att följa länken nedan och packa upp den i installationsma - - + + Move %1 @@ -15105,88 +16945,88 @@ Ladda ner den genom att följa länken nedan och packa upp den i installationsma - + insert %1 Lägg till %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Ändring av färg för ett textfält - + Rotate a text - + Edit line of a form Ändra linje för en geometrisk form - + Edit filling a form Ändra fyllning för en geometrisk form - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Ändra en symboltext - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15238,7 +17078,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet @@ -15287,26 +17127,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Informationen som ska visas är större än vad som kan visas i tabellerna. Lägg till en ny tabell eller justera de befintliga tabellerna för att visa all information. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Informationen som ska visas är större än vad som kan visas i tabellen. Lägg till en ny tabell eller justera den befintliga tabellen för att visa all information. - + Table limitation Tabellbegränsning - + Modify the geometry of a table Ändra geometrin för en tabell @@ -15631,88 +17471,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Ändra %1 - + a line en linje - + rectangle en rektangel - + an ellipse en ellips - + an arc - + polyline en polygon - + a curve - + an shape en grafisk form @@ -15761,6 +17601,14 @@ nothing has been changed. Ändra en rektangel + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15799,6 +17647,17 @@ nothing has been changed. Symbolen « %1 » finns redan. Vad vill du göra? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + RenumberElementsDialog @@ -16359,7 +18218,7 @@ Skapa din egen text med hjälp av följande variabler: &Delete - + &Ta bort @@ -16810,28 +18669,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Auto-numrering av blad - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16859,13 +18728,13 @@ Fältet "Inkrement" används inte. - + Numbering conductors title window Auto-numrering av förbindningar - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16903,13 +18772,41 @@ De andra fälten används inte. De andra fälten används inte. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Auto-numrering av symboler - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16947,12 +18844,12 @@ De andra fälten används inte. De andra fälten används inte. - + New numbering… - + Rename numbering… @@ -19895,7 +21792,7 @@ De andra fälten används inte. - + Generic Generisk @@ -19920,92 +21817,137 @@ De andra fälten används inte. Jord - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : LED: - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : Funktion: - + Move to : Flytta till: - + Phase Fas - + Neutral Neutral - + Automatic position Automatisk position - + Group the terminals Gruppera plintar - + Ungroup the terminals Avgruppera plintar - + Bridging the terminals Bygla plintarna - + Unbridge the terminals Avbygla plintarna - + Properties Egenskaper - + Name: Namn: - + Comment : Kommentar: - + Plant: Anläggning: - + Location : Placering: - + Description Beskrivning - + Independent terminals Tillgängliga plintar - + Modify terminal strip properties Ändring av egenskaper för plintar @@ -20074,12 +22016,12 @@ De andra fälten används inte. Plintar våning 0: - + Headser : Rubrik: - + Bridge point Byglingspunkt @@ -20121,7 +22063,7 @@ De andra fälten används inte. Header text - + Rubriktexter @@ -20141,15 +22083,55 @@ De andra fälten används inte. Cross-reference + Korsreferens + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Höjd - + Preview: @@ -20212,55 +22194,60 @@ De andra fälten används inte. TerminalStripModel - + Position Position - + Stage Våning - + Label Etikett - + Number wire Förbindningsnummer - + Cross-reference Korsreferens - + Cable Kabel - + Color / wire number of the cable Färg/nummer på ledare i kabel - + Type Typ - + Function Funktion - + led LED + + + Shield + + TerminalStripProjectConfigPage @@ -21570,32 +23557,42 @@ du associerar namnet ”volta” med värdet ”1745” kommer %{volta} att ers Visa kors - + Label cross reference Etikett för korsreferenser - + Master Huvudfunktion: - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Slavfunktion: - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21612,115 +23609,141 @@ du associerar namnet ”volta” med värdet ”1745” kommer %{volta} att ers %LM: Placering (+) - + Option display cross Alternativ för korsvisning - + Show the power contacts in the cross Visa kraftkontakterna i korset - + Prefix of power contacts : Prefix för kraftkontakter: - + Prefix delayed contacts : Prefix för tidsinställda kontakter: - + Prefix changeover contacts : Prefix för växlande kontakter: - + Coil Spole - + Organ of protection Skyddsanordning - + Switch / button Knapp/brytare - + Programmable Logic Controller (PLC) - + + Cable + Kabel + + + Footer Sidfot - + Under the label of the element Under symbolens etikett - + Top Topp - + Bottom Botten - + Left Vänster - + Right Höger - + Text alignment Textjustering - + Text field + + + Text: + Text: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Exportera den interna projektdatabasen - + untitled namnlös diff --git a/lang/qet_tr.ts b/lang/qet_tr.ts index 1ea3f2248..155491669 100644 --- a/lang/qet_tr.ts +++ b/lang/qet_tr.ts @@ -1153,6 +1153,22 @@ Not: Bu durum "Otomatik Numaralandırma"'ya engel koymaz veya izi + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + Delete + Sil + + BorderPropertiesWidget @@ -1208,16 +1224,1057 @@ Not: Bu durum "Otomatik Numaralandırma"'ya engel koymaz veya izi Custom - + Özelleştir Landscape - + Sayfa boyunca Portrait + Portre + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Kablo + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Kurulum (=) + + + + Location (+) + Konum + + + + Type + + + + + Cores + + + + + Plant + Kurulum + + + + Location + Konum + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + başlıkları dahil et + + + + Preview + Önizleme + + + + cable_list_ + + + + + Save As... + Farklı kaydet ... + + + + CSV files (*.csv) + + + + + Error + Hata + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + CablePropertiesDialog + + + Cable + Kablo + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Kablo + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Kurulum (=) + + + + Location (+) + Konum + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X : + + + + Y : + Y : + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + + + + + pt + + + + + Size: + + + + + Normal + Normal + + + + Bold + Kalın metin + + + + Italic + İtalik metin + + + + Bold italic + + + + + Style: + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + Hizalama : + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + Önizleme : + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1264,13 +2321,13 @@ Not: Bu durum "Otomatik Numaralandırma"'ya engel koymaz veya izi Conductor - + Edit conductor properties undo caption İletken özelliklerini değiştir - + Edit the properties of several conductors undo caption İletkenlerin özelliklerini değiştir @@ -1326,7 +2383,7 @@ Not: Bu durum "Otomatik Numaralandırma"'ya engel koymaz veya izi Conductor color - + İletken rengi @@ -1787,13 +2844,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Diğer Unknown - + Bilinmeyen @@ -1910,7 +2967,7 @@ Continue? Diagram - + Change the depth I am not sure about this. It should be checked. Derinliği değiştirin @@ -2048,6 +3105,22 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + DiagramEventAddElement @@ -2059,7 +3132,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2067,7 +3140,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2190,225 +3263,255 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image I am not sure about this. It should be checked. Bir görüntü - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Bir resim seç... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Hata - + Unable to load the image. Resim yüklenemiyor. - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2440,108 +3543,140 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + İletken rengi DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip I am not sure about this. It should be checked. Bu, öğelerinizi ekleyerek ve iletkenler arasında terminaller yerleştirerek düzenlerinizi tasarladığınız alandır. Bağımsız metinler eklemek de mümkündür. - + Paste Here context menu action Buraya yapıştır - + Multiple paste Çoklu Yapıştır - + Create a template context menu action Şablon oluştur - + Make a cabinet thumbnail context menu action - + Sheet reference + Sayfa Raporu + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Seçilen bağlantıları bağla - + Untitled what to display for untitled diagrams Başlıksız - + + Remove this core from the line + + + + Registered template Şablon kaydedildi - + The template has been successfully saved as : %1 Şablon başarıyla şu adla kaydedildi: %1 - + Error Hata - + The file could not be written. Dosya yazılamadı. - + Choose the new color for this conductor Bu iletkenin yeni rengini seçin - + Edit conductor properties undo caption Bu iletkenin özelliklerini değiştirin @@ -2948,7 +4083,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3146,7 +4281,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3642,8 +4777,8 @@ Continue? - - + + Type Tür @@ -3727,8 +4862,8 @@ Continue? - - + + Function Fonksiyon @@ -3760,7 +4895,7 @@ Continue? - + Simple Temel @@ -3801,19 +4936,19 @@ Continue? - + Switch normally open Normalde açık - + Switch normally closed Normalde kapalı - + switch Switch @@ -3829,26 +4964,26 @@ Continue? - + Power switch Power Switch - + Switch-on delayed I am not sure about this. It should be checked. Gecikmeli Açılan - + Switch-off delayed Gecikmeli Kapanan - + Switch-on and off delayed Gecikmeli Açılan Kapanan @@ -3874,7 +5009,7 @@ Continue? - + Generic Genel @@ -3893,164 +5028,189 @@ Continue? Diode Diyot + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Faz - + Neutral Nötr - - - - - + + + + + T%1 - + Other fr: Autre - + Diğer - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Açıklama - + Cross-reference - + Çapraz referans - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None Yok - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5041,7 +6201,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Dışa aktar @@ -5423,97 +6583,127 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. + Filter by label (e.g. Z1) + + + + Move to : Taşı : - + Type : Type : - + Function : Fonksiyon : - + LED : LED : - + Apply displacement Hareketi uygula - - + + Generic Genel - + Fuse Sigorta - + Sectionable Ayrılabilir - + Diod Diyot - + Ground Toprak - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Faz - + Neutral Nötr - + Without Olmadan - + With İle - + Modify terminal strip properties Klemens özelliklerini değiştir - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5564,12 +6754,12 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. Sistem renklerini kullan - + User Collection Path Kullanıcı Kütüphanesi Yolu - + Path of the Common Collection Ortak Kütüphane Yolu @@ -5591,6 +6781,7 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. + Browse... Göz Atın... @@ -5647,7 +6838,7 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. #Yakınlaştırmanın sayfanın ötesine geçmesine izin ver - + User Title blocks Path It does not exist in the english translation. Kullanıcı başlık blokları dizini @@ -5678,48 +6869,48 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. Kullanıcı başlık blokları dizini - + Elements management Öğe Yönetimi - + Highlight freshly integrated elements in the panel #Yeni entegre edilen öğeleri panelde vurgulayın - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: #Her öğe,boş bi alanda "Yazarları, Lisansı veya başka bir alanda yararlı bulduğunuz veriler" hakkında bilgiler içerir. #Burada, oluşturacağınız öğeler için bu alanın varsayılan içeriğini belirtebilirsiniz : - + Applied to the next launch of QElectroTech QElectroTech'in bir sonraki başlatma işleminde uygulanır - + Here you can define the default appearance of the different texts of QElectroTech Burada çeşitli metinlerin QElectroTech içinde varsayılan görünümünü tanımlayabilirsiniz - + Grid + Keyboard Izgara + Klavye - + Grid: 1 - 30 Izgara: 1 - 30 - + DiagramEditor xGrid Diyagram Editörü xIzgarası - + DiagramEditor yGrid Diyagram Editörü yIzgarası @@ -5903,8 +7094,11 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5915,412 +7109,516 @@ atayabilirsiz. Metin ve sayı girişleri ayrıca mevcut. + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages Diller - + texts Metinler - + Elements texts Öğelerin Metinleri - - - + + + Font: Yazı Tipi : - - + + ° ° - + Length : Uzunluk : - - + + Rotation : Dönüş: - + Independent texts Bağımsız Metinler - + Other texts Diğer Metinler - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. Değişiklikleri görebilmek için Izgara'nın etkin olması gerekir. - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Klavye hareketi: 1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Diyagram Editörü (Tuş : Sol / Sağ) xIzgara - + DiagramEditor (key: up / down) yGrid Diyagram Editörü (Tuş : Yukarı / Aşağı) yIzgarası - + Keyboard movement with the ALT key: 1 - 9 ALT tuşuyla Klavye hareketi : 1 - 9 - + DiagramEditor (key: left / right) xGrid Diyagram Editörü (Tuş : Sol / Sağ) xIzgara - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Diyagram Editörü (Tuş : Yukarı / Aşağı) yIzgarası - + View grid Izgara Görünümü - - + + max: maks: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 Diagram-Editor ızgara nokta boyutu : 1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 Öğe editörü ızgara nokta boyutu : 1 - 5 - + Editor Editor - + Max. parts in Element Editor List Öğe Editör Listesindeki maks. parça sayısı - + + Bold italic + + + + + Bold + Kalın metin + + + + Italic + İtalik metin + + + + Normal + Normal + + + Rounding up for 0.5 and more 0.5 ve üzeri için yukarı yuvarla - + Always top rounding Her zaman yukarı yuvarla - + Always rounded down Her zaman aşağı yuvarla - + Rounding up for 0.75 and more 0.75 ve üzeri için yukarı yuvarla - + No rounding Yuvarlama yok - + Disabled fr: Désactivée - + Devredışı - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Genel - + System Sistem - + Arabic Arapça - + Brazilian Brezilyaca - + Catalan Katalanca - + Czech Çekce - + German Almanca - + Danish Danca - + Greek Yunanca - + English İngilizce - + Spanish İspanyolca - + French Fransızca - + Croatian Hırvatça - + Italian İtalyanca - + Japanese Japonca - + Korean Korece - + Polish Polonyaca - + Portuguese Portekizce - + Romanian Romence - + Russian Rusça - + Slovenian Slovakça - + Dutch Hollancada - + Norwegian Norveç - + Belgium-Flemish Flemenkçe - + Turkish Türkçe - + Hungarian Macarca - + Mongolian Moğolca - + Ukrainian Ukraynaca - + Chinese Çince - + Swedish İsveççe - + + Cable text font + + + + + Core colors font + + + + Company collection path Company koleksiyon yolu - + Company title-blocks Company antet blokları yolu - + User macro path Kullanıcı makroları yolu - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6329,50 +7627,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) csv Dosyaları (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash Çok yüksek değerler uygulamanın çökmesine neden olabilir. - + Experimental feature Deneysel özellik - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6387,6 +7703,343 @@ Any setting other than “No rounding” may cause rendering errors in the proje 3 - Projeyi 1 ve 2. maddelerde aynı parametrelere sahip olmayan başka bir bilgisayar ve/veya ekranda değiştirme. + + GenericDevice + + + Left + Sol + + + + Right + Sağ + + + + Top + Üst + + + + Bottom + Alt + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + GenericDeviceInformationPage + + + Information + + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + İsim : + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + İsim + + + + Function + Fonksiyon + + + + Type + + + + + Add terminal + + + + + Add gap + + + + + Delete + Sil + + + + Up + Yukarı + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + Genel + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6514,135 +8167,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Form + Form - Display - Görünüm + Görünüm - Table name - Tablo adı + Tablo adı - None Yok - All - Tümü + Tümü - Lines to display : - Görüntülenecek satırlar : + Görüntülenecek satırlar : - Y : - Y : + Y : - Next table - Sonraki tablo + Sonraki tablo - X : - X : + X : - Previous table - Önceki tablo + Önceki tablo - Previous table : - Önceki tablo : + Önceki tablo : - Geometry and lines - Geometri ve satırlar + Geometri ve satırlar - Apply geometry to all tables linked to this one - Geometriyi buna bağlı tüm tablolara uygula + Geometriyi buna bağlı tüm tablolara uygula - Fit table to sheet - Tabloyu sayfaya uydur + Tabloyu sayfaya uydur - TextLabel - TextLabel + TextLabel - Header - Başlık + Başlık - - Margin - Kenar boşluğu + Kenar boşluğu - Alignment : - Hizalama : + Hizalama : - - Left - Sol + Sol - - Center - Orta + Orta - - Right - Sağ + Sağ - - Font - Yazı tipi + Yazı tipi - Table - Tablo + Tablo - Alignment: - Hizalama : + Hizalama : - Content - İçerik + İçerik @@ -6760,6 +8383,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6819,7 +8465,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Etiket @@ -6978,76 +8624,48 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Form + Form - X : - X : + X : - Advanced Editor - Gelişmiş Editör + Gelişmiş Editör - Size : - Boyut : + Boyut : - Angle: - Açı : + Açı : - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Metin içeriği, boyutu ve yazı tipi html'deki biçimlendirmeler nedeniyle değiştirilemez. + Metin içeriği, boyutu ve yazı tipi html'deki biçimlendirmeler nedeniyle değiştirilemez. Lütfen bunun için gelişmiş editörü kullanın. - Text - Metin + Metin - @@ -7055,9 +8673,8 @@ Lütfen bunun için gelişmiş editörü kullanın. Yazı Tipi - Click here to cancel html formatting - HTML biçimlendirmeyi iptal et + HTML biçimlendirmeyi iptal et @@ -7496,7 +9113,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Yazdır @@ -7513,7 +9130,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Vazgeç @@ -7711,7 +9328,7 @@ Do you still want to link this slave contact? Cross-reference - + Çapraz referans @@ -7881,6 +9498,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7984,63 +9609,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Sayfa - + Conductor İletken - + Sheet references Sayfa Raporu - + Cross-references Çapraz Referans - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors İletkenler - + Elements Öğeler - + Sheets Sayfalar - + + Cables + + + + Auto Numbering Otomatik Numaralandırma - + New sheet configuration page title Yeni Sayfa - + New project configuration page title Yeni Proje @@ -8170,133 +9800,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Şekil 1 - - - - + + + + number format 01 Şekil 01 - - - - - + + + + + number format 001 Şekil 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Metin - - - - + + + + number format 1 - Sheet Şekil 1 - Sayfa - - - - + + + + number format 01 - Sheet Şekil 01 - Sayfa - - - - + + + + number format 001 - Sheet Şekil 001 - Sayfa - - - - + + + + Sheet no. N° sayfa - - - - + + + + Sheet Sayfa - - - - + + + + Location Konum - - - - + + + + Plant Kurulum - - - + + + Element Line Öğe Satırı - - - + + + Element Column Öğe Sütunu - - - + + + Element Prefix Öğe Öneki @@ -8384,7 +10014,7 @@ Do you still want to link this slave contact? Change a rectangle - + Bir dikdörtgeni düzenle @@ -8398,12 +10028,12 @@ Do you still want to link this slave contact? PartText - + Move a text Bir metni taşı - + Edit the text field Bir metin alanını düzenle @@ -8411,12 +10041,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8816,7 +10446,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Sayfa Başlığını Yapılandırma @@ -8826,7 +10456,7 @@ Its copy was kept as: ProjectAutoNumConfigPage - + Management Yönetim @@ -8836,173 +10466,178 @@ Its copy was kept as: Otomatik Numaralandırma - - + + Conductors İletkenler - + No. - + Name İsim - + Sheet Sayfa - + Element Öğe - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Öğeler - - + + Sheets Sayfalar - + + Cables + + + + Sheet Auto Numbering Sayfa otomatik numaralandırma - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name - + ; %n numbers without an element - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9010,27 +10645,27 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. - + %n elements changed formula. - - + + Delete numbering Numaralandırmayı sil - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9038,31 +10673,31 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering - + No sheet follows this numbering - + %n sheets follow this numbering - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9070,80 +10705,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech Projesi (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9164,19 +10799,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Form + Form - Request - Sorgu + Sorgu - Reload - Yeniden yükle + Yeniden yükle @@ -9673,127 +11305,129 @@ Değişiklikleri kaydetmek ister misiniz ? QETApp - + Loading... Initializing the elements collection cache splash screen caption Yükleniyor... Ürün kütüphanelerinin önbelleği başlatılıyor - + Loading... Sheets editor splash screen caption Yükleniyor ... Şema Editörü - + Loading... Opening files splash screen caption Yükleniyor ... Açılış dosyaları - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QElectroTech Antetleri - + Company title-blocks title of the company's title block templates collection Company antet blokları - + User title blocks title of the user's title block templates collection Kullanıcı Antetleri - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Şema - + Electric Normal example text - translate length, not meaning Elektrik - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title QElectroTech'i yapılandır - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Hata - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9802,145 +11436,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Yükleniyor... - + Loading... Systray icon splash screen caption Yükleniyor ... systray icon - + QElectroTech systray menu title QElectroTech - + &Quit &Çıkış - + &Hide &Gizle - + &Show &Geri Yükle - + &Hide diagram editor Tüm şema düzenleyicilerini &gizle - + &Show diagram editors Tüm şema düzenleyicilerini &geri yükle - + &Hide element editor Tüm öğe düzenleyicilerini &gizle - + &Show element editor Tüm öğe düzenleyicilerini &geri yükle - + &Hide title block template editor systray submenu entry Tüm Antet düzenleyicileri &gizle - + &Show title block template editors systray submenu entry &Tüm Antet düzenlemelerini geri yükle - + &New diagram editor &Yeni şema düzenleyici - + &New element editor &Yeni öğe editörü - + Closes QElectroTech QElectroTech uygulamasını kapatır - + Reduces QElectroTech into the systray Systray'da QElectroTech'i azaltın - + Restore QElectroTech QElectroTech'i geri yükle - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Şema Editörleri - + Element editors Öğe Editörleri - + Title block template editors systray menu entry Anteti Düzenle - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Kullanım : - + [options] [file]... @@ -9949,7 +11640,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9966,35 +11657,35 @@ Mevcut seçenekler: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Öğelerin kütüphanesinin klasörünü tanımla - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Antet şablonu kütüphanesinin klasörünü tanımlayın - + --config-dir=DIR Define configuration directory --config-dir=DIR Yapılandırma klasörünü ayarla - + --data-dir=DIR Define data directory --data-dir=DIR Veri klasörünü tanımla - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Dil dosyalarını içeren klasörü ayarlayın @@ -10004,1431 +11695,1525 @@ Mevcut seçenekler: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Projeler - + Collections Kolleksiyonlar - + No modification Değişiklik yok - + Click an action to get back in the changes you made to your diagram Status tip Şema üzerinde çalışmak için bir işleme tıklayın - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip I am not sure about this. It should be checked. Bu panel, geçerli sayfada gerçekleştirilen farklı eylemleri listeler. Bir eylemi tıklamak, şemanın uygulamadan sonraki haline dönmesini sağlar. - + Undo dock title İptal edilenler - + &Export D&ışa aktar - + Exports the current sheet to another format status bar tip Mevcut sayfayı başka bir formatta dışa aktarır - + Print Yazdır - + Prints one or more sheet of the current project status bar tip Mevcut projeden bir veya daha fazla sayfa yazdır - + &Quit &Çıkış - + Closes QElectroTech status bar tip QElectroTech uygulamasını kapatır - + Undo İptal - + Undoes the previous action status bar tip Önceki eylemi iptal eder - + Redo Yeniden yapma - + Restores the undone action status bar tip İptal edilen eylemi geri yükle - + Cu&t Ke&s - + &Copy Kop&yala - + &Paste Y&apıştır - + Puts selected elements into the clipboard status bar tip Seçili öğeleri panoya aktar - + Copies selected elements status bar tip Seçilen öğeleri panoya kopyala - + Pastes elements from the clipboard into the sheet status bar tip Panodaki öğeleri sayfaya yerleştirin - + Reset conductors İletkenleri sıfırla - + Reset the conductors path ignoring the user changes status bar tip Modifikasyonları dikkate almadan iletken yollarını yeniden hesaplar - + Automatic creation conductor (s) Tool tip of auto conductor Otomatik iletken (ler) oluşturma - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Mümkün olduğunda otomatik oluşturulan iletken(ler) kullanın - + Display the grid Izgarayı göster - + Display or hide the grid of sheet Sayfaların ızgarasını göster veya gizle - + Sheet properties Sayfa Özelikkleri - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Sayfa özelliklerini düzenleyin (boyutlar, antet bilgileri, iletken özellikleri ...) - + Project properties Proje Özellikleri - + Add a sheet Bir Sayfa Ekle - - - + + + Delete this sheet Sayfayı sil - + Clean project Projeyi temizle - + Add a summary Bir özet ekle - + Add a nomenclature Bir nomenklatür ekle - + Launch the terminal block creation plugin Terminal bloğu yaratma eklentisini başlatın - + Group selected texts Seçilen metinleri gruplandır - + Search / Replace Bul / Değiştir - + using tabs Sekmeleri kullan - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Şema Editörleri - + Export in pdf PDF olarak export et - + Export one or more sheets of the current project status bar tip Geçerli projeden bir veya daha fazla sayfa export et - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Devredışı - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Görünüm - + Element texts - + Conductor texts - + Text fields - + Metin alanları - + Shapes - + Pictures - + Tables - + Cross-references Çapraz Referans - + See Display > Show - + Export to CSV CSV formatında export et - + Terminal block manager (DEV) Klemens yöneticisi (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires İletken adları listesini export et - + Export the wiring diagram Kablolama planını export et - + Wiring list (database) - + Automatic numbering of terminals Klemenslerin otomatik numaralandırılması - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Projenin dahili veritabanını export et - + Shows the various opened projects in tabs status bar tip Farklı projeleri açık sekmelerde sunar - + using windows Pencereleri kullan - + Shows the various opened projects in windows status bar tip Farklı projeleri alt alta açılan pencerelerde sunar - + &Tile &Yan yana - + Arranges windows in a tile pattern status bar tip Döşenmiş pencereleri düzenle - + &Cascade &Basamak - + Arranges windows in a cascade pattern status bar tip Basamaklı pencereleri düzenleme - + Select Seçim Modu - + Allows to select elements status bar tip Öğeleri seçmeye izin ver - + Move Görüntüleme modu - + Allows to view the sheet without modifying it status bar tip Sayfayı değiştirmeden görüntüleyebilirsiniz - + Next project Sonraki proje - + Activates the next project status bar tip Bir sonraki projeyi aktifleştir - + Previous project Önceki proje - + Activates the previous project status bar tip Önceki projeyi aktifleştir - + &New &Yeni - + &Open &Aç - + &Save &Kaydet - + Save as Farklı kaydet - - + + &Close &Kapat - + Creates a new project status bar tip Yeni bir proje oluştur - + Opens an existing project status bar tip Mevcut bir projeyi aç - + Closes the current project status bar tip Mevcut projeyi kapat - + Saves the current project and all its sheets status bar tip Mevcut projeyi ve tüm sayfaları kaydeder - + Saves the current project with a different file name status bar tip Mevcut projeyi başka bir dosya adıyla kaydet - + Add a column Bir Sütun ekle - + Remove a column Bir sütunu kaldır - + Add row Add row Bir çizgi ekle - + Remove a row Remove row Bir çizgi kaldır - + Add a column to the sheet status bar tip Sayfaya bir sutun ekle - + Remove a column from the sheet status bar tip Sayfadan bir sutun kaldır - + Expands the sheet height status bar tip Sayfa yüksekliğini büyütür - + Shrinks the sheet height status bar tip Sayfayı Küçült - + Delete Sil - + Rotate Döndür - + Rotate the group - + Choose texts orientation Metni düzelt - + Horizontal mirror - + Vertical mirror - + Find in the panel Panelde bul - + Edit the selected item Seçilen öğeyi düzenle - - + + Group fr: Grouper - + Grup - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Seçilen öğeleri sayfadan kaldırır - + Rotate selected elements and texts status bar tip Seçili öğeleri ve metinleri döndür - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip Seçilen metinleri hassas bir açıyla döndürün - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Panelde seçilen öğeyi bul - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Tümünü seç - + Select none Hiçbirini seçme - + Invert selection Seçimi ters çevir - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Sayfadaki tüm unsurları seç - + Deselect all elements on the sheet status bar tip Sayfadaki tüm öğelerin seçimini kaldırın - + Inverts selection of elements status bar tip Seçili öğelerin seçimini kaldırın ve seçilmemiş öğeleri seçin - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In Yakınlaştır - + Zoom Out Uzaklaştır - + Zoom content İçeriğe odaklan - + Fit in view Uyarlanmış yakınlaştırma - + Reset zoom Yakınlaştırma yok - + Centre on the cursor - + Expand the sheet status bar tip Sayfayı görüntüle - + Shrinks the sheet status bar tip Sayfayı Küçült - + Adjusts the zoom to display all the contents of sheet regardless of context Çerçevenin tüm içeriğini çerçeveden bağımsız olarak gösterecek şekilde yakınlaştırır - + Adjusts the zoom on exactly the part of the sheet status bar tip Yakınlaştırmayı tam olarak sayfa çerçevesine uyarlar - + Restores default zoom level status bar tip Varsayılan yakınlaştırmayı geri yükle - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield Bir metin alanı ekle - + Add a picture Bir resim ekle - + Add a PDF - + Add line Draw line Bir çizgi ekle - + Add a rectangle Bir dikdörtgen ekle - + Add an ellipse Bir elips ekle - + Add an arc - + Yay ekle - + Add a polygon Bir çokgen ekle - + Add a curve - + Add a fillet - + Add a terminal plan Klemens planı ekle - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Geçerli sayfaya metin alanı ekle - + Add an image to the current sheet Geçerli sayfaya resim ekle - + Adds a PDF page to the current sheet - + Add a line to the current sheet Geçerli sayfaya çizgi ekle - + Adds a rectangle on the current sheet Geçerli sayfaya dikdörtgen ekler - + Add an ellipse to the current sheet Geçerli sayfaya elips ekle - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Geçerli sayfaya devamlı çizgi ekle - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet Geçerli sayfaya bir klemens planı ekler - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools Araçlar + - Display Görünüm + - Diagram Şema + - Add Ekle + - Depth toolbar title Derinlik - + Scripts toolbar title - + &File &Dosya - + &Edit &Düzenle - + &Project &Proje - + Displ&ay Gö&rünüm - + Wi&ndows Pe&ncere - + &Latest files &Son Açılan - + &Add - + Selection - + Align - + Rows and columns - + Depth Derinlik - - + + Scripts - + Display or hide the main toolbar Ana araç çubuğunu göster veya göster - + Display or hide the Display toolbar Görünüm araç çubuğunu göster veya göster - + Display or hide the Diagram toolbar Şema araç çubuğunu göster veya göster - + Show or hide the elements panel Cihazların paneli görüntülensin veya görüntülenmesin - + Display or hide the undo list Değişiklikler listesi görüntüleniyor veya görüntülenmiyor - + Display projects Projeleri görüntüle - - + + Project %1 registered in the directory: %2. %1 projesi şu dizine kaydedildi : %2. - + Open a file Bir dosya aç - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech Projeleri (*.qet);;XML Dosyaları (*.xml);;Tüm Dosyalar (*) - - + + Unable to open file message box title Dosya açılamadı - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Açmaya çalıştığınız %1 dosyası mevcut değil gibi görünüyor. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Açmaya çalıştığınız dosya okunabilir değil gibi görünüyor. Dosya açılamıyor. Lütfen dosyanın izinlerini kontrol edin. - + Opening the file read-only message box title Projeyi salt okunur açma - + The project you try to open does not seem writable. It will be opened read-only. Açmaya çalıştığınız proje yazılabilir değil gibi görünüyor. Salt okunur modda açılacaktır. - - + + Unable to open project message box title Proje açılamadı - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content %1 dosyasının bir QElectroTech proje dosyası olmadığı anlaşılıyor. Bu açılamaz. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11436,7 +13221,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11444,24 +13229,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11471,185 +13256,185 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal Klemens silinemiyor - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted Seçim, köprülenmiş ve/veya çok seviyeli bir klemense ait olan bir veya daha fazla klemens içerdiğinden silme yapılamıyor. Silmek için ilgili klemenslerin köprülerini kaldırın ve/veya seviyelerini silin - + Group Grup - + %n items put back on the grid - + %n items aligned - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) - + Edit the element edit element Öğeyi düzenle - + Edit the text field edit text field Metin alanını düzenle - + Edit the image edit image Resmi Düzenle - + Edit conductor edit conductor İletkeni düzenle - + Edit the selected object edit selected item Seçilen nesneyi düzenle - + An error occurred while opening file %1. message box content Dosyayı açarken bir sorun oluştu %1. - + Activates the project « %1 » « %1 » projesini etkinleştir - + Are you sure you want to delete this sheet? Bu sayfayı silmek istediğinizden emin misiniz? - + Delete the sheets Sayfaları sil - + Are you sure you want to delete the selected %1 sheets ? Seçili %1 sayfayı silmek istediğinizden emin misiniz? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Hata - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. - + %n elements for which no definition could be found or which were illegible: their current design has been retained. - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11658,40 +13443,40 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11700,61 +13485,61 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden - - + + Texts %1 @@ -12375,7 +14160,7 @@ lütfen import sırasında bekleyin... Element editors - + Öğe Editörleri @@ -12739,52 +14524,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path Proje « %1 : %2» - + Project %1 displayed title for a title-less project - %1 is the file name Proje %1 - + Untitled project displayed title for a project-less, file-less project Başlıksız proje - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [salt okunur] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [değiştirildi] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12792,19 +14577,19 @@ Do you wish to continue? - + An error occurred during the template integration. error message Şablon entegre edilirken bir hata oluştu. - + Warning message box title Uyarılar - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12812,7 +14597,7 @@ You are currently using QElectroTech in version %2 Şu anda QElectroTech sürüm %2 kullanıyorsunuz - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12821,32 +14606,32 @@ What do you wish to do ? Ne yapmak istersiniz? - + Warning message box title Uyarı - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. Açmaya çalıştığınız proje, QElectroTech sürüm %1 ile kısmen uyumludur. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? Tamamen uyumlu hale getirmek için lütfen bu projeyi QElectroTech sürüm 0.8 veya 0.80 ile açın, projeyi kaydedin ve bu sürümle tekrar açın. Ne yapmak istersiniz? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Mevcut Proje Açılıyor</b><br/>Sayfa Oluşturma</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Devam eden projeyi açıyor...</b><br/>Çapraz referansları ayarlama</p> @@ -12872,166 +14657,156 @@ Ne yapmak istersiniz? QETTitleBlockTemplateEditor - + Save current template? dialog title Mevcut şablonu kaydet ? - + Do you wish to save the template %1? dialog content - %1 is a title block template name %1 şablonunu kaydetmek ister misiniz? - + new_template template name suggestion when duplicating the default one yeni_şablon - + Duplicate a title block template input dialog title Bir antet şablonunu çoğalt - + In order to duplicate this template, please enter a name for its copy input dialog text Bu şablonun çoğaltılan kopyası için istenen adı girin - + &New menu entry &Yeni - + &Open menu entry &Aç - + Open from a file menu entry Bir dosyadan aç - + &Save menu entry &Kaydet - + Save as menu entry Farklı kaydet - + Save to a file menu entry Bir dosyaya kaydet - + &Quit menu entry &Çıkış - + Cu&t menu entry K&es - + &Copy menu entry K&opyala - + &Paste menu entry Ya&pıştır - + Manage logos menu entry Logoları yönet - + Edit extra information menu entry Ek bilgileri düzenle - + Zoom In menu entry Yakınlaştır - + Zoom out menu entry Uzaklaştır - + Fit in view menu entry Sığdır - + Reset zoom menu entry Yakınlaştırma yok - + Add a &row menu entry Sa&tır Ekle - + Add a &column menu entry &Sütun Ekle - + &Merge cells menu entry Hücreleri &Birleştir - + &Split cells menu entry &Hücreleri Ayır - - - - - - - - - - @@ -13041,156 +14816,166 @@ Ne yapmak istersiniz? + + + + + + + + + + Title block template editors - + Anteti Düzenle - + &File menu title &Dosya - + &Edit menu title &Düzenle - + Displ&ay menu title &Görünüm - + Tools toolbar title Araçlar - + Edit toolbar title Düzenleme - + Display toolbar title Görünüm - + No modification label displayed in the undo list when empty Değişiklik yok - + Undo dock title İptal edilenler - + Cell properties dock title Hücre özellikleri - + [Changed] window title tag [Değiştirilmiş] - + [Read only] window title tag [Salt okunur] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - Antet Şablonu Düzenleyicisi - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Hata - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Bir şablon aç - + Open a file dialog title Bir dosya aç - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech Antet Şablonları(*%1);;Dosyalar XML (*.xml);;Tüm Dosyalar (*) - + Save template as dialog window title Şablonu farklı kaydet - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Farklı kaydet - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech Antet Şablonları(*%1) - + Edit extra information window title Ek bilgileri düzenle - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Bu boş alanı, anteti, lisansını veya yararlı bulduğunuz diğer tüm bilgileri yazarlarından bahsetmek için kullanabilirsiniz. @@ -13351,18 +15136,18 @@ the translated name of this folder could not be read, so its folder name is disp Ekle - + Select an image ... Bir resim seç... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Resim Dosyaları (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13371,7 +15156,7 @@ the translated name of this folder could not be read, so its folder name is disp Hata - + Unable to load the image. Resim yüklenemiyor. @@ -13382,7 +15167,7 @@ the translated name of this folder could not be read, so its folder name is disp - + Title Başlık @@ -13526,8 +15311,8 @@ the translated name of this folder could not be read, so its folder name is disp Sınır - + Text Metin @@ -13575,12 +15360,12 @@ the translated name of this folder could not be read, so its folder name is disp metin - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -13662,7 +15447,7 @@ Değiştirmek ister misiniz? Panoya dışa aktar - + Warning: the element has been saved with a more recent version of QElectroTech. Uyarı: Ürün QElectroTech'in daha sonraki bir sürümü ile kaydedilmiştir. @@ -14046,13 +15831,13 @@ Değiştirmek ister misiniz? Birden çok öğenin bilgilerini değiştir - + delete %1 undo caption - %1 is a sentence listing the removed content sil %1 - + Edit the cross reference edite the cross reference I am not sure about this. It should be checked. @@ -14076,8 +15861,8 @@ Değiştirmek ister misiniz? - + Rotate %1 @@ -14205,45 +15990,45 @@ Değiştirmek ister misiniz? - + - + Type - + - + Address - - - - + + + + Annotation Açıklama - - - - + + + + Cross-reference - + Çapraz referans - - - - + + + + Function Fonksiyon @@ -14578,45 +16363,55 @@ Değiştirmek ister misiniz? İletkenlerin oluşturulması - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Qet_tb_generator eklentisini yüklemek için <br> Ziyaret Et: <br> <a href='https://pypi.python.org/pypi/qet-tb-generator'> qet-tb-generator </a> <br> python 3.5 veya üzeri. <br> <B> <U> İlk önce Windows'a yükleyin </B> </U> <br> 1. Gerekirse, python 3.5 veya üstü bir sürüm yükleyin. <br> Ziyaret: <br> <a href='https://www.python.org/downloads/'> python.org </a> <br> 2. pip install qet_tb_generator <br> <B> <U> Windows'ta Güncelleme </B> </U> <br> python -m pip install --upgrade qet_tb_generator <br> >> kullanıcı bu script'in terminalde bu dizinde başlatılmasını sağlayabilir <br> C: \ users \ XXXX \ AppData \ Local \ Programs \ Python \ Python36-32 \ Scripts <br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> qet_tb_generator eklentisini kurmak için<br>Şu adresi ziyaret edin :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> macOSX'te ilk kurulum</B></U><br>1. Gerekirse yalnızca python 3.11 paketini kurun, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Profile.command betiğini çalıştırın<br>çünkü program qet-tb-generator eklentisini bulmak için hardcoded PATH kullanır <br> Şu adresi ziyaret edin :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> macOSX'te güncelleme</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> qet_tb_generator eklentisini kurmak için<br>Şu adresi ziyaret edin :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Python 3.5 veya üzeri gerektirir.<br><br><B><U> Linux'ta ilk kurulum</B></U><br>1. pip3'ün kurulu olduğunu kontrol edin: pip3 --version<br>Kurulu değilse şu komutla kurun: sudo apt-get install python3-pip<br>2. Programı kurun: sudo pip3 install qet_tb_generator<br>3. Programı çalıştırın: qet_tb_generator<br><br><B><U> Linux'ta güncelleme</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin qet_tb_generator eklentisi başlatılırken hata oluştu - + Add a nomenclature Bir nomenklatür ekle - + Add a summary Bir özet ekle + + + Add a cable list + + + + + Cable list + + Paste Yapıştır - + + - - + @@ -14657,83 +16452,113 @@ Değiştirmek ister misiniz? %1 klemens bloğunu sırala - - + + Generic generic terminal element type Genel - + Fuse fuse terminal element type Sigorta - + Sectionable sectional terminal element type Ayrılabilir - + Diode diode terminal element type Diyot - + Ground ground terminal element type Toprak - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Genel - + Phase phase terminal element function Faz - + Neutral neutral terminal element function Nötr - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14768,7 +16593,7 @@ Değiştirmek ister misiniz? DXF dosyası import et - + Default layout Varsayılan düzen @@ -14943,8 +16768,8 @@ Lütfen aşağıdaki bağlantıyı takip ederek indirin ve kurulum klasörüne - - + + Move %1 @@ -15079,88 +16904,88 @@ Lütfen aşağıdaki bağlantıyı takip ederek indirin ve kurulum klasörüne - + insert %1 %1 ekle - + Edit the conductor properties - + Edit a text - + Change the color of a text Metin alanının rengini değiştirme - + Rotate a text - + Edit line of a form Şeklin hattını düzenle - + Edit filling a form Bir şeklin dolgusunu değiştirin - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Öğe metnini düzenle - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15210,7 +17035,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Sayfa @@ -15259,26 +17084,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Görüntülenecek bilgiler, tablolar tarafından görüntülenebilecek maksimum miktarın üzerindedir. Lütfen tüm bilgileri görüntülemek için yeni bir tablo ekleyin veya mevcut tabloları ayarlayın. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Görüntülenecek bilgiler, tablo tarafından görüntülenebilecek maksimum miktarın üzerindedir. Lütfen tüm bilgileri görüntülemek için yeni bir tablo ekleyin veya mevcut tabloyu ayarlayın. - + Table limitation Tablo sınırlaması - + Modify the geometry of a table Bir tablonun geometrisini değiştir @@ -15603,88 +17428,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 %1'i düzenle - + a line bir çizgi - + rectangle bir dikdörtgen - + an ellipse bir elips - + an arc - + polyline bir polyline - + a curve - + an shape bir şekil @@ -15733,6 +17558,14 @@ nothing has been changed. Bir dikdörtgeni düzenle + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15771,6 +17604,16 @@ nothing has been changed. %1" öğesi zaten var. Ne yapmak istersiniz ? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + RenumberElementsDialog @@ -16328,7 +18171,7 @@ Create your own text using the following variables: &Delete - + &Sil @@ -16779,28 +18622,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Sayfa Otonumaralandırması - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16829,7 +18682,7 @@ Değer alanında tanımlanan hane, seçilen tipten daha az hane içeriyorsa, tan - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16867,13 +18720,41 @@ Diğer alanlar kullanılmaz. Diğer alanlar kullanılmaz. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window Öğe Otomatik Numaralandırma - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16911,17 +18792,17 @@ Diğer alanlar kullanılmaz. Diğer alanlar kullanılmaz. - + New numbering… - + Rename numbering… - + Numbering conductors title window Otomatik Numaralı İletken @@ -19827,42 +21708,42 @@ Diğer alanlar kullanılmaz. Düzen - + Bridging the terminals Klemensleri köprüle - + Unbridge the terminals Klemens köprülerini kaldır - + Properties Özellikler - + Name: İsim : - + Comment : Yorum : - + Description Açıklama - + Plant: Kurulum : - + Location : Konum : @@ -19872,13 +21753,13 @@ Diğer alanlar kullanılmaz. Type : - + Ungroup the terminals Klemensleri gruptan ayır - + Generic Genel @@ -19918,22 +21799,67 @@ Diğer alanlar kullanılmaz. Toprak - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : Taşı : - + Phase Faz - + Neutral Nötr - + Automatic position Otomatik konum @@ -19943,12 +21869,12 @@ Diğer alanlar kullanılmaz. Kat : - + Group the terminals Klemensleri grupla - + Function : Fonksiyon : @@ -19963,17 +21889,17 @@ Diğer alanlar kullanılmaz. İle - + LED : LED : - + Independent terminals Bağımsız klemensler - + Modify terminal strip properties Klemens özelliklerini değiştir @@ -20042,12 +21968,12 @@ Diğer alanlar kullanılmaz. Klemens seviye 0 : - + Headser : Başlık : - + Bridge point Köprü noktası @@ -20112,12 +22038,52 @@ Diğer alanlar kullanılmaz. Çapraz referans - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height Yükseklik - + Preview: Önizleme : @@ -20180,52 +22146,57 @@ Diğer alanlar kullanılmaz. TerminalStripModel - + Position Pozisyon - + Stage Kat - + Label Etiket - + Cross-reference Çapraz referans - + Cable Kablo - + Color / wire number of the cable Kablo tel rengi / numarası - + Type Tip - + Function Fonksiyon - + led led - + + Shield + + + + Number wire İletken numarası @@ -21537,32 +23508,42 @@ Aşağıdaki değişkenler kullanılabilir: Çapraz görüntüle - + Label cross reference Çapraz referans etiketi - + Master Master - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Bağımlı - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21579,115 +23560,141 @@ Aşağıdaki değişkenler kullanılabilir: %LM : Konum - + Option display cross Çapraz ekran seçeneği - + Show the power contacts in the cross Güç kontaklarını çapraz göster - + Prefix of power contacts : Güç kontaklarının ön eki: - + Prefix delayed contacts : Zamanlı kontakların öneki : - + Prefix changeover contacts : İnvertör kontaklarının öneki : - + Coil Bobin - + Organ of protection Koruma gövdesi - + Switch / button Komütatör / Buton - + Programmable Logic Controller (PLC) - + + Cable + Kablo + + + Footer Sayfanın altında - + Under the label of the element Öğe etiketinin altında - + Top Üst - + Bottom Alt - + Left Sol - + Right Sağ - + Text alignment Metin Hizalama - + Text field + + + Text: + + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Projenin dahili veritabanını export et - + untitled isimsiz diff --git a/lang/qet_uk.ts b/lang/qet_uk.ts index cbc0a1bbf..a1467ab0a 100644 --- a/lang/qet_uk.ts +++ b/lang/qet_uk.ts @@ -1166,6 +1166,24 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + + + Delete + Видалити + + BorderPropertiesWidget @@ -1211,7 +1229,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + Вормат: @@ -1221,16 +1239,1077 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + Користувача Landscape - + Альбомна Portrait + Книжна + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + Кабель + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + Установка(=) + + + + Location (+) + Локалізація (+) + + + + Type + Тип + + + + Cores + + + + + Plant + Установка + + + + Location + Розташування + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + включити заголовки + + + + Preview + Попередній перегляд + + + + cable_list_ + + + + + Save As... + Зберегти як... + + + + CSV files (*.csv) + Файли csv (*.csv) + + + + Error + Помилка + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + Відміна + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + + + + + No + Les noms saisis à la main sont laissés tels quels. + + + + + Cancel + Ne renumérote rien du tout. + Відміна + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + Відміна + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + + + CablePropertiesDialog + + + Cable + Кабель + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + Кабель + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + Тип + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + Установка(=) + + + + Location (+) + Локалізація (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + X: + + + + Y : + Y: + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + Шрифт: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + Товстий + + + + Italic + Курсив + + + + Bold italic + + + + + Style: + Стиль: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + + + + + Reset + + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + Відміна + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1277,13 +2356,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption Редагувати властивості провідника - + Edit the properties of several conductors undo caption Modifier les propriétés de plusieurs conducteurs @@ -1339,7 +2418,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor color - + Колір провідника @@ -1803,13 +2882,13 @@ Locked by this sheet's “Show one potential text per sheet” option, in S Other - + Інший Unknown - + Невідомо @@ -1928,7 +3007,7 @@ Continue? Diagram - + Change the depth Змінити глибину @@ -2065,6 +3144,24 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + + + DiagramEventAddElement @@ -2076,7 +3173,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2084,7 +3181,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2207,224 +3304,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image Зображення - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... Виберіть зображення... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error Помилка - + Unable to load the image. Помилка - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2455,107 +3582,141 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + Колір провідника DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip Це область, де ви проєктуєте свої схеми, додаючи до них елементи та прокладаючи провідники між їхніми клемами. Також є можливість додавати незалежні тексти. - + Paste Here context menu action Вставити тут - + Multiple paste Множинна вставка - + Create a template context menu action - + Make a cabinet thumbnail context menu action - + Sheet reference - + Звіт про аркуш - + Choose the new color for this conductor Виберіть новий колір цього провідника - + Edit conductor properties undo caption Редагувати властивості провідника - + + %1: %2 + + + + + Add an image + + + + + Add %n image(s) + + + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X: %1 Y: %2 - + Connect the selected terminals Підключити вибрані клеми - + Untitled what to display for untitled diagrams Без назви - + + Remove this core from the line + + + + Registered template - + The template has been successfully saved as : %1 - + Error Помилка - + The file could not be written. @@ -3155,7 +4316,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption @@ -3650,8 +4811,8 @@ Continue? - - + + Type Тип @@ -3734,8 +4895,8 @@ Continue? - - + + Function функція @@ -3767,7 +4928,7 @@ Continue? - + Simple Простий @@ -3808,19 +4969,19 @@ Continue? - + Switch normally open (NO) нормально розімкнутий - + Switch normally closed (NC) нормально замкнутий - + switch (CO) перекидний @@ -3836,25 +4997,25 @@ Continue? - + Power switch Силовий - + Switch-on delayed Вмикання із затримкою - + Switch-off delayed Вимикання із затримкою - + Switch-on and off delayed Вмикання та вимикання по часу @@ -3880,7 +5041,7 @@ Continue? - + Generic загальний @@ -3904,164 +5065,189 @@ Continue? Ground Заземлення + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Фаза - + Neutral Нейтраль - - - - - + + + + + T%1 - + Other fr: Autre - + Інший - + PLC Configuration - + + - + - - - + + Address - - + + Annotation Аннотація - + Cross-reference - + Перехресне посилання - - + + Nb. - + T1 - + Header font - + Set the font for column headers - + Text font - + Set the text font in the cells - + Show headers on the sheet - + Show or hide the column headings of the PLC table on the sheet - + Jump to %1 after: - + None - + Line H: - - + + mm - + Ref. - + Custom column name (blank = default) - + Visible - + Paste from the clipboard - - + + Heading font size: %1 %2pt - - + + Font size: %1 %2pt - + Column header formatting - + Cell text font @@ -5048,7 +6234,7 @@ By importing this file, you confirm that: ExportConfigPage - + Export configuration page title Експорт @@ -5432,97 +6618,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : Перемістити до: - + Type : Тип: - + Function : Функція - + LED : Індикатор: - + Apply displacement Застосувати переміщення - - + + Generic Загальний - + Fuse Запобіжник - + Sectionable Секційний - + Diod Діод - + Ground Заземлення - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase Фаза - + Neutral Нейтраль - + Without Без - + With С - + Modify terminal strip properties Змінити властивості клемних колодок - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5667,6 +6883,7 @@ that you create. Text and number inputs are + Browse... Вибрати... @@ -5850,8 +7067,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5862,473 +7082,577 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Elements management Керування елемнтами - + Highlight freshly integrated elements in the panel Виділити нещодавно додані елементи в панелі - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: Кожний елемент включає інформацію про його авторів, його ліцензії чи буль-яку іншу інформацію, котру ви вважаєте корисною для вільног доступу. Тут ви можете вказати значення цього поля по замовчуванню для створюваних вами елемемнтів: - + Languages Мови - + Applied to the next launch of QElectroTech Застосується з наступним запуском QElectroTech - + texts - + Here you can define the default appearance of the different texts of QElectroTech - + Elements texts Тексти - - - + + + Font: Шрифт: - - + + ° ° - + Length : Довжина: - - + + Rotation : Обертання: - + Independent texts Незалежний текст - + Other texts Інший текст - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + Grid + Keyboard Сітка та клавіатура - + Grid: 1 - 30 Сітка :1 - 30 - + DiagramEditor yGrid Вертикальні лінії (yGrid) - + The Grid must be active to see the changes. - + DiagramEditor xGrid Горизонтальні лінії (xGrid) - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 Переміщення з клавіатури :1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid Клавіша вліво/вправо - по горизонталі (xGrid) - + DiagramEditor (key: up / down) yGrid Клавіша вгору/вниз - по вертикалі (yGrid) - + Keyboard movement with the ALT key: 1 - 9 Переміщення з клавіатури за допомогою клавіш ALT : 1 - 9 - + DiagramEditor (key: left / right) xGrid Клавіша вліво/вправо - по горизонталі (xGrid) - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid Клавіша вгору/вниз - по вертикалі (yGrid) - + View grid - - + + max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 - - + + min: - + Point-size in element-editor: 1 - 5 - + Editor - + Max. parts in Element Editor List - + + Bold italic + + + + + Bold + Товстий + + + + Italic + Курсив + + + + Normal + + + + Rounding up for 0.5 and more Округлювати в більшу сторону від 0.5 і більше - + Always top rounding Завжди округлювати в більшу сторону - + Always rounded down Завжди округляти в меншу сторону - + Rounding up for 0.75 and more Округляти в більшу сторону від 0.75 і більше - + No rounding Не округляти - + Disabled fr: Désactivée - + Вимкнено - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title Загальне - + System Системний - + Arabic Арабська - + Brazilian Бразильська - + Catalan Каталонська - + Czech - + German Німецький - + Danish Датська - + Greek Грецька - + English Англійська - + Spanish Іспанська - + French Французька - + Croatian Хорватська - + Italian Італійська - + Japanese Японська - + Korean - + Polish Польська - + Portuguese Португальська - + Romanian Руминська - + Russian Російська - + Slovenian Словенська - + Dutch Нідерланди - + Norwegian Норвегія - + Belgium-Flemish Бельгійсько-фламандська - + Turkish Турецька - + Hungarian Угорська - + Mongolian Монгольська - + Ukrainian - + Chinese - + Swedish - + + Cable text font + + + + + Core colors font + + + + Path of the Common Collection Шлях до загальної колекції - + Company collection path - + User Collection Path Шлях до колекції користувача - + Company title-blocks - + User Title blocks Path Шлях до штампів користувача - + User macro path - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6337,50 +7661,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) Файли csv (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash - + Experimental feature - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6390,6 +7732,347 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + + + GenericDeviceInformationPage + + + Information + Інформація + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + Ім'я: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + Ім'я + + + + Function + + + + + Type + Тип + + + + Add terminal + + + + + Add gap + + + + + Delete + Видалити + + + + Up + Зверху + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6517,135 +8200,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - Форма + Форма - Display - Вид + Вид - Table name - Назва таблиці + Назва таблиці - Geometry and lines - Геометрія та рядки + Геометрія та рядки - All - Все + Все - Next table - Наступна таблиця + Наступна таблиця - None Нічого - Fit table to sheet - Підганяти область під аркуш + Підганяти область під аркуш - Y : - Y: + Y: - X : - X: + X: - Previous table - Попередня таблиця + Попередня таблиця - Apply geometry to all tables linked to this one - Застосувати геометрію до всіх таблиць, пов'язаних з цією + Застосувати геометрію до всіх таблиць, пов'язаних з цією - Previous table : - Попередня таблиця: + Попередня таблиця: - Lines to display : - Рядки для відображення: + Рядки для відображення: - TextLabel - Текстова мітка + Текстова мітка - Header - Заголовок + Заголовок - - Margin - Поле + Поле - Alignment : - Вирівнювання: + Вирівнювання: - - Left - Вліво + Вліво - - Center - По центру + По центру - - Right - Вправо + Вправо - - Font - Шрифт + Шрифт - Table - Таблиця + Таблиця - Alignment: - Вирівнювання: + Вирівнювання: - Content - Зміст + Зміст @@ -6763,6 +8416,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6822,7 +8498,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + Мітка @@ -6978,80 +8654,51 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - Форма + Форма - X : - X: + X: - Advanced Editor - Розширений редактор + Розширений редактор - Size : - Розмір: + Розмір: - Angle: - Кут: + Кут: - - - px - пікс + пікс - ° - ° + ° - Y : - Y: + Y: - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - Зміст, розмір та шрифт тексту не можна поміняти, оскількивін в форматі html. Використовуйте, будь ласка, розширений редактор. + Зміст, розмір та шрифт тексту не можна поміняти, оскількивін в форматі html. Використовуйте, будь ласка, розширений редактор. - Click here to cancel html formatting - Відмінити форматування HTML + Відмінити форматування HTML - Text - Текст + Текст - @@ -7493,7 +9140,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + Друк @@ -7512,7 +9159,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + &Відміна @@ -7712,7 +9359,7 @@ Do you still want to link this slave contact? Cross-reference - + Перехресне посилання @@ -7882,6 +9529,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7985,63 +9640,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet Аркуш - + Conductor Провідник - + Sheet references Звіти по аркушам - + Cross-references Перехрестні посилання - + Guides - + Set the default automatic numbering rules for new projects: - + Conductors Провідники - + Elements Елементи - + Sheets Аркуші - + + Cables + + + + Auto Numbering Автонумерація - + New sheet configuration page title Новий аркуш - + New project configuration page title Новий проєкт @@ -8171,133 +9831,133 @@ Do you still want to link this slave contact? - - - - - + + + + + number format 1 Формат числа: 1 - - - - + + + + number format 01 Формат числа: 01 - - - - - + + + + + number format 001 Формат числа: 001 - - - - - + + + + + Cyclic (modulo) - - - - - + + + + + Alphabetical - - - - - + + + + + Text Текст - - - - + + + + number format 1 - Sheet Формат числа: 1 - Аркуш - - - - + + + + number format 01 - Sheet Формат числа: 01 - Аркуш - - - - + + + + number format 001 - Sheet Формат числа: 001 - Аркуш - - - - + + + + Sheet no. № Аркуша - - - - + + + + Sheet Аркуш - - - - + + + + Plant Установка - - - - + + + + Location Розташування - - - + + + Element Line Рядок елемента - - - + + + Element Column Стопчик елемента - - - + + + Element Prefix Префікс елемента @@ -8384,7 +10044,7 @@ Do you still want to link this slave contact? Change a rectangle - + Редагувати прямокутник @@ -8398,12 +10058,12 @@ Do you still want to link this slave contact? PartText - + Move a text Перемістити текст - + Edit the text field Редагувати текстове поле @@ -8411,12 +10071,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8823,7 +10483,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title Друк @@ -8837,101 +10497,106 @@ Its copy was kept as: Автонумерація - + Management Керування - - + + Conductors Провідники - + No. - + Name Ім'я - + Sheet Аркуш - + Element Елемент - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements Елементи - - + + Sheets Аркуші - + + Cables + + + + Sheet Auto Numbering Автонумерація аркушів - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name @@ -8940,7 +10605,7 @@ Its copy was kept as: - + ; %n numbers without an element @@ -8949,49 +10614,49 @@ Its copy was kept as: - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. @@ -9000,21 +10665,21 @@ Its copy was kept as: - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -9024,7 +10689,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. @@ -9033,7 +10698,7 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n elements changed formula. @@ -9042,13 +10707,13 @@ Unfreeze them first (see the list), or just rename the numbering. - - + + Delete numbering Видалити нумерацію - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9058,12 +10723,12 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering @@ -9072,12 +10737,12 @@ Give them another numbering or a fixed name first. - + No sheet follows this numbering - + %n sheets follow this numbering @@ -9086,7 +10751,7 @@ Give them another numbering or a fixed name first. - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9096,80 +10761,80 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) Проєкт QElectroTech (*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. @@ -9190,19 +10855,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - Форма + Форма - Request - Запит + Запит - Reload - Перезавантаження + Перезавантаження @@ -9700,128 +11362,130 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption Завантаження... Ініціалізація кеша колекції елементів - + Loading... Sheets editor splash screen caption Завантаження... Редактор схем - + Loading... Opening files splash screen caption Завантаження... Відкривання файлів - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR Переведіть цей рядок в RTL, якщо ви перекладаєте на мову з письмом справа наліво, інакше, - в LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech Штампи QET - + Company title-blocks title of the company's title block templates collection - + User title blocks title of the user's title block templates collection Штампи користувача - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning Схема - + Electric Normal example text - translate length, not meaning Електрична - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title Налаштування QElectroTech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title Помилка - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9830,145 +11494,202 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption Завантаження... - + Loading... Systray icon splash screen caption Завантаження... піктограмма в треї - + QElectroTech systray menu title QElectroTech - + &Quit &Вихід - + &Hide &Приховати - + &Show &Показати - + &Hide diagram editor &Приховати редактор схем - + &Show diagram editors &Показати редактор схем - + &Hide element editor &Приховати редактор елементів - + &Show element editor &Показати редактор елеиентів - + &Hide title block template editor systray submenu entry &Приховати редактор штампів - + &Show title block template editors systray submenu entry &Показати редактор штампів - + &New diagram editor &Новий редактор схем - + &New element editor &Новий редактор елементів - + Closes QElectroTech Закрити QElectroTech - + Reduces QElectroTech into the systray Згорнути QElectroTech в трей - + Restore QElectroTech Відновити QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors Редактори схем - + Element editors Редактори елементів - + Title block template editors systray menu entry Редактори штампів - + Crash report - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. - + Diagnostic report - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. - + Usage: Використання: - + [options] [file]... @@ -9976,7 +11697,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9993,34 +11714,34 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR Вказує каталог з колекціями елеиентів - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR Вказує каталог з колекцією штампів - + --config-dir=DIR Define configuration directory --config-dir=DIR Вказує каталог конфігурації - + --data-dir=DIR Define data directory - + --lang-dir=DIR Define the language files directory --lang-dir=DIR Вказує каталог з файлами мов @@ -10030,1431 +11751,1525 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + Projects dock title Проєкти - + Collections Колекції - + No modification Немає змін - + Click an action to get back in the changes you made to your diagram Status tip Виберіть дію, щоб повернути зроблені в схемі зміни - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip В цій панелі вказані різні зміни на даному аркуші. При виборі зміни аркуш буде повернутий в той стан, в якому він знаходився відразу після її застосування - + Undo dock title Історія - + &Export E&експорт - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors - + Редактори схем - + Exports the current sheet to another format status bar tip Експортувати цей аркуш в інший фрмат - + Print Друк - + Prints one or more sheet of the current project status bar tip Друк одного або більше аркушів цього проєкту - + Export in pdf Експорт в pdf - + Export one or more sheets of the current project status bar tip підказка в рядку стану Експорт одного чи кількох аркушів цього проєкту - + &Quit &Вихід - + Closes QElectroTech status bar tip Закрити QElectroTech - + Undo Відміна - + Undoes the previous action status bar tip Відмінити останні дії - + Redo Повторити - + Restores the undone action status bar tip Виконати відмінену дію - + Cu&t &Вирізати - + &Copy &Копіювати - + &Paste Вст&авити - + Paste at the original position - - + + Paste element information - + Puts selected elements into the clipboard status bar tip Копіює віділені елементи в буфер обміну - + Copies selected elements status bar tip Копіює виділені елементи - + Pastes elements from the clipboard into the sheet status bar tip Вставляє на лист еементи з буфера обміну - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Reset conductors Відновити провідники - + Reset the conductors path ignoring the user changes status bar tip Перераховує траси провідників, ігнруючи зроблені користувачем зміни - + Automatic creation conductor (s) Tool tip of auto conductor Автоматичне створення провідників - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor Використовувати автоматичне створення провідників коли це можливо - + Automatic disconnection of conductor(s) Tool tip of auto break conductor - + Automatically cut existing conductors when placing an element Status tip of auto break conductor - + Display the grid Показати сітку - + Display or hide the grid of sheet - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + Вимкнено - + View the guides - + Shows or hides the guides - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show Показувати - + Element texts - + Conductor texts - + Text fields - + Текстові поля - + Shapes - + Pictures - + Tables - + Cross-references Перехрестні посилання - + See Display > Show - + Sheet properties Властивості аркуша - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip Редагує властивості аркуша (розміри, інформацію шаблонів, властивості провідників...) - + Project properties Властивості проєкта - + Add a sheet Додати аркуш - - - + + + Delete this sheet Видалити цей аркуш - + Clean project Очистити проєкт - + Export to CSV Експорт в формат CSV - + Add a nomenclature Додати номенклатуру - + Add a summary Додати висновок - + Terminal block manager (DEV) Керування клемними олодками (DEV) - + Launch the terminal block creation plugin Запустити плагін створення клемної колодки - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires Експорт списка імен провідників - + Export the wiring diagram - + Wiring list (database) - + Automatic numbering of terminals - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database Експорт внутрішньої бази даних проєкта - + using tabs Використовувати вкладки - + Shows the various opened projects in tabs status bar tip Відображає різні відкриті проєкти у вкладках - + using windows Використовувати вікна - + Shows the various opened projects in windows status bar tip Відображає різні відкриті проєкти у вікнах - + &Tile &Мозаїка - + Arranges windows in a tile pattern status bar tip Розмістити вікна мозаїкою - + &Cascade &Каскад - + Arranges windows in a cascade pattern status bar tip Розмістити вікна каскадом - + Select Режим виділення - + Allows to select elements status bar tip Дозволяє вибрати елементи - + Move Режим перегляду - + Allows to view the sheet without modifying it status bar tip Дозволяє переглядати аркуші не змінюючи їх - + Next project Наступний проєкт - + Activates the next project status bar tip Акривує наступний проєкт - + Previous project Попередній проєкт - + Activates the previous project status bar tip Активує попередній проєкт - + &New &Новий - + &Open &Відкрити - + &Save &Зберегти - + Save as Зберегти як - - + + &Close &Закрити - + Creates a new project status bar tip Створити новий проєкт - + Opens an existing project status bar tip Відкрити існуюий проєкт - + Closes the current project status bar tip Закрити цей проєкт - + Saves the current project and all its sheets status bar tip Зберегти цей проєкт і всі його аркуші - + Saves the current project with a different file name status bar tip Зберегти цей проєкт під другим ім'ям - + Add a column Додати стопчик - + Remove a column Видалити стопчик - + Add row Add row Додати рядок - + Remove a row Remove row Видалити рядок - + Add a column to the sheet status bar tip Додати стопчик - + Remove a column from the sheet status bar tip Видалити стопчик - + Expands the sheet height status bar tip Збільшує висоту аркуша - + Shrinks the sheet height status bar tip Зменшує висоту аркуша - + Delete Видалити - + Rotate Повернути - + Rotate the group - + Choose texts orientation Вибрати напрямок тексту - + Horizontal mirror - + Vertical mirror - + Find in the panel Знайти в панелі - + Edit the selected item Редагувати вибраний елемент - + Group selected texts Згрупувати вибрані тексти - - + + Group fr: Grouper - + Група - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Removes selected elements from the sheet status bar tip Видалити вибрані елементи - + Rotate selected elements and texts status bar tip Поворот вибраних елементів та текстів - + Rotates the selection as a group around its centre, rather than each element in place status bar tip - + Rotate selected texts to a specific angle status bar tip Повернути вибраний текст на визачений кут - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Find the selected item in the panel status bar tip Шукає вибраний елемент в панелі - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select All Виділити все - + Select none Зняти виділення - + Invert selection Інвертування виділення - + Select all conductors - + Select all text fields - + Selects all elements on the sheet status bar tip Виділяє всі елементи на аркуші - + Deselect all elements on the sheet status bar tip Знімає виділення зі всіх елементів на аркуші - + Inverts selection of elements status bar tip інветує виділення - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Zoom In Збільшити - + Zoom Out Зменшити - + Zoom content Маштабувати вибране - + Fit in view Підігнати розмір - + Reset zoom Відновити маштаб - + Centre on the cursor - + Expand the sheet status bar tip Збільшити аркуш - + Shrinks the sheet status bar tip Зменшити аркуш - + Adjusts the zoom to display all the contents of sheet regardless of context Змінює маштаб для відображення всього, що на аркуші, незалежно від контента - + Adjusts the zoom on exactly the part of the sheet status bar tip Змінює маштаб для відображення тільки частини аркуша - + Restores default zoom level status bar tip Скинути маштаб - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a textfield Додати текстове поле - + Add a picture Додати зображення - + Add a PDF - + Add line Draw line Додати лінію - + Add a rectangle Додати прямокутник - + Add an ellipse Додати еліпс - + Add an arc - + Додати дугу - + Add a polygon Додати ломану лінію - + Add a curve - + Add a fillet - + Add a terminal plan - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet Додати текстове поле на цей аркуш - + Add an image to the current sheet Додати зображенння на цей аркуш - + Adds a PDF page to the current sheet - + Add a line to the current sheet Додати лінію на цей аркуш - + Adds a rectangle on the current sheet Додати прямокутник на цей аркуш - + Add an ellipse to the current sheet Додати еліпс на цей аркуш - + Adds an arc on the current sheet - + Adds a polyline to the current sheet Додати ломану лінію на цей аркуш - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Search / Replace Знайти/замінити - + Navigate to an element - + Quickly search for and select an element in the sheet status bar tip - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + + + + + No + no + + + + + Cancel + cancel + Відміна + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools Інструменти + - Display Вид + - Diagram Схема + - Add Додати + - Depth toolbar title Глибина - + Scripts toolbar title - + &File &Файл - + &Edit &Правка - + &Project П&роект - + Displ&ay &Вид - + Wi&ndows &Вікно - + &Latest files &Нещодавно відкрите - + &Add - + Selection - + Align - + Rows and columns - + Depth Глибина - - + + Scripts - + Display or hide the main toolbar Показати чи приховати головну панель інструментів - + Display or hide the Display toolbar Приховати або показати панель інструментів «Вид» - + Display or hide the Diagram toolbar Приховати або показати панель інструментів «Схема» - + Show or hide the elements panel Приховати або показати панель елементів - + Display or hide the undo list Приховати або показати срисок змін - + Display projects Показати проєкти - - + + Project %1 registered in the directory: %2. Проєкт %1 збережений в каталозі: %2. - + Open a file Відкрити файл - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) Проєкти QElectroTech (*.qet);;Файли XML (*.xml);;Всі файли (*) - - + + Unable to open file message box title Неможливо відкрити файл - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. Файл %1, котрий ви намагаєтеся відкрить, не існує. - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. Файл, котрий ви намагаєтеся відкрити, недоступний для читання і не може бути відкритий. Перевірте права доступа. - + Opening the file read-only message box title Відкривання файлів в режимі "тільки читання" - + The project you try to open does not seem writable. It will be opened read-only. Проєкт, котрий ви намагаєтеся відкрити, недоступний для запису. Він буде відкритий в режимі "тільки читання". - - + + Unable to open project message box title Неможливо відкрити проєкт - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content Файл %1 не є проєктом QElectroTech. Він не може бути відкритим. - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11464,7 +13279,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11474,24 +13289,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11503,23 +13318,23 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted - + Group Група - + %n items put back on the grid @@ -11528,7 +13343,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n items aligned @@ -11537,22 +13352,22 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) @@ -11561,101 +13376,101 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + Edit the element edit element Редагувати елемент - + Edit the text field edit text field Редагувати текстове поле - + Edit the image edit image Редагувати зображення - + Edit conductor edit conductor Редагувати провідник - + Edit the selected object edit selected item Редагувати вибраний об'єкт - + An error occurred while opening file %1. message box content вміст вікна повідомлення Помилка при відкриванні файла %1. - + Activates the project « %1 » Активує проєкт «%1» - + Are you sure you want to delete this sheet? - + Delete the sheets - + Are you sure you want to delete the selected %1 sheets ? - + Delete %1 sheets - - - - - - - + + + + + + + Move the sheets - + Error message box title Помилка - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. @@ -11664,7 +13479,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements for which no definition could be found or which were illegible: their current design has been retained. @@ -11673,7 +13488,7 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). @@ -11682,18 +13497,18 @@ Unbridge and/or remove the levels from the affected terminals so that they can b - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11702,28 +13517,28 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps @@ -11732,12 +13547,12 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11748,53 +13563,53 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden @@ -11803,8 +13618,8 @@ To make a script of it, ask your AI assistant: the button below copies the reque - - + + Texts %1 @@ -12374,7 +14189,7 @@ To make a script of it, ask your AI assistant: the button below copies the reque Element editors - + Редактори елементів @@ -12799,53 +14614,53 @@ please wait while importing... QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path відображуваний заголовок для ProjectView -% 1 - це заголовок проєкта, -% 2 - це шлях до проєкта Проєкт «%1: %2» - + Project %1 displayed title for a title-less project - %1 is the file name Проєкт %1 - + Untitled project displayed title for a project-less, file-less project Проєкт без імені - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [тільки читання] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [змінений] - + Renumber elements - + Renumber elements (%1) - + Modified contact system - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12853,56 +14668,56 @@ Do you wish to continue? - + An error occurred during the template integration. error message Під час інтеграції шаблона виникла помилка. - + Warning message box title Попередження - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? - + Warning message box title Попередження - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>Відкривання поточного аркуша...</b><br/>Створення аркушів</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>Відкривання поточного аркуша...</b><br/>Налаштування перехресних посилань</p> @@ -12928,166 +14743,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title Зберегти поточний шаблон? - + Do you wish to save the template %1? dialog content - %1 is a title block template name Хочете зберегти шаблон %1? - + new_template template name suggestion when duplicating the default one новий_шаблон - + Duplicate a title block template input dialog title Дублювати шаблон штампа - + In order to duplicate this template, please enter a name for its copy input dialog text Щоб дублювати цей шаблон, будьласка, введіть ім'я для його копії - + &New menu entry &Новий - + &Open menu entry &Відкрити - + Open from a file menu entry Відкрити із файла - + &Save menu entry &Зберегти - + Save as menu entry Зберегти як - + Save to a file menu entry Зберегти в файл - + &Quit menu entry &Вихід - + Cu&t menu entry &Вирізати - + &Copy menu entry &Копіювати - + &Paste menu entry &Вставити - + Manage logos menu entry Управління логотипами - + Edit extra information menu entry Редагувати додаткову інформацію - + Zoom In menu entry Збільшити - + Zoom out menu entry Зменшити - + Fit in view menu entry Підігнать розмір - + Reset zoom menu entry Відновити маштаб - + Add a &row menu entry Додати &рядок - + Add a &column menu entry Додати &стопчик - + &Merge cells menu entry &Об'єднання чарунок - + &Split cells menu entry Роз&ділити чарунки - - - - - - - - - - @@ -13097,156 +14902,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors - + Редактори штампів - + &File menu title &Файл - + &Edit menu title &Правка - + Displ&ay menu title &Вид - + Tools toolbar title Інструменти - + Edit toolbar title Правка - + Display toolbar title Вид - + No modification label displayed in the undo list when empty Немає змін - + Undo dock title Історія - + Cell properties dock title Властивості чарунки - + [Changed] window title tag [Змінено] - + [Read only] window title tag [Тільки читання] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - редактор штампів - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title Помилка - + Unable to save the template ‘%1’. message box content - %1 is a title block template name - + Open a title block template File > open dialog window title Відкрити шаблон штампа - + Open a file dialog title Відкрити файл - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension Шаблони штампів QElectroTech (*%1);;Файли XML (*.xml);; Всі файли (*) - + Save template as dialog window title Зберегти шаблон як - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name - + Save as dialog title Зберегти як - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension Шаблони штампів QElectroTech (*%1) - + Edit extra information window title Змінити додаткову інформацію - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. Ви можете використати це поле, щоб вказати автора цього шаблона, його ліцензію чи будь-яку іншу інформацію, яку вважаєте корисною. @@ -13278,10 +15093,10 @@ What do you wish to do ? завантаження %p% (%v з %m) - + + - - + @@ -13428,7 +15243,7 @@ the translated name of this folder could not be read, so its folder name is disp - + @@ -13489,17 +15304,17 @@ the translated name of this folder could not be read, so its folder name is disp змінити розмір аркуша - + Select an image ... Виберіть зображення... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) Файли зображень (*.png *.jpg *.jpeg *.bmp *.svg) - + Unable to load the image. Помилка @@ -13646,8 +15461,8 @@ the translated name of this folder could not be read, so its folder name is disp Вивід - + Text Текст @@ -13699,12 +15514,12 @@ the translated name of this folder could not be read, so its folder name is disp Імпортувати файл в форматі DXF - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more додати номера одного чи кількох провідників @@ -13788,21 +15603,31 @@ Do you want to replace it ? Експортувати в буфер обміну - + Warning: the element has been saved with a more recent version of QElectroTech. Попередження: елементи були збережені за допомогою більш нової версії QElectroTech. - + Add a nomenclature Додати номенклатуру - + Add a summary Додати висновок + + + Add a cable list + + + + + Cable list + + Compilation: @@ -13814,83 +15639,113 @@ Do you want to replace it ? Компіляція : - - + + Generic generic terminal element type Загальний - + Fuse fuse terminal element type Запобіжник - + Sectionable sectional terminal element type Секційний - + Diode diode terminal element type Діод - + Ground ground terminal element type Заземлення - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function Загальний - + Phase phase terminal element function Фаза - + Neutral neutral terminal element function Нейтраль - - + + Digital input - + Digital output - + Analogue input - + Analogue output - + Universal input - + Universal output @@ -14048,22 +15903,22 @@ Do you want to replace it ? Глибина - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> Щоб встановити плагін qet_tb_generator<br>Відвідайте:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Необхідний python версії 3.5 або вище.<br><B><U>Перша установка в Windows</B></U><br>1. При необхідності встановіть python 3.5 чи більш пізню версію<br>Посетите:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U>Оновлення в Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>користувач може запустити в терміналі<br>C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> Щоб встановити плагін qet_tb_generator<br>Відвідайте:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Потрібний Python 3.5 аби вище.<br><br><B><U>Перша установка в Linux</B></U><br>1. Перевірте чи встановлений у вас pip3: pip3 --version<br> Якщо не встановлений, то: sudo apt-get install python3-pip<br>2. Встановіть програму: sudo pip3 install qet_tb_generator<br>3. Запустіть программу: qet_tb_generator<br><br><B><U>Обновлення в Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin Помилка під час запуску плагіна qet_tb_generator @@ -14085,7 +15940,7 @@ Do you want to replace it ? - + Title Назва @@ -14212,45 +16067,45 @@ Do you want to replace it ? - + - + Type Тип - + - + Address - - - - + + + + Annotation Аннотація - - - - + + + + Cross-reference - + Перехресне посилання - - - - + + + + Function Функція @@ -14795,13 +16650,13 @@ Do you want to replace it ? змінити основний напис - + delete %1 undo caption - %1 is a sentence listing the removed content видалити %1 - + Edit the cross reference edite the cross reference Редагувати перехресне посилання @@ -14826,8 +16681,8 @@ Do you want to replace it ? - + Rotate %1 @@ -14843,7 +16698,7 @@ Do you want to replace it ? Створення провідників - + Default layout @@ -15018,8 +16873,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15174,88 +17029,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 Додати %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text Змінити колір тексту - + Rotate a text - + Edit line of a form Змінити лінію фігури - + Edit filling a form Змінити заливку фігури - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text Редагувати текст елементу - + Automatically number an element - + Renumber elements (%1) - + Search and replace - + Script @@ -15309,7 +17164,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet Аркуш @@ -15358,26 +17213,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. Кількість інформації виходить за рамки допустимого відображення в таблицях. Будь ласка, додайте нову, або підправте існуючі таблиці, щоб інформація відображаласть повністю. - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. Кількість інформації виходить за рамки допустимого відображення в таблиці. Будь ласка, додайте нову, або підправте існуючу таблицю, щоб інформація відображаласть повністю. - + Table limitation Обмеження таблиці - + Modify the geometry of a table Змінити геометрію області таблиці @@ -15702,88 +17557,88 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 Виміряти %1 - + a line лінія - + rectangle прямокутник - + an ellipse еліпс - + an arc - + polyline ламана лінія - + a curve - + an shape фігура @@ -15832,6 +17687,14 @@ nothing has been changed. Редагувати прямокутник + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15870,6 +17733,18 @@ nothing has been changed. елемент « %1 » уже існує. Що ви хочете зробири? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + + + RenumberElementsDialog @@ -16433,7 +18308,7 @@ Create your own text using the following variables: &Delete - + &Видалити @@ -16884,28 +18759,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window Автонумерація аркушів - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16934,13 +18819,13 @@ The "Incrementation" field is not used. - + Numbering conductors title window Автонумерація провідників - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16978,13 +18863,41 @@ The other fields are not used. Інші поля не використовуються. - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -17006,12 +18919,12 @@ The other fields are not used. - + New numbering… - + Rename numbering… @@ -19956,7 +21869,7 @@ The other fields are not used. - + Generic Загальний @@ -19981,92 +21894,137 @@ The other fields are not used. Заземлення - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + LED : Індикатор: - + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Function : Функція: - + Move to : Перемістити в: - + Phase Фаза - + Neutral Нейтраль - + Automatic position Автоматичне положення - + Group the terminals Згрупувати виводи - + Ungroup the terminals Розгрупувати виводи - + Bridging the terminals З'єднати виводи - + Unbridge the terminals Роз'єднати виводи - + Properties Властивості - + Name: Ім'я: - + Comment : Аннотація: - + Plant: Установка: - + Location : Локалізація: - + Description Опис - + Independent terminals Незалежні виводи - + Modify terminal strip properties Змініти властивості клемних колодок @@ -20135,12 +22093,12 @@ The other fields are not used. - + Headser : - + Bridge point @@ -20182,7 +22140,7 @@ The other fields are not used. Header text - + Текст заголовка @@ -20202,15 +22160,55 @@ The other fields are not used. Cross-reference + Перехресне посилання + + + + Symbol - + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height - + Preview: @@ -20273,55 +22271,60 @@ The other fields are not used. TerminalStripModel - + Position Положення - + Stage Ярус - + Label Мітка - + Number wire Номер провідника - + Cross-reference Перехресне посилання - + Cable Кабель - + Color / wire number of the cable Колір / номер провідника кабеля - + Type Тип - + Function Функція - + led індикатор + + + Shield + + TerminalStripProjectConfigPage @@ -21447,7 +23450,7 @@ The following variables can be used: CSV files (*.csv) - + Файли csv (*.csv) @@ -21631,32 +23634,42 @@ The following variables can be used: Показати перехрестя - + Label cross reference Мітка перехресного посилання - + Master Головний - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave Пілпорядкований - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21673,115 +23686,141 @@ The following variables can be used: % LM: розташування - + Option display cross Налаштування вd'ідображення перехрестя - + Show the power contacts in the cross Показати силові контакти на перехресті - + Prefix of power contacts : Префікс силових контактів: - + Prefix delayed contacts : Префікс контактів з затримкою: - + Prefix changeover contacts : Префікс контактів перемикання: - + Coil Котушка - + Organ of protection Пристрої зазхисту - + Switch / button Перемикач / кнопка - + Programmable Logic Controller (PLC) - + + Cable + Кабель + + + Footer Під міткою елемнта - + Under the label of the element Під міткою елемента - + Top Вгорі - + Bottom Внизу - + Left Зліва - + Right Зправа - + Text alignment Вирівнювання - + Text field + + + Text: + Текст: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database Експортувати внутрішню базу даних проєкту - + untitled без імені diff --git a/lang/qet_zh.ts b/lang/qet_zh.ts index 3cc12d77f..4d6dc5722 100644 --- a/lang/qet_zh.ts +++ b/lang/qet_zh.ts @@ -1150,6 +1150,22 @@ Note: these options DO NOT allow or block auto numberings, only their update pol + + BatchCommand + + + Move %n cable(s) + Un geste déplace plusieurs lignes à la fois. + + + + + + + Delete + 删除 + + BorderPropertiesWidget @@ -1189,7 +1205,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Format: - + 格式: @@ -1205,16 +1221,1057 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Custom - + 自定义 Landscape - + 横向 Portrait + 纵向 + + + + CableCopy + + + + Paste a cable + + + + + Duplicate a cable + + + + + CableCreateDialog + + + + + Cable + 线缆 + + + + (no type) + + + + + Change the type: %1, %n core(s) + which type this window changes, and how many cores that cable has now + + + + + + + %n recognized core(s) + how many cores the line just crossed + + + + + + + + Search: + + + + + Filter cable types + + + + + Hide types which have fewer cores than this cable + + + + + Hide types which have fewer cores than recognized conductors + + + + + Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. + + + + + A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. + + + + + New entry + + + + + Add a new cable type to the list + + + + + Edit entry + + + + + Edit the cable type selected in the list. + + + + + New cable + + + + + Filter existing cables + + + + + Hide cables which have fewer free cores than recognized conductors + + + + + A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. + + + + + Existing cables + + + + + + Designation + + + + + Plant (=) + 安装 (=) + + + + Location (+) + 位置 (+) + + + + Type + 类型 + + + + Cores + + + + + Plant + 安装 + + + + Location + 位置 + + + + %1 / %2 + + + + + This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. + + + + + Too many cores selected: the type offers only %1, %2 conductors are recognized + + + + + Only %1 free cores, %2 requested + + + + + No cable type available: configure the cable type file in the preferences. + + + + + Choose a cable type. + + + + + Choose an existing cable. + + + + + %1 cores instead of %2: the extra cores stay unplaced. + + + + + %n crossed conductor(s) already bound to another cable + +If you confirm, the other cable will lose these cores. Do you want to continue? + ask before taking cores away from another cable + + + + + + + + Cannot be written + + + + + + Cannot write to the file: +%1 +%2 + + + + + %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? + ask before cores lose the mark they show on the drawing + + + + + + + CableExportDialog + + + Export the cable list as CSV + + + + + Layout + + + + + include headers + 包括表头 + + + + Preview + 预览 + + + + cable_list_ + + + + + Save As... + 另存为... + + + + CSV files (*.csv) + CSV文件 (*.csv) + + + + Error + 错误 + + + + Cannot save the cable list to %1. +%2 + + + + + CableList + + + No. + + + + + Plant (cable) + + + + + Location (cable) + + + + + Label (cable) + + + + + Plant (start) + + + + + Location (start) + + + + + Label (start) + + + + + Sheet (start) + + + + + Plant (end) + + + + + Location (end) + + + + + Label (end) + + + + + Sheet (end) + + + + + Cable type + + + + + Length + + + + + Used cores + + + + + CableListModelPropertiesWidget + + + Edit columns... + + + + + Refresh + + + + + Cable list columns + + + + + CableNumberingDialog + + + + + + + + + + Cable numbering + + + + + This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. + + + + + Axis priority + + + + + Priority to the X axis (horizontal) + + + + + Priority to the Y axis (vertical) + + + + + The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. + + + + + Renumber all cables + + + + + Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. + + + + + Cancel + + + + + The rule is not complete yet: there is still an empty field in it. + + + + + %n cable(s) of this project were entered by hand. + +Do you want to renumber them too? + + + + + + + Yes + Les noms saisis à la main sont remplacés eux aussi. + 是 + + + + No + Les noms saisis à la main sont laissés tels quels. + 否 + + + + Cancel + Ne renumérote rien du tout. + + + + + The rule is not complete yet. + + + + + No cable to renumber in this project. + + + + + All the cables already carry the number that the rule gives them. + + + + + CablePart + + + Yes + Prendre le conducteur à l'autre câble. + 是 + + + + No + Laisser le conducteur à l'autre câble, on ne change rien. + 否 + + + + Cancel + Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. + + + + + + This conductor is already described by another cable. Do you want to assign it to cable %1? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + This conductor is already described by cable %1. Do you want to assign it to cable %2? + Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. + + + + + + Conductor already assigned + Un conducteur ne peut appartenir qu'à un câble. + + + + + Conductors already assigned + Plusieurs conducteurs sont pris en une seule fois. + + + + + + + %n conductors are already described by other cables. Do you want to assign them to cable %1? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. + + + + + + + %n conductors are already described by cable %1. Do you want to assign them to cable %2? + On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. + + + + + + + CablePropertiesDialog + + + Cable + 线缆 + + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + No cable. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + CablePropertiesEditorWidget + + + Unplaced cores: + + + + + Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. + + + + + %1 of %2 cores wired to a conductor + how many cores of this cable are wired + + + + + + + Core %1 + + + + + Core %1 — %2 + + + + + Place this core on the line + + + + + Cable + 线缆 + + + + CablePropertiesWidget + + + Drawing + column header: the drawing shows this field + + + + + + Tick to write this field on the drawing. + tooltip of the tick before each field + + + + + Designation + + + + + Type + 类型 + + + + Choose the type of this cable from the list of cable types… + + + + + Plant (=) + 安装 (=) + + + + Location (+) + 位置 (+) + + + + Length + + + + + Core colors + + + + + The font of the colors of all the cores of this cable, written along the line. + + + + + Text position + + + + + Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. + + + + + Core colors position + + + + + Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. + + + + + X : + + + + + Y : + + + + + %1 pt + + + + + Font, size and style of the core colors. + + + + + Font, size, style and alignment of this text. + + + + + Set for this cable. + + + + + Value defined in the preferences. + + + + + CableQueryWidget + + + Available columns + + + + + Add the selected column + + + + + Remove the selected column + + + + + Move the selected column up + + + + + Move the selected column down + + + + + Table columns + + + + + CableRenumber + + + No project is open. + + + + + This project is read-only: its cables cannot be renumbered. + + + + + No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. + + + + + A cable is not on any sheet of the project: nothing was changed. + + + + + The current rule gives no number here: nothing was changed. + + + + + The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. + + + + + Number %1 is already used by a cable whose name is left as it is: nothing was changed. + + + + + CableTextFormatDialog + + + Core colors + + + + + Text format + + + + + Font: + 字体: + + + + pt + + + + + Size: + + + + + Normal + + + + + Bold + 加粗 + + + + Italic + 斜体 + + + + Bold italic + + + + + Style: + 样式: + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + + Alignment: + 对齐: + + + + 15W1 · H07V-K 3G1.5 + + + + + Preview: + 预览: + + + + Reset + 重置 + + + + CableTypeEntryDialog + + + New entry + + + + + Enter the cable type to add. Fields left empty stay empty in the file. + + + + + How many cores this type has. The dash means the file does not specify. + + + + + The color of each core, separated by a comma and in the order of the cores. + + + + + Save + + + + + Cancel + + + + + Edit entry + + + + + Edit the cable type selected in the list. Fields left empty stay empty in the file. + + + + + No details + + + + + Enter at least one detail to create an entry. + + + + + CableTypeList + + + Designation + + + + + Number of cores + + + + + Core colors + + + + + Cable section + + + + + Sheath color + + + + + No receiver for the cable types file. + + + + + Cannot create the folder %1 for the cable types file. + + + + + + The file contains no header: missing columns. + + + + + This entry no longer exists in the file: it may have been modified in the meantime. + + + + + The file already exists and is not empty. + + + + + ChangeCableCoresCommand + + + Place a cable core + + + + + Remove a core from the line + + + + + Move a cable core + + + + + ChangeCablePropertiesCommand + + + Edit the properties of a cable + + + + + ChangeCableTypeCommand + + + + Change the cable type @@ -1261,13 +2318,13 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor - + Edit conductor properties undo caption 编辑导线属性 - + Edit the properties of several conductors undo caption 编辑多根导线的属性 @@ -1323,7 +2380,7 @@ Note: these options DO NOT allow or block auto numberings, only their update pol Conductor color - + 导线颜色 @@ -1906,7 +2963,7 @@ Continue? Diagram - + Change the depth 修改图层 @@ -2043,6 +3100,22 @@ Continue? x 3 + + DiagramEventAddCable + + + Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit + + + + + Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line + how many conductors the line being drawn already crosses + + + + + DiagramEventAddElement @@ -2054,7 +3127,7 @@ Continue? DiagramEventAddImage - + Click: position at original size. Click-drag: position and resize. Right-click: rotate 90°. Ctrl+wheel: adjust size. @@ -2062,7 +3135,7 @@ Continue? DiagramEventAddPaste - + Click to place the pasted content, Esc or right-click to cancel status bar tip while positioning a paste @@ -2185,224 +3258,254 @@ Continue? DiagramImageItem - + resize - + rotate/skew - + + crop + + + + Click: mode %1 - + + Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel + + + + Drag a corner/edge: resize (Ctrl = from center, Shift = keep proportions) - + Drag a corner: rotate (Shift = 15° steps); drag an edge: skew (Shift = 15° steps); red point: move the rotation center - + -- %1: mode %2 - + Click - + Drag: resize (Shift = keep proportions, Ctrl = from center) - + Drag: rotate (Shift = 15° steps) - + Drag: skew (Shift = 15° steps) - + Drag: move the rotation center - + + Drag: crop (Enter = apply, Escape = cancel) + + + + Resize an image - + Rotate an image - + Skew an image - + Move an image's rotation center - + Edit an image - + Restore an image's proportions - - + + Save image as... - - + + Save original image as... - + PNG image (*.png) - + JPEG image (*.jpg *.jpeg) - + BMP image (*.bmp) - + SVG image (*.svg) SVG 图像 (*.svg) - + All files (*) - + Transparency not preserved - + This format does not support transparency: the image will be saved as it was before the transparent colour was applied. Continue? - + Saving failed - + Unable to save the image to this location. - + image 图片 - + Replace the image... - + Transparent color... - + + Crop on the folio + + + + Crop... - + + Reset crop + + + + Horizontal mirror - + Vertical mirror - + Restore proportions - + + Properties... + + + + Select an image ... 选择图片... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) - + Error 错误 - + Unable to load the image. 无法加载图片。 - + Replace an image - + Horizontal mirror of an image - + Vertical mirror of an image - + Set a transparent color - + Crop an image @@ -2433,107 +3536,139 @@ Hold Shift and drag to move this text on its own DiagramToolbarSettings - + Handle size - + Text grid - + Sheet background color - + Conductor color - + 导线颜色 DiagramView - + In this area you conceive your diagrams by adding elements and conductors between their terminals. You may also add independent texts. "What's this?" tip 在此区域您可以通过向图页添加元件并在它们的端子之间添加导线来设计原理图。您也可以添加独立的文本。 - + Paste Here context menu action 粘贴到此处 - + Multiple paste 多重复制 - + Create a template context menu action 创建一个模板 - + Make a cabinet thumbnail context menu action - + Sheet reference + 图页引用 + + + + %1: %2 - + + Add an image + + + + + Add %n image(s) + + + + + + + Images not added + + + + + These files could not be added: + + + + X: %1 Y: %2 X:%1 Y:%2 - + Connect the selected terminals 连接选定端子 - + Untitled what to display for untitled diagrams 无标题 - + + Remove this core from the line + + + + Registered template 模板已注册 - + The template has been successfully saved as : %1 该模板已成功保存为: %1 - + Error 错误 - + The file could not be written. 该文件无法写入。 - + Choose the new color for this conductor 为该导线选取新颜色 - + Edit conductor properties undo caption 编辑导线属性 @@ -2972,7 +4107,7 @@ Hold Shift and drag to move this text on its own px - + px @@ -3134,7 +4269,7 @@ Hold Shift and drag to move this text on its own Element - + Automatically number an element undo caption 自动为元件编号 @@ -3630,8 +4765,8 @@ Continue? - - + + Type 类型 @@ -3714,8 +4849,8 @@ Continue? - - + + Function 功能 @@ -3747,7 +4882,7 @@ Continue? - + Simple 简单 @@ -3788,19 +4923,19 @@ Continue? - + Switch normally open NO - + Switch normally closed NC - + switch NO/NC @@ -3816,25 +4951,25 @@ Continue? - + Power switch 功率 - + Switch-on delayed 延时接通 - + Switch-off delayed 延时断开 - + Switch-on and off delayed 延时开关 @@ -3860,7 +4995,7 @@ Continue? - + Generic 通用 @@ -3879,164 +5014,189 @@ Continue? Diode 二极管 + + + Anti-parallel diodes + + + + + Resistor + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase 相线 - + Neutral 中性线 - - - - - + + + + + T%1 T%1 - + Other fr: Autre 其他 - + PLC Configuration PLC 配置 - + + + - + - - - - + + Address 地址 - - + + Annotation 注释 - + Cross-reference 交叉引用 - - + + Nb. 数量 - + T1 T1 - + Header font 表头字体 - + Set the font for column headers 配置列表头字体 - + Text font 文本字体 - + Set the text font in the cells 配置单元格中文本字体 - + Show headers on the sheet 在页面上显示表头 - + Show or hide the column headings of the PLC table on the sheet 在页面上显示或隐藏 PLC 表格列标题 - + Jump to %1 after: 在 %1 后换行: - + None 无 - + Line H: 行高: - - + + mm 毫米 - + Ref. 参考 - + Custom column name (blank = default) 列自定义名称(留空 = 默认) - + Visible 可见 - + Paste from the clipboard 从剪贴板粘贴 - - + + Heading font size: %1 %2pt 表头字体:%1 %2pt - - + + Font size: %1 %2pt 文本字体:%1 %2pt - + Column header formatting 列标题字体 - + Cell text font 单元格文本字体 @@ -5037,7 +6197,7 @@ QElectroTech 无法自动判断您导入文件的来源,也无法判断适用 ExportConfigPage - + Export configuration page title 导出 @@ -5419,97 +6579,127 @@ that you create. Text and number inputs are + Filter by label (e.g. Z1) + + + + Move to : 移动到: - + Type : 类型: - + Function : 功能: - + LED : LED : - + Apply displacement 应用移位 - - + + Generic 通用 - + Fuse 熔断器 - + Sectionable 电气隔离装置 - + Diod 二极管 - + Ground 大地 - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + Phase 相线 - + Neutral 中性线 - + Without 不带 - + With 带 - + Modify terminal strip properties 编辑端子排属性 - + The project has no terminal strip: create one with the + button - + Apply or cancel the current changes before moving - + Select the terminals to move in the table - + Move the selected terminals to the chosen terminal block @@ -5596,12 +6786,12 @@ that you create. Text and number inputs are 窗体 - + User Collection Path 用户库路径 - + Path of the Common Collection 通用库路径 @@ -5623,6 +6813,7 @@ that you create. Text and number inputs are + Browse... 浏览... @@ -5643,7 +6834,7 @@ that you create. Text and number inputs are 分钟 - + User Title blocks Path 用户标题栏路径 @@ -5673,48 +6864,48 @@ that you create. Text and number inputs are 用户标题栏目录 - + Elements management 元件管理 - + Highlight freshly integrated elements in the panel 高亮面板中新集成的元件 - + Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below: 每个元件都包含有关其作者、许可协议或您认为在任何领域有用的任何信息。 您可以在此处为新加入元件指定此处字段的默认值: - + Applied to the next launch of QElectroTech 适用于下一次启动QElectroTech - + Here you can define the default appearance of the different texts of QElectroTech 在这里您可以定义 QElectroTech 不同文本的默认外观 - + Grid + Keyboard 网格+键盘 - + Grid: 1 - 30 网格:1 - 30 - + DiagramEditor xGrid 原理图编辑器x网格 - + DiagramEditor yGrid 原理图编辑器y网格 @@ -5898,8 +7089,11 @@ that you create. Text and number inputs are + Not set - hint shown when no material file is configured yet + hint shown when no material file is configured yet +---------- +hint shown when no cable type file is configured yet @@ -5910,412 +7104,516 @@ that you create. Text and number inputs are + Create... - + + Cable type list file + + + + + Directory of the cable types used to define a cable (number of cores, colors, cross-section) + tooltip of the cable type file path field + + + + + Create the cable type list file with its header line + tooltip of the button creating the cable type file with its header line + + + + Languages 语言 - + texts 文本 - + Elements texts 元件文本 - - - + + + Font: 字体: - - + + ° ° - + Length : 长度: - - + + Rotation : 旋转: - + Independent texts 独立文本 - + Other texts 其他文本 - + + Cable texts + + + + + Designation, type, plant, location, length : + + + + + Font of the texts written along the cable line; a cable which has its own keeps it. + + + + + Core colors (all of them) : + + + + + Font of the core colors written along the line; a cable which has its own keeps it. + + + + + Text alignment : + + + + + Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. + + + + + Right aligned + + + + + Centred + + + + + Left aligned + + + + The Grid must be active to see the changes. 网格必须处于活动状态才能看到更改。 - + Grid for texts moved with the mouse - + Fraction of the sheet grid. Hold Ctrl while moving to place freely. - + Keyboard movement: 1 - 30 键盘移动:1 - 30 - + DiagramEditor (key: left / right) xGrid fr: DiagramEditor (touche : gauche / droite) xGrid 原理图编辑器(键:左/右)x网格 - + DiagramEditor (key: up / down) yGrid 原理图编辑器(键:上/下)y网格 - + Keyboard movement with the ALT key: 1 - 9 使用 ALT 键的键盘移动:1 - 9 - + DiagramEditor (key: left / right) xGrid 原理图编辑器(键:左/右)x网格 - + DiagramEditor (key: up / down) yGrid fr: DiagramEditor (touche : haut / bas) yGrid 原理图编辑器(键:上/下)y网格 - + View grid 网格显示 - - + + max: max: - + When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666). - + Check terminal names when saving - + Point-size in diagram-editor: 1 - 5 电路图编辑器的格点大小:1 - 5 - - + + min: min: - + Point-size in element-editor: 1 - 5 元件编辑器的格点大小:1 - 5 - + Editor 编辑 - + Max. parts in Element Editor List 元件编辑器列表的最多部件数量 - + + Bold italic + + + + + Bold + 加粗 + + + + Italic + 斜体 + + + + Normal + + + + Rounding up for 0.5 and more 0.5 及以上的值向上取整 - + Always top rounding 总是向上取整 - + Always rounded down 总是向下取整 - + Rounding up for 0.75 and more 0.75 及以上的值向上取整 - + No rounding 不取整 - + Disabled fr: Désactivée - + 已禁用 - + Enabled by the QET_ENABLE_SCRIPTING environment variable; this setting has no effect while it is set. - + Not set (default: %1) hint shown in the material file field when no file is configured yet - + + Not set (default: %1) + hint shown in the cable type file field when no file is configured yet + + + + General configuration page title 通用 - + System 系统 - + Arabic 阿拉伯语 - + Brazilian 巴西语 - + Catalan 加泰罗尼亚语 - + Czech 捷克语 - + German 德语 - + Danish 丹麦语 - + Greek 希腊语 - + English 英语 - + Spanish 西班牙语 - + French 法语 - + Croatian 克罗地亚语 - + Italian 意大利语 - + Japanese 日语 - + Korean 韩语 - + Polish 波兰语 - + Portuguese 葡萄牙语 - + Romanian 罗马尼亚语 - + Russian 俄语 - + Slovenian 斯洛文尼亚语 - + Dutch 荷兰语 - + Norwegian 挪威语 - + Belgium-Flemish 比利时-佛兰德语 - + Turkish 土耳其语 - + Hungarian 匈牙利语 - + Mongolian 蒙古语 - + Ukrainian 乌克兰语 - + Chinese 汉语 - + Swedish 瑞典语 - + + Cable text font + + + + + Core colors font + + + + Company collection path 企业库路径 - + Company title-blocks 企业标题栏路径 - + User macro path 用户宏路径 - + Folder not found - + The user collection folder: %1 does not exist and could not be created. - + No subfolder - + The user collection: %1 has no subfolder, so there is no prefix to configure. - + Prefix file cannot be read - + Prefix file damaged - + The file %1 is not a valid XML file: %2 - + Fix the file - + Rebuild - + Nothing has been changed yet. “Fix the file”: this window closes without changing anything. Open the file in a text editor at the place shown, fix it, then run this command again. @@ -6324,50 +7622,68 @@ has no subfolder, so there is no prefix to configure. - + File: %1 - + Select the materials list file - - + + + + CSV files (*.csv) - + CSV文件 (*.csv) - + Create the materials list file - + Cannot create - + + Cannot create the file: %1 %2 - + + Select the cable types file + + + + + Create the cable types file + + + + + Cannot be created + + + + Values that are too high might cause the application to crash 太大的值可能会导致应用程序崩溃 - + Experimental feature 实验性功能 - + WARNING: Any setting other than “No rounding” may cause rendering errors in the project, depending on: @@ -6382,6 +7698,343 @@ Any setting other than “No rounding” may cause rendering errors in the proje 3 - 在另一台电脑或屏幕上编辑工程,而其设置与第 1、2 点不同。 + + GenericDevice + + + Left + + + + + Right + + + + + Top + + + + + Bottom + + + + + Cannot read "%1": use one {n}, {zn} or {a-b} per name. + + + + + Cannot read "%1": z does not go with a range. + + + + + "%1" gives no terminal. + + + + + "%1" gives %2 terminals; at most %3 at once. + + + + + At a pitch of 1 grid square the names of neighbouring terminals overlap. + + + + + Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. + + + + + %n terminal(s) without a name. + + + + + + + GenericDeviceInformationPage + + + Information + 信息 + + + + The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. + + + + + Generic device + + + + + e.g. -U1 + + + + + Show the manufacturer reference in the box + + + + + Name: + 名称: + + + + Label: + + + + + Manufacturer: + + + + + Manufacturer reference: + + + + + Description: + + + + + GenericDeviceLayoutPage + + + Layout + + + + + How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. + + + + + Terminals + 端子 + + + + Group every + + + + + no groups + + + + + Leave a gap after every this many terminals + + + + + Mark gaps with a divider + + + + + Line up groups across opposite sides + + + + + Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row + + + + + + + grid squares + + + + + Space between terminals: + + + + + Extra width: + + + + + Extra height: + + + + + Group terminals + + + + + Grouping replaces the gaps you made on the %1 side. Continue? + + + + + GenericDeviceTerminalsPage + + + Terminals + 端子 + + + + Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. + + + + + As a line: + + + + + e.g. L1,L2,L3,,PE + + + + + Name + 名称 + + + + Function + 功能 + + + + Type + 类型 + + + + Add terminal + + + + + Add gap + + + + + Delete + 删除 + + + + Up + 位于上方 + + + + Down + + + + + Number pins 1…n + + + + + Rename every terminal by its pin number, counter-clockwise from the top of the left side + + + + + Paste table + + + + + Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. + + + + + gap + + + + + Generic + 通用 + + + + Inner + + + + + Outer + + + + + This name is used more than once. Fine if the device repeats it, as N or PE often are. + + + + + A name holds a comma or a brace, which a line cannot say: edit this side in the table. + + + + + Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. + + + + + Pasted %n row(s). + + + + + + + Pasted %1 rows; skipped these, which could not be read: %2 + + + + + GenericDeviceWizard + + + Box: %1 × %2 grid squares + + + + + + Generic device + + + GenericPanel @@ -6509,135 +8162,105 @@ Any setting other than “No rounding” may cause rendering errors in the proje GraphicsTablePropertiesEditor - Table properties - 表格属性 + 表格属性 - Display - 显示 + 显示 - Table name - 表名 + 表名 - None 无 - All - 全部 + 全部 - Lines to display : - 显示行数: + 显示行数: - Y : - Y: + Y: - Next table - 下一表格 + 下一表格 - X : - X: + X: - Previous table - 上一表格 + 上一表格 - Previous table : - 上一表格: + 上一表格: - Geometry and lines - 坐标和行数 + 坐标和行数 - Apply geometry to all tables linked to this one - 将坐标应用于链接到此表的所有表格 + 将坐标应用于链接到此表的所有表格 - Fit table to sheet - 使表格适应于页面 + 使表格适应于页面 - TextLabel - 文本标签 + 文本标签 - Header - 表头 + 表头 - - Margin - 边距 + 边距 - Alignment : - 对齐: + 对齐: - - Left - 左 + 左 - - Center - 居中 + 居中 - - Right - 右 + 右 - - Font - 字体 + 字体 - Table - 单元格 + 单元格 - Alignment: - 对齐: + 对齐: - Content - 内容 + 内容 @@ -6755,6 +8378,29 @@ Any setting other than “No rounding” may cause rendering errors in the proje + + ImageDrop + + + not a file + + + + + the file is larger than 10 MB + + + + + the image has too many pixels + + + + + unable to read the image + + + ImagePropertiesWidget @@ -6814,7 +8460,7 @@ Any setting other than “No rounding” may cause rendering errors in the proje Label - + 标签 @@ -6970,76 +8616,48 @@ Any setting other than “No rounding” may cause rendering errors in the proje IndiTextPropertiesWidget - Form - 窗体 + 窗体 - X : - X : + X : - Advanced Editor - 高级编辑器 + 高级编辑器 - Size : - 字号: + 字号: - Angle: - 角度: + 角度: - - - px - px + px - ° - ° + ° - Y : - Y : + Y : - - Width: - - - - - Text width; the text wraps at this width. Auto: no automatic line wrap - - - - - Auto - - - - The contents, the size and the font of the text can not be modified because formatted in html. Please use the advanced editor for this. - 文本的内容、大小和字体不能修改,因为它是html格式的。 + 文本的内容、大小和字体不能修改,因为它是html格式的。 修改请使用高级编辑器。 - Text - 文本 + 文本 - @@ -7047,9 +8665,8 @@ Please use the advanced editor for this. 字体 - Click here to cancel html formatting - 单击此处撤消 html 格式 + 单击此处撤消 html 格式 @@ -7486,7 +9103,7 @@ This setting is in Configure QElectroTech > General > Projects. Print - + 打印 @@ -7503,7 +9120,7 @@ This setting is in Configure QElectroTech > General > Projects. &Cancel - + 取消(&N) @@ -7871,6 +9488,14 @@ Do you still want to link this slave contact? + + MoveCablePartCommand + + + Move a cable + + + MultiPasteDialog @@ -7974,63 +9599,68 @@ Do you still want to link this slave contact? NewDiagramPage - + Sheet 图页 - + Conductor 导线 - + Sheet references 图页引用 - + Cross-references 交叉引用 - + Guides 参考线 - + Set the default automatic numbering rules for new projects: - + Conductors 导线 - + Elements 元件 - + Sheets 图页 - + + Cables + + + + Auto Numbering 自动编号 - + New sheet configuration page title 新建图页 - + New project configuration page title 新建工程 @@ -8160,133 +9790,133 @@ Do you still want to link this slave contact? 0 - - - - - + + + + + number format 1 数字 1 - - - - + + + + number format 01 数字 01 - - - - - + + + + + number format 001 数字 001 - - - - - + + + + + Cyclic (modulo) 循环(取模) - - - - - + + + + + Alphabetical 字母 - - - - - + + + + + Text 文本 - - - - + + + + Sheet no. 图页编号 - - - - + + + + Sheet 图页 - - - - + + + + number format 1 - Sheet 数字 1 - 图页 - - - - + + + + number format 01 - Sheet 数字 01 - 图页 - - - - + + + + number format 001 - Sheet 数字 001 - 图页 - - - - + + + + Location 位置 - - - - + + + + Plant 安装 - - - + + + Element Line 元件行 - - - + + + Element Column 元件列 - - - + + + Element Prefix 元件前缀 @@ -8373,7 +10003,7 @@ Do you still want to link this slave contact? Change a rectangle - + 修改矩形 @@ -8387,12 +10017,12 @@ Do you still want to link this slave contact? PartText - + Move a text 移动文本 - + Edit the text field 修改文本框 @@ -8400,12 +10030,12 @@ Do you still want to link this slave contact? PasteNumberingImport - + Numbering missing from this project - + The pasted elements follow %n numberings that do not exist in this project: %1. Import them? The elements will then receive the next numbers, starting from 1. Otherwise they will be pasted without numbering. @@ -8804,7 +10434,7 @@ Its copy was kept as: PrintConfigPage - + Printing configuration page title 打印 @@ -8818,173 +10448,178 @@ Its copy was kept as: 自动编号 - - + + Conductors 导线 - + No. - + Name 名称 - + Sheet 图页 - + Element 元件 - + Frozen - + Assign a free number… - - + + Give the selected element a number nobody has: it keeps its numbering, only its number changes. - - + + Elements 元件 - - + + Sheets 图页 - + + Cables + + + + Sheet Auto Numbering 图页自动编号 - + Import from another project... - + Reuse the automatic numbering saved in another project - + frozen - + — free — - + no element has this number (deleted or renumbered) - + No element follows this numbering - + %n elements follow this numbering, %1 with a frozen name - + ; %n numbers without an element - + This numbering has several numbers (or one number per sheet): one cannot be chosen by hand. - + Assign a free number - + This element's name is frozen: unfreeze it first. - + No number is free. - + %1 → %2 - + Free number for element “%1” (%2): - - + + Numbering name: - - + + Modify numbering - + %n elements follow this numbering and will change formula and name. - - - - + + + + New numbering - - + + Rename numbering - + The “%1” numbering cannot be modified: %n elements with a frozen name follow it. Unfreeze them first (see the list), or just rename the numbering. @@ -8992,27 +10627,27 @@ Unfreeze them first (see the list), or just rename the numbering. - + %n numberings followed by elements with a frozen name were not replaced. - + %n elements changed formula. - - + + Delete numbering 删除编号格式 - + %n elements follow the “%1” numbering, so it cannot be deleted. Give them another numbering or a fixed name first. @@ -9020,31 +10655,31 @@ Give them another numbering or a fixed name first. - + No sheet names this numbering - + %n sheets name this numbering - + No sheet follows this numbering - + %n sheets follow this numbering - + %n sheets follow the “%1” numbering, so it cannot be deleted. Give them another numbering first. @@ -9052,85 +10687,85 @@ Give them another numbering first. - + Import numbering from a project - + Project QElectroTech (*.qet) QElectroTech工程(*.qet) - - + + Import not possible - + Unable to open %1 - + %1 is not a valid QElectroTech project. - - + + No numbering - - + + This project does not contain any automatic numbering. - + Numbering to import - + Numbering found in %1: - + %1: %2 (already exists) - + Replace numbering with the same name - + Import numberings - + Import complete - + %1 numbering(s) imported, %2 kept unchanged. - + %1 numbering(s) imported. - + Management 管理 @@ -9151,19 +10786,16 @@ Give them another numbering first. ProjectDBModelPropertiesWidget - Form - 窗体 + 窗体 - Request - 请求 + 请求 - Reload - 重新加载 + 重新加载 @@ -9660,127 +11292,129 @@ Do you want to save changes? QETApp - + Loading... Initializing the elements collection cache splash screen caption 加载中...正在初始化元件库缓存 - + Loading... Sheets editor splash screen caption 加载中...原理图编辑器 - + Loading... Opening files splash screen caption 加载中...正在打开文件 - + LTR Translate this string to RTL if you are translating to a Right-to-Left language, else translate to LTR LTR - + QET title blocks title of the title block templates collection provided by QElectroTech QET标题栏 - + Company title-blocks title of the company's title block templates collection 企业标题栏 - + User title blocks title of the user's title block templates collection 用户标题栏 - + Q Single-letter example text - translate length, not meaning Q - + QET Small example text - translate length, not meaning QET - + Diagram Normal example text - translate length, not meaning 原理图 - + Electric Normal example text - translate length, not meaning 电气 - + QElectroTech Long example text - translate length, not meaning QElectroTech - + Configure QElectroTech window title 配置QElectroTech - + + Save settings as... dialog title - - + + QElectroTech settings (*.conf) file dialog filter - - + + Error message box title 错误 - + Cannot save the settings to “%1”. - + Load settings... dialog title - + “%1” is not a settings file saved by QElectroTech. - + + Load settings message box title - + These settings will replace your current ones, except the window layout and the list of recent files. QElectroTech will then close. Start it again to use the new settings. @@ -9789,146 +11423,203 @@ Do you want to continue? - + + Toolbars, keyboard shortcuts, mouse and trackpad gestures + + + + + Defaults for new projects: folio, title block, wires, numbering + + + + + All other settings: appearance, grid, language... + + + + + Folders of the collections + + + + + Settings to save: + + + + + The folders of your collections are saved only when every part is ticked. + + + + + These settings will replace your current ones for: +%1 +All your other settings are kept. + + + + + QElectroTech will then close. Start it again to use the new settings. + + + + + Projects already open keep their own defaults. + + + + + Do you want to continue? + + + + + The settings are loaded. They are used for the next new project. + + + + Loading... splash screen caption 加载中... - + Loading... Systray icon splash screen caption 加载中...系统托盘图标 - + QElectroTech systray menu title QElectroTech - + &Quit 退出(&Q) - + &Hide 隐藏(&H) - + &Show 恢复(&R) - + &Hide diagram editor 隐藏所有原理图编辑器(&H) - + &Show diagram editors 恢复所有原理图编辑器(&R) - + &Hide element editor 隐藏所有元件编辑器(&H) - + &Show element editor 恢复所有元件编辑器(&R) - + &Hide title block template editor systray submenu entry 隐藏所有标题栏编辑器(&H) - + &Show title block template editors systray submenu entry 恢复所有标题栏编辑器(&R) - + &New diagram editor 新建原理图编辑器(&N) - + &New element editor 新建元件编辑器(&N) - + Closes QElectroTech 关闭 QElectroTech 应用程序 - + Reduces QElectroTech into the systray 减少系统托盘中的 QElectroTech - + Restore QElectroTech 恢复 QElectroTech - + QElectroTech systray icon tooltip QElectroTech - + Diagram editors 原理图编辑器 - + Element editors 元件编辑器 - + Title block template editors systray menu entry 标题栏编辑器 - + Crash report 崩溃报告 - + QElectroTech did not close correctly the last time it was run. Here are the last messages logged before it closed — you can save them to include them in a bug report. 上次运行时 QElectroTech 未正常关闭。 以下是关闭前记录的最后日志消息——您可将其保存并附在缺陷报告中。 - + Diagnostic report 诊断报告 - + This contains the latest log entries for this session. Please check the contents before attaching it to a public bug report. 这包含本次会话的最新日志条目。请在附加到公开缺陷报告前检查内容。 - + Usage: 用法: - + [options] [file]... @@ -9937,7 +11628,7 @@ Here are the last messages logged before it closed — you can save them to incl - + QElectroTech, an application to design electric diagrams. Available options: @@ -9954,35 +11645,35 @@ Available options: - + --common-elements-dir=DIR Define the elements collection directory --common-elements-dir=DIR 设置元件库文件夹 - + --common-tbt-dir=DIR Define the title block templates collection directory --common-tbt-dir=DIR 设置标题栏模板库文件夹 - + --config-dir=DIR Define configuration directory --config-dir=DIR 设置配置文件夹 - + --data-dir=DIR Define data directory --data-dir=DIR 设置数据文件夹 - + --lang-dir=DIR Define the language files directory --lang-dir=DIR 设置包含语言文件的文件夹 @@ -9992,1435 +11683,1529 @@ Available options: QETDiagramEditor - - - + + + QElectroTech window title QElectroTech - + QElectroTech status bar message QElectroTech - + No modification 无修改 - + Click an action to get back in the changes you made to your diagram Status tip 单击一个动作以回退你对原理图的更改 - + This panel lists the various changes applied to the current sheet. Clicking a change gets the sheet back to its state right after it was applied. "What's this" tip 此面板列出了对当前图页执行的不同操作。 单击一个动作可以让您返回到应用该操作后的图页状态。 - + Undo dock title 撤销 - + &Export 导出(&X) - + Print 打印 - + &Quit 退出(&Q) - + Undo 撤销 - + Redo 恢复 - + Cu&t 剪切(&X) - + &Copy 复制(&C) - + &Paste 粘贴(&V) - + Reset conductors 重置导线 - + Automatic creation conductor (s) Tool tip of auto conductor 自动连接导线 - + Using the automatic creation of conductor (s) when possible Status tip of auto conductor 尽可能使用自动连接导线 - + Display the grid 显示网格 - + Display or hide the grid of sheet 显示或隐藏页面网格 - + Sheet properties 图页属性 - + Project properties 工程属性 - + Add a sheet 添加图页 - - - + + + Delete this sheet 删除图页 - + Clean project 清理工程 - + Add a summary 添加摘要 - + Launch the terminal block creation plugin 启动端子排创建插件 - + using tabs 使用选项卡 - + using windows 使用窗口 - + Select 选择模式 - + Move 查看模式 - + &Tile 平铺(&T) - + &Cascade 层叠(&C) - + Next project 下一个工程 - + Previous project 上一个工程 - + &New 新建(&N) - + &Open 打开(&O) - + &Save 保存(&S) - + Save as 另存为 - - + + &Close 关闭(&C) - + Creates a new project status bar tip 创建一个新工程 - + Opens an existing project status bar tip 打开现有工程 - + Closes the current project status bar tip 关闭当前工程 - + Saves the current project and all its sheets status bar tip 保存当前工程及其所有图页 - + Saves the current project with a different file name status bar tip 用另一个文件名保存当前工程 - + Add a column 添加列 - + Remove a column 删除列 - + Add a column to the sheet status bar tip 在图页中添加一列 - + Remove a column from the sheet status bar tip 从图页中删除一列 - + Expands the sheet height status bar tip 放大页面高度 - + Shrinks the sheet height status bar tip 缩小页面高度 - + Delete 删除 - + Rotate 旋转 - + Choose texts orientation 旋转文本 - + Find in the panel 在面板中查找 - + Edit the selected item 编辑所选对象 - + Search / Replace 查找/替换 + - Depth toolbar title 图层 - + Group 群组 - + Add a nomenclature 添加物料清单 - + Group selected texts 将选定的文本分组 - + Removes selected elements from the sheet status bar tip 从图页中删除选定的元件 - + Rotate selected elements and texts status bar tip 旋转选定的元件和文本 - + Rotate selected texts to a specific angle status bar tip 以特定角度旋转选定的文本 - + Find the selected item in the panel status bar tip 在面板中查找选择的元件 - + Select All 全选 - + Select none 取消全选 - + Invert selection 反选 - + Selects all elements on the sheet status bar tip 选择图页中的所有元件 - + Deselect all elements on the sheet status bar tip 取消图页所有元件的选择 - + Inverts selection of elements status bar tip 取消选中的元件并选择未选中的元件 - + Zoom In 放大 - + Zoom Out 缩小 - + Zoom content 放大焦点内容 - + Fit in view 自适应缩放 - + Reset zoom 无缩放 - + Expand the sheet status bar tip 放大页面 - + Shrinks the sheet status bar tip 缩小页面 - + Adjusts the zoom to display all the contents of sheet regardless of context 调整缩放以显示页面的所有内容 - + Adjusts the zoom on exactly the part of the sheet status bar tip 调整缩放以完全适应页面大小 - + Restores default zoom level status bar tip 恢复默认缩放 - + Add a textfield 添加文本框 - + Add a picture 添加图片 - + Add a rectangle 添加矩形 - + Add an ellipse 添加椭圆 - + Add a polygon 添加多段线 - + Exports the current sheet to another format status bar tip 将当前图页导出为另一种格式 - + Prints one or more sheet of the current project status bar tip 打印当前工程的一页或多页 - + Closes QElectroTech status bar tip 关闭 QElectroTech 应用程序 - + Undoes the previous action status bar tip 撤销上一个动作 - + Projects dock title 工程 - + Collections 库 - + Restores the undone action status bar tip 恢复被撤销的动作 - + Puts selected elements into the clipboard status bar tip 将所选元件剪切到剪贴板 - + Copies selected elements status bar tip 将所选元件复制到剪贴板 - + Pastes elements from the clipboard into the sheet status bar tip 将剪贴板元件放在图页上 - + Add row Add row 添加行 - + Remove a row Remove row 删除行 - + Add line Draw line 添加直线 - + Reset the conductors path ignoring the user changes status bar tip 忽略修改,重新计算导线路径 - + Edits the properties of the sheet (size, title block information, conductor properties...) status bar tip 编辑图页属性(尺寸、标题栏信息、导线属性等) - + Shows the various opened projects in windows status bar tip 在窗口中显示打开的不同工程 - + Shows the various opened projects in tabs status bar tip 在选项卡中显示打开的不同工程 - + Allows to select elements status bar tip 允许您选择元件 - + Allows to view the sheet without modifying it status bar tip 允许您查看图页但不能修改它 - + Arranges windows in a tile pattern status bar tip 平铺窗口 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - - - + + + + + + + + + + + + Diagram editors 原理图编辑器 - + Export in pdf 导出为 PDF - + Export one or more sheets of the current project status bar tip 导出当前工程的一个或多个图页 - + Paste at the original position - - + + Paste element information - + Places the clipboard's items at their original position and moves the cursor to that point status bar tip - + Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + &Duplicate - + Copies the selection, offset by the configured spacing status bar tip - + Configure duplication... - + Choose the spacing and direction used by Duplicate status bar tip - + Automatic disconnection of conductor(s) Tool tip of auto break conductor 导线自动断开 - + Automatically cut existing conductors when placing an element Status tip of auto break conductor 放置元件时自动切断现有导线 - + Text grid - + Snap grid for texts moved with the mouse. Hold Ctrl while moving to place freely. - + Disabled - + 已禁用 - + View the guides 显示参考线 - + Shows or hides the guides 显示或隐藏参考线 - + Keep headers visible - + Keeps the sheet's column numbers and row letters visible at the edge of the view - + Show cell boundaries - + Draws the boundaries of the sheet's columns and rows on the diagram, on screen only - + Show 显示 - + Element texts - + Conductor texts - + Text fields - + 文本框 - + Shapes - + Pictures - + Tables - + Cross-references 交叉引用 - + See Display > Show - + Export to CSV 导出为 CSV 格式 - + Terminal block manager (DEV) 端子排管理器 (DEV) - + + Add a cable list + + + + + Export the cable list to CSV format + + + + Export the list of names of wires 导出导线名称列表 - + Export the wiring diagram 导出接线表 - + Wiring list (database) - + Automatic numbering of terminals 端子自动编号 - - - + + Cable numbering + + + + + Shows the cable numbering rule of the project and renumbers its cables with it + + + + + + Reload element drawings - + Redraws each placed element from its current definition, without having to close and reopen the project (action cannot be undone) - + Run a script... - + Runs a JavaScript script on the current project (see qet.* in the script for the available API) - + Record a macro - + Records what you do on the project, for an AI assistant to make a script of; click again to stop - + Manage scripts… - + Write a script and make it a button with an icon - + Open the scripts folder - + Every .js file in this folder that starts with a // ==QETScript== header becomes a button - + Export the internal project database 导出内部工程数据库 - + Arranges windows in a cascade pattern status bar tip 层叠窗口 - + Activates the next project status bar tip 激活下一个工程 - + Activates the previous project status bar tip 激活上一个工程 - + Rotate the group 旋转组 - + Horizontal mirror - + Vertical mirror - - + + Group fr: Grouper - + 群组 - + Ungroup - + Insert the last element - + Places the last inserted element again status bar tip - + Search for a command… - + Type part of a command name and press Enter to launch it status bar tip - + Insert an element… - + Opens the element picker at the cursor position status bar tip - + Shortcut bar - + Opens, at the cursor position, the commands useful for the selection, and the element picker status bar tip - + Repeat the last command - + Relaunches the last drawing tool or element insertion (Enter on the sheet) status bar tip - + Rotates the selection as a group around its centre, rather than each element in place status bar tip 将所选对象作为一个整体围绕中心旋转,而不是每个元件原地旋转 - + Flips the selected elements from left to right status bar tip - + Flips the selected elements from top to bottom status bar tip - + Groups the selected elements, texts, shapes and images: they are selected, moved and copied together status bar tip - + Breaks up the selected groups status bar tip - + Align to grid - + Puts the selected elements, images and texts back on the grid status bar tip - + Align left - + Aligns the left edges of the selected items status bar tip - + Centre horizontally - + Aligns the selected items on one vertical line, by their origin point for elements status bar tip - + Align right - + Aligns the right edges of the selected items status bar tip - + Align top - + Aligns the top edges of the selected items status bar tip - + Centre vertically - + Aligns the selected items on one horizontal line, by their origin point for elements status bar tip - + Align bottom - + Aligns the bottom edges of the selected items status bar tip - + Select all conductors - + Select all text fields - + Selects all conductors on the sheet, deselects the rest status bar tip - + Selects all text fields on the sheet, deselects the rest status bar tip - + Centre on the cursor - + Centres the sheet on the point under the mouse cursor, without changing the zoom status bar tip - + Add a PDF 添加 PDF - + Add an arc - + 添加圆弧 - + Add a curve - + Add a fillet - + Add a terminal plan 添加端子排 - + + Add a generic device… + + + + + Draw a cable + + + + Adds a text field to the current sheet 将文本框添加到当前页面 - + Add an image to the current sheet 将图像添加到当前页面 - + Adds a PDF page to the current sheet 在当前图纸中添加 PDF 页面 - + Add a line to the current sheet 在当前页面中添加一条线 - + Adds a rectangle on the current sheet 在当前页面添加一个矩形 - + Add an ellipse to the current sheet 在当前页面添加一个椭圆 - + Adds an arc on the current sheet - + Adds a polyline to the current sheet 在当前图页添加多段线 - + Adds a Bézier curve to the current sheet - + Rounds the corner between two lines of the current sheet - + Adds a terminal plan to the current sheet 在当前图页添加端子排 - + + Makes a box symbol with terminals on any side and places it on the current sheet + + + + + Draws the main line of a cable: every conductor crossed becomes one of its cores + + + + Navigate to an element 跳转到元件 - + Quickly search for and select an element in the sheet status bar tip 快速搜索并选中图纸中的元件 - + + Numbering + + + + + Lists + + + + + Automatic numbering + window title + + + + + No automatic cable numbering is defined. + shown when a project has no cable numbering rule + + + + + Do you want to define one now? + +You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. + ask whether a cable numbering rule should be defined now + + + + + Yes + yes + 是 + + + + No + no + 否 + + + + Cancel + cancel + + + + + Edit the cable + edit cable + + + + Remembered after a restart + - Tools 工具 + - Display 显示 + - Diagram 原理图 + - Add 添加 - + Scripts toolbar title - + &File 文件(&F) - + &Edit 编辑(&E) - + &Project 工程(&P) - + Displ&ay 显示(&D) - + Wi&ndows 窗口(&W) - + &Latest files 最近打开(&R) - + &Add - + Selection - + Align - + Rows and columns - + Depth 图层 - - + + Scripts - + Display or hide the main toolbar 是否显示主工具栏 - + Display or hide the Display toolbar 是否显示显示工具栏 - + Display or hide the Diagram toolbar 是否显示原理图工具栏 - + Show or hide the elements panel 是否显示工程面板 - + Display or hide the undo list 是否显示撤销列表 - + Display projects 显示工程 - - + + Project %1 registered in the directory: %2. 工程 %1 保存在目录中:%2。 - + Open a file 打开文件 - + QElectroTech project(*.qet);;XML Files (*.xml);;All files (*) QElectroTech 工程 (*.qet);;XML 文件 (*.xml);;所有文件 (*) - - + + Unable to open file message box title 无法打开文件 - + It appears the %1 file which you are trying to open does not exist or does not exist anymore. 您尝试打开的文件 %1 似乎不存在或不再存在。 - + The file you try to open does not seem readable and can not be opened. Please check the file permissions. 您尝试打开的文件似乎不可读。 因此不可能打开它。 请检查文件权限。 - + Opening the file read-only message box title 以只读方式打开工程 - + The project you try to open does not seem writable. It will be opened read-only. 您尝试打开的工程似乎不可写。 因此它将以只读模式打开。 - - + + Unable to open project message box title 无法打开工程 - + The file %1 does not appear to be a QElectroTech project file. Thus it cannot be opened. message box content 文件 %1 看起来不是 QElectroTech 工程文件。 因此无法打开。 - + %n font descriptions written in a foreign or corrupted format have been restored. They will be rewritten in a stable format the next time the project is saved. message box content @@ -11428,7 +13213,7 @@ Hold Ctrl while moving to place freely. - + %n font descriptions could not be read; the default font will be used for these texts. message box content @@ -11436,24 +13221,24 @@ Hold Ctrl while moving to place freely. - + Project fonts message box title 项目字体 - + Sheet %1: %2 - + Conductors not loaded message box title - + %n conductors could not be joined to their terminals and were not loaded. The element's definition in the project was probably replaced by another one with different terminals. If you save the project, these conductors will disappear from the file. Close it without saving to keep the file as it is. @@ -11463,180 +13248,180 @@ If you save the project, these conductors will disappear from the file. Close it - + Unable to delete the terminal 不能删除端子 - + The deletion cannot be performed because the selection contains one or more terminals that are bridged and/or belong to a multi-level terminal. Unbridge and/or remove the levels from the affected terminals so that they can be deleted 无法执行删除操作,因为所选对象包含一个或多个已桥接或属于多层端子的端子。 请解除桥接或移除相关端子的层级,以便将其删除。 - + %n items put back on the grid - + %n items aligned - + The selection is already on the grid - + Select at least two unlocked elements, images, texts, shapes or groups - + The selection is already aligned, to the nearest grid step - + (%n locked objects left in place) - + Edit the element edit element 编辑元件 - + Edit the text field edit text field 编辑文本框 - + Edit the image edit image 编辑图片 - + Edit conductor edit conductor 编辑导线 - + Edit the selected object edit selected item 编辑所选对象 - + An error occurred while opening file %1. message box content 打开文件 %1 时出错。 - + Activates the project « %1 » 激活工程《%1》 - + Are you sure you want to delete this sheet? 你确定你要删除这个图页吗? - + Delete the sheets 删除图页 - + Are you sure you want to delete the selected %1 sheets ? 你确定你要删除所选的图页 %1 吗? - + Delete %1 sheets 删除 %1 个图纸 - - - - - - - + + + + + + + Move the sheets 移动图纸 - + Error message box title 错误 - + Repeat: insert "%1" - + Repeat: %1 - + sheet %1 - + %n elements redrawn. - + %n elements for which no definition could be found or which were illegible: their current design has been retained. - + %n elements not redrawn: their size, grip point or terminals have changed (a terminal was added, removed or moved). - + To update them, they must be deleted then reinserted. Warning: this operation removes the conductors already connected to these elements, which will need to be redrawn. - - + + Run a script - + Scripts are disabled. A script runs with your permissions: it can read and modify the open project and write files. Only run scripts whose origin you know. @@ -11645,40 +13430,40 @@ Enable scripts? This setting can be changed in Configure QElectroTech > Gener - + JavaScript scripts (*.js);;All files (*) - + Ignored: %1 - - + + Stop - + Stop recording the macro - + ● Recording: %n steps - + Macro recorded - + “%1”: %n steps. To make a script of it, ask your AI assistant: the button below copies the request, just paste it into its window. @@ -11687,61 +13472,61 @@ To make a script of it, ask your AI assistant: the button below copies the reque - + &Copy the request for the assistant - + &Open the folder - + Request copied: paste it into the assistant's window - + Close the assistant's connection for the rest of the session - + Live mode: assistant connected - + Live mode: waiting for an assistant - - + + Assistant - + Ask before running a script the assistant wrote - + Live mode: %1 %2 at %3 - + %n kinds of items hidden - - + + Texts %1 @@ -12724,52 +14509,52 @@ the conditions are not valid QETProject - + Project « %1 : %2» displayed title for a ProjectView - %1 is the project title, -%2 is the project path 工程《%1 : %2》 - + Project %1 displayed title for a title-less project - %1 is the file name 工程 %1 - + Untitled project displayed title for a project-less, file-less project 未命名工程 - + %1 [read-only] displayed title for a read-only project - %1 is a displayable title %1 [只读] - + %1 [modified] displayed title for a modified project - %1 is a displayable title %1 [已修改] - + Renumber elements - + Renumber elements (%1) - + Modified contact system 触点系统已修改 - + The new element defines slave contact groups. Existing slave elements will not be automatically assigned. You will need to link the slaves manually and assign the contact groups. @@ -12780,19 +14565,19 @@ Do you wish to continue? 是否继续? - + An error occurred during the template integration. error message 模板集成期间发生错误。 - + Warning message box title 警告 - + This document appears to have been saved with version %1 which is later than your version ! You are currently using QElectroTech in version %2 @@ -12801,7 +14586,7 @@ You are currently using QElectroTech in version %2 您当前使用的是版本 %2 的 QElectroTech - + . It is then possible that the opening of all or part of this document fails. What do you wish to do ? @@ -12810,32 +14595,32 @@ What do you wish to do ? 你想如何处理? - + Warning message box title 警告 - + The project you are trying to open is partially compatible with your version %1 of QElectroTech. 您尝试打开的工程与您的 QElectroTech %1 版本部分兼容。 - + In order to make it fully compatible please open this same project with version 0.8, or 0.80 of QElectroTech and save the project and open it again with this version. What do you wish to do ? 为了使其完全兼容,请使用 QElectroTech 的 0.8 或 0.80 版本打开同一个工程并保存该工程,然后使用此版本再次打开它。 你想如何处理? - + <p align="center"><b>Opening the project ...</b><br/>Creation of sheets</p> <p align="center"><b>正在打开当前工程...</b><br/>正在创建图页</p> - + <p align="center"><b>Opening the project ...</b><br/>Setting up cross references</p> <p align="center"><b>打开当前工程...</b><br/>设置交叉引用</p> @@ -12861,166 +14646,156 @@ What do you wish to do ? QETTitleBlockTemplateEditor - + Save current template? dialog title 保存当前模板? - + Do you wish to save the template %1? dialog content - %1 is a title block template name 您要保存模板 %1 吗? - + new_template template name suggestion when duplicating the default one 新模板 - + Duplicate a title block template input dialog title 复制标题栏模板 - + In order to duplicate this template, please enter a name for its copy input dialog text 要复制此模板,请为其副本输入所需的名称 - + &New menu entry 新建(&N) - + &Open menu entry 打开(&O) - + Open from a file menu entry 从文件打开 - + &Save menu entry 保存(&S) - + Save as menu entry 另存为 - + Save to a file menu entry 保存到文件 - + &Quit menu entry 退出(&Q) - + Cu&t menu entry 剪切(&X) - + &Copy menu entry 复制(&C) - + &Paste menu entry 粘贴(&V) - + Manage logos menu entry 管理标识 - + Edit extra information menu entry 编辑附加信息 - + Zoom In menu entry 放大 - + Zoom out menu entry 缩小 - + Fit in view menu entry 自适应缩放 - + Reset zoom menu entry 无缩放 - + Add a &row menu entry 添加行(&H) - + Add a &column menu entry 添加列(&L) - + &Merge cells menu entry 合并单元格(&M) - + &Split cells menu entry 拆分单元格(&S) - - - - - - - - - - @@ -13030,156 +14805,166 @@ What do you wish to do ? + + + + + + + + + + Title block template editors 标题栏模板编辑器 - + &File menu title 文件(&F) - + &Edit menu title 编辑(&E) - + Displ&ay menu title 显示(&D) - + Tools toolbar title 工具 - + Edit toolbar title 编辑 - + Display toolbar title 显示 - + No modification label displayed in the undo list when empty 撤销修改 - + Undo dock title 撤销 - + Cell properties dock title 单元格属性 - + [Changed] window title tag [修改] - + [Read only] window title tag [只读] - + %1 %2 part of the window title - %1 is the filepath or template name, %2 is the [Changed] or [Read only] tag %1 %2 - + QElectroTech - Title block template editor titleblock template editor: base window title QElectroTech - 标题栏模板编辑器 - + %1 - %2 window title: %1 is the base window title, %2 is a template name %1 - %2 - - + + Error message box title 错误 - + Unable to save the template ‘%1’. message box content - %1 is a title block template name 无法保存模板“%1”。 - + Open a title block template File > open dialog window title 打开模板 - + Open a file dialog title 打开文件 - + QElectroTech title block templates (*%1);;XML files (*.xml);; All files (*) filetypes allowed when opening a title block template file - %1 is the .titleblock extension QElectroTech 标题栏模板(*%1);;XML文件 (*.xml);;所有文件 (*) - + Save template as dialog window title 将模板另存为 - + The name ‘%1’ is invalid: it must not contain the following characters: \ / : * ? " < > | message box content - %1 is the rejected template name 名称“%1”无效:不得包含以下字符:\ / : * ? " < > | - + Save as dialog title 另存为 - + QElectroTech title block templates (*%1) filetypes allowed when saving a title block template file - %1 is the .titleblock extension QElectroTech 标题栏模板 (*%1) - + Edit extra information window title 编辑附加信息 - + You can use this field to specify the authors of this template, its license, or any other information you may find useful. 您可以使用此输入框来说明标题栏的作者、许可协议或您认为有用的任何信息。 @@ -13219,7 +15004,7 @@ What do you wish to do ? 元件图形 - + delete %1 undo caption - %1 is a sentence listing the removed content 删除 %1 @@ -13285,7 +15070,7 @@ What do you wish to do ? - + Title 标题 @@ -13295,18 +15080,18 @@ What do you wish to do ? 日期 - + Select an image ... 选择图片... - + Image Files (*.png *.jpg *.jpeg *.bmp *.svg) 图片文件 (*.png *.jpg *.jpeg *.bmp *.svg) - + @@ -13315,7 +15100,7 @@ What do you wish to do ? 错误 - + Unable to load the image. 无法加载图片。 @@ -13447,8 +15232,8 @@ What do you wish to do ? 端子 - + Text 文本 @@ -13661,7 +15446,7 @@ What do you wish to do ? 图层 - + Warning: the element has been saved with a more recent version of QElectroTech. 警告:元件已在更高版本的 QElectroTech 中保存。 @@ -13832,7 +15617,7 @@ What do you wish to do ? 编辑多个元件信息 - + Edit the cross reference edite the cross reference 编辑交叉引用 @@ -13932,12 +15717,12 @@ the translated name of this folder could not be read, so its folder name is disp 库 - + This group cannot be moved: the position of one of its elements is locked. - + Add %n conductors add a numbers of conductor one or more @@ -14003,8 +15788,8 @@ the translated name of this folder could not be read, so its folder name is disp - + Rotate %1 @@ -14186,45 +15971,45 @@ Do you want to replace it ? - + - + Type 类型 - + - + Address 地址 - - - - + + + + Annotation 注释 - - - - + + + + Cross-reference 交叉引用 - - - - + + + + Function 功能 @@ -14559,45 +16344,55 @@ Do you want to replace it ? 生成导线 - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>Requires python 3.5 or above.<br><B><U> First install on Windows</B></U><br>1. Install, if required, python 3.5 or above<br> Visit :<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> Update on Windows</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>user could launch in a terminal this script in this directory<br> C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts <br> 要安装插件 qet_tb_generator<br>请访问:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br>需要python 3.5或更高版本。<br><B><U>首此在Windows上安装</B></U><br>1. 如果需要,请安装 python 3.5 或更高版本<br>访问:<br><a href='https://www.python.org/downloads/'>python.org</a><br>2. pip install qet_tb_generator<br><B><U> 在 Windows 上更新</B></U><br>python -m pip install --upgrade qet_tb_generator<br>>>用户可以在终端中启动此目录的脚本<br>C:\users\XXXX\AppData\Local\Programs\Python\Python36-32\Scripts<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U> First install on macOSX</B></U><br>1. Install, if required, python 3.11 bundle only, <a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 Run Profile.command script<br>because program use hardcoded PATH for localise qet-tb-generator plugin <br> Visit :<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> Update on macOSX</B></U><br> pip3 install --upgrade qet_tb_generator<br> 要安装插件 qet_tb_generator<br>请访问:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><B><U>首此在macOSX上安装:</B></U><br>1. 如果需要,仅安装python 3.11 捆绑包即可,<a href='https://www.python.org/ftp/python/3.11.2/python-3.11.2-macos11.pkg'>python-3.11.2-macos11.pkg</a><br>2 运行 Profile.command 脚本<br>因为程序使用硬编码路径来定位 qet-tb-generator 插件 <br> 请访问:<br><a href='https://qelectrotech.org/forum/viewtopic.php?pid=5674#p5674'>howto</a><br>2. pip3 install qet_tb_generator<br><B><U> 在 macOSX 上更新:</B></U><br> pip3 install --upgrade qet_tb_generator<br> - + To install the plugin qet_tb_generator<br>Visit :<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>Requires python 3.5 or above.<br><br><B><U> First install on Linux</B></U><br>1. check you have pip3 installed: pip3 --version<br>If not install with: sudo apt-get install python3-pip<br>2. Install the program: sudo pip3 install qet_tb_generator<br>3. Run the program: qet_tb_generator<br><br><B><U> Update on Linux</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> 要安装插件 qet_tb_generator<br>请访问:<br><a href='https://pypi.python.org/pypi/qet-tb-generator'>qet-tb-generator</a><br><br>需要 python 3.5 或更高版本。<br><br><B><U>首次在Linux 上安装</B></U><br>1. 检查您是否已安装 pip3:pip3 --version<br>如果未安装:sudo apt-get install python3-pip<br>2. 安装程序:sudo pip3 install qet_tb_generator<br>3. 运行程序:qet_tb_generator<br><br><B><U>在 Linux 上更新</B></U><br>sudo pip3 install --upgrade qet_tb_generator<br> - + Error launching qet_tb_generator plugin 启动 qet_tb_generator 插件时出错 - + Add a nomenclature 添加物料清单 - + Add a summary 添加摘要 + + + Add a cable list + + + + + Cable list + + Paste 粘贴 - + + - - + @@ -14638,83 +16433,113 @@ Do you want to replace it ? 对接线端子 %1 进行排序 - - + + Generic generic terminal element type 通用 - + Fuse fuse terminal element type 熔断器 - + Sectionable sectional terminal element type 电气隔离装置 - + Diode diode terminal element type 二极管 - + Ground ground terminal element type 大地 - - + + Anti-parallel diodes + anti-parallel diodes terminal element type + + + + + Resistor + resistor terminal element type + + + + + Varistor + varistor terminal element type + + + + + Test socket + test socket terminal element type + + + + + Diode (reversed) + reversed diode terminal element type + + + + + Generic generic terminal element function 通用 - + Phase phase terminal element function 相线 - + Neutral neutral terminal element function 中线性 - - + + Digital input 数字输入 - + Digital output 数字输出 - + Analogue input 模拟输入 - + Analogue output 模拟输出 - + Universal input 通用输入 - + Universal output 通用输出 @@ -14749,7 +16574,7 @@ Do you want to replace it ? 导入 dxf 文件 - + Default layout 默认布局 @@ -14924,8 +16749,8 @@ Please download it by following the link and unzip it in the installation folder - - + + Move %1 @@ -15060,88 +16885,88 @@ Please download it by following the link and unzip it in the installation folder - + insert %1 添加 %1 - + Edit the conductor properties - + Edit a text - + Change the color of a text 修改文本颜色 - + Rotate a text - + Edit line of a form 修改图形的线条 - + Edit filling a form 修改图形的填充 - + Rotate a shape - - + + Change the shape of %1 - + Close/Open %1 - + Resize an image - + Rotate an image - + Edit element text 修改元件文本 - + Automatically number an element 自动为元件编号 - + Renumber elements (%1) - + Search and replace - + Script @@ -15191,7 +17016,7 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ - + Sheet 图页 @@ -15240,26 +17065,26 @@ To enable it: Configure QElectroTech > General > Projects, or set the QET_ QetGraphicsTableItem - + The information to be displayed is greater than the maximum quantity that can be displayed by the tables. Please add a new table or adjust the existing tables to show all information. 要显示的信息大于表格可以显示的最大数量。 请添加新表或调整现有表以显示所有信息。 - + The information to be displayed is greater than the maximum quantity that can be displayed by the table. Please add a new table or adjust the existing table to display all information. 要显示的信息大于表格可以显示的最大数量。 请添加新表或调整现有表以显示所有信息。 - + Table limitation 表格限制 - + Modify the geometry of a table 修改表格的大小 @@ -15318,12 +17143,12 @@ nothing has been changed. QetShapeItem - + an shape 图形 - + a line 直线 @@ -15594,78 +17419,78 @@ nothing has been changed. - + Resize %1 - + Rotate %1 - + Skew %1 - + Move the rotation center - + Round the corners of %1 - + Change the angle of an arc - + Change the curve of an arc - - + + Change the shape of %1 - + Change the curvature of %1 - + Edit %1 修改 %1 - + rectangle 矩形 - + an ellipse 椭圆 - + an arc - + polyline 多段线 - + a curve @@ -15714,6 +17539,14 @@ nothing has been changed. 修改矩形 + + RemoveCableCommand + + + Delete a cable + + + RenameDialog @@ -15752,6 +17585,16 @@ nothing has been changed. 元件《%1》已存在。你想让我做什么 ? + + RenumberCablesCommand + + + Renumber %n cable(s) + + + + + RenumberElementsDialog @@ -16308,7 +18151,7 @@ Create your own text using the following variables: &Delete - + 删除(&D) @@ -16759,28 +18602,38 @@ qet.addText(f, "Text", 40, 40); - + Move this variable up - + Move this variable down - + Delete this variable - + + Delete the rule + + + + + Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. + + + + Sheet Auto Numbering title window 图页自动编号 - + This is where you can define how the new sheets will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16808,7 +18661,7 @@ The "Incrementation" field is not used. - + This is where you can define how new conductors will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16846,13 +18699,41 @@ The other fields are not used. 其他字段未使用。 - + + Cable Auto Numbering + title window + + + + + This is where you can define how new cables will be numbered. +-A numbering is composed of a minimum variable. +-You can add or delete a dialing variable through the - and + buttons. +-A numbering variable includes: a type, a value and an increment. + +-the "Digit 1", "Digit 01" and "Digit 001" types represent a numeric type defined in the "Value" field, which is incremented to each new cable by the value of the "Increment" field. +-"Digit 01" and "Digit 001", are respectively represented on the diagram by two and three digits minimum. +If the digit defined in the Value field has fewer digits than the chosen type, it will be preceded by one or two 0s in order to respect its type. + +-Type "Text", represents a fixed text. +The "Increment" field is not used. + +-The "Sheet no." type represents the number of the current sheet. +The other fields are not used. + +-The "Sheet" type represents the name of the current sheet. +The other fields are not used. + help dialog about the cable autonumerotation + + + + Element Auto Numbering title window 元件自动编号 - + This is where you can define how new elements will be numbered. -A numbering is composed of a minimum variable. -You can add or delete a dialing variable through the - and + buttons. @@ -16890,17 +18771,17 @@ The other fields are not used. 其他字段未使用。 - + New numbering… - + Rename numbering… - + Numbering conductors title window 导线自动编号 @@ -17345,7 +19226,7 @@ The other fields are not used. Action - + 操作 @@ -19806,42 +21687,42 @@ The other fields are not used. 布置 - + Bridging the terminals 桥接端子 - + Unbridge the terminals 断开端子桥接 - + Properties 属性 - + Name: 名称: - + Comment : 注释: - + Description 描述 - + Plant: 安装: - + Location : 位置: @@ -19851,13 +21732,13 @@ The other fields are not used. 类型: - + Ungroup the terminals 取消端子分组 - + Generic 通用 @@ -19897,22 +21778,67 @@ The other fields are not used. 大地 - + + Anti-parallel diodes + + + + + Resistor + + + + + Varistor + + + + + Test socket + + + + + Diode (reversed) + + + + + Cable : + + + + + Name of the cable of the selected terminals + + + + + Set the cable name to all the selected terminals + + + + + Apply the cable to the selection + + + + Move to : 移动到: - + Phase 相线 - + Neutral 中性线 - + Automatic position 自动定位 @@ -19922,12 +21848,12 @@ The other fields are not used. 层数: - + Group the terminals 组合接线端子 - + Function : 功能: @@ -19942,17 +21868,17 @@ The other fields are not used. 带 - + LED : LED: - + Independent terminals 独立接线端子 - + Modify terminal strip properties 编辑端子排属性 @@ -20021,12 +21947,12 @@ The other fields are not used. 第0层端子: - + Headser : 端块: - + Bridge point 桥接点 @@ -20091,12 +22017,52 @@ The other fields are not used. 交叉引用 - + + Symbol + + + + + Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. + + + + + Connection length + + + + + Length of the connections drawn above and under each terminal. 0 disable the connections. + + + + + Cable: wires / cable / end + + + + + Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. + + + + + Length of the cable. + + + + + Length of the wires after the cable. + + + + Height 高度 - + Preview: 预览: @@ -20159,52 +22125,57 @@ The other fields are not used. TerminalStripModel - + Position 位置 - + Stage 层数 - + Label 标签 - + Cross-reference 交叉引用 - + Cable 线缆 - + Color / wire number of the cable 线缆颜色/数量 - + Type 类型 - + Function 功能 - + led LED - + + Shield + + + + Number wire 导线编号 @@ -21519,32 +23490,42 @@ The following variables can be used: 显示十字线 - + Label cross reference 交叉引用标签 - + Master 主元件 - + %f-%l%c %f-%l%c - + + Choose the font and size of the cable cross-reference text + + + + + Font… + + + + Slave 从元件 - + (%f-%l%c) (%f-%l%c) - + Create your own text using the following variables: %f: the sheet number %F: the sheet label @@ -21561,115 +23542,141 @@ The following variables can be used: %LM:位置 - + Option display cross 十字线选项 - + Show the power contacts in the cross 在十字线显示功率触点 - + Prefix of power contacts : 功率触点前缀: - + Prefix delayed contacts : 延时触点前缀: - + Prefix changeover contacts : 转换触点前缀: - + Coil 线圈 - + Organ of protection 保护装置 - + Switch / button 开关/按钮 - + Programmable Logic Controller (PLC) 可编程逻辑控制器(PLC) - + + Cable + 线缆 + + + Footer 在页面底部 - + Under the label of the element 元件标签下方 - + Top 上方 - + Bottom 下方 - + Left 左侧 - + Right 右侧 - + Text alignment 文本对齐 - + Text field + + + Text: + 文本: + + + + Font and size: those of the cable texts + + + + + + Font and size: %1, %2 pt + + + + + Font of the cross-reference text + + projectDataBase - + The query is empty. - + Only a single SELECT query is allowed (the ';' character may only appear at the very end). - + Only read-only queries (SELECT or WITH ... SELECT) are allowed. - + Export the internal project database 导出内部工程数据库 - + untitled 未命名 From cce75f43061807cac996f6c564310ccd49f886eb Mon Sep 17 00:00:00 2001 From: Laurent Trinques Date: Sun, 11 Oct 2026 17:02:34 +0200 Subject: [PATCH 12/12] Update Brazilian translations files --- lang/qet_pt_BR.ts | 1137 +++++++++++++++++++++++---------------------- 1 file changed, 583 insertions(+), 554 deletions(-) diff --git a/lang/qet_pt_BR.ts b/lang/qet_pt_BR.ts index d781d5195..949b3e926 100644 --- a/lang/qet_pt_BR.ts +++ b/lang/qet_pt_BR.ts @@ -627,17 +627,17 @@ Change the start angle of an arc - + Alterar o ângulo inicial de um arco Change the angle of an arc - Alterar o ângulo de um arco + Alterar o ângulo de um arco Change an arc - + Alterar um arco @@ -1043,12 +1043,12 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Terminals with no label, designation, manufacturer or manufacturer reference - + Terminais sem legenda, designação, fabricante ou referência do fabricante Leave out junctions - + Omitir as junções @@ -1167,15 +1167,15 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Move %n cable(s) Un geste déplace plusieurs lignes à la fois. - - - + + Mover %n cabo + Mover %n cabos Delete - Excluir + Excluir @@ -1217,12 +1217,12 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Format: - Formato: + Formato: Sets the columns and rows so the sheet, title block included, has the size of this paper format, at 96 dots per inch like the PDF export. - + Ajusta as colunas e as linhas para que a página, incluindo o carimbo, tenha o tamanho deste formato de papel, a 96 pontos por polegada como a exportação em PDF. @@ -1233,17 +1233,17 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Custom - Personalizados + Personalizado Landscape - Paisagem + Paisagem Portrait - Retrato + Retrato @@ -1252,12 +1252,12 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Paste a cable - + Colar um cabo Duplicate a cable - + Duplicar um cabo @@ -1267,182 +1267,182 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua Cable - Cabo + Cabo (no type) - + (sem tipo) Change the type: %1, %n core(s) which type this window changes, and how many cores that cable has now - - - + + Alterar o tipo: %1, %n veia + Alterar o tipo: %1, %n veias %n recognized core(s) how many cores the line just crossed - - - + + %n veia reconhecida + %n veias reconhecidas Search: - Pesquisar: + Pesquisar: Filter cable types - + Filtrar os tipos de cabo Hide types which have fewer cores than this cable - + Ocultar os tipos que têm menos veias que este cabo Hide types which have fewer cores than recognized conductors - + Ocultar os tipos que têm menos veias que os condutores reconhecidos Uncheck to also see the types which have fewer cores: taking them makes the cores beyond their number leave the cable. - + Desmarque para ver também os tipos que têm menos veias: ao escolhê-los, as veias além do seu número saem do cabo. A struck through line is a type which has fewer cores than recognized conductors: it cannot carry this cable. - + Uma linha riscada é um tipo que tem menos veias que os condutores reconhecidos: ele não pode transportar este cabo. New entry - Nova entrada + Nova entrada Add a new cable type to the list - + Adicionar um novo tipo de cabo à lista Edit entry - + Editar a entrada Edit the cable type selected in the list. - + Editar o tipo de cabo selecionado na lista. New cable - + Novo cabo Filter existing cables - + Filtrar os cabos existentes Hide cables which have fewer free cores than recognized conductors - + Ocultar os cabos que têm menos veias livres que os condutores reconhecidos A struck through line is a cable which has fewer free cores than recognized conductors: it cannot receive them. - + Uma linha riscada é um cabo que tem menos veias livres que os condutores reconhecidos: ele não pode recebê-los. Existing cables - + Cabos existentes Designation - + Designação Plant (=) - Instalação (=) + Instalação (=) Location (+) - Localização (+) + Localização (+) Type - Tipo + Tipo Cores - + Veias Plant - Instalação + Instalação Location - + Localização %1 / %2 - + %1 / %2 This type has fewer cores than this cable: %1 instead of %2. The cores beyond %1 leave the cable and their marks disappear from the drawing. - + Este tipo tem menos veias que este cabo: %1 em vez de %2. As veias além de %1 saem do cabo e as suas marcas desaparecem do desenho. Too many cores selected: the type offers only %1, %2 conductors are recognized - + Veias demais selecionadas: o tipo oferece apenas %1, e %2 condutores foram reconhecidos Only %1 free cores, %2 requested - + Apenas %1 veias livres, %2 solicitadas No cable type available: configure the cable type file in the preferences. - + Nenhum tipo de cabo disponível: configure o arquivo de tipos de cabo nas preferências. Choose a cable type. - + Escolha um tipo de cabo. Choose an existing cable. - + Escolha um cabo existente. %1 cores instead of %2: the extra cores stay unplaced. - + %1 veias em vez de %2: as veias extras permanecem sem posição. @@ -1450,16 +1450,20 @@ Nota: Estas opções NÃO permitem ou bloqueiam a autonumeração, apenas a sua If you confirm, the other cable will lose these cores. Do you want to continue? ask before taking cores away from another cable - - - + + %n condutor atravessado já está ligado a outro cabo + +Se você confirmar, o outro cabo perderá essa veia. Deseja continuar? + %n condutores atravessados já estão ligados a outro cabo + +Se você confirmar, o outro cabo perderá essas veias. Deseja continuar? Cannot be written - + Não foi possível gravar @@ -1467,7 +1471,7 @@ If you confirm, the other cable will lose these cores. Do you want to continue?< Cannot write to the file: %1 %2 - Não foi possível gravar no arquivo: + Não foi possível gravar no arquivo: %1 %2 @@ -1475,9 +1479,9 @@ If you confirm, the other cable will lose these cores. Do you want to continue?< %n core(s) of this cable bound to a conductor. With the chosen type, they leave this cable and their mark disappears from the drawing. Continue? ask before cores lose the mark they show on the drawing - - - + + %n veia deste cabo está ligada a um condutor. Com o tipo escolhido, ela sai deste cabo e a sua marca desaparece do desenho. Continuar? + %n veias deste cabo estão ligadas a um condutor. Com o tipo escolhido, elas saem deste cabo e as suas marcas desaparecem do desenho. Continuar? @@ -1486,48 +1490,49 @@ If you confirm, the other cable will lose these cores. Do you want to continue?< Export the cable list as CSV - + Exportar a lista de cabos em CSV Layout - + Layout include headers - incluir cabeçalhos + incluir cabeçalhos Preview - Visualização + Visualização cable_list_ - + lista_de_cabos_ Save As... - Salvar como... + Salvar como... CSV files (*.csv) - + Arquivos CSV (*.csv) Error - Erro + Erro Cannot save the cable list to %1. %2 - + Não foi possível salvar a lista de cabos em %1. +%2 @@ -1535,77 +1540,77 @@ If you confirm, the other cable will lose these cores. Do you want to continue?< No. - N.º + N.º Plant (cable) - + Instalação (cabo) Location (cable) - + Localização (cabo) Label (cable) - + Legenda (cabo) Plant (start) - + Instalação (início) Location (start) - + Localização (início) Label (start) - + Legenda (início) Sheet (start) - + Página (início) Plant (end) - + Instalação (fim) Location (end) - + Localização (fim) Label (end) - + Legenda (fim) Sheet (end) - + Página (fim) Cable type - + Tipo de cabo Length - Comprimento + Comprimento Used cores - + Veias utilizadas @@ -1613,17 +1618,17 @@ If you confirm, the other cable will lose these cores. Do you want to continue?< Edit columns... - + Editar colunas... Refresh - + Atualizar Cable list columns - + Colunas da lista de cabos @@ -1638,95 +1643,99 @@ If you confirm, the other cable will lose these cores. Do you want to continue?< Cable numbering - + Numeração dos cabos This window shows the automatic numbering rule for the cables of this project and edits it. A rule changed here is the one the project keeps: it is written into the project when you apply it. - + Esta janela mostra a regra de numeração automática dos cabos deste projeto e permite editá-la. Uma regra alterada aqui é a que o projeto mantém: ela é gravada no projeto quando você a aplica. Axis priority - + Prioridade dos eixos Priority to the X axis (horizontal) - + Prioridade ao eixo X (horizontal) Priority to the Y axis (vertical) - + Prioridade ao eixo Y (vertical) The chosen axis decides the order in which the cables are renumbered: X numbers them from left to right, Y numbers them from top to bottom. - + O eixo escolhido decide a ordem em que os cabos são renumerados: X os numera da esquerda para a direita, Y os numera de cima para baixo. Renumber all cables - + Renumerar todos os cabos Sets the number of each cable of the project again from the rule, starting at the beginning: a number left missing after a cable is deleted is filled in this way. - + Define novamente o número de cada cabo do projeto a partir da regra, desde o início: um número que ficou faltando após a exclusão de um cabo é preenchido dessa forma. Cancel - Cancelar + Cancelar The rule is not complete yet: there is still an empty field in it. - + A regra ainda não está completa: ainda há um campo vazio nela. %n cable(s) of this project were entered by hand. Do you want to renumber them too? - - - + + %n cabo deste projeto foi inserido manualmente. + +Deseja renumerá-lo também? + %n cabos deste projeto foram inseridos manualmente. + +Deseja renumerá-los também? Yes Les noms saisis à la main sont remplacés eux aussi. - Sim + Sim No Les noms saisis à la main sont laissés tels quels. - Não + Não Cancel Ne renumérote rien du tout. - Cancelar + Cancelar The rule is not complete yet. - + A regra ainda não está completa. No cable to renumber in this project. - + Nenhum cabo para renumerar neste projeto. All the cables already carry the number that the rule gives them. - + Todos os cabos já têm o número que a regra lhes atribui. @@ -1735,66 +1744,66 @@ Do you want to renumber them too? Yes Prendre le conducteur à l'autre câble. - Sim + Sim No Laisser le conducteur à l'autre câble, on ne change rien. - Não + Não Cancel Annuler le geste entier : rien n'est écrit, la ligne et ses couleurs reviennent où elles étaient. - Cancelar + Cancelar This conductor is already described by another cable. Do you want to assign it to cable %1? Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. - + Este condutor já é descrito por outro cabo. Deseja atribuí-lo ao cabo %1? This conductor is already described by cable %1. Do you want to assign it to cable %2? Un conducteur ne peut appartenir qu'à un câble : on demande avant de le prendre à l'autre. - + Este condutor já é descrito pelo cabo %1. Deseja atribuí-lo ao cabo %2? Conductor already assigned Un conducteur ne peut appartenir qu'à un câble. - + Condutor já atribuído Conductors already assigned Plusieurs conducteurs sont pris en une seule fois. - - - + + Condutores já atribuídos + Condutores já atribuídos %n conductors are already described by other cables. Do you want to assign them to cable %1? On prend plusieurs conducteurs à la fois : on demande avant de les prendre aux autres câbles. - - - + + %n condutor já é descrito por outro cabo. Deseja atribuí-lo ao cabo %1? + %n condutores já são descritos por outros cabos. Deseja atribuí-los ao cabo %1? %n conductors are already described by cable %1. Do you want to assign them to cable %2? On prend plusieurs conducteurs à la fois : on demande avant de les prendre à l'autre câble. - - - + + %n condutor já é descrito pelo cabo %1. Deseja atribuí-lo ao cabo %2? + %n condutores já são descritos pelo cabo %1. Deseja atribuí-los ao cabo %2? @@ -1803,46 +1812,46 @@ Do you want to renumber them too? Cable - Cabo + Cabo Unplaced cores: - + Veias sem posição: Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. - + Clique duas vezes em uma veia para colocá-la na linha: a linha segue o mouse e um clique a deixa onde você apontou. No cable. - + Nenhum cabo. %1 of %2 cores wired to a conductor how many cores of this cable are wired - - - + + %1 de %2 veia ligada a um condutor + %1 de %2 veias ligadas a um condutor Core %1 - + Veia %1 Core %1 — %2 - + Veia %1 — %2 Place this core on the line - + Colocar esta veia na linha @@ -1850,41 +1859,41 @@ Do you want to renumber them too? Unplaced cores: - + Veias sem posição: Double-click a core to place it on the line: the line follows the mouse and a click leaves it where you aimed. - + Clique duas vezes em uma veia para colocá-la na linha: a linha segue o mouse e um clique a deixa onde você apontou. %1 of %2 cores wired to a conductor how many cores of this cable are wired - - - + + %1 de %2 veia ligada a um condutor + %1 de %2 veias ligadas a um condutor Core %1 - + Veia %1 Core %1 — %2 - + Veia %1 — %2 Place this core on the line - + Colocar esta veia na linha Cable - Cabo + Cabo @@ -1893,109 +1902,109 @@ Do you want to renumber them too? Drawing column header: the drawing shows this field - + Desenho Tick to write this field on the drawing. tooltip of the tick before each field - + Marque para escrever este campo no desenho. Designation - + Designação Type - Tipo + Tipo Choose the type of this cable from the list of cable types… - + Escolha o tipo deste cabo na lista de tipos de cabo… Plant (=) - Instalação (=) + Instalação (=) Location (+) - Localização (+) + Localização (+) Length - Comprimento + Comprimento Core colors - + Cores das veias The font of the colors of all the cores of this cable, written along the line. - + A fonte das cores de todas as veias deste cabo, escritas ao longo da linha. Text position - + Posição do texto Shifts all the cable text: plant, location and designation on one side, type and length on the other. The line, the slashes and the wiring stay in place. 10 px make one grid cell. - + Desloca todo o texto do cabo: instalação, localização e designação de um lado, tipo e comprimento do outro. A linha, as barras e a ligação permanecem no lugar. 10 px equivalem a uma célula da grade. Core colors position - + Posição das cores das veias Shifts the core colors relative to their slashes. The slashes, the entries and the wiring stay in place. 10 px make one grid cell. - + Desloca as cores das veias em relação às suas barras. As barras, as entradas e a ligação permanecem no lugar. 10 px equivalem a uma célula da grade. X : - X: + X: Y : - Y: + Y: %1 pt - + %1 pt Font, size and style of the core colors. - + Fonte, tamanho e estilo das cores das veias. Font, size, style and alignment of this text. - + Fonte, tamanho, estilo e alinhamento deste texto. Set for this cable. - + Definido para este cabo. Value defined in the preferences. - + Valor definido nas preferências. @@ -2003,32 +2012,32 @@ Do you want to renumber them too? Available columns - + Colunas disponíveis Add the selected column - + Adicionar a coluna selecionada Remove the selected column - + Remover a coluna selecionada Move the selected column up - + Mover a coluna selecionada para cima Move the selected column down - + Mover a coluna selecionada para baixo Table columns - + Colunas da tabela @@ -2036,37 +2045,37 @@ Do you want to renumber them too? No project is open. - + Nenhum projeto está aberto. This project is read-only: its cables cannot be renumbered. - + Este projeto é somente leitura: seus cabos não podem ser renumerados. No cable numbering rule is defined for this project. Define one in this window before renumbering its cables. - + Nenhuma regra de numeração de cabos está definida para este projeto. Defina uma nesta janela antes de renumerar seus cabos. A cable is not on any sheet of the project: nothing was changed. - + Um cabo não está em nenhuma página do projeto: nada foi alterado. The current rule gives no number here: nothing was changed. - + A regra atual não fornece nenhum número aqui: nada foi alterado. The current rule gives the same number (%1) twice: it must count to renumber a whole project. Nothing was changed. - + A regra atual fornece o mesmo número (%1) duas vezes: ela precisa contar para renumerar um projeto inteiro. Nada foi alterado. Number %1 is already used by a cable whose name is left as it is: nothing was changed. - + O número %1 já é usado por um cabo cujo nome foi mantido como está: nada foi alterado. @@ -2074,87 +2083,87 @@ Do you want to renumber them too? Core colors - + Cores das veias Text format - + Formato do texto Font: - Fonte: + Fonte: pt - + pt Size: - + Tamanho: Normal - Normal + Normal Bold - Texto em negrito + Negrito Italic - Texto em itálico + Itálico Bold italic - + Negrito itálico Style: - Estilo: + Estilo: Right aligned - + Alinhado à direita Centred - + Centralizado Left aligned - + Alinhado à esquerda Alignment: - Alinhamento: + Alinhamento: 15W1 · H07V-K 3G1.5 - + 15W1 · H07V-K 3G1.5 Preview: - Visualização : + Visualização: Reset - Redefinir + Redefinir @@ -2162,52 +2171,52 @@ Do you want to renumber them too? New entry - Nova entrada + Nova entrada Enter the cable type to add. Fields left empty stay empty in the file. - + Informe o tipo de cabo a adicionar. Os campos deixados vazios permanecem vazios no arquivo. How many cores this type has. The dash means the file does not specify. - + Quantas veias este tipo tem. O traço significa que o arquivo não especifica. The color of each core, separated by a comma and in the order of the cores. - + A cor de cada veia, separadas por vírgula e na ordem das veias. Save - Salvar + Salvar Cancel - Cancelar + Cancelar Edit entry - + Editar a entrada Edit the cable type selected in the list. Fields left empty stay empty in the file. - + Edite o tipo de cabo selecionado na lista. Os campos deixados vazios permanecem vazios no arquivo. No details - + Sem detalhes Enter at least one detail to create an entry. - + Informe pelo menos um detalhe para criar uma entrada. @@ -2215,53 +2224,53 @@ Do you want to renumber them too? Designation - + Designação Number of cores - + Número de veias Core colors - + Cores das veias Cable section - + Seção do cabo Sheath color - + Cor da capa No receiver for the cable types file. - + Nenhum receptor para o arquivo de tipos de cabo. Cannot create the folder %1 for the cable types file. - + Não foi possível criar a pasta %1 para o arquivo de tipos de cabo. The file contains no header: missing columns. - + O arquivo não contém cabeçalho: colunas ausentes. This entry no longer exists in the file: it may have been modified in the meantime. - + Esta entrada não existe mais no arquivo: ela pode ter sido modificada nesse meio tempo. The file already exists and is not empty. - O arquivo já existe e não está vazio. + O arquivo já existe e não está vazio. @@ -2269,17 +2278,17 @@ Do you want to renumber them too? Place a cable core - + Colocar uma veia do cabo Remove a core from the line - + Remover uma veia da linha Move a cable core - + Mover uma veia do cabo @@ -2287,7 +2296,7 @@ Do you want to renumber them too? Edit the properties of a cable - + Editar as propriedades de um cabo @@ -2296,7 +2305,7 @@ Do you want to renumber them too? Change the cable type - + Alterar o tipo de cabo @@ -2960,7 +2969,7 @@ Continuar? Customize window title - + Personalizar @@ -3103,17 +3112,17 @@ Continuar? x 0.25 - + x 0,25 x 0.5 - + x 0,5 x 0.75 - + x 0,75 @@ -3136,15 +3145,15 @@ Continuar? Left click: place the cable start; drag or second click: finish; right click: cancel; Esc: quit - + Clique esquerdo: posicionar o início do cabo; arrastar ou segundo clique: concluir; clique direito: cancelar; Esc: sair Left click or release: finish the line (%n core(s) recognized; always horizontal or vertical); right click: cancel the line how many conductors the line being drawn already crosses - - - + + Clique esquerdo ou soltar: concluir a linha (%n veia reconhecida; sempre horizontal ou vertical); clique direito: cancelar a linha + Clique esquerdo ou soltar: concluir a linha (%n veias reconhecidas; sempre horizontal ou vertical); clique direito: cancelar a linha @@ -3302,7 +3311,7 @@ Continuar? crop - + recortar @@ -3312,7 +3321,7 @@ Continuar? Crop: drag the handles or the frame -- Enter, double-click or click elsewhere: apply; Escape: cancel - + Recortar: arraste as alças ou a moldura -- Enter, clique duplo ou clique em outro lugar: aplicar; Escape: cancelar @@ -3357,7 +3366,7 @@ Continuar? Drag: crop (Enter = apply, Escape = cancel) - + Arrastar: recortar (Enter = aplicar, Escape = cancelar) @@ -3464,7 +3473,7 @@ Continuar? Crop on the folio - + Recortar na página @@ -3474,7 +3483,7 @@ Continuar? Reset crop - + Redefinir o recorte @@ -3494,7 +3503,7 @@ Continuar? Properties... - + Propriedades... @@ -3571,22 +3580,22 @@ Hold Shift and drag to move this text on its own Handle size - + Tamanho das alças Text grid - Grade dos textos + Grade dos textos Sheet background color - Cor de fundo da página + Cor de fundo da página Conductor color - Cor do condutor + Cor do condutor @@ -3628,30 +3637,30 @@ Hold Shift and drag to move this text on its own %1: %2 - + %1: %2 Add an image - + Adicionar uma imagem Add %n image(s) - - - + + Adicionar %n imagem + Adicionar %n imagens Images not added - + Imagens não adicionadas These files could not be added: - + Não foi possível adicionar estes arquivos: @@ -3672,7 +3681,7 @@ Hold Shift and drag to move this text on its own Remove this core from the line - + Remover esta veia da linha @@ -4136,12 +4145,12 @@ Hold Shift and drag to move this text on its own Auto - + Automático px - px + px @@ -5059,27 +5068,27 @@ Continuar? Anti-parallel diodes - + Diodos antiparalelos Resistor - + Resistor Varistor - + Varistor Test socket - + Tomada de teste Diode (reversed) - + Diodo (invertido) @@ -5502,7 +5511,7 @@ Continuar? Slave contacts - + Contatos escravos @@ -6238,7 +6247,7 @@ Ao importar este arquivo, você confirma que: Change an ellipse - + Alterar uma elipse @@ -6455,22 +6464,22 @@ Ao importar este arquivo, você confirma que: DXF: symbols as blocks - + DXF: símbolos como blocos Each symbol becomes a DXF block, selectable with one click in CAD software - + Cada símbolo se torna um bloco DXF, selecionável com um clique em programas de CAD DXF: symbol texts as attributes - + DXF: textos dos símbolos como atributos A symbol's texts (label, function...) become attributes of its block. LibreCAD does not show attributes. - + Os textos de um símbolo (legenda, função...) tornam-se atributos do seu bloco. O LibreCAD não exibe atributos. @@ -6629,7 +6638,7 @@ que você cria. Entradas de texto e números Filter by label (e.g. Z1) - + Filtrar por legenda (ex.: Z1) @@ -6685,27 +6694,27 @@ que você cria. Entradas de texto e números Anti-parallel diodes - + Diodos antiparalelos Resistor - + Resistor Varistor - + Varistor Test socket - + Tomada de teste Diode (reversed) - + Diodo (invertido) @@ -7155,19 +7164,19 @@ hint shown when no cable type file is configured yet Cable type list file - + Arquivo da lista de tipos de cabo Directory of the cable types used to define a cable (number of cores, colors, cross-section) tooltip of the cable type file path field - + Pasta dos tipos de cabo usados para definir um cabo (número de veias, cores, seção) Create the cable type list file with its header line tooltip of the button creating the cable type file with its header line - + Criar o arquivo da lista de tipos de cabo com a sua linha de cabeçalho @@ -7221,52 +7230,52 @@ hint shown when no cable type file is configured yet Cable texts - + Textos dos cabos Designation, type, plant, location, length : - + Designação, tipo, instalação, localização, comprimento: Font of the texts written along the cable line; a cable which has its own keeps it. - + Fonte dos textos escritos ao longo da linha do cabo; um cabo que tem a sua própria a mantém. Core colors (all of them) : - + Cores das veias (todas): Font of the core colors written along the line; a cable which has its own keeps it. - + Fonte das cores das veias escritas ao longo da linha; um cabo que tem a sua própria a mantém. Text alignment : - + Alinhamento do texto: Where the texts of a cable stop relative to the start of its line; a cable which has its own keeps it. - + Onde os textos de um cabo terminam em relação ao início da sua linha; um cabo que tem o seu próprio a mantém. Right aligned - + Alinhado à direita Centred - + Centralizado Left aligned - + Alinhado à esquerda @@ -7365,22 +7374,22 @@ hint shown when no cable type file is configured yet Bold italic - + Negrito itálico Bold - Texto em negrito + Negrito Italic - Texto em itálico + Itálico Normal - Normal + Normal @@ -7428,7 +7437,7 @@ hint shown when no cable type file is configured yet Not set (default: %1) hint shown in the cable type file field when no file is configured yet - Não configurado (padrão: %1) + Não configurado (padrão: %1) @@ -7584,12 +7593,12 @@ hint shown when no cable type file is configured yet Cable text font - + Fonte do texto dos cabos Core colors font - + Fonte das cores das veias @@ -7720,17 +7729,17 @@ não contém nenhuma subpasta: portanto não há nenhum prefixo a configurar. Select the cable types file - + Selecione o arquivo de tipos de cabo Create the cable types file - + Criar o arquivo de tipos de cabo Cannot be created - + Não foi possível criar @@ -7763,59 +7772,59 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Left - Esquerda + Esquerda Right - Direita + Direita Top - + Cima Bottom - + Baixo Cannot read "%1": use one {n}, {zn} or {a-b} per name. - + Não foi possível ler "%1": use um único {n}, {zn} ou {a-b} por nome. Cannot read "%1": z does not go with a range. - + Não foi possível ler "%1": o z não combina com um intervalo. "%1" gives no terminal. - + "%1" não gera nenhum terminal. "%1" gives %2 terminals; at most %3 at once. - + "%1" gera %2 terminais; no máximo %3 de uma vez. At a pitch of 1 grid square the names of neighbouring terminals overlap. - + Com um passo de 1 quadrado da grade, os nomes dos terminais vizinhos se sobrepõem. Repeated terminal names: %1. Fine if the device really repeats them, as N or PE often are. - + Nomes de terminais repetidos: %1. Sem problema se o dispositivo realmente os repete, como costumam fazer N ou PE. %n terminal(s) without a name. - - - + + %n terminal sem nome. + %n terminais sem nome. @@ -7824,52 +7833,52 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Information - + Informações The name is how the symbol is listed in the project's collection; the rest can be changed later on the placed device. - + O nome é como o símbolo aparece na coleção do projeto; o restante pode ser alterado depois no dispositivo posicionado. Generic device - + Dispositivo genérico e.g. -U1 - + ex.: -U1 Show the manufacturer reference in the box - + Mostrar a referência do fabricante na caixa Name: - Nome: + Nome: Label: - + Legenda: Manufacturer: - + Fabricante: Manufacturer reference: - + Referência do fabricante: Description: - + Descrição: @@ -7877,79 +7886,79 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Layout - + Layout How many terminals on each side, 0 for none. They are numbered 1…n; name them on the next page. - + Quantos terminais em cada lado, 0 para nenhum. Eles são numerados de 1…n; dê-lhes nomes na próxima página. Terminals - Terminais + Terminais Group every - + Agrupar a cada no groups - + sem grupos Leave a gap after every this many terminals - + Deixar um espaço após cada este número de terminais Mark gaps with a divider - + Marcar os espaços com um divisor Line up groups across opposite sides - + Alinhar os grupos entre lados opostos Adds blank rows to the shorter group, so that the gaps on facing sides fall on the same row - + Adiciona linhas em branco ao grupo mais curto, para que os espaços dos lados opostos fiquem na mesma linha grid squares - + quadrados da grade Space between terminals: - + Espaço entre terminais: Extra width: - + Largura extra: Extra height: - + Altura extra: Group terminals - + Agrupar terminais Grouping replaces the gaps you made on the %1 side. Continue? - + O agrupamento substitui os espaços que você criou no lado %1. Continuar? @@ -7957,130 +7966,130 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Terminals - Terminais + Terminais Name the terminals. A side can be typed as one line: In{4} gives In1 to In4, Q{z4} Q0 to Q3, X{3-6} X3 to X6, and an empty entry is a gap. - + Dê nomes aos terminais. Um lado pode ser digitado em uma única linha: In{4} gera In1 a In4, Q{z4} Q0 a Q3, X{3-6} X3 a X6, e uma entrada vazia é um espaço. As a line: - + Em uma linha: e.g. L1,L2,L3,,PE - + ex.: L1,L2,L3,,PE Name - + Nome Function - Função + Função Type - Tipo + Tipo Add terminal - + Adicionar terminal Add gap - + Adicionar espaço Delete - Excluir + Excluir Up - Em cima + Subir Down - + Descer Number pins 1…n - + Numerar os pinos de 1…n Rename every terminal by its pin number, counter-clockwise from the top of the left side - + Renomear cada terminal pelo seu número de pino, no sentido anti-horário a partir do topo do lado esquerdo Paste table - + Colar tabela Rows of side, name, function and type, copied from a spreadsheet or a CSV file. Side is left, right, top, bottom or L, R, T, B; an empty name is a gap. - + Linhas de lado, nome, função e tipo, copiadas de uma planilha ou de um arquivo CSV. O lado é left, right, top, bottom ou L, R, T, B; um nome vazio é um espaço. gap - + espaço Generic - Genérico + Genérico Inner - + Interno Outer - + Externo This name is used more than once. Fine if the device repeats it, as N or PE often are. - + Este nome é usado mais de uma vez. Sem problema se o dispositivo o repete, como costumam fazer N ou PE. A name holds a comma or a brace, which a line cannot say: edit this side in the table. - + Um nome contém uma vírgula ou uma chave, o que uma linha não consegue expressar: edite este lado na tabela. Nothing to paste: copy rows of side, name, function from a spreadsheet or a CSV file first. - + Nada para colar: copie primeiro linhas de lado, nome, função de uma planilha ou de um arquivo CSV. Pasted %n row(s). - - - + + %n linha colada. + %n linhas coladas. Pasted %1 rows; skipped these, which could not be read: %2 - + %1 linhas coladas; estas foram ignoradas por não poderem ser lidas: %2 @@ -8088,13 +8097,13 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Box: %1 × %2 grid squares - + Caixa: %1 × %2 quadrados da grade Generic device - + Dispositivo genérico @@ -8152,73 +8161,73 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Drag with the right mouse button on a sheet: a ring of commands opens, release towards the one to run. Until you change the ring for a context, it shows the commands of the shortcut bar. Gestures are turned on or off in the General page. - + Arraste com o botão direito do mouse em uma página: um anel de comandos se abre, solte em direção ao que deseja executar. Enquanto você não alterar o anel de um contexto, ele mostra os comandos da barra de atalhos. Os gestos são ativados ou desativados na página Geral. 8 directions - + 8 direções 4 directions - + 4 direções Place → - + Atribuir → Clear the direction - + Limpar a direção Same as the shortcut bar - + Igual à barra de atalhos Available commands - Comandos disponíveis + Comandos disponíveis Ring, the chosen direction highlighted - + Anel, com a direção escolhida destacada Directions: - + Direções: Context: - Contexto: + Contexto: Mouse gestures configuration page title - + Gestos do mouse (empty direction) - + (direção vazia) Custom ring for this context. - + Anel personalizado para este contexto. This ring follows the shortcut bar. - + Este anel segue a barra de atalhos. @@ -8445,22 +8454,22 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render not a file - + não é um arquivo the file is larger than 10 MB - + o arquivo é maior que 10 MB the image has too many pixels - + a imagem tem pixels demais unable to read the image - + não foi possível ler a imagem @@ -8537,12 +8546,12 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Adapt the picture to the dark theme - + Adaptar a imagem ao tema escuro Adapts the colors for the dark display only. The original picture, exports and printouts stay unchanged. - + Adapta as cores somente para a exibição escura. A imagem original, as exportações e as impressões permanecem inalteradas. @@ -8573,7 +8582,7 @@ Qualquer valor diferente de ‘Sem arredondamento’ pode causar erros na render Change a picture's dark theme adaptation - + Alterar a adaptação de uma imagem ao tema escuro @@ -8759,7 +8768,7 @@ Por favor, use o editor avançado para isso. Change the width of a text field - + Alterar a largura de um campo de texto @@ -8779,7 +8788,7 @@ Por favor, use o editor avançado para isso. Change the width of several text fields - + Alterar a largura de vários campos de texto @@ -8804,7 +8813,7 @@ Por favor, use o editor avançado para isso. An error occurred with the template %1: %2 - + Ocorreu um erro com o modelo %1: %2 @@ -9153,12 +9162,12 @@ Esta configuração fica em Configurar QElectroTech > Geral > Projetos. Don't ask again at start - + Não perguntar novamente ao iniciar Live mode will open at every start. To be warned again, turn it off and back on in Configure QElectroTech > General > Projects. - + O modo ao vivo será aberto a cada inicialização. Para ser avisado novamente, desative-o e ative-o de novo em Configurar o QElectroTech > Geral > Projetos. @@ -9169,25 +9178,25 @@ Esta configuração fica em Configurar QElectroTech > Geral > Projetos. Print - Imprimir + Imprimir The assistant wants to print %n folios of “%1” on “%2”. - - - + + O assistente deseja imprimir %n página de “%1” em “%2”. + O assistente deseja imprimir %n páginas de “%1” em “%2”. &Print - + &Imprimir &Cancel - &Cancelar + &Cancelar @@ -9218,7 +9227,7 @@ Esta configuração fica em Configurar QElectroTech > Geral > Projetos. &Always - + &Sempre @@ -9569,7 +9578,7 @@ Deseja vincular este contato escravo mesmo assim? Move a cable - + Mover um cabo @@ -9722,7 +9731,7 @@ Deseja vincular este contato escravo mesmo assim? Cables - + Cabos @@ -10043,7 +10052,7 @@ Deseja vincular este contato escravo mesmo assim? Change a PLC table - + Alterar uma tabela de CLP @@ -10079,7 +10088,7 @@ Deseja vincular este contato escravo mesmo assim? Change a rectangle - Editar um retângulo + Alterar um retângulo @@ -10594,7 +10603,7 @@ Sua cópia foi mantida em: Cables - + Cabos @@ -10982,13 +10991,13 @@ Dê a elas outra numeração primeiro. Keep the texts of rotated elements horizontal checkbox label - + Manter na horizontal os textos dos elementos girados Texts drawn in an element and the names of its terminals stay readable when the element is rotated: their frame turns with the element, not the text. Uncheck to make them turn with the element, as before. tooltip - + Os textos desenhados em um elemento e os nomes dos seus terminais permanecem legíveis quando o elemento é girado: é o quadro deles que gira com o elemento, não o texto. Desmarque para fazê-los girar com o elemento, como antes. @@ -11536,59 +11545,61 @@ Deseja continuar? Toolbars, keyboard shortcuts, mouse and trackpad gestures - + Barras de ferramentas, atalhos de teclado, gestos do mouse e do trackpad Defaults for new projects: folio, title block, wires, numbering - + Padrões para novos projetos: página, carimbo, condutores, numeração All other settings: appearance, grid, language... - + Todas as outras configurações: aparência, grade, idioma... Folders of the collections - + Pastas das coleções Settings to save: - + Configurações a salvar: The folders of your collections are saved only when every part is ticked. - + As pastas das suas coleções só são salvas quando todas as partes estão marcadas. These settings will replace your current ones for: %1 All your other settings are kept. - + Estas configurações substituirão as atuais para: +%1 +Todas as suas outras configurações serão mantidas. QElectroTech will then close. Start it again to use the new settings. - + O QElectroTech será então fechado. Inicie-o novamente para usar as novas configurações. Projects already open keep their own defaults. - + Os projetos já abertos mantêm os seus próprios padrões. Do you want to continue? - + Deseja continuar? The settings are loaded. They are used for the next new project. - + As configurações foram carregadas. Elas serão usadas no próximo novo projeto. @@ -12105,7 +12116,7 @@ Opções disponíveis: Paste element information - + Colar as informações do elemento @@ -12117,7 +12128,7 @@ Opções disponíveis: Copies the filled-in information of the element on the clipboard to the selected elements status bar tip - + Copia as informações preenchidas do elemento na área de transferência para os elementos selecionados @@ -12263,12 +12274,12 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Add a cable list - + Adicionar uma lista de cabos Export the cable list to CSV format - + Exportar a lista de cabos em formato CSV @@ -12293,12 +12304,12 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Cable numbering - + Numeração dos cabos Shows the cable numbering rule of the project and renumbers its cables with it - + Mostra a regra de numeração dos cabos do projeto e renumera os seus cabos com ela @@ -12497,12 +12508,12 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Horizontal mirror - Espelhar horizontalmente + Espelhar horizontalmente Vertical mirror - Espelhar verticalmente + Espelhar verticalmente @@ -12609,13 +12620,13 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Flips the selected elements from left to right status bar tip - + Inverte os elementos selecionados da esquerda para a direita Flips the selected elements from top to bottom status bar tip - + Inverte os elementos selecionados de cima para baixo @@ -12881,12 +12892,12 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Add a generic device… - + Adicionar um dispositivo genérico… Draw a cable - + Desenhar um cabo @@ -12901,12 +12912,12 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Makes a box symbol with terminals on any side and places it on the current sheet - + Cria um símbolo em caixa com terminais em qualquer lado e o posiciona na página atual Draws the main line of a cable: every conductor crossed becomes one of its cores - + Desenha a linha principal de um cabo: cada condutor atravessado se torna uma das suas veias @@ -12917,22 +12928,22 @@ Mantenha Ctrl pressionado durante o movimento para posicionar livremente. Numbering - + Numeração Lists - + Listas Selection - + Seleção Depth - Profundidade + Profundidade @@ -12970,13 +12981,13 @@ Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o s Automatic numbering window title - Numeração automática + Numeração automática No automatic cable numbering is defined. shown when a project has no cable numbering rule - + Nenhuma numeração automática de cabos está definida. @@ -12984,25 +12995,27 @@ Se você salvar o projeto, estes condutores desaparecerão do arquivo. Feche-o s You can also number the cables automatically later: the rule is set at any time in the project properties, on the "Auto Numbering" page. ask whether a cable numbering rule should be defined now - + Deseja definir uma agora? + +Você também pode numerar os cabos automaticamente mais tarde: a regra pode ser definida a qualquer momento nas propriedades do projeto, na página "Autonumeração". Yes yes - Sim + Sim No no - Não + Não Cancel cancel - Cancelar + Cancelar @@ -13026,7 +13039,7 @@ You can also number the cables automatically later: the rule is set at any time Edit the cable edit cable - + Editar o cabo @@ -13094,7 +13107,7 @@ Ativar os scripts? Esta configuração pode ser alterada em Configurar o QElectr Remembered after a restart - + Lembrado após uma reinicialização @@ -14250,7 +14263,7 @@ Remova as pontes e/ou exclua os níveis dos terminais envolvidos para poder excl Scale the element... - + Redimensionar o elemento... @@ -14529,13 +14542,13 @@ as condições não são válidas &Customize... - + &Personalizar... Toolbars, shortcut bar, keyboard and mouse gestures, in one window status bar tip - + Barras de ferramentas, barra de atalhos, teclado e gestos do mouse, em uma única janela @@ -15357,7 +15370,7 @@ O que você deseja fazer? scale the element undo caption - + redimensionar o elemento @@ -16528,12 +16541,12 @@ Deseja substituí-lo? Add a cable list - + Adicionar uma lista de cabos Cable list - + Lista de cabos @@ -16619,31 +16632,31 @@ Deseja substituí-lo? Anti-parallel diodes anti-parallel diodes terminal element type - + Diodos antiparalelos Resistor resistor terminal element type - + Resistor Varistor varistor terminal element type - + Varistor Test socket test socket terminal element type - + Tomada de teste Diode (reversed) reversed diode terminal element type - + Diodo (invertido) @@ -17193,28 +17206,28 @@ Para ativá-la: Configurar o QElectroTech > Geral > Projetos, ou defina a Group a set of terminals - + Agrupar um conjunto de terminais Ungroup a set of terminals - + Desagrupar um conjunto de terminais (No action) spacemouse config: unbound button - + (Nenhuma ação) Horizontal mirror - Espelhar horizontalmente + Espelhar horizontalmente Vertical mirror - Espelhar verticalmente + Espelhar verticalmente @@ -17722,7 +17735,7 @@ nada foi modificado. Delete a cable - + Excluir um cabo @@ -17768,9 +17781,9 @@ nada foi modificado. Renumber %n cable(s) - - - + + Renumerar %n cabo + Renumerar %n cabos @@ -18283,38 +18296,38 @@ Crie seu próprio texto usando as seguintes variáveis: Scale the element - + Redimensionar o elemento Factor: - + Fator: Also scale the texts - + Redimensionar também os textos %n terminals of this element are not on the grid, and no factor brings them there. - - - + + %n terminal deste elemento não está na grade, e nenhum fator o leva até lá. + %n terminais deste elemento não estão na grade, e nenhum fator os leva até lá. %n terminals of this element are not on the grid. Only the factors that bring them there are offered. - - - + + %n terminal deste elemento não está na grade. Somente os fatores que o levam até lá são oferecidos. + %n terminais deste elemento não estão na grade. Somente os fatores que os levam até lá são oferecidos. Only the factors that keep the terminals on the grid are offered. The element is scaled around its grab point. - + Somente os fatores que mantêm os terminais na grade são oferecidos. O elemento é redimensionado em torno do seu ponto de captura. @@ -18806,12 +18819,12 @@ qet.addText(f, "Texto", 40, 40); Delete the rule - + Excluir a regra Delete the cable numbering rule: cables are numbered again as before, and the question of defining one comes back on the next drawing. - + Exclui a regra de numeração dos cabos: os cabos voltam a ser numerados como antes, e a pergunta sobre definir uma regra volta no próximo desenho. @@ -18889,7 +18902,7 @@ Os outros campos não são utilizados. Cable Auto Numbering title window - + Autonumeração dos cabos @@ -18911,7 +18924,23 @@ The other fields are not used. -The "Sheet" type represents the name of the current sheet. The other fields are not used. help dialog about the cable autonumerotation - + É aqui que você pode definir como os novos cabos serão numerados. +-Uma numeração é composta por no mínimo uma variável. +-Você pode adicionar ou excluir uma variável de numeração com os botões - e +. +-Uma variável de numeração inclui: um tipo, um valor e um incremento. + +-Os tipos "Dígito 1", "Dígito 01" e "Dígito 001" representam um tipo numérico definido no campo "Valor", que é incrementado a cada novo cabo pelo valor do campo "Incremento". +-"Dígito 01" e "Dígito 001" são representados no esquema por, respectivamente, no mínimo dois e três dígitos. +Se o dígito definido no campo Valor tiver menos dígitos que o tipo escolhido, ele será precedido por um ou dois 0 para respeitar o seu tipo. + +-O tipo "Texto" representa um texto fixo. +O campo "Incremento" não é utilizado. + +-O tipo "N° da página" representa o número da página atual. +Os outros campos não são utilizados. + +-O tipo "Página" representa o nome da página atual. +Os outros campos não são utilizados. @@ -19319,22 +19348,22 @@ Os outros campos não são usados. All categories - + Todas as categorias Press a key combination to see which command uses it - + Pressione uma combinação de teclas para ver qual comando a utiliza Clear the searched key - + Limpar a tecla pesquisada Search by key: - + Pesquisar por tecla: @@ -19352,7 +19381,7 @@ Os outros campos não são usados. Menu - + Menu @@ -19362,12 +19391,12 @@ Os outros campos não são usados. Copy list - + Copiar a lista Copies the shortcuts shown, to paste into a spreadsheet or a document - + Copia os atalhos exibidos, para colar em uma planilha ou em um documento @@ -19390,7 +19419,7 @@ Os outros campos não são usados. Category - Categoria + Categoria @@ -19405,93 +19434,93 @@ Os outros campos não são usados. Link a button number on your 3D mouse (SpaceMouse, SpacePilot...) to a QElectroTech action. The button number depends on your device and its driver -- see its documentation, or try the values one by one starting from 0. spacemouse config page intro - + Associe um número de botão do seu mouse 3D (SpaceMouse, SpacePilot...) a uma ação do QElectroTech. O número do botão depende do seu dispositivo e do seu driver -- consulte a documentação dele, ou experimente os valores um a um a partir de 0. Button no. - + Botão n.º Action - Ação + Ação Add a link - + Adicionar uma associação Buttons - + Botões Small movements below this threshold are ignored. Raise it if the view drifts when you are not touching the mouse. - + Pequenos movimentos abaixo deste limite são ignorados. Aumente-o se a vista se deslocar quando você não estiver tocando no mouse. Push / pull the cap - + Empurrar / puxar a tampa Twist the cap - + Girar a tampa Reverse horizontal movement - + Inverter o movimento horizontal Reverse vertical movement - + Inverter o movimento vertical Reverse zoom - + Inverter o zoom Pan speed: - + Velocidade de deslocamento: Zoom speed: - + Velocidade do zoom: Zoom by: - + Zoom de: Dead zone: - + Zona morta: Movement - + Movimento Remove this link - + Remover esta associação 3D mouse configuration page title - + Mouse 3D @@ -21606,7 +21635,7 @@ Os outros campos não são usados. Change the potential of a terminal - + Alterar o potencial de um terminal @@ -21705,12 +21734,12 @@ Os outros campos não são usados. Potential: - + Potencial: No effect unless "Potential isolation" is checked (all terminals of the block then stay connected). When it is checked, terminals sharing the same value stay connected to each other and the others are isolated. - + Sem efeito, a menos que "Isolamento de potencial" esteja marcado (todos os terminais do bloco permanecem então conectados). Quando está marcado, os terminais que compartilham o mesmo valor permanecem conectados entre si e os outros ficam isolados. @@ -21970,47 +21999,47 @@ Os outros campos não são usados. Anti-parallel diodes - + Diodos antiparalelos Resistor - + Resistor Varistor - + Varistor Test socket - + Tomada de teste Diode (reversed) - + Diodo (invertido) Cable : - + Cabo: Name of the cable of the selected terminals - + Nome do cabo dos terminais selecionados Set the cable name to all the selected terminals - + Define o nome do cabo para todos os terminais selecionados Apply the cable to the selection - + Aplicar o cabo à seleção @@ -22209,42 +22238,42 @@ Os outros campos não são usados. Symbol - + Símbolo Height of the terminal type symbol (fuse, ground, led...). 0 disable the symbol. - + Altura do símbolo do tipo de terminal (fusível, terra, led...). 0 desativa o símbolo. Connection length - + Comprimento da conexão Length of the connections drawn above and under each terminal. 0 disable the connections. - + Comprimento das conexões desenhadas acima e abaixo de cada terminal. 0 desativa as conexões. Cable: wires / cable / end - + Cabo: fios / cabo / fim Length of the wires between the terminals and the cable. 0 disable the drawing of the cables. - + Comprimento dos fios entre os terminais e o cabo. 0 desativa o desenho dos cabos. Length of the cable. - + Comprimento do cabo. Length of the wires after the cable. - + Comprimento dos fios após o cabo. @@ -22362,7 +22391,7 @@ Os outros campos não são usados. Shield - + Blindagem @@ -22486,7 +22515,7 @@ Os outros campos não são usados. Resize a text - + Redimensionar um texto @@ -22494,7 +22523,7 @@ Os outros campos não são usados. Drag to change the text width, double-click for automatic width - + Arraste para alterar a largura do texto, clique duas vezes para largura automática @@ -23250,99 +23279,99 @@ associar o nome "variável_personalizada" e o valor "1745" v Choose the commands of each toolbar of the diagram editor. Drag a command from the list on the left to the bar, or double-click it; Delete removes it. - + Escolha os comandos de cada barra de ferramentas do editor de esquemas. Arraste um comando da lista à esquerda para a barra, ou clique duas vezes nele; Delete o remove. New bar… - + Nova barra… Rename… - + Renomear… Delete the bar - + Excluir a barra Defaults - + Padrões Search for a command - + Pesquisar um comando Add → - Adicionar → + Adicionar → Separator - + Separador ← Remove - ← Remover + ← Remover Move up - Subir + Subir Move down - Descer + Descer Available commands - Comandos disponíveis + Comandos disponíveis In the bar, in order - Na barra, em ordem + Na barra, em ordem Toolbar: - + Barra de ferramentas: Toolbar contents configuration page title: what each toolbar holds - + Conteúdo das barras de ferramentas New toolbar - + Nova barra de ferramentas Toolbar name: - + Nome da barra de ferramentas: Rename the toolbar - + Renomear a barra de ferramentas ─── Separator ─── - + ─── Separador ─── @@ -23350,68 +23379,68 @@ associar o nome "variável_personalizada" e o valor "1745" v Default - + Padrão Small (16 px) - + Pequeno (16 px) Medium (24 px) - + Médio (24 px) Large (32 px) - + Grande (32 px) Very large (48 px) - + Muito grande (48 px) Icon only - + Somente ícone Text beside the icon - + Texto ao lado do ícone Text under the icon - + Texto sob o ícone Lock the toolbars (they can no longer be moved) - + Bloquear as barras de ferramentas (elas não poderão mais ser movidas) Icon size: - + Tamanho dos ícones: Buttons: - + Botões: To show or hide a toolbar, right-click on a toolbar. - + Para mostrar ou ocultar uma barra de ferramentas, clique com o botão direito em uma barra de ferramentas. Toolbars configuration page title - + Barras de ferramentas @@ -23635,12 +23664,12 @@ associar o nome "variável_personalizada" e o valor "1745" v When the texts of two cross-references overlap, the one of the higher element is placed above the other. - + Quando os textos de duas referências cruzadas se sobrepõem, a do elemento mais alto é colocada acima da outra. Stack references whose texts overlap - + Empilhar as referências cujos textos se sobrepõem @@ -23700,12 +23729,12 @@ associar o nome "variável_personalizada" e o valor "1745" v Choose the font and size of the cable cross-reference text - + Escolha a fonte e o tamanho do texto da referência cruzada de cabo Font… - + Fonte… @@ -23782,7 +23811,7 @@ associar o nome "variável_personalizada" e o valor "1745" v Cable - Cabo + Cabo @@ -23827,23 +23856,23 @@ associar o nome "variável_personalizada" e o valor "1745" v Text: - Texto: + Texto: Font and size: those of the cable texts - + Fonte e tamanho: os dos textos dos cabos Font and size: %1, %2 pt - + Fonte e tamanho: %1, %2 pt Font of the cross-reference text - + Fonte do texto da referência cruzada