Localize numeric displays and HTML export labels

Format UI measurements, snap angles, ladder increments, edge-color values, Preferences labels, counts, and step/page labels using the widget locale without grouping. Preserve numeric table sorting with stored count values and trim localized zero digits correctly. Give float/double formatting and float parsing explicit helper names.

Mark HTML export titles, navigation, alternate text, and credits for translation, escape translated text, and declare UTF-8 output. Keep numbers in HTML, piece-list images, and print/PDF output in ASCII. Include the pending command-status translation drafts in all eight language catalogs, preserving their unfinished review status.

Validation: macOS Qt debug build, display and count-sorting checks across ten locales, all three HTML layouts with test translations under an Arabic numeric locale, and ASCII print/image checks. All eight catalogs pass XML, changed-placeholder, and lrelease validation.
This commit is contained in:
Leonardo Zide committed 2026-10-23 14:17:52 -07:00
1 parent 44fcb96ede
commit 688859b120
21 files changed
+503 -199

No files matched your search

+19 -19
View File
@@ -37,24 +37,24 @@ lcArrayDialog::lcArrayDialog(QWidget* Parent)
ui->count1->setValue(mCounts[0]); ui->count1->setValue(mCounts[0]);
ui->count2->setValue(mCounts[1]); ui->count2->setValue(mCounts[1]);
ui->count3->setValue(mCounts[2]); ui->count3->setValue(mCounts[2]);
ui->offset1x->setText(lcFormatValueLocalized(mOffsets[0].x)); ui->offset1x->setText(lcFormatFloatLocalized(mOffsets[0].x, locale()));
ui->offset1y->setText(lcFormatValueLocalized(mOffsets[0].y)); ui->offset1y->setText(lcFormatFloatLocalized(mOffsets[0].y, locale()));
ui->offset1z->setText(lcFormatValueLocalized(mOffsets[0].z)); ui->offset1z->setText(lcFormatFloatLocalized(mOffsets[0].z, locale()));
ui->offset2x->setText(lcFormatValueLocalized(mOffsets[1].x)); ui->offset2x->setText(lcFormatFloatLocalized(mOffsets[1].x, locale()));
ui->offset2y->setText(lcFormatValueLocalized(mOffsets[1].y)); ui->offset2y->setText(lcFormatFloatLocalized(mOffsets[1].y, locale()));
ui->offset2z->setText(lcFormatValueLocalized(mOffsets[1].z)); ui->offset2z->setText(lcFormatFloatLocalized(mOffsets[1].z, locale()));
ui->offset3x->setText(lcFormatValueLocalized(mOffsets[2].x)); ui->offset3x->setText(lcFormatFloatLocalized(mOffsets[2].x, locale()));
ui->offset3y->setText(lcFormatValueLocalized(mOffsets[2].y)); ui->offset3y->setText(lcFormatFloatLocalized(mOffsets[2].y, locale()));
ui->offset3z->setText(lcFormatValueLocalized(mOffsets[2].z)); ui->offset3z->setText(lcFormatFloatLocalized(mOffsets[2].z, locale()));
ui->rotation1x->setText(lcFormatValueLocalized(mRotations[0].x)); ui->rotation1x->setText(lcFormatFloatLocalized(mRotations[0].x, locale()));
ui->rotation1y->setText(lcFormatValueLocalized(mRotations[0].y)); ui->rotation1y->setText(lcFormatFloatLocalized(mRotations[0].y, locale()));
ui->rotation1z->setText(lcFormatValueLocalized(mRotations[0].z)); ui->rotation1z->setText(lcFormatFloatLocalized(mRotations[0].z, locale()));
ui->rotation2x->setText(lcFormatValueLocalized(mRotations[1].x)); ui->rotation2x->setText(lcFormatFloatLocalized(mRotations[1].x, locale()));
ui->rotation2y->setText(lcFormatValueLocalized(mRotations[1].y)); ui->rotation2y->setText(lcFormatFloatLocalized(mRotations[1].y, locale()));
ui->rotation2z->setText(lcFormatValueLocalized(mRotations[1].z)); ui->rotation2z->setText(lcFormatFloatLocalized(mRotations[1].z, locale()));
ui->rotation3x->setText(lcFormatValueLocalized(mRotations[2].x)); ui->rotation3x->setText(lcFormatFloatLocalized(mRotations[2].x, locale()));
ui->rotation3y->setText(lcFormatValueLocalized(mRotations[2].y)); ui->rotation3y->setText(lcFormatFloatLocalized(mRotations[2].y, locale()));
ui->rotation3z->setText(lcFormatValueLocalized(mRotations[2].z)); ui->rotation3z->setText(lcFormatFloatLocalized(mRotations[2].z, locale()));
} }
lcArrayDialog::~lcArrayDialog() lcArrayDialog::~lcArrayDialog()
@@ -96,7 +96,7 @@ void lcArrayDialog::accept()
for (int Axis = 0; Axis < 3; Axis++) for (int Axis = 0; Axis < 3; Axis++)
{ {
QLineEdit* Edit = Edits[Type][Dimension][Axis]; QLineEdit* Edit = Edits[Type][Dimension][Axis];
const std::optional<float> Value = lcParseFloatValueLocalized(Edit->text(), Edit->validator()->locale()); const std::optional<float> Value = lcParseFloatLocalized(Edit->text(), Edit->validator()->locale());
if (!Value || !Edit->hasAcceptableInput()) if (!Value || !Edit->hasAcceptableInput())
{ {
+1 -1
View File
@@ -66,7 +66,7 @@ void lcDoubleSpinBox::LadderWidgetCanceled()
QString lcDoubleSpinBox::textFromValue(double Value) const QString lcDoubleSpinBox::textFromValue(double Value) const
{ {
return lcFormatValueLocalized(Value); return lcFormatFloatLocalized(Value, locale());
} }
void lcDoubleSpinBox::ValueChanged() void lcDoubleSpinBox::ValueChanged()
+2 -2
View File
@@ -239,12 +239,12 @@ void lcAutomateEdgeColorDialog::SliderValueChanged(int Value)
if (sender() == PartEdgeContrastSlider) if (sender() == PartEdgeContrastSlider)
{ {
mPartEdgeContrast = Value * 0.01f; mPartEdgeContrast = Value * 0.01f;
PartEdgeContrast->setText(QString::number(mPartEdgeContrast, 'f', 2)); PartEdgeContrast->setText(lcFormatDoubleLocalized(mPartEdgeContrast, locale(), 'f', 2));
} }
else if (sender() == PartColorValueLDIndexSlider) else if (sender() == PartColorValueLDIndexSlider)
{ {
mPartColorValueLDIndex = Value * 0.01f; mPartColorValueLDIndex = Value * 0.01f;
PartColorValueLDIndex->setText(QString::number(mPartColorValueLDIndex, 'f', 2)); PartColorValueLDIndex->setText(lcFormatDoubleLocalized(mPartColorValueLDIndex, locale(), 'f', 2));
} }
} }
+4 -3
View File
@@ -5,6 +5,7 @@
#include "lc_model.h" #include "lc_model.h"
#include "lc_view.h" #include "lc_view.h"
#include "lc_collapsiblewidget.h" #include "lc_collapsiblewidget.h"
#include "lc_qutils.h"
lcInstructionsStepImageItem::lcInstructionsStepImageItem(QGraphicsItem* Parent, lcInstructions* Instructions, lcModel* Model, lcStep Step) lcInstructionsStepImageItem::lcInstructionsStepImageItem(QGraphicsItem* Parent, lcInstructions* Instructions, lcModel* Model, lcStep Step)
: QGraphicsPixmapItem(Parent), mInstructions(Instructions), mModel(Model), mStep(Step) : QGraphicsPixmapItem(Parent), mInstructions(Instructions), mModel(Model), mStep(Step)
@@ -419,7 +420,7 @@ void lcInstructionsPropertiesWidget::AddFontProperty(lcInstructionsPropertyType
auto UpdateButton = [this, Type, FontButton]() auto UpdateButton = [this, Type, FontButton]()
{ {
QFont Font = mInstructions->GetFontProperty(Type, mModel, mStep); QFont Font = mInstructions->GetFontProperty(Type, mModel, mStep);
QString FontName = QString("%1 %2").arg(Font.family(), QString::number(Font.pointSize())); QString FontName = QString("%1 %2").arg(Font.family(), lcFormatIntegerLocalized(Font.pointSize(), locale()));
FontButton->setText(FontName); FontButton->setText(FontName);
}; };
@@ -581,7 +582,7 @@ lcInstructionsDialog::lcInstructionsDialog(QWidget* Parent, Project* Project)
PageDirectionGroup->addAction(mHorizontalPageAction); PageDirectionGroup->addAction(mHorizontalPageAction);
for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++) for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++)
mPageListWidget->mThumbnailsWidget->addItem(QString(tr("Page %1")).arg(PageNumber + 1)); mPageListWidget->mThumbnailsWidget->addItem(QString(tr("Page %1")).arg(lcFormatIntegerLocalized(PageNumber + 1, locale())));
connect(mPageListWidget->mThumbnailsWidget, &QListWidget::currentRowChanged, this, &lcInstructionsDialog::CurrentThumbnailChanged); connect(mPageListWidget->mThumbnailsWidget, &QListWidget::currentRowChanged, this, &lcInstructionsDialog::CurrentThumbnailChanged);
mPageListWidget->mThumbnailsWidget->setCurrentRow(0); mPageListWidget->mThumbnailsWidget->setCurrentRow(0);
@@ -710,7 +711,7 @@ void lcInstructionsDialog::UpdatePageSettings()
mPageListWidget->mThumbnailsWidget->clear(); mPageListWidget->mThumbnailsWidget->clear();
for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++) for (size_t PageNumber = 0; PageNumber < mInstructions->mPages.size(); PageNumber++)
mPageListWidget->mThumbnailsWidget->addItem(tr("Page %1").arg(PageNumber + 1)); mPageListWidget->mThumbnailsWidget->addItem(tr("Page %1").arg(lcFormatIntegerLocalized(PageNumber + 1, locale())));
// mThumbnailsWidget->setCurrentRow(0); // mThumbnailsWidget->setCurrentRow(0);
+2 -1
View File
@@ -1,6 +1,7 @@
#include "lc_global.h" #include "lc_global.h"
#include "lc_ladderwidget.h" #include "lc_ladderwidget.h"
#include "lc_objectproperty.h" #include "lc_objectproperty.h"
#include "lc_qutils.h"
lcLadderWidget::lcLadderWidget(QAbstractSpinBox* SpinBox, lcFloatPropertySnap Snap) lcLadderWidget::lcLadderWidget(QAbstractSpinBox* SpinBox, lcFloatPropertySnap Snap)
: QWidget(SpinBox, Qt::Popup | Qt::Sheet), mSpinBox(SpinBox) : QWidget(SpinBox, Qt::Popup | Qt::Sheet), mSpinBox(SpinBox)
@@ -168,7 +169,7 @@ void lcLadderWidget::paintEvent(QPaintEvent* Event)
{ {
QRect Rect(0, Step * CellHeight, CellWidth, CellHeight); QRect Rect(0, Step * CellHeight, CellWidth, CellHeight);
QTextOption TextOption(Qt::AlignCenter); QTextOption TextOption(Qt::AlignCenter);
QString Text = QString::number(mSteps[Step]); QString Text = lcFormatDoubleLocalized(mSteps[Step], mSpinBox->locale(), 'g', 6);
if (Step == mCurrentStep && mSpinBox) if (Step == mCurrentStep && mSpinBox)
Text = QString("%1\n\n(%2)").arg(Text, mSpinBox->text()); Text = QString("%1\n\n(%2)").arg(Text, mSpinBox->text());
+7 -2
View File
@@ -2010,6 +2010,11 @@ void lcMainWindow::SetAngleSnapEnabled(bool Enabled)
UpdateSnap(); UpdateSnap();
} }
QString lcMainWindow::GetAngleSnapText() const
{
return mAngleSnapEnabled ? lcFormatDoubleLocalized(GetAngleSnap(), locale(), 'g', 6) : tr("None");
}
void lcMainWindow::SetMoveXYSnapIndex(int Index) void lcMainWindow::SetMoveXYSnapIndex(int Index)
{ {
mMoveXYSnapIndex = Index; mMoveXYSnapIndex = Index;
@@ -2089,7 +2094,7 @@ std::optional<lcVector3> lcMainWindow::GetTransformAmount()
continue; continue;
} }
const std::optional<float> Value = lcParseFloatValueLocalized(Text, Edit->locale()); const std::optional<float> Value = lcParseFloatLocalized(Text, Edit->locale());
if (!Value) if (!Value)
{ {
@@ -2414,7 +2419,7 @@ void lcMainWindow::UpdateCurrentStep()
mActions[LC_VIEW_TIME_NEXT]->setEnabled(CurrentStep < LC_STEP_MAX); mActions[LC_VIEW_TIME_NEXT]->setEnabled(CurrentStep < LC_STEP_MAX);
mActions[LC_VIEW_TIME_LAST]->setEnabled(CurrentStep != LastStep); mActions[LC_VIEW_TIME_LAST]->setEnabled(CurrentStep != LastStep);
mStatusTimeLabel->setText(QString(tr("Step %1")).arg(QString::number(CurrentStep))); mStatusTimeLabel->setText(QString(tr("Step %1")).arg(lcFormatIntegerLocalized(CurrentStep, locale())));
} }
void lcMainWindow::SetAddKeys(bool AddKeys) void lcMainWindow::SetAddKeys(bool AddKeys)
+1 -4
View File
@@ -121,10 +121,7 @@ public:
return mMoveSnapEnabled ? SnapZText[mMoveZSnapIndex] : tr("None"); return mMoveSnapEnabled ? SnapZText[mMoveZSnapIndex] : tr("None");
} }
QString GetAngleSnapText() const QString GetAngleSnapText() const;
{
return mAngleSnapEnabled ? QString::number(GetAngleSnap()) : tr("None");
}
bool GetRelativeTransform() const bool GetRelativeTransform() const
{ {
+1 -1
View File
@@ -238,7 +238,7 @@ void lcSetsDatabaseDialog::DownloadFinished(lcHttpReply* Reply)
SetInfo << SetObject["set_num"].toString(); SetInfo << SetObject["set_num"].toString();
SetInfo << SetObject["name"].toString(); SetInfo << SetObject["name"].toString();
SetInfo << QString::number(SetObject["year"].toInt()); SetInfo << QString::number(SetObject["year"].toInt());
SetInfo << QString::number(SetObject["num_parts"].toInt()); SetInfo << lcFormatIntegerLocalized(SetObject["num_parts"].toInt(), locale());
new QTreeWidgetItem(ui->SetsTree, SetInfo); new QTreeWidgetItem(ui->SetsTree, SetInfo);
} }
+30 -22
View File
@@ -3087,6 +3087,16 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
return lcResult<void>(); return lcResult<void>();
}; };
auto WriteHeader = [](QTextStream& Stream, const QString& Title)
{
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
Stream.setCodec("UTF-8");
#endif
Stream << QString::fromLatin1("<HTML>\r\n<HEAD>\r\n<META CHARSET=\"UTF-8\">\r\n<TITLE>%1</TITLE>\r\n</HEAD>\r\n<BR>\r\n<CENTER>\r\n").arg(Title.toHtmlEscaped());
};
const QString CreatedBy = tr("Created by %1").toHtmlEscaped().arg(QLatin1String("<A HREF=\"https://www.leocad.org\">LeoCAD</A>"));
for (lcModel* Model : Models) for (lcModel* Model : Models)
{ {
const QString& BaseName = ModelBaseNames.at(Model); const QString& BaseName = ModelBaseNames.at(Model);
@@ -3098,8 +3108,6 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
else else
PageTitle = ProjectTitle; PageTitle = ProjectTitle;
const QString EscapedPageTitle = PageTitle.toHtmlEscaped();
if (Options.SinglePage) if (Options.SinglePage)
{ {
QString FileName = QFileInfo(Dir, BaseName + QLatin1String(".html")).absoluteFilePath(); QString FileName = QFileInfo(Dir, BaseName + QLatin1String(".html")).absoluteFilePath();
@@ -3110,12 +3118,12 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
QTextStream Stream(&File); QTextStream Stream(&File);
Stream << QString::fromLatin1("<HTML>\r\n<HEAD>\r\n<TITLE>Instructions for %1</TITLE>\r\n</HEAD>\r\n<BR>\r\n<CENTER>\r\n").arg(EscapedPageTitle); WriteHeader(Stream, tr("Instructions for %1").arg(PageTitle));
for (lcStep Step = 1; Step <= LastStep; Step++) for (lcStep Step = 1; Step <= LastStep; Step++)
{ {
QString StepString = QString::fromLatin1("%1").arg(Step, 2, 10, QLatin1Char('0')); QString StepString = QString::fromLatin1("%1").arg(Step, 2, 10, QLatin1Char('0'));
Stream << QString::fromLatin1("<p><IMG SRC=\"%1-%2.png\" ALT=\"Step %3\" WIDTH=%4 HEIGHT=%5></p><BR><BR>\r\n").arg(BaseName.toHtmlEscaped(), StepString, StepString, QString::number(Options.StepImagesWidth), QString::number(Options.StepImagesHeight)); Stream << QString::fromLatin1("<p><IMG SRC=\"%1-%2.png\" ALT=\"%3\" WIDTH=%4 HEIGHT=%5></p><BR><BR>\r\n").arg(BaseName.toHtmlEscaped(), StepString, tr("Step %1").arg(StepString).toHtmlEscaped(), QString::number(Options.StepImagesWidth), QString::number(Options.StepImagesHeight));
if (Options.PartsListStep) if (Options.PartsListStep)
{ {
@@ -3134,7 +3142,7 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
return PartsImageSaved; return PartsImageSaved;
} }
Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR><B><I>Created by <A HREF=\"https://www.leocad.org\">LeoCAD</A></I></B><BR></HTML>\r\n"); Stream << QString::fromLatin1("</CENTER>\r\n<BR><HR><BR><B><I>%1</I></B><BR></HTML>\r\n").arg(CreatedBy);
} }
else else
{ {
@@ -3148,15 +3156,15 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
QTextStream Stream(&File); QTextStream Stream(&File);
Stream << QString::fromLatin1("<HTML>\r\n<HEAD>\r\n<TITLE>Instructions for %1</TITLE>\r\n</HEAD>\r\n<BR>\r\n<CENTER>\r\n").arg(EscapedPageTitle); WriteHeader(Stream, tr("Instructions for %1").arg(PageTitle));
for (lcStep Step = 1; Step <= LastStep; Step++) for (lcStep Step = 1; Step <= LastStep; Step++)
Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">Step %3<BR>\r\n</A>").arg(BaseName, QString("%1").arg(Step, 2, 10, QLatin1Char('0')), QString::number(Step)); Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">%3<BR>\r\n</A>").arg(BaseName, QString("%1").arg(Step, 2, 10, QLatin1Char('0')), tr("Step %1").arg(QString::number(Step)).toHtmlEscaped());
if (Options.PartsListEnd) if (Options.PartsListEnd)
Stream << QString::fromLatin1("<A HREF=\"%1-pieces.html\">Pieces Used</A><BR>\r\n").arg(BaseName); Stream << QString::fromLatin1("<A HREF=\"%1-pieces.html\">%2</A><BR>\r\n").arg(BaseName, tr("Pieces Used").toHtmlEscaped());
Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR><B><I>Created by <A HREF=\"https://www.leocad.org\">LeoCAD</A></B></I><BR></HTML>\r\n"); Stream << QString::fromLatin1("</CENTER>\r\n<BR><HR><BR><B><I>%1</I></B><BR></HTML>\r\n").arg(CreatedBy);
} }
for (lcStep Step = 1; Step <= LastStep; Step++) for (lcStep Step = 1; Step <= LastStep; Step++)
@@ -3170,8 +3178,8 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
QTextStream Stream(&File); QTextStream Stream(&File);
Stream << QString::fromLatin1("<HTML>\r\n<HEAD>\r\n<TITLE>%1 - Step %2</TITLE>\r\n</HEAD>\r\n<BR>\r\n<CENTER>\r\n").arg(EscapedPageTitle, QString::number(Step)); WriteHeader(Stream, tr("%1 - Step %2").arg(PageTitle, QString::number(Step)));
Stream << QString::fromLatin1("<IMG SRC=\"%1-%2.png\" ALT=\"Step %3\" WIDTH=%4 HEIGHT=%5><BR><BR>\r\n").arg(BaseName.toHtmlEscaped(), StepString, StepString, QString::number(Options.StepImagesWidth), QString::number(Options.StepImagesHeight)); Stream << QString::fromLatin1("<IMG SRC=\"%1-%2.png\" ALT=\"%3\" WIDTH=%4 HEIGHT=%5><BR><BR>\r\n").arg(BaseName.toHtmlEscaped(), StepString, tr("Step %1").arg(StepString).toHtmlEscaped(), QString::number(Options.StepImagesWidth), QString::number(Options.StepImagesHeight));
if (Options.PartsListStep) if (Options.PartsListStep)
{ {
@@ -3183,15 +3191,15 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR>"); Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR>");
if (Step != 1) if (Step != 1)
Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">Previous</A> ").arg(BaseName, QString("%1").arg(Step - 1, 2, 10, QLatin1Char('0'))); Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">%3</A> ").arg(BaseName, QString("%1").arg(Step - 1, 2, 10, QLatin1Char('0')), tr("Previous").toHtmlEscaped());
if (Options.IndexPage) if (Options.IndexPage)
Stream << QString::fromLatin1("<A HREF=\"%1-index.html\">Index</A> ").arg(BaseName); Stream << QString::fromLatin1("<A HREF=\"%1-index.html\">%2</A> ").arg(BaseName, tr("Index").toHtmlEscaped());
if (Step != LastStep) if (Step != LastStep)
Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">Next</A>").arg(BaseName, QString("%1").arg(Step + 1, 2, 10, QLatin1Char('0'))); Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">%3</A>").arg(BaseName, QString("%1").arg(Step + 1, 2, 10, QLatin1Char('0')), tr("Next").toHtmlEscaped());
else if (Options.PartsListEnd) else if (Options.PartsListEnd)
Stream << QString::fromLatin1("<A HREF=\"%1-pieces.html\">Pieces Used</A>").arg(BaseName); Stream << QString::fromLatin1("<A HREF=\"%1-pieces.html\">%2</A>").arg(BaseName, tr("Pieces Used").toHtmlEscaped());
Stream << QLatin1String("<BR></HTML>\r\n"); Stream << QLatin1String("<BR></HTML>\r\n");
} }
@@ -3206,7 +3214,7 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
QTextStream Stream(&File); QTextStream Stream(&File);
Stream << QString::fromLatin1("<HTML>\r\n<HEAD>\r\n<TITLE>Pieces used by %1</TITLE>\r\n</HEAD>\r\n<BR>\r\n<CENTER>\n").arg(EscapedPageTitle); WriteHeader(Stream, tr("Pieces used by %1").arg(PageTitle));
const lcResult<void> PartsImageSaved = AddPartsListImage(Stream, Model, 0, BaseName); const lcResult<void> PartsImageSaved = AddPartsListImage(Stream, Model, 0, BaseName);
@@ -3214,10 +3222,10 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
return PartsImageSaved; return PartsImageSaved;
Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR>"); Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR>");
Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">Previous</A> ").arg(BaseName, QString("%1").arg(LastStep, 2, 10, QLatin1Char('0'))); Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">%3</A> ").arg(BaseName, QString("%1").arg(LastStep, 2, 10, QLatin1Char('0')), tr("Previous").toHtmlEscaped());
if (Options.IndexPage) if (Options.IndexPage)
Stream << QString::fromLatin1("<A HREF=\"%1-index.html\">Index</A> ").arg(BaseName); Stream << QString::fromLatin1("<A HREF=\"%1-index.html\">%2</A> ").arg(BaseName, tr("Index").toHtmlEscaped());
Stream << QLatin1String("<BR></HTML>\r\n"); Stream << QLatin1String("<BR></HTML>\r\n");
} }
@@ -3240,7 +3248,7 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
QTextStream Stream(&File); QTextStream Stream(&File);
Stream << QString::fromLatin1("<HTML>\r\n<HEAD>\r\n<TITLE>Instructions for %1</TITLE>\r\n</HEAD>\r\n<BR>\r\n<CENTER>\r\n").arg(ProjectTitle.toHtmlEscaped()); WriteHeader(Stream, tr("Instructions for %1").arg(ProjectTitle));
for (const lcModel* Model : Models) for (const lcModel* Model : Models)
{ {
@@ -3263,14 +3271,14 @@ lcResult<void> Project::ExportHTML(const lcHTMLExportOptions& Options)
Stream << QString::fromLatin1("<p>%1</p>").arg(Model->GetProperties().mFileName.toHtmlEscaped()); Stream << QString::fromLatin1("<p>%1</p>").arg(Model->GetProperties().mFileName.toHtmlEscaped());
for (lcStep Step = 1; Step <= LastStep; Step++) for (lcStep Step = 1; Step <= LastStep; Step++)
Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">Step %3<BR>\r\n</A>").arg(BaseName, QString("%1").arg(Step, 2, 10, QLatin1Char('0')), QString::number(Step)); Stream << QString::fromLatin1("<A HREF=\"%1-%2.html\">%3<BR>\r\n</A>").arg(BaseName, QString("%1").arg(Step, 2, 10, QLatin1Char('0')), tr("Step %1").arg(QString::number(Step)).toHtmlEscaped());
if (Options.PartsListEnd) if (Options.PartsListEnd)
Stream << QString::fromLatin1("<A HREF=\"%1-pieces.html\">Pieces Used</A><BR>\r\n").arg(BaseName); Stream << QString::fromLatin1("<A HREF=\"%1-pieces.html\">%2</A><BR>\r\n").arg(BaseName, tr("Pieces Used").toHtmlEscaped());
} }
} }
Stream << QLatin1String("</CENTER>\r\n<BR><HR><BR><B><I>Created by <A HREF=\"https://www.leocad.org\">LeoCAD</A></B></I><BR></HTML>\r\n"); Stream << QString::fromLatin1("</CENTER>\r\n<BR><HR><BR><B><I>%1</I></B><BR></HTML>\r\n").arg(CreatedBy);
} }
return lcResult<void>(); return lcResult<void>();
+2 -2
View File
@@ -702,13 +702,13 @@ void lcPreferencesDialog::ConditionalLinesCheckBoxToggled()
void lcPreferencesDialog::LineWidthSliderValueChanged() void lcPreferencesDialog::LineWidthSliderValueChanged()
{ {
float Value = mLineWidthRange[0] + static_cast<float>(ui->LineWidthSlider->value()) * mLineWidthGranularity; float Value = mLineWidthRange[0] + static_cast<float>(ui->LineWidthSlider->value()) * mLineWidthGranularity;
ui->LineWidthLabel->setText(QString::number(Value)); ui->LineWidthLabel->setText(lcFormatDoubleLocalized(Value, locale(), 'g', 6));
} }
void lcPreferencesDialog::MeshLODSliderValueChanged() void lcPreferencesDialog::MeshLODSliderValueChanged()
{ {
float Value = ui->MeshLODSlider->value() * mMeshLODMultiplier; float Value = ui->MeshLODSlider->value() * mMeshLODMultiplier;
ui->MeshLODLabel->setText(QString::number(static_cast<int>(Value))); ui->MeshLODLabel->setText(lcFormatIntegerLocalized(static_cast<int>(Value), locale()));
} }
void lcPreferencesDialog::FadeStepsToggled() void lcPreferencesDialog::FadeStepsToggled()
+15 -9
View File
@@ -211,6 +211,12 @@ public:
mLast = false; mLast = false;
} }
lcPartsTableWidgetItem(int Count, QLocale Locale)
: QTableWidgetItem(lcFormatIntegerLocalized(Count, Locale)), mLast(false)
{
setData(Qt::UserRole, Count);
}
bool operator<(const QTableWidgetItem& Other) const override bool operator<(const QTableWidgetItem& Other) const override
{ {
if (mLast) if (mLast)
@@ -221,8 +227,8 @@ public:
if (column() > 0) if (column() > 0)
{ {
int Count = text().toInt(); int Count = data(Qt::UserRole).toInt();
int OtherCount = Other.text().toInt(); int OtherCount = Other.data(Qt::UserRole).toInt();
return Count < OtherCount; return Count < OtherCount;
} }
@@ -246,9 +252,9 @@ lcPropertiesDialog::lcPropertiesDialog(QWidget* Parent, lcPropertiesDialogOption
const lcVector3 Dimensions = Options->BoundingBox.Max - Options->BoundingBox.Min; const lcVector3 Dimensions = Options->BoundingBox.Max - Options->BoundingBox.Min;
QString Format = tr("%1 x %2 x %3 cm\n%4 x %5 x %6 inches\n%7 x %8 x %9 LDU"); QString Format = tr("%1 x %2 x %3 cm\n%4 x %5 x %6 inches\n%7 x %8 x %9 LDU");
QString Measurements = Format.arg(QString::number(Dimensions.x * 0.04, 'f', 2), QString::number(Dimensions.y * 0.04, 'f', 2), QString::number(Dimensions.z * 0.04, 'f', 2), QString Measurements = Format.arg(lcFormatDoubleLocalized(Dimensions.x * 0.04, locale(), 'f', 2), lcFormatDoubleLocalized(Dimensions.y * 0.04, locale(), 'f', 2), lcFormatDoubleLocalized(Dimensions.z * 0.04, locale(), 'f', 2),
QString::number(Dimensions.x / 64.0, 'f', 2), QString::number(Dimensions.y / 64.0, 'f', 2), QString::number(Dimensions.z / 64.0, 'f', 2), lcFormatDoubleLocalized(Dimensions.x / 64.0, locale(), 'f', 2), lcFormatDoubleLocalized(Dimensions.y / 64.0, locale(), 'f', 2), lcFormatDoubleLocalized(Dimensions.z / 64.0, locale(), 'f', 2),
QString::number(Dimensions.x, 'f', 2), QString::number(Dimensions.y, 'f', 2), QString::number(Dimensions.z, 'f', 2)); lcFormatDoubleLocalized(Dimensions.x, locale(), 'f', 2), lcFormatDoubleLocalized(Dimensions.y, locale(), 'f', 2), lcFormatDoubleLocalized(Dimensions.z, locale(), 'f', 2));
ui->MeasurementsLabel->setText(Measurements); ui->MeasurementsLabel->setText(Measurements);
@@ -296,7 +302,7 @@ lcPropertiesDialog::lcPropertiesDialog(QWidget* Parent, lcPropertiesDialogOption
int ColorIndex = ColorIt.first; int ColorIndex = ColorIt.first;
int Count = ColorIt.second; int Count = ColorIt.second;
lcPartsTableWidgetItem* Item = new lcPartsTableWidgetItem(QString::number(Count)); lcPartsTableWidgetItem* Item = new lcPartsTableWidgetItem(Count, locale());
Item->setTextAlignment(Qt::AlignCenter); Item->setTextAlignment(Qt::AlignCenter);
PartsTable->setItem(Row, ColorColumns[ColorIndex] + 1, Item); PartsTable->setItem(Row, ColorColumns[ColorIndex] + 1, Item);
@@ -318,20 +324,20 @@ lcPropertiesDialog::lcPropertiesDialog(QWidget* Parent, lcPropertiesDialogOption
for (Row = 0; Row < (int)InfoTotals.size(); Row++) for (Row = 0; Row < (int)InfoTotals.size(); Row++)
{ {
Item = new lcPartsTableWidgetItem(QString::number(InfoTotals[Row])); Item = new lcPartsTableWidgetItem(InfoTotals[Row], locale());
Item->setTextAlignment(Qt::AlignCenter); Item->setTextAlignment(Qt::AlignCenter);
PartsTable->setItem(Row, ColorCount + 1, Item); PartsTable->setItem(Row, ColorCount + 1, Item);
} }
for (int ColorIndex = 0; ColorIndex < ColorCount; ColorIndex++) for (int ColorIndex = 0; ColorIndex < ColorCount; ColorIndex++)
{ {
Item = new lcPartsTableWidgetItem(QString::number(ColorTotals[ColorIndex])); Item = new lcPartsTableWidgetItem(ColorTotals[ColorIndex], locale());
Item->mLast = true; Item->mLast = true;
Item->setTextAlignment(Qt::AlignCenter); Item->setTextAlignment(Qt::AlignCenter);
PartsTable->setItem((int)InfoTotals.size(), ColorIndex + 1, Item); PartsTable->setItem((int)InfoTotals.size(), ColorIndex + 1, Item);
} }
Item = new lcPartsTableWidgetItem(QString::number(Total)); Item = new lcPartsTableWidgetItem(Total, locale());
Item->mLast = true; Item->mLast = true;
Item->setTextAlignment(Qt::AlignCenter); Item->setTextAlignment(Qt::AlignCenter);
PartsTable->setItem((int)InfoTotals.size(), ColorCount + 1, Item); PartsTable->setItem((int)InfoTotals.size(), ColorCount + 1, Item);
+10 -5
View File
@@ -65,16 +65,15 @@ QString lcFormatValue(float Value, int Precision)
return String; return String;
} }
QString lcFormatValueLocalized(float Value) QString lcFormatFloatLocalized(float Value, QLocale Locale)
{ {
QLocale Locale = QLocale::system(); Locale.setNumberOptions(Locale.numberOptions() | QLocale::OmitGroupSeparator);
Locale.setNumberOptions(QLocale::OmitGroupSeparator);
QString DecimalPoint = Locale.decimalPoint(); QString DecimalPoint = Locale.decimalPoint();
QString String = Locale.toString(Value, 'f', 4); QString String = Locale.toString(Value, 'f', 4);
if (String.indexOf(DecimalPoint) != -1) if (String.indexOf(DecimalPoint) != -1)
{ {
while (String.endsWith('0')) while (String.endsWith(Locale.zeroDigit()))
String.chop(1); String.chop(1);
if (String.endsWith(DecimalPoint)) if (String.endsWith(DecimalPoint))
@@ -84,13 +83,19 @@ QString lcFormatValueLocalized(float Value)
return String; return String;
} }
QString lcFormatDoubleLocalized(double Value, QLocale Locale, char Format, int Precision)
{
Locale.setNumberOptions(Locale.numberOptions() | QLocale::OmitGroupSeparator);
return Locale.toString(Value, Format, Precision);
}
QString lcFormatIntegerLocalized(qlonglong Value, QLocale Locale) QString lcFormatIntegerLocalized(qlonglong Value, QLocale Locale)
{ {
Locale.setNumberOptions(Locale.numberOptions() | QLocale::OmitGroupSeparator); Locale.setNumberOptions(Locale.numberOptions() | QLocale::OmitGroupSeparator);
return Locale.toString(Value); return Locale.toString(Value);
} }
std::optional<float> lcParseFloatValueLocalized(const QString& Value, QLocale Locale) std::optional<float> lcParseFloatLocalized(const QString& Value, QLocale Locale)
{ {
bool Ok; bool Ok;
const float Number = Locale.toFloat(Value, &Ok); const float Number = Locale.toFloat(Value, &Ok);
+3 -2
View File
@@ -12,9 +12,10 @@ constexpr int LC_MAX_GRID_LINE_SPACING = 10000;
constexpr int LC_MAX_AREA_LIGHT_GRID = 64; constexpr int LC_MAX_AREA_LIGHT_GRID = 64;
QString lcFormatValue(float Value, int Precision); QString lcFormatValue(float Value, int Precision);
QString lcFormatValueLocalized(float Value); QString lcFormatFloatLocalized(float Value, QLocale Locale);
QString lcFormatDoubleLocalized(double Value, QLocale Locale, char Format, int Precision);
QString lcFormatIntegerLocalized(qlonglong Value, QLocale Locale); QString lcFormatIntegerLocalized(qlonglong Value, QLocale Locale);
std::optional<float> lcParseFloatValueLocalized(const QString& Value, QLocale Locale); std::optional<float> lcParseFloatLocalized(const QString& Value, QLocale Locale);
void lcSetupDialogHelp(QDialog* Dialog, QDialogButtonBox* ButtonBox); void lcSetupDialogHelp(QDialog* Dialog, QDialogButtonBox* ButtonBox);
void lcSetupWidgetHelp(QWidget* Root, QDialogButtonBox* ButtonBox); void lcSetupWidgetHelp(QWidget* Root, QDialogButtonBox* ButtonBox);
+48 -13
View File
@@ -4970,9 +4970,8 @@ Formát souboru není rozpoznán.</translation>
<translation>Vybrat všechny části modelu</translation> <translation>Vybrat všechny části modelu</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>Zrušte všechny výběry</translation> <translation type="vanished">Zrušte všechny výběry</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -5071,6 +5070,12 @@ Formát souboru není rozpoznán.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Vyměňte všechny dílky, které odpovídají kritériím vyhledávání</translation> <translation type="unfinished">Vyměňte všechny dílky, které odpovídají kritériím vyhledávání</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Zrušit celý výběr</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="395"/> <location filename="../common/lc_commands.cpp" line="395"/>
<source>Move and rotate objects in absolute coordinates</source> <source>Move and rotate objects in absolute coordinates</source>
@@ -5102,9 +5107,8 @@ Formát souboru není rozpoznán.</translation>
<translation type="unfinished">Samostatně přepínat otáčení vybraných dílků</translation> <translation type="unfinished">Samostatně přepínat otáčení vybraných dílků</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>Přepnout osy přichycení</translation> <translation type="vanished">Přepnout osy přichycení</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="443"/> <location filename="../common/lc_commands.cpp" line="443"/>
@@ -5380,9 +5384,8 @@ Formát souboru není rozpoznán.</translation>
<translation>Oddálit</translation> <translation>Oddálit</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>Přizpůsobit všechny dílky v aktuálním pohledu (stisknutím klávesy CTRL zvětšíte všechna zobrazení)</translation> <translation type="vanished">Přizpůsobit všechny dílky v aktuálním pohledu (stisknutím klávesy CTRL zvětšíte všechna zobrazení)</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5532,10 +5535,21 @@ Formát souboru není rozpoznán.</translation>
<translation type="unfinished">Přidejte do modelu nová bodová světla</translation> <translation type="unfinished">Přidejte do modelu nová bodová světla</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Přidejte do modelu nové všesměrové světelné zdroje</translation> <translation type="obsolete">Přidejte do modelu nové všesměrové světelné zdroje</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Zapnout nebo vypnout přichytávání pohybu</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Přidat do modelu nové směrové světelné zdroje</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5543,6 +5557,12 @@ Formát souboru není rozpoznán.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Přidejte do modelu nové plošné zdroje světla</translation> <translation type="unfinished">Přidejte do modelu nové plošné zdroje světla</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Zobrazit všechny díly v aktuálním pohledu</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1203"/> <location filename="../common/lc_commands.cpp" line="1203"/>
<location filename="../common/lc_commands.cpp" line="2131"/> <location filename="../common/lc_commands.cpp" line="2131"/>
@@ -5754,20 +5774,35 @@ Formát souboru není rozpoznán.</translation>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/> <location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/> <location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects around the X axis</source>
<translation>Otočit vybrané objekty podél osy X</translation> <translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Otočit vybrané objekty kolem osy X</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/> <location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/> <location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects around the Y axis</source>
<translation>Otočit vybrané objekty podél osy Y</translation> <translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Otočit vybrané objekty kolem osy Y</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/> <location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/> <location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Otočit vybrané objekty kolem osy Z</translation>
</message>
<message>
<source>Rotate selected objects along the X axis</source>
<translation type="vanished">Otočit vybrané objekty podél osy X</translation>
</message>
<message>
<source>Rotate selected objects along the Y axis</source>
<translation type="vanished">Otočit vybrané objekty podél osy Y</translation>
</message>
<message>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>Otočit vybrané objekty podél osy Z</translation> <translation type="vanished">Otočit vybrané objekty podél osy Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+52 -17
View File
@@ -5103,9 +5103,8 @@ Dateiformat wird nicht erkannt.</translation>
<translation type="vanished">Nächstes Objekt finden</translation> <translation type="vanished">Nächstes Objekt finden</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>Auswahl aufheben</translation> <translation type="vanished">Auswahl aufheben</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -5118,9 +5117,8 @@ Dateiformat wird nicht erkannt.</translation>
<translation>Objekte per Namen auswählen</translation> <translation>Objekte per Namen auswählen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>Einrasten an Achsen umschalten</translation> <translation type="vanished">Einrasten an Achsen umschalten</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="603"/> <location filename="../common/lc_commands.cpp" line="603"/>
@@ -5132,6 +5130,18 @@ Dateiformat wird nicht erkannt.</translation>
<source>Do not snap movement along the XY plane</source> <source>Do not snap movement along the XY plane</source>
<translation>Bewegung in der XY-Eben kontinuierlich</translation> <translation>Bewegung in der XY-Eben kontinuierlich</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Auswahl aufheben</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Bewegungsraster ein- oder ausschalten</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="451"/> <location filename="../common/lc_commands.cpp" line="451"/>
<source>Snap movement along the XY plane to 1/20 stud</source> <source>Snap movement along the XY plane to 1/20 stud</source>
@@ -5549,9 +5559,8 @@ Dateiformat wird nicht erkannt.</translation>
<translation>Verkleinern</translation> <translation>Verkleinern</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>Ansicht für alle Teile anpassen</translation> <translation type="vanished">Ansicht für alle Teile anpassen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5692,6 +5701,27 @@ Dateiformat wird nicht erkannt.</translation>
<source>Remove the selected control point</source> <source>Remove the selected control point</source>
<translation>Ausgewählten Steuerungspunkt entfernen</translation> <translation>Ausgewählten Steuerungspunkt entfernen</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects around the X axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ausgewählte Objekte um die X-Achse drehen</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects around the Y axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ausgewählte Objekte um die Y-Achse drehen</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ausgewählte Objekte um die Z-Achse drehen</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1611"/> <location filename="../common/lc_commands.cpp" line="1611"/>
<source>Move the selected pieces to a new model and replace them with a reference to the model</source> <source>Move the selected pieces to a new model and replace them with a reference to the model</source>
@@ -5873,10 +5903,15 @@ Dateiformat wird nicht erkannt.</translation>
<translation type="unfinished">Fügen Sie dem Modell neue Scheinwerfer hinzu</translation> <translation type="unfinished">Fügen Sie dem Modell neue Scheinwerfer hinzu</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Fügen Sie dem Modell neue omnidirektionale Lichtquellen hinzu</translation> <translation type="obsolete">Fügen Sie dem Modell neue omnidirektionale Lichtquellen hinzu</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Neue gerichtete Lichtquellen zum Modell hinzufügen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5884,6 +5919,12 @@ Dateiformat wird nicht erkannt.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Fügen Sie dem Modell neue Flächenlichtquellen hinzu</translation> <translation type="unfinished">Fügen Sie dem Modell neue Flächenlichtquellen hinzu</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Alle Teile in die aktuelle Ansicht einpassen</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1187"/> <location filename="../common/lc_commands.cpp" line="1187"/>
<location filename="../common/lc_commands.cpp" line="2115"/> <location filename="../common/lc_commands.cpp" line="2115"/>
@@ -6093,22 +6134,16 @@ Dateiformat wird nicht erkannt.</translation>
<translation>Ausgewählte Teile entlang der Z-Achse bewegen</translation> <translation>Ausgewählte Teile entlang der Z-Achse bewegen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects along the X axis</source>
<translation>Ausgewählte Teile entlang der X-Achse drehen</translation> <translation type="vanished">Ausgewählte Teile entlang der X-Achse drehen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects along the Y axis</source>
<translation>Ausgewählte Teile entlang der Y-Achse drehen</translation> <translation type="vanished">Ausgewählte Teile entlang der Y-Achse drehen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>Ausgewählte Teile entlang der Z-Achse drehen</translation> <translation type="vanished">Ausgewählte Teile entlang der Z-Achse drehen</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+52 -17
View File
@@ -4782,9 +4782,8 @@ Formato de archivo no reconocido.</translation>
<translation type="vanished">Buscar el siguiente objeto</translation> <translation type="vanished">Buscar el siguiente objeto</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>Deseleccionar todo</translation> <translation type="vanished">Deseleccionar todo</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -4797,9 +4796,8 @@ Formato de archivo no reconocido.</translation>
<translation>Seleccionar objetos por nombre</translation> <translation>Seleccionar objetos por nombre</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>Alternar el ajuste a la rejilla para traslaciones</translation> <translation type="vanished">Alternar el ajuste a la rejilla para traslaciones</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="603"/> <location filename="../common/lc_commands.cpp" line="603"/>
@@ -4811,6 +4809,18 @@ Formato de archivo no reconocido.</translation>
<source>Do not snap movement along the XY plane</source> <source>Do not snap movement along the XY plane</source>
<translation>No ajustar traslaciones en el plano XY</translation> <translation>No ajustar traslaciones en el plano XY</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Deseleccionar todo</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Activar o desactivar el ajuste del movimiento</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="451"/> <location filename="../common/lc_commands.cpp" line="451"/>
<source>Snap movement along the XY plane to 1/20 stud</source> <source>Snap movement along the XY plane to 1/20 stud</source>
@@ -5222,9 +5232,8 @@ Formato de archivo no reconocido.</translation>
<translation>Reducir</translation> <translation>Reducir</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>Encajar todas las piezas en la vista actual (mantener pulsado Ctrl para ampliar todas las vistas)</translation> <translation type="vanished">Encajar todas las piezas en la vista actual (mantener pulsado Ctrl para ampliar todas las vistas)</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5365,6 +5374,27 @@ Formato de archivo no reconocido.</translation>
<source>Remove the selected control point</source> <source>Remove the selected control point</source>
<translation>Quitar la selección del punto de control</translation> <translation>Quitar la selección del punto de control</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects around the X axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Girar los objetos seleccionados alrededor del eje X</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects around the Y axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Girar los objetos seleccionados alrededor del eje Y</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Girar los objetos seleccionados alrededor del eje Z</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1603"/> <location filename="../common/lc_commands.cpp" line="1603"/>
<source>Open the model referenced by the selected piece in a new tab</source> <source>Open the model referenced by the selected piece in a new tab</source>
@@ -5539,10 +5569,15 @@ Formato de archivo no reconocido.</translation>
<translation type="unfinished">Agregar nuevos focos al modelo.</translation> <translation type="unfinished">Agregar nuevos focos al modelo.</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Agregue nuevas fuentes de luz omnidireccionales al modelo.</translation> <translation type="obsolete">Agregue nuevas fuentes de luz omnidireccionales al modelo.</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Añadir nuevas fuentes de luz direccional al modelo</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5550,6 +5585,12 @@ Formato de archivo no reconocido.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Agregar nuevas fuentes de luz de área al modelo</translation> <translation type="unfinished">Agregar nuevas fuentes de luz de área al modelo</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ajustar la vista actual para mostrar todas las piezas</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1187"/> <location filename="../common/lc_commands.cpp" line="1187"/>
<location filename="../common/lc_commands.cpp" line="2115"/> <location filename="../common/lc_commands.cpp" line="2115"/>
@@ -5744,22 +5785,16 @@ Formato de archivo no reconocido.</translation>
<translation>Mover los objetos seleccionados a lo largo del eje Z</translation> <translation>Mover los objetos seleccionados a lo largo del eje Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects along the X axis</source>
<translation>Rotar los objetos seleccionados a lo largo del eje X</translation> <translation type="vanished">Rotar los objetos seleccionados a lo largo del eje X</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects along the Y axis</source>
<translation>Rotar los objetos seleccionados a lo largo del eje Y</translation> <translation type="vanished">Rotar los objetos seleccionados a lo largo del eje Y</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>Rotar los objetos seleccionados a lo largo del eje Z</translation> <translation type="vanished">Rotar los objetos seleccionados a lo largo del eje Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+52 -17
View File
@@ -5137,9 +5137,8 @@ Le format du fichier n'est pas reconnu.</translation>
<translation type="vanished">Trouver l’objet suivant</translation> <translation type="vanished">Trouver l’objet suivant</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>Vider la sélection</translation> <translation type="vanished">Vider la sélection</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -5152,9 +5151,8 @@ Le format du fichier n'est pas reconnu.</translation>
<translation>Sélectionner des objets par leur nom</translation> <translation>Sélectionner des objets par leur nom</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>Basculer l’usage de pas pour les déplacements</translation> <translation type="vanished">Basculer l’usage de pas pour les déplacements</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="603"/> <location filename="../common/lc_commands.cpp" line="603"/>
@@ -5387,6 +5385,12 @@ Le format du fichier n'est pas reconnu.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Sélectionnez toutes les pièces du modèle</translation> <translation type="unfinished">Sélectionnez toutes les pièces du modèle</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Tout désélectionner</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="355"/> <location filename="../common/lc_commands.cpp" line="355"/>
<source>Select one piece at a time</source> <source>Select one piece at a time</source>
@@ -5447,6 +5451,12 @@ Le format du fichier n'est pas reconnu.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Basculer la rotation des pièces sélectionnées séparément</translation> <translation type="unfinished">Basculer la rotation des pièces sélectionnées séparément</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Activer ou désactiver l’accrochage des déplacements</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="635"/> <location filename="../common/lc_commands.cpp" line="635"/>
<source>Snap rotations to 15 degrees</source> <source>Snap rotations to 15 degrees</source>
@@ -5512,6 +5522,12 @@ Le format du fichier n'est pas reconnu.</translation>
<source>Add new pieces to the model</source> <source>Add new pieces to the model</source>
<translation>Ajouter des nouvelles pièces au modèle</translation> <translation>Ajouter des nouvelles pièces au modèle</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ajouter de nouvelles sources de lumière directionnelle au modèle</translation>
</message>
<message> <message>
<source>Add new omni light sources to the model</source> <source>Add new omni light sources to the model</source>
<translation type="vanished">Ajouter des sources de lumière omnidirectionnelles au modèle</translation> <translation type="vanished">Ajouter des sources de lumière omnidirectionnelles au modèle</translation>
@@ -5602,9 +5618,8 @@ Le format du fichier n'est pas reconnu.</translation>
<translation>Dézoomer</translation> <translation>Dézoomer</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>Zoomer pour voir toutes les pièces dans la vue courante (maintenir la touche Ctrl enfoncée pour zoomer toutes les vues)</translation> <translation type="vanished">Zoomer pour voir toutes les pièces dans la vue courante (maintenir la touche Ctrl enfoncée pour zoomer toutes les vues)</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5754,6 +5769,27 @@ Le format du fichier n'est pas reconnu.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Supprimer le point de contrôle sélectionné</translation> <translation type="unfinished">Supprimer le point de contrôle sélectionné</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects around the X axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Faire tourner les objets sélectionnés autour de l’axe X</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects around the Y axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Faire tourner les objets sélectionnés autour de l’axe Y</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Faire tourner les objets sélectionnés autour de l’axe Z</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1603"/> <location filename="../common/lc_commands.cpp" line="1603"/>
<source>Open the model referenced by the selected piece in a new tab</source> <source>Open the model referenced by the selected piece in a new tab</source>
@@ -5949,10 +5985,9 @@ Le format du fichier n'est pas reconnu.</translation>
<translation type="unfinished">Ajouter de nouveaux spots au modèle</translation> <translation type="unfinished">Ajouter de nouveaux spots au modèle</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Ajouter de nouvelles sources de lumière omnidirectionnelles au modèle</translation> <translation type="obsolete">Ajouter de nouvelles sources de lumière omnidirectionnelles au modèle</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5960,6 +5995,12 @@ Le format du fichier n'est pas reconnu.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Ajouter de nouvelles sources lumineuses de zone au modèle</translation> <translation type="unfinished">Ajouter de nouvelles sources lumineuses de zone au modèle</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ajuster la vue actuelle pour afficher toutes les pièces</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1187"/> <location filename="../common/lc_commands.cpp" line="1187"/>
<location filename="../common/lc_commands.cpp" line="2115"/> <location filename="../common/lc_commands.cpp" line="2115"/>
@@ -6174,22 +6215,16 @@ Le format du fichier n'est pas reconnu.</translation>
<translation>Déplacer les objets sélectionnés sur l’axe Z</translation> <translation>Déplacer les objets sélectionnés sur l’axe Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects along the X axis</source>
<translation>Tourner les objets sélections suivant l’axe X</translation> <translation type="vanished">Tourner les objets sélections suivant l’axe X</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects along the Y axis</source>
<translation>Tourner les objets sélections suivant l’axe Y</translation> <translation type="vanished">Tourner les objets sélections suivant l’axe Y</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>Tourner les objets sélections suivant l’axe Z</translation> <translation type="vanished">Tourner les objets sélections suivant l’axe Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+52 -17
View File
@@ -5138,9 +5138,8 @@ O formato do ficheiro não é reconhecido.</translation>
<translation type="vanished">Procurar objecto seguinte</translation> <translation type="vanished">Procurar objecto seguinte</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>De-selecciona tudo</translation> <translation type="vanished">De-selecciona tudo</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -5153,9 +5152,8 @@ O formato do ficheiro não é reconhecido.</translation>
<translation>Selecciona objectos por nome</translation> <translation>Selecciona objectos por nome</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>Bascula a grelha nos eixos</translation> <translation type="vanished">Bascula a grelha nos eixos</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="603"/> <location filename="../common/lc_commands.cpp" line="603"/>
@@ -5388,6 +5386,12 @@ O formato do ficheiro não é reconhecido.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Selecione todas as peças do modelo</translation> <translation type="unfinished">Selecione todas as peças do modelo</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Desselecionar tudo</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="355"/> <location filename="../common/lc_commands.cpp" line="355"/>
<source>Select one piece at a time</source> <source>Select one piece at a time</source>
@@ -5448,6 +5452,12 @@ O formato do ficheiro não é reconhecido.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Alternar a rotação das peças selecionadas em separado</translation> <translation type="unfinished">Alternar a rotação das peças selecionadas em separado</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ativar ou desativar o ajuste do movimento</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="635"/> <location filename="../common/lc_commands.cpp" line="635"/>
<source>Snap rotations to 15 degrees</source> <source>Snap rotations to 15 degrees</source>
@@ -5513,6 +5523,12 @@ O formato do ficheiro não é reconhecido.</translation>
<source>Add new pieces to the model</source> <source>Add new pieces to the model</source>
<translation>Adiciona novas peças ao modelo</translation> <translation>Adiciona novas peças ao modelo</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Adicionar novas fontes de luz direcional ao modelo</translation>
</message>
<message> <message>
<source>Add new omni light sources to the model</source> <source>Add new omni light sources to the model</source>
<translation type="vanished">Adiciona novas luzes difusas ao modelo</translation> <translation type="vanished">Adiciona novas luzes difusas ao modelo</translation>
@@ -5603,9 +5619,8 @@ O formato do ficheiro não é reconhecido.</translation>
<translation>Ampliar</translation> <translation>Ampliar</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>Faz caber todas as peças na vista actual (carregue na tecla CTRL para aplicar a todas as vistas)</translation> <translation type="vanished">Faz caber todas as peças na vista actual (carregue na tecla CTRL para aplicar a todas as vistas)</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5748,6 +5763,27 @@ O formato do ficheiro não é reconhecido.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Fechar separador atual</translation> <translation type="unfinished">Fechar separador atual</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects around the X axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Rodar os objetos selecionados em torno do eixo X</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects around the Y axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Rodar os objetos selecionados em torno do eixo Y</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Rodar os objetos selecionados em torno do eixo Z</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1603"/> <location filename="../common/lc_commands.cpp" line="1603"/>
<source>Open the model referenced by the selected piece in a new tab</source> <source>Open the model referenced by the selected piece in a new tab</source>
@@ -5949,10 +5985,9 @@ O formato do ficheiro não é reconhecido.</translation>
<translation type="unfinished">Adicione novos focos de luz ao modelo</translation> <translation type="unfinished">Adicione novos focos de luz ao modelo</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Adicione novas fontes de luz omnidirecionais ao modelo</translation> <translation type="obsolete">Adicione novas fontes de luz omnidirecionais ao modelo</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5960,6 +5995,12 @@ O formato do ficheiro não é reconhecido.</translation>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Adicione novas fontes de luz de área ao modelo</translation> <translation type="unfinished">Adicione novas fontes de luz de área ao modelo</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Ajustar a vista atual para mostrar todas as peças</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1187"/> <location filename="../common/lc_commands.cpp" line="1187"/>
<location filename="../common/lc_commands.cpp" line="2115"/> <location filename="../common/lc_commands.cpp" line="2115"/>
@@ -6182,22 +6223,16 @@ O formato do ficheiro não é reconhecido.</translation>
<translation>Move os objectos seleccionados no eixo Z</translation> <translation>Move os objectos seleccionados no eixo Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects along the X axis</source>
<translation>Roda os objectos seleccionados no eixo X</translation> <translation type="vanished">Roda os objectos seleccionados no eixo X</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects along the Y axis</source>
<translation>Roda os objectos seleccionados no eixo Y</translation> <translation type="vanished">Roda os objectos seleccionados no eixo Y</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>Roda os objectos seleccionados no eixo Z</translation> <translation type="vanished">Roda os objectos seleccionados no eixo Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+48 -13
View File
@@ -4823,9 +4823,8 @@ File format is not recognized.</source>
<translation>Выбрать все детали модели</translation> <translation>Выбрать все детали модели</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>Снять выделение</translation> <translation type="vanished">Снять выделение</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -4894,6 +4893,12 @@ File format is not recognized.</source>
<source>Replace all pieces that match the search criteria</source> <source>Replace all pieces that match the search criteria</source>
<translation>Заменить все детали, совпадающие с условиями поиска</translation> <translation>Заменить все детали, совпадающие с условиями поиска</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Снять всё выделение</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="355"/> <location filename="../common/lc_commands.cpp" line="355"/>
<source>Select one piece at a time</source> <source>Select one piece at a time</source>
@@ -4945,9 +4950,8 @@ File format is not recognized.</source>
<translation>Переключить вращение выбранных деталей отдельно</translation> <translation>Переключить вращение выбранных деталей отдельно</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>Переключить привязку осей</translation> <translation type="vanished">Переключить привязку осей</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="443"/> <location filename="../common/lc_commands.cpp" line="443"/>
@@ -5155,10 +5159,9 @@ File format is not recognized.</source>
<translation type="unfinished">Добавьте в модель новые точечные светильники</translation> <translation type="unfinished">Добавьте в модель новые точечные светильники</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Добавьте в модель новые всенаправленные источники света.</translation> <translation type="obsolete">Добавьте в модель новые всенаправленные источники света.</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5247,9 +5250,26 @@ File format is not recognized.</source>
<translation>Уменьшить</translation> <translation>Уменьшить</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>Вписать все детали в текущий вид (удерживайте клавишу CTRL для масштабирования всех видов)</translation> <translation type="vanished">Вписать все детали в текущий вид (удерживайте клавишу CTRL для масштабирования всех видов)</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Включить или отключить привязку перемещения</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Добавить в модель новые направленные источники света</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Показать все детали в текущем виде</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5583,20 +5603,35 @@ File format is not recognized.</source>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/> <location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/> <location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects around the X axis</source>
<translation>Вращать выбранные объекты по оси X</translation> <translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Повернуть выбранные объекты вокруг оси X</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/> <location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/> <location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects around the Y axis</source>
<translation>Вращать выбранные объекты по оси Y</translation> <translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Повернуть выбранные объекты вокруг оси Y</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/> <location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/> <location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Повернуть выбранные объекты вокруг оси Z</translation>
</message>
<message>
<source>Rotate selected objects along the X axis</source>
<translation type="vanished">Вращать выбранные объекты по оси X</translation>
</message>
<message>
<source>Rotate selected objects along the Y axis</source>
<translation type="vanished">Вращать выбранные объекты по оси Y</translation>
</message>
<message>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>Вращать выбранные объекты по оси Z</translation> <translation type="vanished">Вращать выбранные объекты по оси Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+50 -15
View File
@@ -5316,10 +5316,9 @@ File format is not recognized.</source>
<translation type="unfinished">Виберіть усі частини моделі</translation> <translation type="unfinished">Виберіть усі частини моделі</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Зніміть вибір із усього</translation> <translation type="obsolete">Зніміть вибір із усього</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -5399,6 +5398,12 @@ File format is not recognized.</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Замініть усі елементи, які відповідають критеріям пошуку</translation> <translation type="unfinished">Замініть усі елементи, які відповідають критеріям пошуку</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Зняти все виділення</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="355"/> <location filename="../common/lc_commands.cpp" line="355"/>
<source>Select one piece at a time</source> <source>Select one piece at a time</source>
@@ -5460,10 +5465,9 @@ File format is not recognized.</source>
<translation type="unfinished">Перемкнути обертання вибраних частин окремо</translation> <translation type="unfinished">Перемкнути обертання вибраних частин окремо</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Перемикати осі прив’язки</translation> <translation type="obsolete">Перемикати осі прив’язки</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="443"/> <location filename="../common/lc_commands.cpp" line="443"/>
@@ -5700,10 +5704,9 @@ File format is not recognized.</source>
<translation type="unfinished">Додайте до моделі нові прожектори</translation> <translation type="unfinished">Додайте до моделі нові прожектори</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Додайте до моделі нові всенаправлені джерела світла</translation> <translation type="obsolete">Додайте до моделі нові всенаправлені джерела світла</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5808,10 +5811,27 @@ File format is not recognized.</source>
<translation type="unfinished">Зменшити масштаб</translation> <translation type="unfinished">Зменшити масштаб</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Розмістіть усі частини в поточному поданні (утримуйте клавішу CTRL, щоб збільшити всі подання)</translation> <translation type="obsolete">Розмістіть усі частини в поточному поданні (утримуйте клавішу CTRL, щоб збільшити всі подання)</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Увімкнути або вимкнути прив’язку переміщення</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Додати до моделі нові спрямовані джерела світла</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Показати всі деталі в поточному вигляді</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -6203,23 +6223,38 @@ File format is not recognized.</source>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/> <location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/> <location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects around the X axis</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Повертати виділені об’єкти вздовж осі X</translation> <translation type="unfinished">Повернути вибрані об’єкти навколо осі X</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/> <location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/> <location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects around the Y axis</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Повертати виділені об’єкти вздовж осі Y</translation> <translation type="unfinished">Повернути вибрані об’єкти навколо осі Y</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/> <location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/> <location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">Повернути вибрані об’єкти навколо осі Z</translation>
</message>
<message>
<source>Rotate selected objects along the X axis</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="obsolete">Повертати виділені об’єкти вздовж осі X</translation>
</message>
<message>
<source>Rotate selected objects along the Y axis</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="obsolete">Повертати виділені об’єкти вздовж осі Y</translation>
</message>
<message>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">Повертати виділені об’єкти вздовж осі Z</translation> <translation type="obsolete">Повертати виділені об’єкти вздовж осі Z</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>
+52 -17
View File
@@ -4775,9 +4775,8 @@ File format is not recognized.</source>
<translation type="vanished">查找下一个对象</translation> <translation type="vanished">查找下一个对象</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>De-select everything</source> <source>De-select everything</source>
<translation>取消全选</translation> <translation type="vanished">取消全选</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="339"/> <location filename="../common/lc_commands.cpp" line="339"/>
@@ -4790,9 +4789,8 @@ File format is not recognized.</source>
<translation>按名称选择物体</translation> <translation>按名称选择物体</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle snap axes</source> <source>Toggle snap axes</source>
<translation>切换吸附轴</translation> <translation type="vanished">切换吸附轴</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="603"/> <location filename="../common/lc_commands.cpp" line="603"/>
@@ -5007,6 +5005,12 @@ File format is not recognized.</source>
<source>Select all pieces in the model</source> <source>Select all pieces in the model</source>
<translation>选择模型中的所有零件</translation> <translation>选择模型中的所有零件</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="331"/>
<source>Deselect everything</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">取消全部选择</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="355"/> <location filename="../common/lc_commands.cpp" line="355"/>
<source>Select one piece at a time</source> <source>Select one piece at a time</source>
@@ -5057,6 +5061,12 @@ File format is not recognized.</source>
<source>Toggle rotating selected pieces separately</source> <source>Toggle rotating selected pieces separately</source>
<translation>切换分别旋转选定零件</translation> <translation>切换分别旋转选定零件</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="435"/>
<source>Toggle movement snapping</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">切换移动捕捉</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="635"/> <location filename="../common/lc_commands.cpp" line="635"/>
<source>Snap rotations to 15 degrees</source> <source>Snap rotations to 15 degrees</source>
@@ -5122,6 +5132,12 @@ File format is not recognized.</source>
<source>Add new pieces to the model</source> <source>Add new pieces to the model</source>
<translation>向模型添加新零件</translation> <translation>向模型添加新零件</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new directional light sources to the model</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">向模型添加新的定向光源</translation>
</message>
<message> <message>
<source>Add new omni light sources to the model</source> <source>Add new omni light sources to the model</source>
<translation type="vanished">向模型添加新的点光源</translation> <translation type="vanished">向模型添加新的点光源</translation>
@@ -5211,9 +5227,8 @@ File format is not recognized.</source>
<translation>缩小</translation> <translation>缩小</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source> <source>Fit all pieces in the current view (hold the CTRL key down to zoom all views)</source>
<translation>使所有零件适应当前视图(按住 CTRL 键可缩放所有视图)</translation> <translation type="vanished">使所有零件适应当前视图(按住 CTRL 键可缩放所有视图)</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="907"/> <location filename="../common/lc_commands.cpp" line="907"/>
@@ -5349,6 +5364,27 @@ File format is not recognized.</source>
<source>Close current tab</source> <source>Close current tab</source>
<translation>关闭当前标签页</translation> <translation>关闭当前标签页</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects around the X axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">绕 X 轴旋转所选对象</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects around the Y axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">绕 Y 轴旋转所选对象</translation>
</message>
<message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects around the Z axis</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">绕 Z 轴旋转所选对象</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1603"/> <location filename="../common/lc_commands.cpp" line="1603"/>
<source>Open the model referenced by the selected piece in a new tab</source> <source>Open the model referenced by the selected piece in a new tab</source>
@@ -5528,10 +5564,9 @@ File format is not recognized.</source>
<translation type="unfinished">向模型添加新的聚光灯</translation> <translation type="unfinished">向模型添加新的聚光灯</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="755"/>
<source>Add new omnidirectional light sources to the model</source> <source>Add new omnidirectional light sources to the model</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">向模型添加新的全向光源</translation> <translation type="obsolete">向模型添加新的全向光源</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="763"/> <location filename="../common/lc_commands.cpp" line="763"/>
@@ -5539,6 +5574,12 @@ File format is not recognized.</source>
<translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment> <translatorcomment>Machine-translated draft (Google Translate); requires human review.</translatorcomment>
<translation type="unfinished">向模型添加新的区域光源</translation> <translation type="unfinished">向模型添加新的区域光源</translation>
</message> </message>
<message>
<location filename="../common/lc_commands.cpp" line="899"/>
<source>Fit all pieces in the current view</source>
<translatorcomment>AI-generated translation draft; requires human review.</translatorcomment>
<translation type="unfinished">调整当前视图以显示所有零件</translation>
</message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1187"/> <location filename="../common/lc_commands.cpp" line="1187"/>
<location filename="../common/lc_commands.cpp" line="2115"/> <location filename="../common/lc_commands.cpp" line="2115"/>
@@ -5738,22 +5779,16 @@ File format is not recognized.</source>
<translation>沿 Z 轴移动选定物体</translation> <translation>沿 Z 轴移动选定物体</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1539"/>
<location filename="../common/lc_commands.cpp" line="1547"/>
<source>Rotate selected objects along the X axis</source> <source>Rotate selected objects along the X axis</source>
<translation>沿 X 轴旋转选定物体</translation> <translation type="vanished">沿 X 轴旋转选定物体</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1555"/>
<location filename="../common/lc_commands.cpp" line="1563"/>
<source>Rotate selected objects along the Y axis</source> <source>Rotate selected objects along the Y axis</source>
<translation>沿 Y 轴旋转选定物体</translation> <translation type="vanished">沿 Y 轴旋转选定物体</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1571"/>
<location filename="../common/lc_commands.cpp" line="1579"/>
<source>Rotate selected objects along the Z axis</source> <source>Rotate selected objects along the Z axis</source>
<translation>沿 Z 轴旋转选定物体</translation> <translation type="vanished">沿 Z 轴旋转选定物体</translation>
</message> </message>
<message> <message>
<location filename="../common/lc_commands.cpp" line="1587"/> <location filename="../common/lc_commands.cpp" line="1587"/>