Make English the source language of the interface text

Every tr() source string in the code and the forms is now the English
text, and French is a translation (qet_fr.ts) like the other languages.
Generated, not hand-edited: master ef795a21e5 converted by
qet-en-source (harness 4c4ddc9).

3144 messages get an English source, 665 already had one, 0 left French; 8 shared-wording pairs disambiguated.
C++: 2904 literals in 233 files. Forms: 809 strings in 65 files. All 34 .ts files re-keyed; qet_fr.ts filled.
lupdate check: PASS. What each of 38 languages shows, old vs new: same 118266, English instead of French 38433, comment fallback 51, differences 0.
This commit is contained in:
ispyisail
2026-10-08 12:50:13 +13:00
parent 57c650e6e0
commit f5962ecd06
363 changed files with 227813 additions and 199545 deletions
+64 -64
View File
@@ -60,9 +60,9 @@ AboutQETDialog::~AboutQETDialog()
void AboutQETDialog::setAbout()
{
QString str = tr("QElectroTech, une application de réalisation de schémas électriques.", "about tab, description line") +
QString str = tr("QElectroTech, an application to design electric diagrams.", "about tab, description line") +
"<br><br>© 2006-"+QDate::currentDate().toString("yyyy")+
tr(" Les développeurs de QElectroTech", "about tab, developers line") +
tr(" The developers of QElectroTech", "about tab, developers line") +
"<br><br>"
"<a href=\"https://qelectrotech.org/\">https://qelectrotech.org/</a>"
"<br><br>" +
@@ -85,17 +85,17 @@ void AboutQETDialog::setAbout()
*/
void AboutQETDialog::setAuthors()
{
addAuthor(ui->m_author_label, "Benoît Ansieau", "benoit@qelectrotech.org", tr("Idée originale"));
addAuthor(ui->m_author_label, "Laurent Trinques", "scorpio@qelectrotech.org", tr("Développement"));
addAuthor(ui->m_author_label, "Joshua Claveau", "Joshua@qelectrotech.org", tr("Développement"));
addAuthor(ui->m_author_label, "Davi Fochi", "davi@fochi.com.br", tr("Développement"));
addAuthor(ui->m_author_label, "Ronny Desmedt", "r.desmedt@live.be", tr("Convertisseur DXF"));
addAuthor(ui->m_author_label, "Raul Roda", "raulroda8@gmail.com", tr("Plugin Bornier"));
addAuthor(ui->m_author_label, "Abhishek Bansal", "abhishek@qelectrotech.org", tr("Développement"));
addAuthor(ui->m_author_label, "Simon De Backer", "debacker@qelectrotech.org", tr("Développement"));
addAuthor(ui->m_author_label, "David Varley", "David.Varley@cborn.com", tr("Développement"));
addAuthor(ui->m_author_label, "Damian Caceres", "damiancaceresmoreno@yahoo.es", tr("Développement"));
addAuthor(ui->m_author_label, "Martin Marmsoler", "martin.marmsoler@gmail.com", tr("Développement"));
addAuthor(ui->m_author_label, "Benoît Ansieau", "benoit@qelectrotech.org", tr("Original concept"));
addAuthor(ui->m_author_label, "Laurent Trinques", "scorpio@qelectrotech.org", tr("Development"));
addAuthor(ui->m_author_label, "Joshua Claveau", "Joshua@qelectrotech.org", tr("Development"));
addAuthor(ui->m_author_label, "Davi Fochi", "davi@fochi.com.br", tr("Development"));
addAuthor(ui->m_author_label, "Ronny Desmedt", "r.desmedt@live.be", tr("DXF converter"));
addAuthor(ui->m_author_label, "Raul Roda", "raulroda8@gmail.com", tr("Terminal Block plugin"));
addAuthor(ui->m_author_label, "Abhishek Bansal", "abhishek@qelectrotech.org", tr("Development"));
addAuthor(ui->m_author_label, "Simon De Backer", "debacker@qelectrotech.org", tr("Development"));
addAuthor(ui->m_author_label, "David Varley", "David.Varley@cborn.com", tr("Development"));
addAuthor(ui->m_author_label, "Damian Caceres", "damiancaceresmoreno@yahoo.es", tr("Development"));
addAuthor(ui->m_author_label, "Martin Marmsoler", "martin.marmsoler@gmail.com", tr("Development"));
addAuthor(ui->m_author_label, "Sébastien Deffaux", "s.deffaux@live.fr", tr("Collection"));
}
@@ -104,37 +104,37 @@ void AboutQETDialog::setAuthors()
*/
void AboutQETDialog::setTranslators()
{
addAuthor(ui->m_translators_label, "Alfredo Carreto", "electronicos_mx@yahoo.com.mx", tr("Traduction en espagnol"));
addAuthor(ui->m_translators_label, "Edgar Robles Najar", "tgo.edrobles@gmail.com", tr("Traduction en espagnol"));
addAuthor(ui->m_translators_label, "Yuriy Litkevich", "yuriy@qelectrotech.org", tr("Traduction en russe"));
addAuthor(ui->m_translators_label, "Evgeny Kozlov", "Evgeny.Kozlov.mailbox@gmail.com",tr("Traduction en russe"));
addAuthor(ui->m_translators_label, "José Carlos Martins", "jose@qelectrotech.org", tr("Traduction en portugais"));
addAuthor(ui->m_translators_label, "Pavel Fric", "pavelfric@seznam.cz", tr("Traduction en tchèque"));
addAuthor(ui->m_translators_label, "Pawe&#x0142; &#x015A;miech", "pawel32640@gmail.com", tr("Traduction en polonais"));
addAuthor(ui->m_translators_label, "Markus Budde & Jonas Stein & Noah Braden", "news@jonasstein.de", tr("Traduction en allemand"));
addAuthor(ui->m_translators_label, "Nuri", "nuri@qelectrotech.org", tr("Traduction en allemand"));
addAuthor(ui->m_translators_label, "Gabi Mandoc", "gabriel.mandoc@gic.ro", tr("Traduction en roumain"));
addAuthor(ui->m_translators_label, "Alessandro Conti & Silvio", "silvio@qelectrotech.org", tr("Traduction en italien"));
addAuthor(ui->m_translators_label, "Mohamed Souabni", "souabnimohamed@yahoo.fr", tr("Traduction en arabe"));
addAuthor(ui->m_translators_label, "Antun Marakovi&#x0107;", "antun.marakovic@lolaribar.hr", tr("Traduction en croate"));
addAuthor(ui->m_translators_label, "Eduard Amorós", "amoros@marmenuda.com", tr("Traduction en catalan"));
addAuthor(ui->m_translators_label, "Nikos Papadopoylos", "231036448@freemail.gr", tr("Traduction en grec"));
addAuthor(ui->m_translators_label, "Yannis Gyftomitros", "yang@hellug.gr", tr("Traduction en grec"));
addAuthor(ui->m_translators_label, "Paul Van Deelen", "shooter@home.nl", tr("Traduction en néerlandais"));
addAuthor(ui->m_translators_label, "Dik Leenheer", "dleenheer@suzerein.nl", tr("Traduction en néerlandais"));
addAuthor(ui->m_translators_label, "Ronny Desmedt", "r.desmedt@live.be", tr("Traduction en flamand"));
addAuthor(ui->m_translators_label, "OSS au2mation", "OSSau2mation@OSSau2mation.dk", tr("Traduction en danois"));
addAuthor(ui->m_translators_label, "Hilario Silveira & Gleisson J.J.Cardoso", "hilario@soliton.com.br", tr("Traduction en brézilien"));
addAuthor(ui->m_translators_label, "Aziz Karabudak", "aziz.karabudak@argevi.com", tr("Traduction en Turc"));
addAuthor(ui->m_translators_label, "Emir Izmiroglu", "emirizmiroglu@gmail.com", tr("Traduction en Turc"));
addAuthor(ui->m_translators_label, "Gábor Gubányi", "gubanyig@gmail.com", tr("Traduction en hongrois"));
addAuthor(ui->m_translators_label, "", "", tr("Traduction en serbe"));
addAuthor(ui->m_translators_label, "Yaroslav", "", tr("Traduction en ukrainien"));
addAuthor(ui->m_translators_label, "JoelAs", "", tr("Traduction en norvégien"));
addAuthor(ui->m_translators_label, "Yuki", "yuki.atoh@gmail.com", tr("Traduction en japonais"));
addAuthor(ui->m_translators_label, "Jung Kwang-Ho", "jkh2rokmc@daum.net", tr("Traduction en coréen"));
addAuthor(ui->m_translators_label, "Nathalie", "nathalie.roussier@giz.de", tr("Traduction en mongol"));
addAuthor(ui->m_translators_label, "Uroš Platiše", "uros.platise@energycon.eu", tr("Traduction en slovène"));
addAuthor(ui->m_translators_label, "Alfredo Carreto", "electronicos_mx@yahoo.com.mx", tr("Spanish translation"));
addAuthor(ui->m_translators_label, "Edgar Robles Najar", "tgo.edrobles@gmail.com", tr("Spanish translation"));
addAuthor(ui->m_translators_label, "Yuriy Litkevich", "yuriy@qelectrotech.org", tr("Russian translation"));
addAuthor(ui->m_translators_label, "Evgeny Kozlov", "Evgeny.Kozlov.mailbox@gmail.com",tr("Russian translation"));
addAuthor(ui->m_translators_label, "José Carlos Martins", "jose@qelectrotech.org", tr("Portuguese translation"));
addAuthor(ui->m_translators_label, "Pavel Fric", "pavelfric@seznam.cz", tr("Czech translation"));
addAuthor(ui->m_translators_label, "Pawe&#x0142; &#x015A;miech", "pawel32640@gmail.com", tr("Polish translation"));
addAuthor(ui->m_translators_label, "Markus Budde & Jonas Stein & Noah Braden", "news@jonasstein.de", tr("German translation"));
addAuthor(ui->m_translators_label, "Nuri", "nuri@qelectrotech.org", tr("German translation"));
addAuthor(ui->m_translators_label, "Gabi Mandoc", "gabriel.mandoc@gic.ro", tr("Romanian translation"));
addAuthor(ui->m_translators_label, "Alessandro Conti & Silvio", "silvio@qelectrotech.org", tr("Italian translation"));
addAuthor(ui->m_translators_label, "Mohamed Souabni", "souabnimohamed@yahoo.fr", tr("Arabic translation"));
addAuthor(ui->m_translators_label, "Antun Marakovi&#x0107;", "antun.marakovic@lolaribar.hr", tr("Croatian translation"));
addAuthor(ui->m_translators_label, "Eduard Amorós", "amoros@marmenuda.com", tr("Catalan translation"));
addAuthor(ui->m_translators_label, "Nikos Papadopoylos", "231036448@freemail.gr", tr("Greek translation"));
addAuthor(ui->m_translators_label, "Yannis Gyftomitros", "yang@hellug.gr", tr("Greek translation"));
addAuthor(ui->m_translators_label, "Paul Van Deelen", "shooter@home.nl", tr("Dutch translation"));
addAuthor(ui->m_translators_label, "Dik Leenheer", "dleenheer@suzerein.nl", tr("Dutch translation"));
addAuthor(ui->m_translators_label, "Ronny Desmedt", "r.desmedt@live.be", tr("Flemish translation"));
addAuthor(ui->m_translators_label, "OSS au2mation", "OSSau2mation@OSSau2mation.dk", tr("Danish translation"));
addAuthor(ui->m_translators_label, "Hilario Silveira & Gleisson J.J.Cardoso", "hilario@soliton.com.br", tr("Brazilian translation"));
addAuthor(ui->m_translators_label, "Aziz Karabudak", "aziz.karabudak@argevi.com", tr("Turkish translation"));
addAuthor(ui->m_translators_label, "Emir Izmiroglu", "emirizmiroglu@gmail.com", tr("Turkish translation"));
addAuthor(ui->m_translators_label, "Gábor Gubányi", "gubanyig@gmail.com", tr("Hungarian translation"));
addAuthor(ui->m_translators_label, "", "", tr("Serbian Translation"));
addAuthor(ui->m_translators_label, "Yaroslav", "", tr("Ukrainian translation"));
addAuthor(ui->m_translators_label, "JoelAs", "", tr("Norwegian Translation"));
addAuthor(ui->m_translators_label, "Yuki", "yuki.atoh@gmail.com", tr("Japanese translation"));
addAuthor(ui->m_translators_label, "Jung Kwang-Ho", "jkh2rokmc@daum.net", tr("Translation into Korean"));
addAuthor(ui->m_translators_label, "Nathalie", "nathalie.roussier@giz.de", tr("Mongolian Translation"));
addAuthor(ui->m_translators_label, "Uroš Platiše", "uros.platise@energycon.eu", tr("Slovenian translation"));
}
/**
@@ -142,24 +142,24 @@ void AboutQETDialog::setTranslators()
*/
void AboutQETDialog::setContributors()
{
addAuthor(ui->m_contrib_label, "Remi Collet", "remi@fedoraproject.org", tr("Paquets Fedora et Red Hat"));
addAuthor(ui->m_contrib_label, "David Geiger", "david.david@mageialinux-online.org", tr("Paquets Mageia"));
addAuthor(ui->m_contrib_label, "Laurent Trinques", "scorpio@qelectrotech.org", tr("Paquets Debian"));
addAuthor(ui->m_contrib_label, "Denis Briand", "debian@denis-briand.fr", tr("Paquets Debian"));
addAuthor(ui->m_contrib_label, "W. Martin Borgert", "debacle@debian.org", tr("Paquets Debian"));
addAuthor(ui->m_contrib_label, "Markos Chandras", "hwoarang@gentoo.org.", tr("Paquets Gentoo"));
addAuthor(ui->m_contrib_label, "Mbit", "", tr("Paquets Gentoo"));
addAuthor(ui->m_contrib_label, "Elbert", "", tr("Paquets OS/2"));
addAuthor(ui->m_contrib_label, "zloidemon", "", tr("Paquets FreeBSD"));
addAuthor(ui->m_contrib_label, "Yoann Varenne", "yoann@tuxfamily.org", tr("Paquets MAC OS X"));
addAuthor(ui->m_contrib_label, "Chipsterjulien", "", tr("Paquets Archlinux AUR"));
addAuthor(ui->m_contrib_label, "Nuno Pinheiro", "nuno@nuno-icons.com", tr("Icônes"));
addAuthor(ui->m_contrib_label, "Cyril Frausti", "cyril@qelectrotech.org", tr("Développement"));
addAuthor(ui->m_contrib_label, "Remi Collet", "remi@fedoraproject.org", tr("Fedora and Red Hat packages"));
addAuthor(ui->m_contrib_label, "David Geiger", "david.david@mageialinux-online.org", tr("Mageia packages"));
addAuthor(ui->m_contrib_label, "Laurent Trinques", "scorpio@qelectrotech.org", tr("Debian packages"));
addAuthor(ui->m_contrib_label, "Denis Briand", "debian@denis-briand.fr", tr("Debian packages"));
addAuthor(ui->m_contrib_label, "W. Martin Borgert", "debacle@debian.org", tr("Debian packages"));
addAuthor(ui->m_contrib_label, "Markos Chandras", "hwoarang@gentoo.org.", tr("Gentoo packages"));
addAuthor(ui->m_contrib_label, "Mbit", "", tr("Gentoo packages"));
addAuthor(ui->m_contrib_label, "Elbert", "", tr("OS/2 packages"));
addAuthor(ui->m_contrib_label, "zloidemon", "", tr("FreeBSD packages"));
addAuthor(ui->m_contrib_label, "Yoann Varenne", "yoann@tuxfamily.org", tr("MAC OS X packages"));
addAuthor(ui->m_contrib_label, "Chipsterjulien", "", tr("Archlinux AUR packages"));
addAuthor(ui->m_contrib_label, "Nuno Pinheiro", "nuno@nuno-icons.com", tr("Icons"));
addAuthor(ui->m_contrib_label, "Cyril Frausti", "cyril@qelectrotech.org", tr("Development"));
addAuthor(ui->m_contrib_label, "Fernando Mateu Palou de Comasema", "fdomateu@gmail.com", tr("Documentation"));
addAuthor(ui->m_contrib_label, "Arun Kishore Eswara", "eswara.arun@gmail.com", tr("Documentation"));
addAuthor(ui->m_contrib_label, "René Negre", "runsys@qelectrotech.org", tr("Développement"));
addAuthor(ui->m_contrib_label, "Nuri", "nuri@qelectrotech.org", tr("Collection d'éléments"));
addAuthor(ui->m_contrib_label, "Maximilian Federle", "", tr("Paquets Snap"));
addAuthor(ui->m_contrib_label, "René Negre", "runsys@qelectrotech.org", tr("Development"));
addAuthor(ui->m_contrib_label, "Nuri", "nuri@qelectrotech.org", tr("Collection of elements"));
addAuthor(ui->m_contrib_label, "Maximilian Federle", "", tr("Snap package"));
}
/**
@@ -175,13 +175,13 @@ void AboutQETDialog::setVersion()
void AboutQETDialog::setAnnexProject()
{
addLibrary(ui->m_annex_project_label, tr("Redimensionneur d'éléments", "Element scaler"),
addLibrary(ui->m_annex_project_label, tr("Elements resizer", "Element scaler"),
"https://github.com/plc-user/QET_ElementScaler");
addLibrary(ui->m_annex_project_label, tr("Générateur d'élément lambda", "Lambda element generator"),
addLibrary(ui->m_annex_project_label, tr("Lambda element generator", "Lambda element generator"),
"https://github.com/asnigma/qet_gen_element");
addLibrary(ui->m_annex_project_label, tr("Convertisseur d'élément DXF", "Dxf2elmt"),
addLibrary(ui->m_annex_project_label, tr("DXF Element Converter", "Dxf2elmt"),
"https://github.com/Vadoola/dxf2elmt");
addLibrary(ui->m_annex_project_label, tr("Outil de traduction d'éléments", "Qet_translate"),
addLibrary(ui->m_annex_project_label, tr("Elements translation tool", "Qet_translate"),
"https://qelectrotech.org/forum/viewtopic.php?pid=16027#p16027");
}
+8 -8
View File
@@ -17,7 +17,7 @@
</sizepolicy>
</property>
<property name="windowTitle">
<string>À propos de QElectrotech</string>
<string>About QElectroTech</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -27,7 +27,7 @@
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>À propos</string>
<string>About</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
@@ -50,7 +50,7 @@
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Auteurs</string>
<string>Authors</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
@@ -130,7 +130,7 @@
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Traducteurs</string>
<string>Translators</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">
@@ -213,7 +213,7 @@
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Contributeurs</string>
<string>Contributors</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
@@ -345,7 +345,7 @@
</widget>
<widget class="QWidget" name="m_annex_project_tab">
<attribute name="title">
<string>Projet annexe</string>
<string>Side project</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="spacing">
@@ -425,7 +425,7 @@
</widget>
<widget class="QWidget" name="tab_7">
<attribute name="title">
<string>Bibliothèques</string>
<string>Libraries</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
@@ -529,7 +529,7 @@
</widget>
<widget class="QWidget" name="tab_8">
<attribute name="title">
<string>log</string>
<string>Log</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
+43 -48
View File
@@ -44,7 +44,7 @@ const char *const GUIDE_URL =
AiAssistantDialog::AiAssistantDialog(QWidget *parent) :
QDialog(parent)
{
setWindowTitle(tr("Connecter un assistant IA"));
setWindowTitle(tr("Connect an AI assistant"));
resize(720, 560);
#ifdef Q_OS_WIN
@@ -59,11 +59,10 @@ AiAssistantDialog::AiAssistantDialog(QWidget *parent) :
auto *layout = new QVBoxLayout(this);
auto *intro = new QLabel(
tr("Un assistant IA (Claude, GitHub Copilot, Gemini…) peut ouvrir, "
"vérifier et modifier vos schémas grâce au serveur MCP de "
"QElectroTech, qui fonctionne sur cet ordinateur. Copiez le texte "
"ci-dessous dans la configuration de votre assistant. "
"<a href=\"%1\">Guide détaillé</a>").arg(QLatin1String(GUIDE_URL)),
tr("An AI assistant (Claude, GitHub Copilot, Gemini…) can open, check "
"and edit your diagrams through QElectroTech's MCP server, which "
"runs on this computer. Copy the text below into your assistant's "
"configuration. <a href=\"%1\">Detailed guide</a>").arg(QLatin1String(GUIDE_URL)),
this);
intro->setWordWrap(true);
intro->setOpenExternalLinks(true);
@@ -71,8 +70,8 @@ AiAssistantDialog::AiAssistantDialog(QWidget *parent) :
if (m_paths.server.isEmpty()) {
auto *missing = new QLabel(
tr("<b>Le serveur MCP n'est pas installé avec cette version de "
"QElectroTech.</b> Le guide explique comment l'obtenir."),
tr("<b>The MCP server is not installed with this version of "
"QElectroTech.</b> The guide explains how to get it."),
this);
missing->setWordWrap(true);
layout->addWidget(missing);
@@ -82,19 +81,19 @@ AiAssistantDialog::AiAssistantDialog(QWidget *parent) :
&& m_paths.python_status != AiAssistantSetup::PythonStatus::Found) {
QString text;
if (m_paths.python_status == AiAssistantSetup::PythonStatus::StoreShortcut)
text = tr("<b>Python n'est peut-être pas installé.</b> Seul le raccourci "
"« python » du Microsoft Store a été trouvé : sans Python, il "
"ouvre le Store au lieu de lancer le serveur.");
text = tr("<b>Python may not be installed.</b> Only the Microsoft Store "
"“python” shortcut was found: without Python, it opens the "
"Store instead of starting the server.");
else
text = tr("<b>Python est introuvable sur cet ordinateur</b> (commande "
"« %1 »). Le serveur en a besoin.").arg(m_paths.python);
text = tr("<b>Python was not found on this computer</b> (command "
"“%1”). The server needs it.").arg(m_paths.python);
if (windows)
text += QLatin1Char(' ') + tr("Relancez l'installateur de QElectroTech et "
"cochez « Python pour l'assistant IA », ou "
"installez Python depuis python.org.");
text += QLatin1Char(' ') + tr("Run the QElectroTech installer again and "
"tick “Python for the AI assistant”, or "
"install Python from python.org.");
else
text += QLatin1Char(' ') + tr("Installez Python 3 avec le gestionnaire "
"de paquets de votre système.");
text += QLatin1Char(' ') + tr("Install Python 3 with your system's "
"package manager.");
auto *python = new QLabel(text, this);
python->setWordWrap(true);
layout->addWidget(python);
@@ -109,27 +108,26 @@ AiAssistantDialog::AiAssistantDialog(QWidget *parent) :
m_client->addItem(QStringLiteral("Gemini CLI"), int(Client::GeminiCli));
m_client->addItem(QStringLiteral("Codex CLI"), int(Client::CodexCli));
m_client->addItem(QStringLiteral("LM Studio"), int(Client::LmStudio));
form->addRow(tr("Assistant :"), m_client);
form->addRow(tr("Assistant:"), m_client);
auto *workspace_row = new QHBoxLayout();
m_workspace = new QLineEdit(this);
m_workspace->setPlaceholderText(tr("Le dossier de vos schémas"));
auto *browse = new QPushButton(tr("Parcourir…"), this);
m_workspace->setPlaceholderText(tr("Your diagrams folder"));
auto *browse = new QPushButton(tr("Browse…"), this);
workspace_row->addWidget(m_workspace);
workspace_row->addWidget(browse);
form->addRow(tr("Dossier accessible :"), workspace_row);
form->addRow(tr("Folder it can use:"), workspace_row);
m_allow_edit = new QCheckBox(tr("Autoriser l'assistant à modifier les schémas"), this);
m_allow_edit = new QCheckBox(tr("Allow the assistant to edit diagrams"), this);
form->addRow(QString(), m_allow_edit);
layout->addLayout(form);
auto *scope = new QLabel(
tr("L'assistant ne peut lire et écrire que dans ce dossier. Sans "
"modification autorisée, il peut seulement lire, comparer et "
"exporter. Un assistant lit le texte des projets (repères, "
"notes…) : un texte écrit comme une instruction peut "
"l'influencer. Laissez les modifications désactivées pour les "
"schémas reçus d'autres personnes."),
tr("The assistant can only read and write in this folder. Without "
"editing allowed, it can only read, compare and export. An "
"assistant reads the text in projects (labels, notes…): text "
"written as an instruction can influence it. Leave editing off "
"for diagrams you received from other people."),
this);
scope->setWordWrap(true);
layout->addWidget(scope);
@@ -146,7 +144,7 @@ AiAssistantDialog::AiAssistantDialog(QWidget *parent) :
layout->addWidget(m_text);
auto *buttons = new QDialogButtonBox(QDialogButtonBox::Close, this);
m_copy = buttons->addButton(tr("Copier"), QDialogButtonBox::ActionRole);
m_copy = buttons->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
layout->addWidget(buttons);
connect(m_client, QOverload<int>::of(&QComboBox::currentIndexChanged),
@@ -166,8 +164,8 @@ void AiAssistantDialog::refresh()
{
const auto client = Client(m_client->currentData().toInt());
m_where->setText(whereItGoes(client) + QLatin1Char(' ')
+ tr("Si le fichier contient déjà d'autres serveurs, "
"ajoutez seulement l'entrée « qet »."));
+ tr("If the file already lists other servers, add "
"only the “qet” entry."));
const QString workspace = m_workspace->text().trimmed();
const bool ready = !m_paths.server.isEmpty() && !workspace.isEmpty();
@@ -175,7 +173,7 @@ void AiAssistantDialog::refresh()
if (m_paths.server.isEmpty())
m_text->setPlainText(QString());
else if (workspace.isEmpty())
m_text->setPlainText(tr("Choisissez d'abord le dossier de vos schémas."));
m_text->setPlainText(tr("Choose your diagrams folder first."));
else
m_text->setPlainText(AiAssistantSetup::configuration(
client, m_paths, workspace, m_allow_edit->isChecked()));
@@ -184,7 +182,7 @@ void AiAssistantDialog::refresh()
void AiAssistantDialog::chooseWorkspace()
{
const QString dir = QFileDialog::getExistingDirectory(
this, tr("Dossier accessible à l'assistant"), m_workspace->text());
this, tr("Folder the assistant can use"), m_workspace->text());
if (!dir.isEmpty())
m_workspace->setText(QDir::toNativeSeparators(dir));
}
@@ -192,32 +190,29 @@ void AiAssistantDialog::chooseWorkspace()
void AiAssistantDialog::copy()
{
QApplication::clipboard()->setText(m_text->toPlainText());
m_copy->setText(tr("Copié"));
m_copy->setText(tr("Copied"));
}
QString AiAssistantDialog::whereItGoes(Client client) const
{
switch (client) {
case Client::ClaudeDesktop:
return tr("Dans Claude Desktop : Paramètres → Développeur → "
"Modifier la configuration. Puis quittez et relancez Claude.");
return tr("In Claude Desktop: Settings → Developer → Edit Config. Then "
"quit and restart Claude.");
case Client::ClaudeCode:
return tr("Enregistrez-le sous le nom .mcp.json dans le dossier de vos schémas.");
return tr("Save it as .mcp.json in your diagrams folder.");
case Client::VsCode:
return tr("Enregistrez-le sous le nom .vscode/mcp.json dans le dossier "
"ouvert dans VS Code. Copilot utilise les outils en mode agent.");
return tr("Save it as .vscode/mcp.json in the folder open in VS Code. "
"Copilot uses the tools in agent mode.");
case Client::Cursor:
return tr("Ajoutez-le au fichier .cursor/mcp.json de votre dossier "
"personnel.");
return tr("Add it to the .cursor/mcp.json file in your home folder.");
case Client::GeminiCli:
return tr("Ajoutez-le au fichier .gemini/settings.json de votre dossier "
"personnel. Gemini CLI demande de faire confiance au dossier "
"la première fois.");
return tr("Add it to the .gemini/settings.json file in your home folder. "
"Gemini CLI asks you to trust the folder the first time.");
case Client::CodexCli:
return tr("Ajoutez-le au fichier .codex/config.toml de votre dossier "
"personnel.");
return tr("Add it to the .codex/config.toml file in your home folder.");
case Client::LmStudio:
return tr("Dans LM Studio : onglet Program → Install → Edit mcp.json.");
return tr("In LM Studio: Program tab → Install → Edit mcp.json.");
}
return QString();
}
+1 -1
View File
@@ -23,7 +23,7 @@
</size>
</property>
<property name="windowTitle">
<string>Alignement du texte</string>
<string>text alignment</string>
</property>
<property name="modal">
<bool>true</bool>
+4 -4
View File
@@ -30,13 +30,13 @@
BackupDialog::BackupDialog(QWidget *parent) :
QDialog(parent)
{
setWindowTitle(tr("Créer une copie de sauvegarde ?", "window title"));
setWindowTitle(tr("Create a backup copy?", "window title"));
setFixedSize(450, 100);
auto main_layout = new QVBoxLayout(this);
auto label = new QLabel(
tr("Souhaitez-vous créer une copie de sauvegarde ?",
tr("Would you like to create a backup copy?",
"dialog message"));
label->setWordWrap(true);
main_layout->addWidget(label);
@@ -46,8 +46,8 @@ BackupDialog::BackupDialog(QWidget *parent) :
auto button_layout = new QHBoxLayout();
button_layout->addStretch();
auto yes_button = new QPushButton(tr("Oui", "yes button"));
auto no_button = new QPushButton(tr("Non", "no button"));
auto yes_button = new QPushButton(tr("Yes", "yes button"));
auto no_button = new QPushButton(tr("No", "no button"));
button_layout->addWidget(yes_button);
button_layout->addWidget(no_button);
+5 -6
View File
@@ -45,15 +45,14 @@ BackupRestoreDialog::BackupRestoreDialog(
QDialog(parent),
m_groups(groups)
{
setWindowTitle(tr("Fichiers de restauration", "window title"));
setWindowTitle(tr("Recovery files", "window title"));
auto main_layout = new QVBoxLayout(this);
auto intro = new QLabel(
tr("<b>Des fichiers de restauration ont été trouvés,<br>"
"voulez-vous les ouvrir ?</b><br>"
"Pour un projet ayant plusieurs versions de restauration, "
"la plus récente est sélectionnée par défaut.",
tr("<b>Recovery files were found,<br>do you want to open "
"them?</b><br>For a project with several recovery "
"versions, the newest is selected by default.",
"dialog message"));
intro->setWordWrap(true);
main_layout->addWidget(intro);
@@ -81,7 +80,7 @@ BackupRestoreDialog::BackupRestoreDialog(
QString label = QLocale::system().toString(
modified, QLocale::ShortFormat);
if (i == 0) {
label = tr("%1 (la plus récente)", "recovery generation label")
label = tr("%1 (newest)", "recovery generation label")
.arg(label);
}
combo->addItem(label);
+9 -9
View File
@@ -75,16 +75,16 @@ int BOMExportDialog::exec()
//save in csv file in same directory as project by default
QString dir = m_project->currentDir();
if (dir.isEmpty()) dir = QETApp::documentDir();
QString file_name = dir % "/" % tr("nomenclature_") % QString(m_project ->title() % ".csv");
QString file_path = QFileDialog::getSaveFileName(this, tr("Enregister sous... "), file_name, tr("Fichiers csv (*.csv)"));
QString file_name = dir % "/" % tr("parts list_") % QString(m_project ->title() % ".csv");
QString file_path = QFileDialog::getSaveFileName(this, tr("Save As... "), file_name, tr("Files csv (*.csv)"));
if (!file_path.isEmpty())
{
QString error;
const auto csv = getBom(&error);
if (!error.isEmpty() || !BomExport::writeCsv(file_path, csv, &error)) {
QMessageBox::critical(
this, tr("Erreur"),
tr("Impossible d'enregistrer la nomenclature dans %1.\n%2")
this, tr("Error"),
tr("Unable to save the parts list to %1.\n%2")
.arg(file_path, error));
}
}
@@ -126,9 +126,9 @@ QByteArray BOMExportDialog::getBom(QString *error)
if (field_name == QLatin1String("position")) {
header_names << tr("Position");
} else if (field_name == QLatin1String("diagram_position")) {
header_names << tr("Position du folio");
header_names << tr("Sheet position");
} else if (field_name == QLatin1String("designation_qty")) {
header_names << tr("Quantité numéro d'article", "Special field with name : designation quantity");
header_names << tr("Designation quantity", "Special field with name : designation quantity");
} else {
const auto translated = QETInformation::translatedInfoKey(field_name);
header_names << (translated.isEmpty() ? field_name : translated);
@@ -170,14 +170,14 @@ void BOMExportDialog::on_m_preview_pb_clicked()
auto query_ = m_project->dataBase()->newQuery(m_query_widget->queryStr(), &rejection);
if (!rejection.isEmpty()) {
QMessageBox::warning(this, tr("Requête refusée"), rejection);
QMessageBox::warning(this, tr("Request refused"), rejection);
return;
}
if (!query_.exec()) {
QMessageBox::warning(
this, tr("Erreur"),
tr("Erreur dans la requête :\n%1").arg(query_.lastError().text()));
this, tr("Error"),
tr("Error in the request:\n%1").arg(query_.lastError().text()));
return;
}
+6 -6
View File
@@ -17,13 +17,13 @@
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Mise en page</string>
<string>Page layout</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="m_include_headers">
<property name="text">
<string>inclure les en-têtes</string>
<string>include headers</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -33,7 +33,7 @@
<item>
<widget class="QCheckBox" name="m_format_as_bom">
<property name="text">
<string>Formater en tant que liste de materiel</string>
<string>Format as a part list</string>
</property>
<property name="checked">
<bool>false</bool>
@@ -43,10 +43,10 @@
<item>
<widget class="QCheckBox" name="m_no_junctions">
<property name="toolTip">
<string>Bornes sans repère, désignation, fabricant ni référence fabricant</string>
<string>Terminals with no label, designation, manufacturer or manufacturer reference</string>
</property>
<property name="text">
<string>Laisser de côté les jonctions</string>
<string>Leave out junctions</string>
</property>
<property name="checked">
<bool>false</bool>
@@ -74,7 +74,7 @@
<item>
<widget class="QPushButton" name="m_preview_pb">
<property name="text">
<string>Aperçu</string>
<string>Preview</string>
</property>
</widget>
</item>
+2 -2
View File
@@ -113,10 +113,10 @@ BorderPropertiesWidget::BorderPropertiesWidget(const BorderProperties &bp, QWidg
{
ui->setupUi(this);
ui->m_paper_cb->addItem(tr("Personnalisé"));
ui->m_paper_cb->addItem(tr("Custom"));
for (const PaperSize &paper : paper_sizes)
ui->m_paper_cb->addItem(QString::fromLatin1(paper.name));
ui->m_orientation_cb->addItem(tr("Paysage"));
ui->m_orientation_cb->addItem(tr("Landscape"));
ui->m_orientation_cb->addItem(tr("Portrait"));
if (TitleBlockTemplate *tbt = QETApp::defaultTitleBlockTemplate())
+9 -9
View File
@@ -17,13 +17,13 @@
<item>
<widget class="QGroupBox" name="border_gb">
<property name="title">
<string>Dimensions du folio</string>
<string>Sheet size</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="2">
<widget class="QSpinBox" name="m_rows_height_sp">
<property name="suffix">
<string comment="pixel" extracomment="pixel">px</string>
<string comment="pixel" extracomment="pixel">pixel</string>
</property>
<property name="prefix">
<string>x</string>
@@ -39,7 +39,7 @@
<item row="0" column="2">
<widget class="QSpinBox" name="m_columns_width_sp">
<property name="suffix">
<string comment="pixel" extracomment="pixel">px</string>
<string comment="pixel" extracomment="pixel">pixel</string>
</property>
<property name="prefix">
<string>x</string>
@@ -52,14 +52,14 @@
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Lignes :</string>
<string>Rows:</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QCheckBox" name="m_display_rows_cb">
<property name="text">
<string>Afficher les en-têtes</string>
<string>Display headers</string>
</property>
</widget>
</item>
@@ -69,28 +69,28 @@
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Colonnes :</string>
<string>Columns:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QCheckBox" name="m_display_columns_cb">
<property name="text">
<string>Afficher les en-têtes</string>
<string>Display headers</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="m_paper_label">
<property name="text">
<string>Format :</string>
<string>Format:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="m_paper_cb">
<property name="toolTip">
<string>Règle les colonnes et les lignes pour que le folio, cartouche compris, ait la taille de ce format de papier, à 96 points par pouce comme l'export PDF.</string>
<string>Sets the columns and rows so the sheet, title block included, has the size of this paper format, at 96 dots per inch like the PDF export.</string>
</property>
</widget>
</item>
+2 -2
View File
@@ -19,7 +19,7 @@ CompositeTextEditDialog::CompositeTextEditDialog(DynamicElementTextItem *text, Q
QET::trackDialogGeometry(this);
m_default_text = m_text->compositeText();
ui->m_plain_text_edit->setPlainText(m_default_text);
ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible"));
ui->m_plain_text_edit->setPlaceholderText(tr("Enter your composite text here, using the available variables"));
bool report = false;
if ((m_text) &&(m_text->parentElement()->linkType()) & (Element::AllReport))
{
@@ -36,7 +36,7 @@ CompositeTextEditDialog::CompositeTextEditDialog(QString text, bool report, QWid
QET::trackDialogGeometry(this);
m_default_text = std::move(text);
ui->m_plain_text_edit->setPlainText(m_default_text);
ui->m_plain_text_edit->setPlaceholderText(tr("Entrée votre texte composé ici, en vous aidant des variables disponible"));
ui->m_plain_text_edit->setPlaceholderText(tr("Enter your composite text here, using the available variables"));
setUpComboBox(report);
}
+2 -2
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Texte composé</string>
<string>Composite text</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
@@ -20,7 +20,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Ajouter une variable :</string>
<string>Add a variable :</string>
</property>
</widget>
</item>
+14 -14
View File
@@ -48,15 +48,15 @@ namespace {
QList<NamedColor> standardColors()
{
return {
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Noir"), QColor(0x00, 0x00, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Marron"), QColor(0x7B, 0x3F, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Gris"), QColor(0x80, 0x80, 0x80)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Bleu"), QColor(0x00, 0x00, 0xFF)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Vert"), QColor(0x00, 0x80, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Rouge"), QColor(0xFF, 0x00, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Black"), QColor(0x00, 0x00, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Brown"), QColor(0x7B, 0x3F, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Gray"), QColor(0x80, 0x80, 0x80)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Blue"), QColor(0x00, 0x00, 0xFF)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Green"), QColor(0x00, 0x80, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Red"), QColor(0xFF, 0x00, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Orange"), QColor(0xFF, 0x80, 0x00)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Violet"), QColor(0x80, 0x00, 0x80)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Blanc"), QColor(0xFF, 0xFF, 0xFF)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "Purple"), QColor(0x80, 0x00, 0x80)},
{QT_TRANSLATE_NOOP("ConductorColorToolButton", "White"), QColor(0xFF, 0xFF, 0xFF)},
};
}
@@ -73,8 +73,8 @@ ConductorColorToolButton::ConductorColorToolButton(QETDiagramEditor *editor, QWi
m_editor(editor)
{
setPopupMode(QToolButton::InstantPopup);
setToolTip(tr("Couleur de conducteur"));
setStatusTip(tr("Applique une couleur aux conducteurs sélectionnés, et l'utilise pour les prochains conducteurs tracés",
setToolTip(tr("Conductor color"));
setStatusTip(tr("Applies a color to the selected conductors, and uses it for the next conductors drawn",
"status bar tip"));
m_current = LastUsedStyle::hasConductorColor() ? LastUsedStyle::conductorColor()
@@ -128,7 +128,7 @@ void ConductorColorToolButton::rebuildMenu()
if (!m_recent.isEmpty())
{
m->addSeparator();
QAction *title = m->addAction(tr("Récemment utilisées"));
QAction *title = m->addAction(tr("Recently used"));
title->setEnabled(false);
for (const QColor &c : std::as_const(m_recent))
{
@@ -138,7 +138,7 @@ void ConductorColorToolButton::rebuildMenu()
}
m->addSeparator();
QAction *other = m->addAction(tr("Autre couleur…"));
QAction *other = m->addAction(tr("Other color…"));
connect(other, &QAction::triggered, this, &ConductorColorToolButton::chooseOtherColor);
}
@@ -185,7 +185,7 @@ void ConductorColorToolButton::applyColor(const QColor &color)
conductors += conductor->relatedPotentialConductors();
}
QUndoCommand *undo = new QUndoCommand(tr("Modifier la couleur de %n conducteur(s)",
QUndoCommand *undo = new QUndoCommand(tr("Change the colour of %n conductors",
"undo caption", conductors.count()));
int changed = 0;
for (Conductor *conductor : conductors)
@@ -219,7 +219,7 @@ void ConductorColorToolButton::applyColor(const QColor &color)
void ConductorColorToolButton::chooseOtherColor()
{
QColorDialog dialog(m_current, this);
dialog.setWindowTitle(tr("Choisir une couleur de conducteur"));
dialog.setWindowTitle(tr("Choose a conductor color"));
dialog.setOption(QColorDialog::DontUseNativeDialog);
ColorDialogDoubleClick::install(&dialog);
if (dialog.exec() == QDialog::Accepted && dialog.selectedColor().isValid()) {
+2 -2
View File
@@ -75,11 +75,11 @@ void ConductorPropertiesDialog::PropertiesDialog(Conductor *conductor,
new_value.setValue(cpd.properties());
QPropertyUndoCommand *undo = new QPropertyUndoCommand(conductor, "properties", old_value, new_value);
undo->setText(tr("Modifier les propriétés d'un conducteur", "undo caption"));
undo->setText(tr("Edit conductor properties", "undo caption"));
if (!conductor->relatedPotentialConductors().isEmpty() && cpd.applyAll())
{
undo->setText(tr("Modifier les propriétés de plusieurs conducteurs", "undo caption"));
undo->setText(tr("Edit the properties of several conductors", "undo caption"));
foreach (Conductor *potential_conductor, conductor->relatedPotentialConductors())
{
+2 -2
View File
@@ -11,13 +11,13 @@
</rect>
</property>
<property name="windowTitle">
<string>Éditer les propriétés d'un conducteur</string>
<string>Edit conductor properties</string>
</property>
<layout class="QVBoxLayout" name="main_layout">
<item>
<widget class="QCheckBox" name="m_apply_all_cb">
<property name="text">
<string>Appliquer les propriétés à l'ensemble des conducteurs de ce potentiel</string>
<string>Apply properties to all conductors of this potential</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -68,7 +68,7 @@ ConductorPropertiesEditorWidget::ConductorPropertiesEditorWidget(
// Reuse the modal dialog's exact wording for consistency (and so the
// existing translation applies).
m_apply_all_cb = new QCheckBox(
tr("Appliquer les propriétés à l'ensemble des conducteurs de ce potentiel"),
tr("Apply properties to all conductors of this potential"),
this);
m_apply_all_cb->setChecked(QSettings().value(
QStringLiteral("diagrameditor/conductor_apply_all"), true).toBool());
@@ -168,7 +168,7 @@ void ConductorPropertiesEditorWidget::setConductors(
const int count = conductors.size();
m_count_label->setText(
tr("%n conducteurs sélectionnés : seuls les champs modifiés leur sont appliqués.",
tr("%n conductors selected: only the fields you change are applied to them.",
"selection properties panel", count));
m_count_label->setVisible(count > 1);
@@ -372,5 +372,5 @@ QUndoCommand *ConductorPropertiesEditorWidget::associatedUndo() const
*/
QString ConductorPropertiesEditorWidget::title() const
{
return tr("Conducteur");
return tr("Conductor");
}
+11 -11
View File
@@ -219,7 +219,7 @@ void ConductorPropertiesWidget::setMixedTextFields(
for (const auto &edit : edits)
edit.second->setPlaceholderText(mixed.contains(edit.first)
? tr("Plusieurs valeurs", "several conductors, different values")
? tr("Several values", "several conductors, different values")
: QString());
}
@@ -234,9 +234,9 @@ void ConductorPropertiesWidget::setTextLocked(bool locked)
m_text_locked = locked;
ui->m_text_le->setEnabled(!locked && ui->m_formula_le->text().isEmpty());
ui->m_text_le->setToolTip(locked
? tr("Plusieurs conducteurs sélectionnés : le texte se modifie "
"sur un seul conducteur à la fois.")
: tr("Texte"));
? tr("Several conductors selected: the text is changed on one "
"conductor at a time.")
: tr("Text"));
}
/**
@@ -247,10 +247,10 @@ void ConductorPropertiesWidget::setDisabledShowText(const bool &disable) {
ui->m_show_text_cb->setDisabled(disable==true? true : false);
//Say why the box is locked: the setting that locks it is not in this dialog
ui->m_show_text_cb->setToolTip(disable
? tr("Texte visible\n"
"Verrouillé par l'option « Afficher un texte de potentiel par "
"folio » de ce folio, dans Propriétés du folio.")
: tr("Texte visible"));
? tr("Visible text\n"
"Locked by this sheet's “Show one potential text per sheet” "
"option, in Sheet properties.")
: tr("Visible text"));
}
/**
@@ -285,9 +285,9 @@ void ConductorPropertiesWidget::initWidget()
m_horiz_select = QETApp::createTextOrientationSpinBoxWidget();
ui -> m_text_angle_gl -> addWidget(m_horiz_select, 2, 1, Qt::AlignHCenter);
ui -> m_line_style_cb -> addItem(tr("Trait plein", "conductor style: solid line"), QPen(Qt::SolidLine));
ui -> m_line_style_cb -> addItem(tr("Trait en pointillés", "conductor style: dashed line"), QPen(Qt::DashLine));
ui -> m_line_style_cb -> addItem(tr("Traits et points", "conductor style: dashed and dotted line"), QPen(Qt::DashDotLine));
ui -> m_line_style_cb -> addItem(tr("Solid line", "conductor style: solid line"), QPen(Qt::SolidLine));
ui -> m_line_style_cb -> addItem(tr("Dashed line", "conductor style: dashed line"), QPen(Qt::DashLine));
ui -> m_line_style_cb -> addItem(tr("Dots and dashes", "conductor style: dashed and dotted line"), QPen(Qt::DashDotLine));
ui -> m_update_preview_pb -> setHidden(true);
+40 -40
View File
@@ -31,7 +31,7 @@
</property>
<widget class="QWidget" name="Multifilaire">
<attribute name="title">
<string>&amp;Multifilaire</string>
<string>&amp;Multiline</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="0">
@@ -43,7 +43,7 @@
</size>
</property>
<property name="title">
<string>&amp;Multifilaire</string>
<string>&amp;Multiline</string>
</property>
<property name="checkable">
<bool>true</bool>
@@ -55,14 +55,14 @@
<item row="4" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Couleur du texte:</string>
<string>Text color :</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Couleur du conducteur</string>
<string>Conductor color</string>
</property>
</widget>
</item>
@@ -72,7 +72,7 @@
<item row="3" column="1">
<widget class="QLineEdit" name="m_text_le">
<property name="toolTip">
<string>Texte</string>
<string>Text</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
@@ -82,14 +82,14 @@
<item row="2" column="3">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Tension / Protocole :</string>
<string>Voltage / Protocol :</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="m_autonum_label">
<property name="text">
<string>Autonumérotation</string>
<string>Auto Numbering</string>
</property>
</widget>
</item>
@@ -99,7 +99,7 @@
<item row="1" column="1">
<widget class="QSpinBox" name="m_text_size_sb">
<property name="toolTip">
<string>Taille du texte</string>
<string>Text size</string>
</property>
<property name="wrapping">
<bool>false</bool>
@@ -128,14 +128,14 @@
<item row="4" column="3">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Section du conducteur</string>
<string>Conductor section</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QCheckBox" name="m_show_text_cb">
<property name="toolTip">
<string>Texte visible</string>
<string>Visible text</string>
</property>
<property name="text">
<string/>
@@ -148,17 +148,17 @@
<item row="0" column="0" colspan="3">
<widget class="QCheckBox" name="m_one_text_per_folio_cb">
<property name="toolTip">
<string>activer l'option un texte par potentiel</string>
<string>Activate the option text by potential</string>
</property>
<property name="text">
<string>Afficher un texte de potentiel par folio. </string>
<string>Show one text per sheet potential. </string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Fonction :</string>
<string>Function :</string>
</property>
</widget>
</item>
@@ -168,12 +168,12 @@
<widget class="QComboBox" name="m_verti_cb">
<item>
<property name="text">
<string>Vertical à gauche</string>
<string>Vertical left</string>
</property>
</item>
<item>
<property name="text">
<string>Vertical à droite</string>
<string>Vertical right</string>
</property>
</item>
</widget>
@@ -181,7 +181,7 @@
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Position et rotation du texte de conducteur :</string>
<string>Position and rotation of the conductor text:</string>
</property>
<property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set>
@@ -192,12 +192,12 @@
<widget class="QComboBox" name="m_horiz_cb">
<item>
<property name="text">
<string>Horizontal en haut</string>
<string>Horizontal at the top</string>
</property>
</item>
<item>
<property name="text">
<string>Horizontal en bas</string>
<string>Horizontal down</string>
</property>
</item>
</widget>
@@ -210,7 +210,7 @@
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Texte :</string>
<string>Text:</string>
</property>
</widget>
</item>
@@ -220,14 +220,14 @@
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Taille du texte :</string>
<string>Text size :</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QPushButton" name="m_edit_autonum_pb">
<property name="toolTip">
<string>éditer les numérotations</string>
<string>Edit numbering</string>
</property>
<property name="text">
<string/>
@@ -250,7 +250,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Formule du texte :</string>
<string>Text Formula :</string>
</property>
</widget>
</item>
@@ -297,7 +297,7 @@
</widget>
<widget class="QWidget" name="Unifilaire">
<attribute name="title">
<string>Unifilaire</string>
<string>Single line</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
@@ -309,7 +309,7 @@
</size>
</property>
<property name="title">
<string>Unifilaire</string>
<string>Single line</string>
</property>
<property name="flat">
<bool>false</bool>
@@ -336,7 +336,7 @@
<item row="2" column="3">
<widget class="QSpinBox" name="m_phase_sb">
<property name="toolTip">
<string>Nombre de phase</string>
<string>Number of phase</string>
</property>
<property name="minimum">
<number>1</number>
@@ -356,10 +356,10 @@
<item row="1" column="1">
<widget class="QCheckBox" name="m_neutral_cb">
<property name="toolTip">
<string>Neutre</string>
<string>Neutral</string>
</property>
<property name="text">
<string>neutre</string>
<string>neutral</string>
</property>
<property name="icon">
<iconset theme="neutral"/>
@@ -369,10 +369,10 @@
<item row="0" column="1">
<widget class="QCheckBox" name="m_earth_cb">
<property name="toolTip">
<string>Terre</string>
<string>Ground</string>
</property>
<property name="text">
<string>terre</string>
<string>ground</string>
</property>
<property name="icon">
<iconset theme="ground"/>
@@ -401,7 +401,7 @@
</sizepolicy>
</property>
<property name="toolTip">
<string>Nombre de phase</string>
<string>Number of phase</string>
</property>
<property name="minimum">
<number>1</number>
@@ -450,7 +450,7 @@
</widget>
<widget class="QWidget" name="appearance">
<attribute name="title">
<string>Apparence</string>
<string>Appearance</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
@@ -459,7 +459,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Taille :</string>
<string>Size :</string>
</property>
</widget>
</item>
@@ -479,17 +479,17 @@
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="toolTip">
<string>Style du conducteur</string>
<string>Conductor style</string>
</property>
<property name="text">
<string>Style :</string>
<string>Style:</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="m_color_2_gb">
<property name="title">
<string>Couleur secondaire :</string>
<string>Secondary color :</string>
</property>
<property name="flat">
<bool>true</bool>
@@ -504,7 +504,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Taille de trait :</string>
<string>Line size :</string>
</property>
</widget>
</item>
@@ -521,7 +521,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Couleur :</string>
<string>Color:</string>
</property>
</widget>
</item>
@@ -550,17 +550,17 @@
<item row="1" column="1">
<widget class="QComboBox" name="m_line_style_cb">
<property name="toolTip">
<string>Style du conducteur</string>
<string>Conductor style</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="toolTip">
<string>Couleur du conducteur</string>
<string>Conductor color</string>
</property>
<property name="text">
<string>Couleur :</string>
<string>Color:</string>
</property>
</widget>
</item>
+12 -12
View File
@@ -154,23 +154,23 @@ NewDiagramPage::NewDiagramPage(QETProject *project,
diagram_layout -> addWidget(ipw);
tab_widget->setMinimumSize(800, 650);
tab_widget -> addTab (diagram_widget, tr("Folio"));
tab_widget -> addTab (m_cpw, tr("Conducteur"));
tab_widget -> addTab (rpw, tr("Reports de folio"));
tab_widget -> addTab (xrefpw, tr("Références croisées"));
tab_widget -> addTab (diagram_widget, tr("Sheet"));
tab_widget -> addTab (m_cpw, tr("Conductor"));
tab_widget -> addTab (rpw, tr("Sheet references"));
tab_widget -> addTab (xrefpw, tr("Cross-references"));
tab_widget -> addTab (m_gpw, tr("Guides"));
// add auto-numbering tab only for global settings (not per project)
if (!m_project) {
QWidget *autonum_widget = new QWidget();
QVBoxLayout *autonum_layout = new QVBoxLayout(autonum_widget);
autonum_layout->addWidget(new QLabel(tr("Définir les règles de numérotation automatique par défaut pour les nouveaux projets :")));
autonum_layout->addWidget(new QLabel(tr("Set the default automatic numbering rules for new projects:")));
QTabWidget *autonum_inner_tab = new QTabWidget();
autonum_inner_tab->addTab(m_autonum_conductor.widget, tr("Conducteurs"));
autonum_inner_tab->addTab(m_autonum_element.widget, tr("Eléments"));
autonum_inner_tab->addTab(m_autonum_folio.widget, tr("Folios"));
autonum_inner_tab->addTab(m_autonum_conductor.widget, tr("Conductors"));
autonum_inner_tab->addTab(m_autonum_element.widget, tr("Elements"));
autonum_inner_tab->addTab(m_autonum_folio.widget, tr("Sheets"));
autonum_layout->addWidget(autonum_inner_tab);
tab_widget -> addTab (autonum_widget, tr("Numérotation auto"));
tab_widget -> addTab (autonum_widget, tr("Auto Numbering"));
}
QVBoxLayout *vlayout1 = new QVBoxLayout();
@@ -300,8 +300,8 @@ QIcon NewDiagramPage::icon() const
*/
QString NewDiagramPage::title() const
{
if (m_project) return(tr("Nouveau folio", "configuration page title"));
return(tr("Nouveau projet", "configuration page title"));
if (m_project) return(tr("New sheet", "configuration page title"));
return(tr("New project", "configuration page title"));
}
/**
@@ -580,6 +580,6 @@ QIcon PrintConfigPage::icon() const
/// @return le titre de cette page
QString PrintConfigPage::title() const
{
return(tr("Impression", "configuration page title"));
return(tr("Printing", "configuration page title"));
}
@@ -53,11 +53,11 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
QSettings settings;
//Appearance tab
ui->m_hdpi_round_policy_cb->addItem(tr("Arrondi supérieur pour 0.5 et plus"), QLatin1String("Round"));
ui->m_hdpi_round_policy_cb->addItem(tr("Toujours arrondi supérieur"), QLatin1String("Ceil"));
ui->m_hdpi_round_policy_cb->addItem(tr("Toujours arrondi inférieur"), QLatin1String("Floor"));
ui->m_hdpi_round_policy_cb->addItem(tr("Arrondi supérieur pour 0.75 et plus"), QLatin1String("RoundPreferFloor"));
ui->m_hdpi_round_policy_cb->addItem(tr("Pas d'arrondi"), QLatin1String("PassThrough"));
ui->m_hdpi_round_policy_cb->addItem(tr("Rounding up for 0.5 and more"), QLatin1String("Round"));
ui->m_hdpi_round_policy_cb->addItem(tr("Always top rounding"), QLatin1String("Ceil"));
ui->m_hdpi_round_policy_cb->addItem(tr("Always rounded down"), QLatin1String("Floor"));
ui->m_hdpi_round_policy_cb->addItem(tr("Rounding up for 0.75 and more"), QLatin1String("RoundPreferFloor"));
ui->m_hdpi_round_policy_cb->addItem(tr("No rounding"), QLatin1String("PassThrough"));
switch (QetSettings::hdpiScaleFactorRoundingPolicy()) {
case Qt::HighDpiScaleFactorRoundingPolicy::Round:
ui->m_hdpi_round_policy_cb->setCurrentIndex(0);
@@ -88,7 +88,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
ui->DiagramEditor_yGrid_sb->setValue(settings.value("diagrameditor/Ygrid", 10).toInt());
for (const qreal divisor : TextGrid::divisors)
ui->DiagramEditor_textGrid_cb->addItem(
divisor > 0 ? TextGrid::ratioLabel(divisor) : tr("Désactivée"),
divisor > 0 ? TextGrid::ratioLabel(divisor) : tr("Disabled", "fr: Désactivée"),
divisor);
int text_grid_index = ui->DiagramEditor_textGrid_cb->findData(
settings.value(TextGrid::settings_key, 1).toReal());
@@ -139,9 +139,9 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
//say so rather than offer a tick that changes nothing.
ui->m_enable_scripting->setEnabled(false);
ui->m_enable_scripting->setToolTip(
tr("Activé par la variable d'environnement "
"QET_ENABLE_SCRIPTING ; ce réglage est sans effet "
"tant qu'elle est définie."));
tr("Enabled by the QET_ENABLE_SCRIPTING environment "
"variable; this setting has no effect while it is "
"set."));
}
#else
//Built without Qt Qml: there is no scripting to allow. Disabled as
@@ -266,7 +266,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) :
if (path.isEmpty())
{
ui->m_material_list_path_le->setPlaceholderText(
tr("Non configuré (par défaut : %1)",
tr("Not set (default: %1)",
"hint shown in the material file field when no file is configured yet")
.arg(MaterialList::defaultPath()));
}
@@ -491,7 +491,7 @@ void GeneralConfigurationPage::applyConf()
*/
QString GeneralConfigurationPage::title() const
{
return(tr("Général", "configuration page title"));
return(tr("General", "configuration page title"));
}
/**
@@ -509,38 +509,38 @@ QIcon GeneralConfigurationPage::icon() const
*/
void GeneralConfigurationPage::fillLang()
{
ui->m_lang_cb->addItem(QET::Icons::translation, tr("Système"), "system");
ui->m_lang_cb->addItem(QET::Icons::translation, tr("System"), "system");
ui->m_lang_cb->insertSeparator(1);
// all lang available on lang directory
ui->m_lang_cb->addItem(QET::Icons::sa, tr("Arabe"), "ar");
ui->m_lang_cb->addItem(QET::Icons::br, tr("Brézilien"), "pt_BR");
ui->m_lang_cb->addItem(QET::Icons::sa, tr("Arabic"), "ar");
ui->m_lang_cb->addItem(QET::Icons::br, tr("Brazilian"), "pt_BR");
ui->m_lang_cb->addItem(QET::Icons::catalonia, tr("Catalan"), "ca");
ui->m_lang_cb->addItem(QET::Icons::cs, tr("Tchèque"), "cs");
ui->m_lang_cb->addItem(QET::Icons::de, tr("Allemand"), "de");
ui->m_lang_cb->addItem(QET::Icons::da, tr("Danois"), "da");
ui->m_lang_cb->addItem(QET::Icons::gr, tr("Grec"), "el");
ui->m_lang_cb->addItem(QET::Icons::en, tr("Anglais"), "en");
ui->m_lang_cb->addItem(QET::Icons::es, tr("Espagnol"), "es");
ui->m_lang_cb->addItem(QET::Icons::fr, tr("Français"), "fr");
ui->m_lang_cb->addItem(QET::Icons::hr, tr("Croate"), "hr");
ui->m_lang_cb->addItem(QET::Icons::it, tr("Italien"), "it");
ui->m_lang_cb->addItem(QET::Icons::jp, tr("Japonais"), "ja");
ui->m_lang_cb->addItem(QET::Icons::ko, tr("Coréen"), "ko");
ui->m_lang_cb->addItem(QET::Icons::pl, tr("Polonais"), "pl");
ui->m_lang_cb->addItem(QET::Icons::pt, tr("Portugais"), "pt");
ui->m_lang_cb->addItem(QET::Icons::ro, tr("Roumains"), "ro");
ui->m_lang_cb->addItem(QET::Icons::ru, tr("Russe"), "ru");
ui->m_lang_cb->addItem(QET::Icons::sl, tr("Slovène"), "sl");
ui->m_lang_cb->addItem(QET::Icons::nl, tr("Pays-Bas"), "nl");
ui->m_lang_cb->addItem(QET::Icons::no, tr("Norvege"), "nb");
ui->m_lang_cb->addItem(QET::Icons::nl_BE, tr("Belgique-Flemish"), "nl_BE");
ui->m_lang_cb->addItem(QET::Icons::tr, tr("Turc"), "tr");
ui->m_lang_cb->addItem(QET::Icons::hu, tr("Hongrois"), "hu");
ui->m_lang_cb->addItem(QET::Icons::mn, tr("Mongol"), "mn");
ui->m_lang_cb->addItem(QET::Icons::uk, tr("Ukrainien"), "uk");
ui->m_lang_cb->addItem(QET::Icons::zh, tr("Chinois"), "zh");
ui->m_lang_cb->addItem(QET::Icons::se, tr("Suédois"), "sv");
ui->m_lang_cb->addItem(QET::Icons::cs, tr("Czech"), "cs");
ui->m_lang_cb->addItem(QET::Icons::de, tr("German"), "de");
ui->m_lang_cb->addItem(QET::Icons::da, tr("Danish"), "da");
ui->m_lang_cb->addItem(QET::Icons::gr, tr("Greek"), "el");
ui->m_lang_cb->addItem(QET::Icons::en, tr("English"), "en");
ui->m_lang_cb->addItem(QET::Icons::es, tr("Spanish"), "es");
ui->m_lang_cb->addItem(QET::Icons::fr, tr("French"), "fr");
ui->m_lang_cb->addItem(QET::Icons::hr, tr("Croatian"), "hr");
ui->m_lang_cb->addItem(QET::Icons::it, tr("Italian"), "it");
ui->m_lang_cb->addItem(QET::Icons::jp, tr("Japanese"), "ja");
ui->m_lang_cb->addItem(QET::Icons::ko, tr("Korean"), "ko");
ui->m_lang_cb->addItem(QET::Icons::pl, tr("Polish"), "pl");
ui->m_lang_cb->addItem(QET::Icons::pt, tr("Portuguese"), "pt");
ui->m_lang_cb->addItem(QET::Icons::ro, tr("Romanian"), "ro");
ui->m_lang_cb->addItem(QET::Icons::ru, tr("Russian"), "ru");
ui->m_lang_cb->addItem(QET::Icons::sl, tr("Slovenian"), "sl");
ui->m_lang_cb->addItem(QET::Icons::nl, tr("Dutch"), "nl");
ui->m_lang_cb->addItem(QET::Icons::no, tr("Norwegian"), "nb");
ui->m_lang_cb->addItem(QET::Icons::nl_BE, tr("Belgium-Flemish"), "nl_BE");
ui->m_lang_cb->addItem(QET::Icons::tr, tr("Turkish"), "tr");
ui->m_lang_cb->addItem(QET::Icons::hu, tr("Hungarian"), "hu");
ui->m_lang_cb->addItem(QET::Icons::mn, tr("Mongolian"), "mn");
ui->m_lang_cb->addItem(QET::Icons::uk, tr("Ukrainian"), "uk");
ui->m_lang_cb->addItem(QET::Icons::zh, tr("Chinese"), "zh");
ui->m_lang_cb->addItem(QET::Icons::se, tr("Swedish"), "sv");
//set current index to the lang found in setting file
//if lang doesn't exist set to system
QSettings settings;
@@ -608,7 +608,7 @@ void GeneralConfigurationPage::on_m_common_elmt_path_cb_currentIndexChanged(int
{
if (index == 1)
{
QString path = QFileDialog::getExistingDirectory(this, tr("Chemin de la collection commune"), QETApp::documentDir());
QString path = QFileDialog::getExistingDirectory(this, tr("Path of the Common Collection"), QETApp::documentDir());
if (!path.isEmpty()) {
ui->m_common_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
}
@@ -622,7 +622,7 @@ void GeneralConfigurationPage::on_m_company_elmt_path_cb_currentIndexChanged(int
{
if (index == 1)
{
QString path = QFileDialog::getExistingDirectory(this, tr("Chemin de la collection company"), QETApp::documentDir());
QString path = QFileDialog::getExistingDirectory(this, tr("Company collection path"), QETApp::documentDir());
if (!path.isEmpty()) {
ui->m_company_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
}
@@ -636,7 +636,7 @@ void GeneralConfigurationPage::on_m_custom_elmt_path_cb_currentIndexChanged(int
{
if (index == 1)
{
QString path = QFileDialog::getExistingDirectory(this, tr("Chemin de la collection utilisateur"), QETApp::documentDir());
QString path = QFileDialog::getExistingDirectory(this, tr("User Collection Path"), QETApp::documentDir());
if (!path.isEmpty()) {
ui->m_custom_elmt_path_cb->setItemData(1, path, Qt::DisplayRole);
}
@@ -650,7 +650,7 @@ void GeneralConfigurationPage::on_m_company_tbt_path_cb_currentIndexChanged(int
{
if (index == 1)
{
QString path = QFileDialog::getExistingDirectory(this, tr("Chemin des cartouches company"), QETApp::documentDir());
QString path = QFileDialog::getExistingDirectory(this, tr("Company title-blocks"), QETApp::documentDir());
if (!path.isEmpty()) {
ui->m_company_tbt_path_cb->setItemData(1, path, Qt::DisplayRole);
}
@@ -664,7 +664,7 @@ void GeneralConfigurationPage::on_m_custom_tbt_path_cb_currentIndexChanged(int i
{
if (index == 1)
{
QString path = QFileDialog::getExistingDirectory(this, tr("Chemin des cartouches utilisateur"), QETApp::documentDir());
QString path = QFileDialog::getExistingDirectory(this, tr("User Title blocks Path"), QETApp::documentDir());
if (!path.isEmpty()) {
ui->m_custom_tbt_path_cb->setItemData(1, path, Qt::DisplayRole);
}
@@ -678,7 +678,7 @@ void GeneralConfigurationPage::on_m_user_macros_path_cb_currentIndexChanged(int
{
if (index == 1)
{
QString path = QFileDialog::getExistingDirectory(this, tr("Chemin des macros utilisateur"), QETApp::documentDir());
QString path = QFileDialog::getExistingDirectory(this, tr("User macro path"), QETApp::documentDir());
if (!path.isEmpty()) {
ui->m_user_macros_path_cb->setItemData(1, path, Qt::DisplayRole);
}
@@ -720,8 +720,8 @@ void GeneralConfigurationPage::on_m_prefix_pb_clicked()
if (!QDir(directory).exists() && !QDir().mkpath(directory)) {
QMessageBox::warning(this,
tr("Répertoire introuvable"),
tr("Le répertoire de la collection utilisateur :\n%1\nn'existe pas et n'a pas pu être créé.")
tr("Folder not found"),
tr("The user collection folder:\n%1\ndoes not exist and could not be created.")
.arg(directory));
return;
}
@@ -729,8 +729,8 @@ void GeneralConfigurationPage::on_m_prefix_pb_clicked()
const QList<QStringList> folders = QetLabelsFile::scanFolders(directory);
if (folders.isEmpty()) {
QMessageBox::information(this,
tr("Aucun sous-dossier"),
tr("La collection utilisateur :\n%1\nne contient aucun sous-dossier : il n'y a donc aucun préfixe à configurer.")
tr("No subfolder"),
tr("The user collection:\n%1\nhas no subfolder, so there is no prefix to configure.")
.arg(directory));
return;
}
@@ -738,7 +738,7 @@ void GeneralConfigurationPage::on_m_prefix_pb_clicked()
QetLabelsFile labels;
if (!labels.load(directory)) {
QMessageBox::warning(this,
tr("Fichier de préfixes illisible"),
tr("Prefix file cannot be read"),
labels.errorString());
return;
}
@@ -747,21 +747,23 @@ void GeneralConfigurationPage::on_m_prefix_pb_clicked()
//perfectly valid : tell what is wrong and let the user decide,
//rebuilding would drop every prefix the file still holds.
QMessageBox box(QMessageBox::Warning,
tr("Fichier de préfixes endommagé"),
tr("Le fichier %1 n'est pas un fichier XML valide :\n%2")
tr("Prefix file damaged"),
tr("The file %1 is not a valid XML file:\n%2")
.arg(labels.filePath(), labels.brokenReason()),
QMessageBox::NoButton,
this);
box.addButton(tr("Corriger le fichier"), QMessageBox::AcceptRole);
auto *rebuild_button = box.addButton(tr("Reconstruire"), QMessageBox::DestructiveRole);
box.setInformativeText(tr("Rien n'a encore été modifié.\n\n"
"« Corriger le fichier » : cette fenêtre se ferme sans rien changer. "
"Ouvrez le fichier dans un éditeur de texte à l'endroit indiqué, "
"corrigez-le puis relancez cette commande.\n\n"
"« Reconstruire » : l'arborescence des dossiers est recréée, "
"mais tous les préfixes actuels sont perdus. Le fichier actuel "
"est conservé sous le nom qet_labels.xml.bak avant d'être remplacé."));
box.setDetailedText(tr("Fichier : %1").arg(labels.filePath()));
box.addButton(tr("Fix the file"), QMessageBox::AcceptRole);
auto *rebuild_button = box.addButton(tr("Rebuild"), QMessageBox::DestructiveRole);
box.setInformativeText(tr("Nothing has been changed yet.\n"
"\n"
"“Fix the file”: this window closes without changing anything. Open "
"the file in a text editor at the place shown, fix it, then run this "
"command again.\n"
"\n"
"“Rebuild”: the folder tree is made again, but all the current "
"prefixes are lost. The current file is kept as qet_labels.xml.bak "
"before it is replaced."));
box.setDetailedText(tr("File: %1").arg(labels.filePath()));
box.exec();
if (box.clickedButton() != rebuild_button) {
return;
@@ -785,9 +787,9 @@ void GeneralConfigurationPage::on_m_material_list_browse_pb_clicked()
const QString path = QFileDialog::getOpenFileName(
this,
tr("Sélectionner le fichier de la liste de matériaux"),
tr("Select the materials list file"),
start_dir,
tr("Fichiers csv (*.csv)"));
tr("CSV files (*.csv)"));
if (!path.isEmpty()) {
ui->m_material_list_path_le->setText(path);
@@ -808,9 +810,9 @@ void GeneralConfigurationPage::on_m_material_list_create_pb_clicked()
path = QFileDialog::getSaveFileName(
this,
tr("Créer le fichier de la liste de matériaux"),
tr("Create the materials list file"),
path,
tr("Fichiers csv (*.csv)"));
tr("CSV files (*.csv)"));
if (path.isEmpty()) {
return;
}
@@ -826,8 +828,8 @@ void GeneralConfigurationPage::on_m_material_list_create_pb_clicked()
if (!MaterialList::createFile(path, &error))
{
QET::QetMessageBox::critical(this,
tr("Création impossible"),
tr("Impossible de créer le fichier :\n%1\n%2")
tr("Cannot create"),
tr("Cannot create the file:\n%1\n%2")
.arg(path, error));
return;
}
@@ -856,7 +858,7 @@ void GeneralConfigurationPage::on_m_indi_text_font_pb_clicked()
void GeneralConfigurationPage::on_MaxPartsElementEditorList_sb_valueChanged(int value)
{
if (value > 500) {
ui->MaxPartsElementEditorList_sb->setToolTip(tr("To high values might lead to crashes of the application."));
ui->MaxPartsElementEditorList_sb->setToolTip(tr("Values that are too high might cause the application to crash"));
ui->MaxPartsElementEditorList_sb->setStyleSheet("background-color: orange");
} else {
ui->MaxPartsElementEditorList_sb->setToolTip("");
@@ -891,13 +893,14 @@ void GeneralConfigurationPage::on_m_hdpi_round_cb_clicked(bool checked)
if (checked) {
if (QMessageBox::Cancel == QET::QetMessageBox::warning(
this,
tr("Fonctionnalité expérimental"),
tr("AVERTISSEMENT :\n"
"Toutes valeurs autre que ‘Pas d’arrondi’ peut causer des erreurs de rendu "
"du projet en fonction de :\n\n"
"1 - la valeur sélectionnée \n"
"2 - du dpi de l'écran \n"
"3 - Modifier le projet sur un autre ordinateur et/ou écran n'ayant pas les mêmes paramètres des points 1 et 2."),
tr("Experimental feature"),
tr("WARNING:\n"
"Any setting other than “No rounding” may cause rendering errors in the project, depending on:\n"
"\n"
"1 - the selected setting \n"
"2 - the screen's dpi \n"
"3 - editing the project on another computer and/or screen that does not have the same settings as in points 1 "
"and 2."),
QMessageBox::StandardButton::Cancel|QMessageBox::StandardButton::Ok,
QMessageBox::StandardButton::Cancel
)) {
@@ -21,7 +21,7 @@
</property>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Apparence</string>
<string>Appearance</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -29,14 +29,14 @@
<item>
<widget class="QCheckBox" name="m_use_system_color_cb">
<property name="text">
<string>Utiliser les couleurs du système</string>
<string>Use system colors</string>
</property>
</widget>
</item>
<item>
<widget class="KColorButton" name="m_custom_app_color_kpb">
<property name="toolTip">
<string>Couleur de l'application</string>
<string>Application color</string>
</property>
</widget>
</item>
@@ -52,31 +52,31 @@
<item>
<widget class="QCheckBox" name="m_use_gesture_trackpad">
<property name="text">
<string>Utiliser les gestes du pavé tactile</string>
<string>Use gestures touchpad</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_zoom_out_beyond_folio">
<property name="text">
<string>Autoriser le dézoom au delà du folio</string>
<string>Allow unzoom beyond the sheet</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_conductor_properties_panel">
<property name="text">
<string>Afficher les propriétés d'un conducteur sélectionné dans le panneau Propriétés de la sélection</string>
<string>Show the properties of a selected conductor in the Selection properties panel</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_wiring_rules_cb">
<property name="toolTip">
<string>Décoché, aucune règle de conducteurs par borne n'est appliquée, quels que soient les réglages des projets.</string>
<string>When unticked, no conductors-per-terminal rule applies, whatever the projects' settings.</string>
</property>
<property name="text">
<string>Appliquer les règles de conducteurs par borne des projets</string>
<string>Apply the projects' conductors-per-terminal rules</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -91,7 +91,7 @@
<item>
<widget class="QLabel" name="m_wiring_max_wires_label">
<property name="text">
<string>Nombre maximal de conducteurs par borne :</string>
<string>Maximum conductors per terminal:</string>
</property>
</widget>
</item>
@@ -104,10 +104,10 @@
</size>
</property>
<property name="toolTip">
<string>Pour tous les projets, sauf ceux qui ont leurs propres réglages. Un nouveau conducteur qui dépasserait ce nombre sur une borne est refusé ; les conducteurs déjà dessinés ne sont pas modifiés. 4 correspond à deux embouts doubles, un de chaque côté de la vis.</string>
<string>For every project except those with their own settings. A new conductor that would take a terminal past this number is refused; conductors already drawn are not changed. 4 means two twin ferrules, one on each side of the screw.</string>
</property>
<property name="specialValueText">
<string>Sans limite</string>
<string>No limit</string>
</property>
<property name="maximum">
<number>99</number>
@@ -131,10 +131,10 @@
<item>
<widget class="QCheckBox" name="m_wiring_one_wire_per_report_cb">
<property name="toolTip">
<string>Un renvoi de folio est un point virtuel : il ne reçoit qu'un conducteur, celui qui continue sur l'autre folio.</string>
<string>A sheet reference is a virtual point: it takes only one conductor, the one that continues on the other sheet.</string>
</property>
<property name="text">
<string>Un seul conducteur par renvoi de folio</string>
<string>Only one conductor per sheet reference</string>
</property>
</widget>
</item>
@@ -150,54 +150,54 @@
<item>
<widget class="QCheckBox" name="grid_startup_cb">
<property name="text">
<string>Afficher la grille par défaut (appliqué au prochain lancement)</string>
<string>Show the default grid (applied the next time the programme is launched)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_collection_dblclick_edits">
<property name="toolTip">
<string>Par défaut, un double-clic insère l'élément sur le folio ; l'édition reste accessible par le menu contextuel.</string>
<string>By default, a double-click inserts the element on the sheet; editing remains accessible from the context menu.</string>
</property>
<property name="text">
<string>Double-cliquer dans la collection ouvre l'éditeur d'élément au lieu de l'insérer</string>
<string>Double-clicking in the collection opens the element editor instead of inserting it</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_collection_search_flat_cb">
<property name="toolTip">
<string>Coché : une seule liste, la meilleure correspondance en premier. Décoché : l'arborescence de la collection, filtrée sur la recherche.</string>
<string>Ticked: a single list, best match first. Unticked: the collection tree, filtered by the search.</string>
</property>
<property name="text">
<string>Afficher les résultats de recherche sous forme de liste triée</string>
<string>Show search results as a sorted list</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_context_toolbar_cb">
<property name="toolTip">
<string>Après un clic qui sélectionne un élément ou un conducteur, les commandes de la barre de raccourcis apparaissent près du curseur et s'effacent quand la souris s'éloigne.</string>
<string>After a click that selects an element or a conductor, the shortcut bar commands appear near the cursor and fade away when the mouse moves away.</string>
</property>
<property name="text">
<string>Afficher les commandes près de la sélection</string>
<string>Show commands near the selection</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_mouse_gestures_cb">
<property name="toolTip">
<string>Maintenir le bouton droit et glisser dans une direction lance une commande de la barre de raccourcis. Un simple clic droit ouvre toujours le menu contextuel, au relâchement du bouton.</string>
<string>Holding the right button and dragging in a direction launches a shortcut bar command. A simple right-click still opens the context menu, on button release.</string>
</property>
<property name="text">
<string>Gestes de la souris avec le bouton droit</string>
<string>Right-button mouse gestures</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="guides_startup_cb">
<property name="text">
<string>Afficher les guides par défaut (appliqué au prochain lancement)</string>
<string>Show default guides (applies from the next time the programme is launched)</string>
</property>
</widget>
</item>
@@ -211,14 +211,14 @@
<item>
<widget class="QRadioButton" name="m_use_windows_mode_rb">
<property name="text">
<string>Utiliser des fen&amp;êtres (appliqué au prochain lancement de QElectroTech)</string>
<string>Use &amp;Windows (applied at the next launch of QElectroTech)</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="m_use_tab_mode_rb">
<property name="text">
<string>Utiliser des onglets (appliqué au prochain lance&amp;ment de QElectroTech)</string>
<string>Use &amp;tabs (applied at the next launch of QElectroTech)</string>
</property>
</widget>
</item>
@@ -257,7 +257,7 @@
<bool>false</bool>
</property>
<property name="text">
<string>Méthode de mise à l'echelle des écrans à haute densité de pixels (hdpi) (appliqué au prochain lancement de QElectroTech) :</string>
<string>High pixel density (hdpi) displays scaling method (applied to the next launch of QElectroTech) :</string>
</property>
</widget>
</item>
@@ -288,20 +288,20 @@
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Projets</string>
<string>Projects</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="0">
<widget class="QCheckBox" name="m_use_folio_label">
<property name="text">
<string>Utiliser les numéros de folio à la place de leur position dans le projet</string>
<string>Use sheet numbers instead of their position in the project</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Sauvegarde automatique des projets (appliqué au prochain lancement de QElectroTech)</string>
<string>Automatic backup of projects (applied at the next launch of QElectroTech)</string>
</property>
</widget>
</item>
@@ -311,7 +311,7 @@
<bool>true</bool>
</property>
<property name="specialValueText">
<string>Désactivé</string>
<string>Disabled</string>
</property>
<property name="accelerated">
<bool>true</bool>
@@ -330,37 +330,37 @@
<item row="6" column="0">
<widget class="QCheckBox" name="m_autonumber_pasted">
<property name="text">
<string>Numéroter automatiquement les éléments collés ou dupliqués qui suivent une numérotation</string>
<string>Automatically number pasted or duplicated elements that follow a numbering</string>
</property>
<property name="toolTip">
<string>Un élément collé reçoit le numéro suivant de sa numérotation au lieu du nom de l'élément copié, et la numérotation avance.</string>
<string>A pasted element receives the next number of its numbering instead of the copied element's name, and the numbering advances.</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="m_save_label_paste">
<property name="text">
<string>Ne pas conserver les labels des éléments lors des copier coller</string>
<string>Do not store the labels of items in the copy paste</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="m_enable_scripting">
<property name="text">
<string>Autoriser l'exécution de scripts JavaScript (Projet &gt; Exécuter un script, et --run)</string>
<string>Allow running JavaScript scripts (Project &gt; Run a script, and --run)</string>
</property>
<property name="toolTip">
<string>Un script s'exécute avec vos droits : il peut lire et modifier le projet ouvert et écrire des fichiers. Désactivé par défaut ; n'exécutez que des scripts dont vous connaissez l'origine.</string>
<string>A script runs with your permissions: it can read and modify the open project and write files. Disabled by default; only run scripts whose origin you know.</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="m_live_assistant">
<property name="text">
<string>Autoriser un assistant IA à agir sur le projet ouvert (mode direct)</string>
<string>Allow an AI assistant to act on the open project (live mode)</string>
</property>
<property name="toolTip">
<string>Un assistant connecté par le serveur MCP peut alors exécuter des scripts sur le projet ouvert, sous vos yeux. Un avertissement est affiché à chaque démarrage tant que ce réglage est activé. Prend effet au prochain démarrage ; le décocher coupe la connexion tout de suite.</string>
<string>An assistant connected through the MCP server can then run scripts on the open project, as you watch. A warning is shown at every start while this setting is on. Takes effect at the next start; unticking it closes the connection at once.</string>
</property>
</widget>
</item>
@@ -393,7 +393,7 @@
<item row="2" column="0">
<widget class="QCheckBox" name="m_border_0">
<property name="text">
<string extracomment="Choix de l'increment de depart 1 ou 0">Numéroter les colonnes de cartouche à partir de 0 (1 sinon)</string>
<string extracomment="Choix de l'increment de depart 1 ou 0">Number the title block columns from 0 (1 otherwise)</string>
</property>
</widget>
</item>
@@ -407,7 +407,7 @@
<item>
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string>Accès aux collections</string>
<string>Access the collections</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -419,7 +419,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>Répertoire de la collection company</string>
<string>Company collection directory</string>
</property>
</widget>
</item>
@@ -427,12 +427,12 @@
<widget class="QComboBox" name="m_custom_tbt_path_cb">
<item>
<property name="text">
<string>Par defaut</string>
<string>By default</string>
</property>
</item>
<item>
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</item>
</widget>
@@ -441,12 +441,12 @@
<widget class="QComboBox" name="m_custom_elmt_path_cb">
<item>
<property name="text">
<string>Par defaut</string>
<string>By default</string>
</property>
</item>
<item>
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</item>
</widget>
@@ -454,24 +454,24 @@
<item row="4" column="2">
<widget class="QPushButton" name="m_prefix_pb">
<property name="toolTip">
<string extracomment="tooltip of the button opening the prefix configuration dialog of the user collection">Créer ou modifier le préfixe des dossiers de la collection utilisateur (fichier qet_labels.xml)</string>
<string extracomment="tooltip of the button opening the prefix configuration dialog of the user collection">Create or change the prefix of the user collection's folders (qet_labels.xml file)</string>
</property>
<property name="text">
<string extracomment="button opening the dialog where the folder prefixes of the user collection are configured">Configurer les préfixes…</string>
<string extracomment="button opening the dialog where the folder prefixes of the user collection are configured">Configure prefixes…</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Répertoire de la collection commune</string>
<string>Common collection directory</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_17">
<property name="text">
<string>Répertoire des cartouches company</string>
<string>Company title-block directory</string>
</property>
</widget>
</item>
@@ -479,12 +479,12 @@
<widget class="QComboBox" name="m_company_tbt_path_cb">
<item>
<property name="text">
<string>Par defaut</string>
<string>By default</string>
</property>
</item>
<item>
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</item>
</widget>
@@ -492,14 +492,14 @@
<item row="4" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Répertoire de la collection utilisateur</string>
<string>User collection directory</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>Répertoire des Macros utilisateur</string>
<string>User Macro Directory</string>
</property>
</widget>
</item>
@@ -507,12 +507,12 @@
<widget class="QComboBox" name="m_user_macros_path_cb">
<item>
<property name="text">
<string>Par defaut</string>
<string>By default</string>
</property>
</item>
<item>
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</item>
</widget>
@@ -521,12 +521,12 @@
<widget class="QComboBox" name="m_common_elmt_path_cb">
<item>
<property name="text">
<string>Par defaut</string>
<string>By default</string>
</property>
</item>
<item>
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</item>
</widget>
@@ -534,7 +534,7 @@
<item row="5" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Répertoire des cartouches utilisateur</string>
<string>User title blocks directory</string>
</property>
</widget>
</item>
@@ -542,12 +542,12 @@
<widget class="QComboBox" name="m_company_elmt_path_cb">
<item>
<property name="text">
<string>Par defaut</string>
<string>By default</string>
</property>
</item>
<item>
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</item>
</widget>
@@ -555,14 +555,14 @@
<item row="8" column="1">
<widget class="QLabel" name="label_9">
<property name="text">
<string>(Recharger les collections d'éléments pour appliquer les changements)</string>
<string>(Reload the elements collections to apply the changes)</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="m_material_list_label">
<property name="text">
<string>Fichier de la liste de matériaux</string>
<string>Materials list file</string>
</property>
</widget>
</item>
@@ -571,30 +571,30 @@
<item>
<widget class="QLineEdit" name="m_material_list_path_le">
<property name="toolTip">
<string extracomment="tooltip of the material file path field">Répertoire de matériaux utilisé pour renseigner les articles d'un élément</string>
<string extracomment="tooltip of the material file path field">Materials list used to fill in a symbol's items</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="placeholderText">
<string extracomment="hint shown when no material file is configured yet">Non configuré</string>
<string extracomment="hint shown when no material file is configured yet">Not set</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_material_list_browse_pb">
<property name="text">
<string>Parcourir...</string>
<string>Browse...</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_material_list_create_pb">
<property name="toolTip">
<string extracomment="tooltip of the button creating the material file with its header line">Créer le fichier de la liste avec ses en-têtes</string>
<string extracomment="tooltip of the button creating the material file with its header line">Create the list file with its headers</string>
</property>
<property name="text">
<string>Créer...</string>
<string>Create...</string>
</property>
</widget>
</item>
@@ -606,7 +606,7 @@
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Gestion des éléments</string>
<string>Elements management</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -615,15 +615,14 @@
<item>
<widget class="QCheckBox" name="m_highlight_integrated_elements">
<property name="text">
<string>Mettre en valeur dans le panel les éléments fraîchement intégrés</string>
<string>Highlight freshly integrated elements in the panel</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Chaque élément embarque des informations sur ses auteurs, sa licence, ou tout autre renseignement que vous jugerez utile dans un champ libre.
Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments que vous créerez :</string>
<string>Element may include information about its authors, license, or other useful information. Specify the default value of this textfield for new elements below:</string>
</property>
<property name="scaledContents">
<bool>false</bool>
@@ -650,7 +649,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
</widget>
<widget class="QWidget" name="tab_6">
<attribute name="title">
<string>Langues</string>
<string>Languages</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
@@ -659,7 +658,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="0" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Appliqué au prochain lancement de QElectroTech</string>
<string>Applied to the next launch of QElectroTech</string>
</property>
</widget>
</item>
@@ -693,13 +692,13 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Textes</string>
<string>texts</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label_15">
<property name="text">
<string>Vous pouvez définir ici l'apparence par defaut des differents textes de QElectroTech</string>
<string>Here you can define the default appearance of the different texts of QElectroTech</string>
</property>
</widget>
</item>
@@ -713,7 +712,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Textes d'éléments</string>
<string>Elements texts</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="2" column="2">
@@ -726,7 +725,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="0" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Police :</string>
<string>Font:</string>
</property>
</widget>
</item>
@@ -746,7 +745,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Longueur :</string>
<string>Length :</string>
</property>
</widget>
</item>
@@ -779,7 +778,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>Textes indépendants</string>
<string>Independent texts</string>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<item row="1" column="0">
@@ -792,7 +791,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="0" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Police :</string>
<string>Font:</string>
</property>
</widget>
</item>
@@ -832,13 +831,13 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QGroupBox" name="groupBox_9">
<property name="title">
<string>Autres textes</string>
<string>Other texts</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Police :</string>
<string>Font:</string>
</property>
</widget>
</item>
@@ -882,13 +881,13 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
</widget>
<widget class="QWidget" name="GrilleClavier">
<attribute name="title">
<string>Grille + Clavier</string>
<string>Grid + Keyboard</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Grille : 1 - 30</string>
<string>Grid: 1 - 30</string>
</property>
<property name="flat">
<bool>false</bool>
@@ -929,7 +928,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="2" column="0">
<widget class="QLabel" name="Label_Grid_Tip">
<property name="text">
<string>La Grille doite etre active pour pouvoir voir les modifications.</string>
<string>The Grid must be active to see the changes.</string>
</property>
</widget>
</item>
@@ -975,10 +974,10 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="3" column="0">
<widget class="QLabel" name="Label_Diagram_textGrid">
<property name="text">
<string>Grille des textes déplacés à la souris</string>
<string>Grid for texts moved with the mouse</string>
</property>
<property name="toolTip">
<string>Fraction de la grille des folios. Maintenir Ctrl pendant le déplacement pour placer librement.</string>
<string>Fraction of the sheet grid. Hold Ctrl while moving to place freely.</string>
</property>
</widget>
</item>
@@ -998,7 +997,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Déplacement au clavier : 1 - 30</string>
<string>Keyboard movement: 1 - 30</string>
</property>
<layout class="QGridLayout" name="gridLayout_10">
<item row="0" column="2">
@@ -1048,14 +1047,14 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="0" column="0">
<widget class="QLabel" name="Label_Diagram_Key_xGrid">
<property name="text">
<string>DiagramEditor (touche : gauche / droite) xGrid</string>
<string comment="fr: DiagramEditor (touche : gauche / droite) xGrid">DiagramEditor (key: left / right) xGrid</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="Label_Diagram_Key_yGrid">
<property name="text">
<string>DiagramEditor (touche : haut / bas) yGrid</string>
<string>DiagramEditor (key: up / down) yGrid</string>
</property>
</widget>
</item>
@@ -1078,13 +1077,13 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Déplacement au clavier avec la touche ALT : 1 - 9</string>
<string>Keyboard movement with the ALT key: 1 - 9</string>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<item row="0" column="1">
<widget class="QLabel" name="Label_Diagram_Key_xGrid_ALT">
<property name="text">
<string>DiagramEditor (touche : gauche / droite ) xGrid</string>
<string>DiagramEditor (key: left / right) xGrid</string>
</property>
</widget>
</item>
@@ -1113,7 +1112,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="1" column="1">
<widget class="QLabel" name="Label_Diagram_Key_yGrid_ALT">
<property name="text">
<string>DiagramEditor (touche : haut / bas) yGrid</string>
<string comment="fr: DiagramEditor (touche : haut / bas) yGrid">DiagramEditor (key: up / down) yGrid</string>
</property>
</widget>
</item>
@@ -1158,7 +1157,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="title">
<string>Affichage Grille</string>
<string>View grid</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="2">
@@ -1216,7 +1215,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="0" column="0">
<widget class="QLabel" name="Label_Diagram_Grid_PointSize">
<property name="text">
<string>Taille des points de la grille de Diagram-Editor : 1 - 5</string>
<string>Point-size in diagram-editor: 1 - 5</string>
</property>
</widget>
</item>
@@ -1276,7 +1275,7 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item row="1" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>Taille des points de la grille de l'éditeur d'éléments : 1 - 5</string>
<string>Point-size in element-editor: 1 - 5</string>
</property>
</widget>
</item>
@@ -1343,10 +1342,10 @@ Vous pouvez spécifier ici la valeur par défaut de ce champ pour les éléments
<item>
<widget class="QCheckBox" name="m_check_terminal_names_cb">
<property name="toolTip">
<string>À l'enregistrement d'un élément : refuser deux bornes portant le même nom, et signaler les bornes sans nom (IEC 61666).</string>
<string>When saving a symbol: refuse two terminals with the same name, and report terminals without a name (IEC 61666).</string>
</property>
<property name="text">
<string>Vérifier les noms des bornes à l'enregistrement</string>
<string>Check terminal names when saving</string>
</property>
<property name="checked">
<bool>true</bool>
+16 -16
View File
@@ -300,11 +300,11 @@ GesturesConfigPage::GesturesConfigPage(QWidget *parent) :
}
auto *explanation = new QLabel(
tr("Faites glisser avec le bouton droit sur un folio : un anneau "
"de commandes s'ouvre, relâchez vers celle à lancer. Tant que "
"vous ne changez pas l'anneau d'un contexte, il montre les "
"commandes de la barre de raccourcis. Les gestes s'activent "
"ou se désactivent dans la page Général."), this);
tr("Drag with the right mouse button on a sheet: a ring of "
"commands opens, release towards the one to run. Until you "
"change the ring for a context, it shows the commands of the "
"shortcut bar. Gestures are turned on or off in the General "
"page."), this);
explanation->setWordWrap(true);
m_directions = new QComboBox(this);
@@ -344,10 +344,10 @@ GesturesConfigPage::GesturesConfigPage(QWidget *parent) :
m_state = new QLabel(this);
m_state->setWordWrap(true);
auto *place = new QPushButton(tr("Placer →"), this);
auto *place = new QPushButton(tr("Place →"), this);
place->setObjectName(QStringLiteral("placeButton"));
auto *clear = new QPushButton(tr("Vider la direction"), this);
auto *follow = new QPushButton(tr("Comme la barre de raccourcis"), this);
auto *clear = new QPushButton(tr("Clear the direction"), this);
auto *follow = new QPushButton(tr("Same as the shortcut bar"), this);
follow->setObjectName(QStringLiteral("followBarButton"));
auto *ring_column = new QVBoxLayout();
@@ -357,8 +357,8 @@ GesturesConfigPage::GesturesConfigPage(QWidget *parent) :
ring_column->addStretch();
auto *grid = new QGridLayout();
grid->addWidget(new QLabel(tr("Commandes disponibles"), this), 0, 0);
grid->addWidget(new QLabel(tr("Anneau, la direction choisie en surbrillance"), this), 0, 2);
grid->addWidget(new QLabel(tr("Available commands"), this), 0, 0);
grid->addWidget(new QLabel(tr("Ring, the chosen direction highlighted"), this), 0, 2);
grid->addWidget(m_available, 1, 0);
grid->addWidget(place, 1, 1, Qt::AlignVCenter);
grid->addLayout(ring_column, 1, 2);
@@ -366,10 +366,10 @@ GesturesConfigPage::GesturesConfigPage(QWidget *parent) :
grid->setColumnStretch(2, 1);
auto *top_row = new QHBoxLayout();
top_row->addWidget(new QLabel(tr("Directions :"), this));
top_row->addWidget(new QLabel(tr("Directions:"), this));
top_row->addWidget(m_directions);
top_row->addSpacing(12);
top_row->addWidget(new QLabel(tr("Contexte :"), this));
top_row->addWidget(new QLabel(tr("Context:"), this));
top_row->addWidget(m_context, 1);
auto *state_row = new QHBoxLayout();
@@ -422,7 +422,7 @@ void GesturesConfigPage::applyConf()
QString GesturesConfigPage::title() const
{
return tr("Gestes de la souris", "configuration page title");
return tr("Mouse gestures", "configuration page title");
}
QIcon GesturesConfigPage::icon() const
@@ -467,9 +467,9 @@ void GesturesConfigPage::updateState()
const int slot = m_ring->currentSlot();
const QStringList ids = m_ring->ids();
const QString id = slot < ids.count() ? ids.at(slot) : QString();
m_slot_name->setText(id.isEmpty() ? tr("(direction vide)")
m_slot_name->setText(id.isEmpty() ? tr("(empty direction)")
: m_descriptions.value(id, id));
m_state->setText(m_custom.value(m_shown)
? tr("Anneau personnalisé pour ce contexte.")
: tr("Cet anneau suit la barre de raccourcis."));
? tr("Custom ring for this context.")
: tr("This ring follows the shortcut bar."));
}
@@ -20,12 +20,12 @@ void GuidesPropertiesWidget::setupUi() {
QVBoxLayout *main_layout = new QVBoxLayout(this);
m_table = new QTableWidget(0, 3, this);
m_table->setHorizontalHeaderLabels({tr("Orientation"), tr("Position"), tr("Couleur")});
m_table->setHorizontalHeaderLabels({tr("Orientation"), tr("Position"), tr("Color")});
m_table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
m_table->setSelectionBehavior(QAbstractItemView::SelectRows);
m_add_btn = new QPushButton(tr("Ajouter"), this);
m_remove_btn = new QPushButton(tr("Supprimer"), this);
m_add_btn = new QPushButton(tr("Add"), this);
m_remove_btn = new QPushButton(tr("Delete"), this);
QHBoxLayout *btn_layout = new QHBoxLayout();
btn_layout->addWidget(m_add_btn);
@@ -90,7 +90,7 @@ void GuidesPropertiesWidget::addGuide() {
spin->setValue(100.0);
m_table->setCellWidget(row, 1, spin);
QPushButton *colorBtn = new QPushButton(tr("Couleur"), this);
QPushButton *colorBtn = new QPushButton(tr("Color"), this);
QColor defaultColor = Qt::lightGray;
colorBtn->setProperty("color", defaultColor);
colorBtn->setStyleSheet(QString("background-color: %1; color: white; font-weight: bold;").arg(defaultColor.name()));
+110 -110
View File
@@ -143,7 +143,7 @@ ProjectMainConfigPage::~ProjectMainConfigPage()
*/
QString ProjectMainConfigPage::title() const
{
return(tr("Général", "configuration page title"));
return(tr("General", "configuration page title"));
}
/**
@@ -225,12 +225,12 @@ QString ProjectMainConfigPage::projectTitle() const
*/
void ProjectMainConfigPage::initWidgets()
{
title_label_ = new QLabel(tr("Titre du projet :", "label when configuring"));
title_label_ = new QLabel(tr("Project title :", "label when configuring"));
title_value_ = new QLineEdit();
title_information_ = new QLabel(tr("Ce titre sera disponible pour tous les folios de ce projet en tant que %projecttitle.", "informative label"));
title_information_ = new QLabel(tr("This title is made available to all child sheets as %projecttitle.", "informative label"));
project_variables_label_ = new QLabel(
tr(
"Vous pouvez définir ci-dessous des propriétés personnalisées qui seront disponibles pour tous les folios de ce projet (typiquement pour les cartouches).",
"You may define below custom properties that will be made available to all sheets of the project (typically to use within title blocks).",
"informative label"
)
);
@@ -238,38 +238,38 @@ void ProjectMainConfigPage::initWidgets()
project_variables_ = new DiagramContextWidget();
project_variables_ -> setContext(DiagramContext());
usage_label_ = new QLabel(tr("Temps passé sur ce projet :", "label when configuring"));
usage_label_ = new QLabel(tr("Time spent on this project:", "label when configuring"));
usage_value_ = new QLabel();
usage_enabled_cb_ = new QCheckBox(tr("Suivre le temps passé sur ce projet (uniquement enregistré localement dans ce fichier)", "checkbox label"));
usage_reset_pb_ = new QPushButton(tr("Réinitialiser", "button label"));
usage_enabled_cb_ = new QCheckBox(tr("Track the time spent on this project (recorded locally in this file only)", "checkbox label"));
usage_reset_pb_ = new QPushButton(tr("Reset", "button label"));
connect(usage_reset_pb_, &QPushButton::clicked, this, &ProjectMainConfigPage::resetUsageTracker);
//Hops where two conductors cross without being connected (issue #436)
wire_hops_label_ = new QLabel(tr("Croisements de conducteurs :", "label when configuring"));
wire_hops_label_ = new QLabel(tr("Conductor crossings:", "label when configuring"));
wire_hops_cb_ = new QComboBox();
wire_hops_cb_ -> addItem(tr("Sans saut", "wire crossings"),
wire_hops_cb_ -> addItem(tr("No hop", "wire crossings"),
WireHops::toString(WireHops::Mode::None));
wire_hops_cb_ -> addItem(tr("Saut sur les conducteurs horizontaux", "wire crossings"),
wire_hops_cb_ -> addItem(tr("Hop on horizontal conductors", "wire crossings"),
WireHops::toString(WireHops::Mode::Horizontal));
wire_hops_cb_ -> addItem(tr("Saut sur les conducteurs verticaux", "wire crossings"),
wire_hops_cb_ -> addItem(tr("Hop on vertical conductors", "wire crossings"),
WireHops::toString(WireHops::Mode::Vertical));
wire_hops_cb_ -> setToolTip(tr("Dessine un petit arc là où deux conducteurs se croisent sans être reliés. "
"Seul le dessin change : aucun élément n'est ajouté et aucun conducteur n'est coupé.",
wire_hops_cb_ -> setToolTip(tr("Draws a small arc where two conductors cross without being connected. Only the "
"drawing changes: no element is added and no conductor is cut.",
"tooltip"));
//Texts of turned symbols kept horizontal
upright_symbol_texts_cb_ = new QCheckBox(tr("Garder horizontaux les textes des symboles pivotés",
upright_symbol_texts_cb_ = new QCheckBox(tr("Keep the texts of rotated elements horizontal",
"checkbox label"));
upright_symbol_texts_cb_ -> setToolTip(tr("Les textes dessinés dans un symbole et les noms de ses bornes restent "
"lisibles quand le symbole est pivoté : leur cadre tourne avec le symbole, "
"pas le texte. Décochez pour qu'ils tournent avec le symbole, comme avant.",
upright_symbol_texts_cb_ -> setToolTip(tr("Texts drawn in an element and the names of its terminals stay readable "
"when the element is rotated: their frame turns with the element, not the "
"text. Uncheck to make them turn with the element, as before.",
"tooltip"));
//How many wires a terminal may take (discussion #1158)
wiring_rules_gb_ = new QGroupBox(tr("Conducteurs par borne", "group box title"));
use_application_rules_cb_ = new QCheckBox(tr("Utiliser les réglages de l'application", "checkbox label"));
use_application_rules_cb_ -> setToolTip(tr("Les réglages de Configurer QElectroTech > Général s'appliquent. "
"Décochez pour donner à ce projet ses propres réglages, enregistrés dans le projet.",
wiring_rules_gb_ = new QGroupBox(tr("Conductors per terminal", "group box title"));
use_application_rules_cb_ = new QCheckBox(tr("Use the application settings", "checkbox label"));
use_application_rules_cb_ -> setToolTip(tr("The settings in Configure QElectroTech > General apply. Untick to give this "
"project its own settings, saved in the project.",
"tooltip"));
connect(use_application_rules_cb_, &QCheckBox::toggled, this, [this](bool use) {
//Show the values that will apply: the application's, or the
@@ -281,20 +281,20 @@ void ProjectMainConfigPage::initWidgets()
}
updateWiringRulesWidgets();
});
max_wires_label_ = new QLabel(tr("Nombre maximal de conducteurs par borne :", "label when configuring"));
max_wires_label_ = new QLabel(tr("Maximum conductors per terminal:", "label when configuring"));
max_wires_sb_ = new QSpinBox();
max_wires_sb_ -> setRange(0, 99);
max_wires_sb_ -> setSpecialValueText(tr("Sans limite", "wires per terminal"));
max_wires_sb_ -> setToolTip(tr("Un nouveau conducteur qui dépasserait ce nombre sur une borne est refusé. "
"Les conducteurs déjà dessinés ne sont pas modifiés. "
"4 correspond à deux embouts doubles, un de chaque côté de la vis.",
max_wires_sb_ -> setSpecialValueText(tr("No limit", "wires per terminal"));
max_wires_sb_ -> setToolTip(tr("A new conductor that would take a terminal past this number is refused. "
"Conductors already drawn are not changed. 4 means two twin ferrules, one "
"on each side of the screw.",
"tooltip"));
one_wire_per_report_cb_ = new QCheckBox(tr("Un seul conducteur par renvoi de folio", "checkbox label"));
one_wire_per_report_cb_ -> setToolTip(tr("Un renvoi de folio est un point virtuel : il ne reçoit qu'un conducteur, "
"celui qui continue sur l'autre folio.",
one_wire_per_report_cb_ = new QCheckBox(tr("Only one conductor per sheet reference", "checkbox label"));
one_wire_per_report_cb_ -> setToolTip(tr("A sheet reference is a virtual point: it takes only one conductor, the "
"one that continues on the other sheet.",
"tooltip"));
wiring_rules_off_label_ = new QLabel(tr("Ces règles sont désactivées pour tous les projets "
"(Configurer QElectroTech > Général).",
wiring_rules_off_label_ = new QLabel(tr("These rules are turned off for every project "
"(Configure QElectroTech > General).",
"informative label"));
wiring_rules_off_label_ -> setWordWrap(true);
}
@@ -456,7 +456,7 @@ ProjectAutoNumConfigPage::ProjectAutoNumConfigPage (QETProject *project,
*/
QString ProjectAutoNumConfigPage::title() const
{
return tr("Numérotation auto");
return tr("Auto Numbering");
}
/**
@@ -490,7 +490,7 @@ QWidget *schemeTab(SelectAutonumW *saw, QGroupBox *&box, QTableWidget *&table)
box = new QGroupBox(tab);
auto *box_layout = new QVBoxLayout(box);
table = new QTableWidget(0, 2, box);
table->setHorizontalHeaderLabels({QObject::tr("Folio"), QObject::tr("Titre")});
table->setHorizontalHeaderLabels({QObject::tr("Sheet"), QObject::tr("Title")});
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
table->setSelectionBehavior(QAbstractItemView::SelectRows);
table->verticalHeader()->setVisible(false);
@@ -518,7 +518,7 @@ void ProjectAutoNumConfigPage::initWidgets()
//Conductor tab
m_saw_conductor = new SelectAutonumW(1);
m_saw_conductor->setExplicitNaming();
tab_widget->addTab(schemeTab(m_saw_conductor, m_conductor_users_box, m_conductor_users), tr("Conducteurs"));
tab_widget->addTab(schemeTab(m_saw_conductor, m_conductor_users_box, m_conductor_users), tr("Conductors"));
//Element tab
m_saw_element = new SelectAutonumW(0);
@@ -533,38 +533,38 @@ void ProjectAutoNumConfigPage::initWidgets()
m_element_users_box = new QGroupBox(element_tab);
auto *users_layout = new QVBoxLayout(m_element_users_box);
m_element_users = new QTableWidget(0, 5, m_element_users_box);
m_element_users->setHorizontalHeaderLabels({tr("N°"), tr("Nom"), tr("Folio"), tr("Élément"), tr("Figé")});
m_element_users->setHorizontalHeaderLabels({tr("No."), tr("Name"), tr("Sheet"), tr("Element"), tr("Frozen")});
m_element_users->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_element_users->setSelectionBehavior(QAbstractItemView::SelectRows);
m_element_users->verticalHeader()->setVisible(false);
m_element_users->horizontalHeader()->setStretchLastSection(true);
m_element_users->setAlternatingRowColors(true);
users_layout->addWidget(m_element_users);
m_assign_number_pb = new QPushButton(tr("Attribuer un numéro libre…"), m_element_users_box);
m_assign_number_pb->setToolTip(tr("Donner à l'élément sélectionné un numéro que personne n'a : "
"il garde sa numérotation, seul son numéro change."));
m_assign_number_pb = new QPushButton(tr("Assign a free number…"), m_element_users_box);
m_assign_number_pb->setToolTip(tr("Give the selected element a number nobody has: it keeps its "
"numbering, only its number changes."));
m_assign_number_pb->setEnabled(false);
users_layout->addWidget(m_assign_number_pb, 0, Qt::AlignLeft);
connect(m_assign_number_pb, &QPushButton::clicked, this, &ProjectAutoNumConfigPage::assignFreeNumber);
connect(m_element_users, &QTableWidget::itemSelectionChanged,
this, &ProjectAutoNumConfigPage::updateAssignNumberButton);
element_layout->addWidget(m_element_users_box, 1);
tab_widget->addTab(element_tab, tr("Eléments"));
tab_widget->addTab(element_tab, tr("Elements"));
//Folio Tab
m_saw_folio = new SelectAutonumW(2);
m_saw_folio->setExplicitNaming();
tab_widget->addTab(schemeTab(m_saw_folio, m_folio_users_box, m_folio_users), tr("Folios"));
tab_widget->addTab(schemeTab(m_saw_folio, m_folio_users_box, m_folio_users), tr("Sheets"));
//AutoNumbering Tab
m_faw = new FolioAutonumberingW(project());
tab_widget->addTab(m_faw, tr("Numérotation auto des folios"));
tab_widget->addTab(m_faw, tr("Sheet Auto Numbering"));
m_import_pb = new QPushButton(
tr("Importer depuis un autre projet..."), this);
tr("Import from another project..."), this);
m_import_pb->setToolTip(
tr("Reprendre les numérotations automatiques "
"enregistrées dans un autre projet"));
tr("Reuse the automatic numbering saved in "
"another project"));
QHBoxLayout *button_layout = new QHBoxLayout();
button_layout->addStretch();
@@ -752,7 +752,7 @@ void ProjectAutoNumConfigPage::refreshElementUsers()
entry.element->elementInformations().value(QStringLiteral("label")).toString(),
entry.element->diagram() ? QString::number(entry.element->diagram()->folioIndex() + 1) : QString(),
entry.element->name(),
is_frozen ? tr("figé") : QString()};
is_frozen ? tr("frozen") : QString()};
}
else
{
@@ -760,8 +760,8 @@ void ProjectAutoNumConfigPage::refreshElementUsers()
cells = QStringList{
entry.to > entry.number ? QStringLiteral("%1 – %2").arg(entry.number).arg(entry.to)
: QString::number(entry.number),
tr("— libre —"), QString(),
tr("aucun élément n'a ce numéro (supprimé ou renuméroté)"), QString()};
tr("— free —"), QString(),
tr("no element has this number (deleted or renumbered)"), QString()};
}
for (int column = 0 ; column < cells.size() ; ++column) {
auto *item = new QTableWidgetItem(cells.at(column));
@@ -778,10 +778,10 @@ void ProjectAutoNumConfigPage::refreshElementUsers()
m_element_users->resizeColumnsToContents();
m_element_users_box->setTitle(
users.isEmpty()
? tr("Aucun élément ne suit cette numérotation")
: tr("%n élément(s) suivent cette numérotation, dont %1 au nom figé", "", users.size())
? tr("No element follows this numbering")
: tr("%n elements follow this numbering, %1 with a frozen name", "", users.size())
.arg(frozen)
+ (gaps ? tr(" ; %n numéro(s) sans élément", "", gaps) : QString()));
+ (gaps ? tr("; %n numbers without an element", "", gaps) : QString()));
updateAssignNumberButton();
}
@@ -803,10 +803,10 @@ void ProjectAutoNumConfigPage::updateAssignNumberButton()
m_assign_number_pb->setEnabled(element && supported && !m_project->isReadOnly());
m_assign_number_pb->setToolTip(
!supported
? tr("Cette numérotation a plusieurs numéros (ou un numéro par folio) : "
"on ne peut pas en choisir un à la main.")
: tr("Donner à l'élément sélectionné un numéro que personne n'a : "
"il garde sa numérotation, seul son numéro change."));
? tr("This numbering has several numbers (or one number per sheet): one "
"cannot be chosen by hand.")
: tr("Give the selected element a number nobody has: it keeps its "
"numbering, only its number changes."));
}
/**
@@ -820,18 +820,18 @@ void ProjectAutoNumConfigPage::assignFreeNumber()
const int row = m_element_users->currentRow();
Element *element = row >= 0 ? m_element_rows.value(row).data() : nullptr;
const QString title = m_saw_element->contextComboBox()->currentText();
const QString caption = tr("Attribuer un numéro libre");
const QString caption = tr("Assign a free number");
if (!element || m_project->isReadOnly()) {
return;
}
if (element->isFreezeLabel()) {
QMessageBox::information(this, caption,
tr("Le nom de cet élément est figé : dégelez-le d'abord."));
tr("This element's name is frozen: unfreeze it first."));
return;
}
const QList<int> numbers = ElementAutoNumSchemeCommand::freeNumbers(m_project, title, element);
if (numbers.isEmpty()) {
QMessageBox::information(this, caption, tr("Aucun numéro n'est libre."));
QMessageBox::information(this, caption, tr("No number is free."));
return;
}
QStringList items;
@@ -842,7 +842,7 @@ void ProjectAutoNumConfigPage::assignFreeNumber()
bool ok = false;
const QString chosen = QInputDialog::getItem(
this, caption,
tr("Numéro libre pour l'élément « %1 » (%2) :")
tr("Free number for element “%1” (%2):")
.arg(element->elementInformations().value(QStringLiteral("label")).toString(), element->name()),
items, 0, false, &ok);
if (!ok) {
@@ -893,7 +893,7 @@ QString ProjectAutoNumConfigPage::askElementSchemeName(const QString &title,
for (;;)
{
bool ok = false;
name = QInputDialog::getText(this, title, tr("Nom de la numérotation :"),
name = QInputDialog::getText(this, title, tr("Numbering name:"),
QLineEdit::Normal, name, &ok);
if (!ok) {
return QString();
@@ -922,9 +922,9 @@ bool ProjectAutoNumConfigPage::pushElementSchemeCommand(ElementAutoNumSchemeComm
{
if (!RenumberPreviewDialog::confirm(
this,
tr("Modifier la numérotation"),
tr("%n élément(s) suivent cette numérotation et vont "
"changer de formule et de nom.", "", changed),
tr("Modify numbering"),
tr("%n elements follow this numbering and will change "
"formula and name.", "", changed),
cmd->changes(), {})) {
delete cmd;
return false;
@@ -944,7 +944,7 @@ void ProjectAutoNumConfigPage::newContextElement()
if (m_project->isReadOnly()) {
return;
}
const QString name = askElementSchemeName(tr("Nouvelle numérotation"),
const QString name = askElementSchemeName(tr("New numbering"),
QString(), QString());
if (name.isEmpty()) {
return;
@@ -969,7 +969,7 @@ void ProjectAutoNumConfigPage::renameContextElement()
if (m_project->isReadOnly() || !m_project->elementAutoNum().contains(old_title)) {
return;
}
const QString name = askElementSchemeName(tr("Renommer la numérotation"),
const QString name = askElementSchemeName(tr("Rename numbering"),
old_title, old_title);
if (name.isEmpty() || name == old_title) {
return;
@@ -997,7 +997,7 @@ void ProjectAutoNumConfigPage::saveContextElement()
if (!m_project->elementAutoNum().contains(title))
{
//No numbering yet: the definition needs a name
shown = askElementSchemeName(tr("Nouvelle numérotation"),
shown = askElementSchemeName(tr("New numbering"),
QString(), QString());
if (shown.isEmpty()) {
return;
@@ -1012,11 +1012,11 @@ void ProjectAutoNumConfigPage::saveContextElement()
m_project, title, wanted).size())
{
QMessageBox::warning(
this, tr("Modifier la numérotation"),
tr("La numérotation « %1 » ne peut pas être modifiée : "
"%n élément(s) au nom figé la suivent.\n"
"Dégelez-les d'abord (voir la liste), ou renommez seulement la "
"numérotation.", "", frozen).arg(title));
this, tr("Modify numbering"),
tr("The “%1” numbering cannot be modified: %n elements with a "
"frozen name follow it.\n"
"Unfreeze them first (see the list), or just rename the "
"numbering.", "", frozen).arg(title));
refreshElementSchemes(title); //Back to the definition the project has
return;
}
@@ -1052,24 +1052,24 @@ void ProjectAutoNumConfigPage::importFromProject()
const QString path = QFileDialog::getOpenFileName(
this,
tr("Importer les numérotations d'un projet"),
tr("Import numbering from a project"),
m_project->currentDir(),
tr("Projet QElectroTech (*.qet)"));
tr("Project QElectroTech (*.qet)"));
if (path.isEmpty()) {
return;
}
QFile file(path);
if (!file.open(QIODevice::ReadOnly)) {
QMessageBox::warning(this, tr("Import impossible"),
tr("Impossible d'ouvrir %1").arg(path));
QMessageBox::warning(this, tr("Import not possible"),
tr("Unable to open %1").arg(path));
return;
}
QDomDocument doc;
if (!doc.setContent(&file)) {
QMessageBox::warning(this, tr("Import impossible"),
tr("%1 n'est pas un projet QElectroTech valide.")
QMessageBox::warning(this, tr("Import not possible"),
tr("%1 is not a valid QElectroTech project.")
.arg(QFileInfo(path).fileName()));
return;
}
@@ -1078,8 +1078,8 @@ void ProjectAutoNumConfigPage::importFromProject()
const QDomNodeList newdiagrams =
doc.elementsByTagName(QStringLiteral("newdiagrams"));
if (newdiagrams.isEmpty()) {
QMessageBox::information(this, tr("Aucune numérotation"),
tr("Ce projet ne contient aucune numérotation automatique."));
QMessageBox::information(this, tr("No numbering"),
tr("This project does not contain any automatic numbering."));
return;
}
const QDomElement root = newdiagrams.at(0).toElement();
@@ -1092,18 +1092,18 @@ void ProjectAutoNumConfigPage::importFromProject()
};
const QList<Category> categories {
{QStringLiteral("conductors_autonums"),
QStringLiteral("conductor_autonum"), tr("Conducteurs")},
QStringLiteral("conductor_autonum"), tr("Conductors")},
{QStringLiteral("element_autonums"),
QStringLiteral("element_autonum"), tr("Eléments")},
QStringLiteral("element_autonum"), tr("Elements")},
{QStringLiteral("folio_autonums"),
QStringLiteral("folio_autonum"), tr("Folios")}
QStringLiteral("folio_autonum"), tr("Sheets")}
};
QDialog dialog(this);
dialog.setWindowTitle(tr("Numérotations à importer"));
dialog.setWindowTitle(tr("Numbering to import"));
QVBoxLayout *layout = new QVBoxLayout(&dialog);
layout->addWidget(new QLabel(
tr("Numérotations trouvées dans %1 :")
tr("Numbering found in %1:")
.arg(QFileInfo(path).fileName()), &dialog));
QListWidget *list = new QListWidget(&dialog);
@@ -1141,7 +1141,7 @@ void ProjectAutoNumConfigPage::importFromProject()
}
QListWidgetItem *item = new QListWidgetItem(
exists ? tr("%1 : %2 (existe déjà)")
exists ? tr("%1: %2 (already exists)")
.arg(category.label, title)
: QStringLiteral("%1 : %2")
.arg(category.label, title),
@@ -1160,13 +1160,13 @@ void ProjectAutoNumConfigPage::importFromProject()
}
if (contexts.isEmpty()) {
QMessageBox::information(this, tr("Aucune numérotation"),
tr("Ce projet ne contient aucune numérotation automatique."));
QMessageBox::information(this, tr("No numbering"),
tr("This project does not contain any automatic numbering."));
return;
}
QCheckBox *overwrite_cb = new QCheckBox(
tr("Remplacer les numérotations de même nom"), &dialog);
tr("Replace numbering with the same name"), &dialog);
layout->addWidget(overwrite_cb);
QDialogButtonBox *buttons = new QDialogButtonBox(
@@ -1180,7 +1180,7 @@ void ProjectAutoNumConfigPage::importFromProject()
}
int imported = 0, skipped = 0, conductors = 0, relabelled = 0, blocked = 0;
m_project->undoStack()->beginMacro(tr("Importer des numérotations"));
m_project->undoStack()->beginMacro(tr("Import numberings"));
for (int row = 0 ; row < list->count() ; ++row)
{
QListWidgetItem *item = list->item(row);
@@ -1261,17 +1261,17 @@ void ProjectAutoNumConfigPage::importFromProject()
}
QMessageBox::information(
this, tr("Import terminé"),
(skipped ? tr("%1 numérotation(s) importée(s), "
"%2 conservée(s) telles quelles.")
this, tr("Import complete"),
(skipped ? tr("%1 numbering(s) imported, %2 "
"kept unchanged.")
.arg(imported).arg(skipped)
: tr("%1 numérotation(s) importée(s).").arg(imported))
: tr("%1 numbering(s) imported.").arg(imported))
+ (blocked ? QStringLiteral("\n")
+ tr("%n numérotation(s) suivie(s) par des éléments au nom figé "
"n'ont pas été remplacées.", "", blocked)
+ tr("%n numberings followed by elements with a frozen name were "
"not replaced.", "", blocked)
: QString())
+ (relabelled ? QStringLiteral("\n")
+ tr("%n élément(s) ont changé de formule.", "", relabelled)
+ tr("%n elements changed formula.", "", relabelled)
: QString()));
}
@@ -1288,10 +1288,10 @@ void ProjectAutoNumConfigPage::removeContextElement()
if (const int used = m_project->elementsUsingElementAutoNum(title).size())
{
QMessageBox::information(
this, tr("Supprimer la numérotation"),
tr("%n élément(s) suivent la numérotation « %1 », elle ne "
"peut pas être supprimée.\nDonnez-leur une autre "
"numérotation ou un nom fixe d'abord.", "", used)
this, tr("Delete numbering"),
tr("%n elements follow the “%1” numbering, so it cannot be "
"deleted.\n"
"Give them another numbering or a fixed name first.", "", used)
.arg(title));
return;
}
@@ -1513,12 +1513,12 @@ void ProjectAutoNumConfigPage::refreshSchemeUsers(SchemeKind kind)
table->resizeColumnsToContents();
if (kind == SchemeKind::Folio) {
box->setTitle(users.isEmpty()
? tr("Aucun folio ne nomme cette numérotation")
: tr("%n folio(s) nomment cette numérotation", "", users.size()));
? tr("No sheet names this numbering")
: tr("%n sheets name this numbering", "", users.size()));
} else {
box->setTitle(users.isEmpty()
? tr("Aucun folio ne suit cette numérotation")
: tr("%n folio(s) suivent cette numérotation", "", users.size()));
? tr("No sheet follows this numbering")
: tr("%n sheets follow this numbering", "", users.size()));
}
}
@@ -1528,7 +1528,7 @@ QString ProjectAutoNumConfigPage::askSchemeName(SchemeKind kind, const QString &
for (;;)
{
bool ok = false;
name = QInputDialog::getText(this, title, tr("Nom de la numérotation :"),
name = QInputDialog::getText(this, title, tr("Numbering name:"),
QLineEdit::Normal, name, &ok);
if (!ok) {
return QString();
@@ -1550,7 +1550,7 @@ void ProjectAutoNumConfigPage::newScheme(SchemeKind kind)
if (m_project->isReadOnly()) {
return;
}
const QString name = askSchemeName(kind, tr("Nouvelle numérotation"), QString(), QString());
const QString name = askSchemeName(kind, tr("New numbering"), QString(), QString());
if (name.isEmpty()) {
return;
}
@@ -1572,7 +1572,7 @@ void ProjectAutoNumConfigPage::renameScheme(SchemeKind kind)
if (m_project->isReadOnly() || !AutoNumSchemeCommand::contains(m_project, kind, old_title)) {
return;
}
const QString name = askSchemeName(kind, tr("Renommer la numérotation"), old_title, old_title);
const QString name = askSchemeName(kind, tr("Rename numbering"), old_title, old_title);
if (name.isEmpty() || name == old_title) {
return;
}
@@ -1601,7 +1601,7 @@ void ProjectAutoNumConfigPage::saveScheme(SchemeKind kind)
AutoNumSchemeCommand *cmd = nullptr;
if (!AutoNumSchemeCommand::contains(m_project, kind, title))
{
shown = askSchemeName(kind, tr("Nouvelle numérotation"), QString(), QString());
shown = askSchemeName(kind, tr("New numbering"), QString(), QString());
if (shown.isEmpty()) {
return;
}
@@ -1630,9 +1630,9 @@ void ProjectAutoNumConfigPage::removeScheme(SchemeKind kind)
if (const int used = AutoNumSchemeCommand::usersOf(m_project, kind, title).size())
{
QMessageBox::information(
this, tr("Supprimer la numérotation"),
tr("%n folio(s) suivent la numérotation « %1 », elle ne peut pas être "
"supprimée.\nDonnez-leur une autre numérotation d'abord.", "", used)
this, tr("Delete numbering"),
tr("%n sheets follow the “%1” numbering, so it cannot be deleted.\n"
"Give them another numbering first.", "", used)
.arg(title));
return;
}
+12 -13
View File
@@ -49,10 +49,9 @@ ShortcutBarConfigPage::ShortcutBarConfigPage(QWidget *parent) :
}
auto *explanation = new QLabel(
tr("La barre de raccourcis s'ouvre à la position du curseur "
"(touche S par défaut). Elle montre les commandes choisies "
"ici selon ce qui est sélectionné, puis le sélecteur "
"d'éléments."), this);
tr("The shortcut bar opens at the cursor position (S key by "
"default). It shows the commands chosen here based on what "
"is selected, then the element picker."), this);
explanation->setWordWrap(true);
m_context = new QComboBox(this);
@@ -67,11 +66,11 @@ ShortcutBarConfigPage::ShortcutBarConfigPage(QWidget *parent) :
m_chosen->setSelectionMode(QAbstractItemView::ExtendedSelection);
m_chosen->setDragDropMode(QAbstractItemView::InternalMove);
auto *add = new QPushButton(tr("Ajouter →"), this);
auto *remove = new QPushButton(tr("← Retirer"), this);
auto *up = new QPushButton(tr("Monter"), this);
auto *down = new QPushButton(tr("Descendre"), this);
auto *reset = new QPushButton(tr("Valeurs par défaut"), this);
auto *add = new QPushButton(tr("Add →"), this);
auto *remove = new QPushButton(tr("← Remove"), this);
auto *up = new QPushButton(tr("Move up"), this);
auto *down = new QPushButton(tr("Move down"), this);
auto *reset = new QPushButton(tr("Default values"), this);
auto *buttons = new QVBoxLayout();
buttons->addStretch();
@@ -83,14 +82,14 @@ ShortcutBarConfigPage::ShortcutBarConfigPage(QWidget *parent) :
buttons->addStretch();
auto *grid = new QGridLayout();
grid->addWidget(new QLabel(tr("Commandes disponibles"), this), 0, 0);
grid->addWidget(new QLabel(tr("Dans la barre, dans l'ordre"), this), 0, 2);
grid->addWidget(new QLabel(tr("Available commands"), this), 0, 0);
grid->addWidget(new QLabel(tr("In the bar, in order"), this), 0, 2);
grid->addWidget(m_available, 1, 0);
grid->addLayout(buttons, 1, 1);
grid->addWidget(m_chosen, 1, 2);
auto *context_row = new QHBoxLayout();
context_row->addWidget(new QLabel(tr("Contexte :"), this));
context_row->addWidget(new QLabel(tr("Context:"), this));
context_row->addWidget(m_context, 1);
context_row->addWidget(reset);
@@ -128,7 +127,7 @@ void ShortcutBarConfigPage::applyConf()
QString ShortcutBarConfigPage::title() const
{
return tr("Barre de raccourcis", "configuration page title");
return tr("Shortcut bar", "configuration page title");
}
QIcon ShortcutBarConfigPage::icon() const
+18 -18
View File
@@ -82,21 +82,21 @@ ShortcutsConfigPage::ShortcutsConfigPage(QWidget *parent) :
vlayout->addWidget(horiz_line);
m_filter_edit = new QLineEdit(this);
m_filter_edit->setPlaceholderText(tr("Filtrer les raccourcis…"));
m_filter_edit->setPlaceholderText(tr("Filter shortcuts…"));
connect(m_filter_edit, &QLineEdit::textChanged, this, &ShortcutsConfigPage::filterRows);
m_quick_filter = new QComboBox(this);
m_quick_filter->setObjectName(QStringLiteral("quickFilterCombo"));
m_quick_filter->addItem(tr("Tous"));
m_quick_filter->addItem(tr("Attribués uniquement"));
m_quick_filter->addItem(tr("Non attribués uniquement"));
m_quick_filter->addItem(tr("Conflits uniquement"));
m_quick_filter->addItem(tr("all"));
m_quick_filter->addItem(tr("Awarded exclusively"));
m_quick_filter->addItem(tr("Unallocated only"));
m_quick_filter->addItem(tr("Conflicts only"));
connect(m_quick_filter, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &ShortcutsConfigPage::quickFilterChanged);
m_category_filter = new QComboBox(this);
m_category_filter->setObjectName(QStringLiteral("categoryFilterCombo"));
m_category_filter->addItem(tr("Toutes les catégories"));
m_category_filter->addItem(tr("All categories"));
connect(m_category_filter, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &ShortcutsConfigPage::quickFilterChanged);
@@ -114,7 +114,7 @@ ShortcutsConfigPage::ShortcutsConfigPage(QWidget *parent) :
//know how QElectroTech spells it ("Ctrl+Maj+S", "Ctrl+Shift+S"…)
m_key_search = new QKeySequenceEdit(this);
m_key_search->setObjectName(QStringLiteral("keySearchEdit"));
m_key_search->setToolTip(tr("Appuyez sur une combinaison de touches pour voir quelle commande l'utilise"));
m_key_search->setToolTip(tr("Press a key combination to see which command uses it"));
#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)
m_key_search->setMaximumSequenceLength(1);
#endif
@@ -122,19 +122,19 @@ ShortcutsConfigPage::ShortcutsConfigPage(QWidget *parent) :
auto *clear_key_button = new QToolButton(this);
clear_key_button->setIcon(QET::Icons::EditClear);
clear_key_button->setToolTip(tr("Effacer la touche recherchée"));
clear_key_button->setToolTip(tr("Clear the searched key"));
clear_key_button->setAutoRaise(true);
connect(clear_key_button, &QToolButton::clicked, m_key_search, &QKeySequenceEdit::clear);
auto *key_layout = new QHBoxLayout();
key_layout->addWidget(new QLabel(tr("Rechercher par touche :"), this));
key_layout->addWidget(new QLabel(tr("Search by key:"), this));
key_layout->addWidget(m_key_search);
key_layout->addWidget(clear_key_button);
key_layout->addStretch();
vlayout->addLayout(key_layout);
m_tree = new QTreeWidget(this);
m_tree->setHeaderLabels({tr("Action"), tr("Menu"), tr("Raccourci"), QString()});
m_tree->setHeaderLabels({tr("Action"), tr("Menu"), tr("Shortcut"), QString()});
m_tree->header()->setSectionResizeMode(ActionColumn, QHeaderView::Stretch);
m_tree->header()->setSectionResizeMode(MenuColumn, QHeaderView::ResizeToContents);
m_tree->header()->setSectionResizeMode(SequenceColumn, QHeaderView::ResizeToContents);
@@ -143,11 +143,11 @@ ShortcutsConfigPage::ShortcutsConfigPage(QWidget *parent) :
m_tree->setSelectionMode(QAbstractItemView::NoSelection);
vlayout->addWidget(m_tree);
auto *reset_all_button = new QPushButton(tr("Tout réinitialiser"), this);
auto *reset_all_button = new QPushButton(tr("Reset everything"), this);
connect(reset_all_button, &QPushButton::clicked, this, &ShortcutsConfigPage::resetAllRows);
auto *copy_button = new QPushButton(QET::Icons::EditCopy, tr("Copier la liste"), this);
copy_button->setToolTip(tr("Copie les raccourcis affichés, à coller dans un tableur ou un document"));
auto *copy_button = new QPushButton(QET::Icons::EditCopy, tr("Copy list"), this);
copy_button->setToolTip(tr("Copies the shortcuts shown, to paste into a spreadsheet or a document"));
connect(copy_button, &QPushButton::clicked, this, &ShortcutsConfigPage::copyList);
auto *bottom_layout = new QHBoxLayout();
@@ -214,7 +214,7 @@ void ShortcutsConfigPage::populateTable()
auto *reset_button = new QToolButton(m_tree);
reset_button->setIcon(QET::Icons::EditUndo);
reset_button->setToolTip(tr("Réinitialiser ce raccourci"));
reset_button->setToolTip(tr("Reset this shortcut"));
reset_button->setAutoRaise(true);
const int row_index = m_rows.size();
connect(reset_button, &QToolButton::clicked, this, [this, row_index]() { resetRow(row_index); });
@@ -334,7 +334,7 @@ void ShortcutsConfigPage::applyFilter()
top->setExpanded(filtering && any_visible);
}
m_count_label->setText(tr("%n action(s)", nullptr, visible_actions));
m_count_label->setText(tr("%n actions", nullptr, visible_actions));
}
// IDs use stable context prefixes; translated display categories are not scopes.
@@ -392,7 +392,7 @@ void ShortcutsConfigPage::checkConflicts()
}
current_row.item->setBackground(ActionColumn, QColor(255, 205, 205));
current_row.edit->setToolTip(
tr("Ce raccourci est aussi utilisé par : %1").arg(other_descriptions.join(QStringLiteral(", "))));
tr("This shortcut is also used by : %1").arg(other_descriptions.join(QStringLiteral(", "))));
} else {
current_row.item->setBackground(ActionColumn, QBrush());
current_row.edit->setToolTip(QString());
@@ -487,7 +487,7 @@ QString ShortcutsConfigPage::menuPath(const QAction *action)
QString ShortcutsConfigPage::listAsText() const
{
QStringList lines;
lines << QStringList{tr("Catégorie"), tr("Menu"), tr("Action"), tr("Raccourci")}
lines << QStringList{tr("Category"), tr("Menu"), tr("Action"), tr("Shortcut")}
.join(QLatin1Char('\t'));
for (const Row &row : std::as_const(m_rows)) {
if (row.item->isHidden()) {
@@ -511,7 +511,7 @@ void ShortcutsConfigPage::copyList()
QString ShortcutsConfigPage::title() const
{
return tr("Raccourcis", "configuration page title");
return tr("Shortcuts", "configuration page title");
}
QIcon ShortcutsConfigPage::icon() const
+21 -22
View File
@@ -46,7 +46,7 @@ namespace {
//nothing. Real action ids are never empty (ShortcutManager assigns
//them from source, not user input), so an empty string can never
//collide with a real one.
const QString UNBOUND_LABEL = QObject::tr("(Aucune action)", "spacemouse config: unbound button");
const QString UNBOUND_LABEL = QObject::tr("(No action)", "spacemouse config: unbound button");
}
/**
@@ -68,10 +68,9 @@ SpaceMouseConfigPage::SpaceMouseConfigPage(QWidget *parent) :
vlayout->addWidget(buildMotionGroup());
auto *intro_label = new QLabel(
tr("Associez un numéro de bouton de votre souris 3D (SpaceMouse, SpacePilot...) "
"à une action de QElectroTech. Le numéro de bouton dépend de votre appareil "
"et de son pilote -- reportez-vous à sa documentation, ou essayez successivement "
"les valeurs à partir de 0.",
tr("Link a button number on your 3D mouse (SpaceMouse, SpacePilot...) to a "
"QElectroTech action. The button number depends on your device and its driver -- "
"see its documentation, or try the values one by one starting from 0.",
"spacemouse config page intro"));
intro_label->setWordWrap(true);
@@ -79,7 +78,7 @@ SpaceMouseConfigPage::SpaceMouseConfigPage(QWidget *parent) :
buttons_layout->addWidget(intro_label);
m_table = new QTableWidget(0, 3, this);
m_table->setHorizontalHeaderLabels({tr("N° bouton"), tr("Action"), QString()});
m_table->setHorizontalHeaderLabels({tr("Button no."), tr("Action"), QString()});
m_table->horizontalHeader()->setSectionResizeMode(COL_BUTTON, QHeaderView::ResizeToContents);
m_table->horizontalHeader()->setSectionResizeMode(COL_ACTION, QHeaderView::Stretch);
m_table->horizontalHeader()->setSectionResizeMode(COL_REMOVE, QHeaderView::ResizeToContents);
@@ -88,7 +87,7 @@ SpaceMouseConfigPage::SpaceMouseConfigPage(QWidget *parent) :
m_table->setSelectionMode(QAbstractItemView::NoSelection);
buttons_layout->addWidget(m_table);
auto *add_button = new QPushButton(QET::Icons::Add, tr("Ajouter une association"), this);
auto *add_button = new QPushButton(QET::Icons::Add, tr("Add a link"), this);
connect(add_button, &QPushButton::clicked, this, &SpaceMouseConfigPage::addRow);
auto *bottom_layout = new QHBoxLayout();
@@ -96,7 +95,7 @@ SpaceMouseConfigPage::SpaceMouseConfigPage(QWidget *parent) :
bottom_layout->addStretch();
buttons_layout->addLayout(bottom_layout);
auto *buttons_group = new QGroupBox(tr("Boutons"), this);
auto *buttons_group = new QGroupBox(tr("Buttons"), this);
buttons_group->setLayout(buttons_layout);
vlayout->addWidget(buttons_group);
@@ -132,34 +131,34 @@ QGroupBox *SpaceMouseConfigPage::buildMotionGroup()
m_dead_zone = new QSpinBox(this);
m_dead_zone->setRange(0, 200);
m_dead_zone->setValue(settings.dead_zone);
m_dead_zone->setToolTip(tr("Les petits mouvements en dessous de ce seuil sont ignorés. "
"Augmentez-le si la vue dérive quand vous ne touchez pas la souris."));
m_dead_zone->setToolTip(tr("Small movements below this threshold are ignored. Raise it if the "
"view drifts when you are not touching the mouse."));
m_zoom_axis = new QComboBox(this);
m_zoom_axis->addItem(tr("Pousser / tirer le capuchon"),
m_zoom_axis->addItem(tr("Push / pull the cap"),
static_cast<int>(SpaceMouseSettings::ZoomAxis::PushPull));
m_zoom_axis->addItem(tr("Tourner le capuchon"),
m_zoom_axis->addItem(tr("Twist the cap"),
static_cast<int>(SpaceMouseSettings::ZoomAxis::Twist));
m_zoom_axis->setCurrentIndex(
m_zoom_axis->findData(static_cast<int>(settings.zoom_axis)));
m_invert_pan_x = new QCheckBox(tr("Inverser le déplacement horizontal"), this);
m_invert_pan_x = new QCheckBox(tr("Reverse horizontal movement"), this);
m_invert_pan_x->setChecked(settings.invert_pan_x);
m_invert_pan_y = new QCheckBox(tr("Inverser le déplacement vertical"), this);
m_invert_pan_y = new QCheckBox(tr("Reverse vertical movement"), this);
m_invert_pan_y->setChecked(settings.invert_pan_y);
m_invert_zoom = new QCheckBox(tr("Inverser le zoom"), this);
m_invert_zoom = new QCheckBox(tr("Reverse zoom"), this);
m_invert_zoom->setChecked(settings.invert_zoom);
auto *form = new QFormLayout();
form->addRow(tr("Vitesse de déplacement :"), m_pan_speed);
form->addRow(tr("Vitesse du zoom :"), m_zoom_speed);
form->addRow(tr("Zoomer en :"), m_zoom_axis);
form->addRow(tr("Zone morte :"), m_dead_zone);
form->addRow(tr("Pan speed:"), m_pan_speed);
form->addRow(tr("Zoom speed:"), m_zoom_speed);
form->addRow(tr("Zoom by:"), m_zoom_axis);
form->addRow(tr("Dead zone:"), m_dead_zone);
form->addRow(m_invert_pan_x);
form->addRow(m_invert_pan_y);
form->addRow(m_invert_zoom);
auto *group = new QGroupBox(tr("Mouvement"), this);
auto *group = new QGroupBox(tr("Movement"), this);
group->setLayout(form);
return group;
}
@@ -217,7 +216,7 @@ void SpaceMouseConfigPage::appendRow(int button, const QString &action_id)
auto *remove_button = new QToolButton(m_table);
remove_button->setIcon(QET::Icons::EditTableDeleteRow);
remove_button->setToolTip(tr("Supprimer cette association"));
remove_button->setToolTip(tr("Remove this link"));
connect(remove_button, &QToolButton::clicked, this, &SpaceMouseConfigPage::removeSelectedRow);
m_table->setCellWidget(row, COL_REMOVE, remove_button);
}
@@ -293,7 +292,7 @@ void SpaceMouseConfigPage::applyConf()
QString SpaceMouseConfigPage::title() const
{
return tr("Souris 3D", "configuration page title");
return tr("3D mouse", "configuration page title");
}
QIcon SpaceMouseConfigPage::icon() const
@@ -48,23 +48,23 @@ ToolbarCommandsConfigPage::ToolbarCommandsConfigPage(QWidget *parent) :
}
auto *explanation = new QLabel(
tr("Choisissez les commandes de chaque barre d'outils de l'éditeur "
"de schémas. Glissez une commande de la liste de gauche vers la "
"barre, ou double-cliquez dessus ; Suppr la retire."), this);
tr("Choose the commands of each toolbar of the diagram editor. Drag "
"a command from the list on the left to the bar, or double-click "
"it; Delete removes it."), this);
explanation->setWordWrap(true);
m_toolbar = new QComboBox(this);
m_toolbar->setObjectName(QStringLiteral("toolbarCombo"));
auto *new_toolbar = new QPushButton(tr("Nouvelle barre…"), this);
auto *new_toolbar = new QPushButton(tr("New bar…"), this);
new_toolbar->setObjectName(QStringLiteral("newToolbarButton"));
m_rename = new QPushButton(tr("Renommer…"), this);
m_delete = new QPushButton(tr("Supprimer la barre"), this);
m_rename = new QPushButton(tr("Rename…"), this);
m_delete = new QPushButton(tr("Delete the bar"), this);
m_delete->setObjectName(QStringLiteral("deleteToolbarButton"));
auto *reset = new QPushButton(tr("Valeurs par défaut"), this);
auto *reset = new QPushButton(tr("Defaults"), this);
reset->setObjectName(QStringLiteral("resetButton"));
m_filter = new QLineEdit(this);
m_filter->setPlaceholderText(tr("Rechercher une commande"));
m_filter->setPlaceholderText(tr("Search for a command"));
m_filter->setClearButtonEnabled(true);
m_available = new QListWidget(this);
@@ -80,12 +80,12 @@ ToolbarCommandsConfigPage::ToolbarCommandsConfigPage(QWidget *parent) :
m_chosen->setDragDropMode(QAbstractItemView::DragDrop);
m_chosen->setDefaultDropAction(Qt::MoveAction);
auto *add = new QPushButton(tr("Ajouter →"), this);
auto *separator = new QPushButton(tr("Séparateur"), this);
auto *add = new QPushButton(tr("Add →"), this);
auto *separator = new QPushButton(tr("Separator"), this);
separator->setObjectName(QStringLiteral("separatorButton"));
auto *remove = new QPushButton(tr("← Retirer"), this);
auto *up = new QPushButton(tr("Monter"), this);
auto *down = new QPushButton(tr("Descendre"), this);
auto *remove = new QPushButton(tr("← Remove"), this);
auto *up = new QPushButton(tr("Move up"), this);
auto *down = new QPushButton(tr("Move down"), this);
auto *buttons = new QVBoxLayout();
buttons->addStretch();
@@ -98,15 +98,15 @@ ToolbarCommandsConfigPage::ToolbarCommandsConfigPage(QWidget *parent) :
buttons->addStretch();
auto *grid = new QGridLayout();
grid->addWidget(new QLabel(tr("Commandes disponibles"), this), 0, 0);
grid->addWidget(new QLabel(tr("Dans la barre, dans l'ordre"), this), 0, 2);
grid->addWidget(new QLabel(tr("Available commands"), this), 0, 0);
grid->addWidget(new QLabel(tr("In the bar, in order"), this), 0, 2);
grid->addWidget(m_filter, 1, 0);
grid->addWidget(m_available, 2, 0);
grid->addLayout(buttons, 2, 1);
grid->addWidget(m_chosen, 1, 2, 2, 1);
auto *toolbar_row = new QHBoxLayout();
toolbar_row->addWidget(new QLabel(tr("Barre d'outils :"), this));
toolbar_row->addWidget(new QLabel(tr("Toolbar:"), this));
toolbar_row->addWidget(m_toolbar, 1);
toolbar_row->addWidget(new_toolbar);
toolbar_row->addWidget(m_rename);
@@ -170,7 +170,7 @@ void ToolbarCommandsConfigPage::applyConf()
QString ToolbarCommandsConfigPage::title() const
{
return tr("Contenu des barres", "configuration page title: what each toolbar holds");
return tr("Toolbar contents", "configuration page title: what each toolbar holds");
}
QIcon ToolbarCommandsConfigPage::icon() const
@@ -348,8 +348,8 @@ void ToolbarCommandsConfigPage::resetToolbar()
void ToolbarCommandsConfigPage::newToolbar()
{
bool ok = false;
const QString title = QInputDialog::getText(this, tr("Nouvelle barre d'outils"),
tr("Nom de la barre d'outils :"),
const QString title = QInputDialog::getText(this, tr("New toolbar"),
tr("Toolbar name:"),
QLineEdit::Normal, QString(), &ok).trimmed();
if (!ok || title.isEmpty()) {
return;
@@ -369,8 +369,8 @@ void ToolbarCommandsConfigPage::renameToolbar()
for (DiagramToolbarSettings::Toolbar &toolbar : m_custom) {
if (toolbar.name != m_shown) continue;
bool ok = false;
const QString title = QInputDialog::getText(this, tr("Renommer la barre d'outils"),
tr("Nom de la barre d'outils :"),
const QString title = QInputDialog::getText(this, tr("Rename the toolbar"),
tr("Toolbar name:"),
QLineEdit::Normal, toolbar.title, &ok).trimmed();
if (ok && !title.isEmpty()) {
storeToolbar();
@@ -408,7 +408,7 @@ QListWidgetItem *ToolbarCommandsConfigPage::makeItem(const QString &id) const
QString tip;
QIcon icon;
if (id == DiagramToolbarSettings::separatorId()) {
text = tr("─── Séparateur ───");
text = tr("─── Separator ───");
} else if (DiagramToolbarSettings::isWidget(id)) {
text = DiagramToolbarSettings::widgetTitle(id);
} else if (QAction *action = ShortcutManager::instance().action(id, nullptr)) {
+13 -13
View File
@@ -38,32 +38,32 @@ ToolbarsConfigPage::ToolbarsConfigPage(QWidget *parent) :
m_icon_size = new QComboBox(this);
m_icon_size->setObjectName(QStringLiteral("iconSizeCombo"));
m_icon_size->addItem(tr("Par défaut"), 0);
m_icon_size->addItem(tr("Petites (16 px)"), 16);
m_icon_size->addItem(tr("Moyennes (24 px)"), 24);
m_icon_size->addItem(tr("Grandes (32 px)"), 32);
m_icon_size->addItem(tr("Très grandes (48 px)"), 48);
m_icon_size->addItem(tr("Default"), 0);
m_icon_size->addItem(tr("Small (16 px)"), 16);
m_icon_size->addItem(tr("Medium (24 px)"), 24);
m_icon_size->addItem(tr("Large (32 px)"), 32);
m_icon_size->addItem(tr("Very large (48 px)"), 48);
const int size_index = m_icon_size->findData(ToolbarSettings::iconSize());
m_icon_size->setCurrentIndex(size_index < 0 ? 0 : size_index);
m_button_style = new QComboBox(this);
m_button_style->setObjectName(QStringLiteral("buttonStyleCombo"));
m_button_style->addItem(tr("Icône seule"), int(Qt::ToolButtonIconOnly));
m_button_style->addItem(tr("Texte à côté de l'icône"), int(Qt::ToolButtonTextBesideIcon));
m_button_style->addItem(tr("Texte sous l'icône"), int(Qt::ToolButtonTextUnderIcon));
m_button_style->addItem(tr("Icon only"), int(Qt::ToolButtonIconOnly));
m_button_style->addItem(tr("Text beside the icon"), int(Qt::ToolButtonTextBesideIcon));
m_button_style->addItem(tr("Text under the icon"), int(Qt::ToolButtonTextUnderIcon));
m_button_style->setCurrentIndex(m_button_style->findData(int(ToolbarSettings::buttonStyle())));
m_locked = new QCheckBox(tr("Verrouiller les barres d'outils (elles ne peuvent plus être déplacées)"), this);
m_locked = new QCheckBox(tr("Lock the toolbars (they can no longer be moved)"), this);
m_locked->setObjectName(QStringLiteral("lockedCheck"));
m_locked->setChecked(ToolbarSettings::locked());
auto *form = new QFormLayout();
form->addRow(tr("Taille des icônes :"), m_icon_size);
form->addRow(tr("Boutons :"), m_button_style);
form->addRow(tr("Icon size:"), m_icon_size);
form->addRow(tr("Buttons:"), m_button_style);
form->addRow(m_locked);
vlayout->addLayout(form);
auto *hint = new QLabel(tr("Pour afficher ou masquer une barre d'outils, faites un clic droit sur une barre d'outils."), this);
auto *hint = new QLabel(tr("To show or hide a toolbar, right-click on a toolbar."), this);
hint->setWordWrap(true);
vlayout->addWidget(hint);
vlayout->addStretch();
@@ -79,7 +79,7 @@ void ToolbarsConfigPage::applyConf()
QString ToolbarsConfigPage::title() const
{
return tr("Barres d'outils", "configuration page title");
return tr("Toolbars", "configuration page title");
}
QIcon ToolbarsConfigPage::icon() const
+19 -19
View File
@@ -35,12 +35,12 @@ ContactGroupSelectionDialog::ContactGroupSelectionDialog(
: QDialog(parent)
{
m_used_indices = usedGroupIndices;
setWindowTitle(tr("Sélectionner un groupe de contacts"));
setWindowTitle(tr("Select a group of contacts"));
auto *main_layout = new QVBoxLayout(this);
auto *info_label = new QLabel(
tr("Sélectionnez le groupe de contacts à assigner à cet élément esclave :"));
tr("Select the contact group to assign to this slave element :"));
main_layout->addWidget(info_label);
// Determine max terminal count for dynamic columns
@@ -54,9 +54,9 @@ ContactGroupSelectionDialog::ContactGroupSelectionDialog(
QStringList headers;
headers << tr("#")
<< tr("Type")
<< tr("Sous-type")
<< tr("Subtype")
<< tr("Contacts")
<< tr("Bornes");
<< tr("Terminals");
for (int t = 0; t < max_terminals; ++t) {
headers << tr("T%1").arg(t + 1);
}
@@ -116,18 +116,18 @@ ContactGroupSelectionDialog::ContactGroupSelectionDialog(
if (m_used_indices.contains(row)) {
disabled = true;
reason = tr("(déjà assigné)");
reason = tr("(already assigned)");
} else {
const auto &g = groups.at(row);
if (g.type != slaveData.m_slave_state) {
disabled = true;
reason = tr("(état ne correspond pas)");
reason = tr("(status does not match)");
} else if (g.subtype != slaveData.m_slave_type) {
disabled = true;
reason = tr("(sous-type ne correspond pas)");
reason = tr("(subtype does not match)");
} else if (g.contactCount != slaveData.m_contact_count) {
disabled = true;
reason = tr("(nombre de contacts ne correspond pas)");
reason = tr("(number of contacts does not match)");
}
}
@@ -189,7 +189,7 @@ ContactGroupSelectionDialog::ContactGroupSelectionDialog(
m_ok_button = new QPushButton(tr("OK"), this);
button_layout->addWidget(m_ok_button);
auto *cancel_button = new QPushButton(tr("Annuler"), this);
auto *cancel_button = new QPushButton(tr("Undo"), this);
button_layout->addWidget(cancel_button);
main_layout->addLayout(button_layout);
@@ -221,11 +221,11 @@ int ContactGroupSelectionDialog::selectedIndex() const
QString ContactGroupSelectionDialog::typeToString(ElementData::SlaveState type)
{
switch (type) {
case ElementData::NO: return tr("Normalement ouvert");
case ElementData::NC: return tr("Normalement fermé");
case ElementData::SW: return tr("Inverseur");
case ElementData::Other: return tr("Autre");
default: return tr("Inconnu");
case ElementData::NO: return tr("Switch normally open");
case ElementData::NC: return tr("Switch normally closed");
case ElementData::SW: return tr("switch");
case ElementData::Other: return tr("Other");
default: return tr("Unknown");
}
}
@@ -233,10 +233,10 @@ QString ContactGroupSelectionDialog::subtypeToString(ElementData::SlaveType subt
{
switch (subtype) {
case ElementData::SSimple: return tr("Simple");
case ElementData::Power: return tr("Puissance");
case ElementData::DelayOn: return tr("Temporisé travail");
case ElementData::DelayOff: return tr("Temporisé repos");
case ElementData::delayOnOff: return tr("Temporisé travail & repos");
default: return tr("Inconnu");
case ElementData::Power: return tr("Power switch");
case ElementData::DelayOn: return tr("Switch-on delayed");
case ElementData::DelayOff: return tr("Switch-off delayed");
case ElementData::delayOnOff: return tr("Switch-on and off delayed");
default: return tr("Unknown");
}
}
+3 -3
View File
@@ -40,12 +40,12 @@ CustomElementInfoPartWidget::CustomElementInfoPartWidget(
m_value_edit(new QLineEdit(value, this)),
m_remove_button(new QToolButton(this))
{
m_key_edit->setPlaceholderText(tr("nom_de_la_propriete"));
m_key_edit->setToolTip(tr("Lettres minuscules, chiffres, tiret et underscore uniquement"));
m_key_edit->setPlaceholderText(tr("name_of_the_property"));
m_key_edit->setToolTip(tr("Lower-case letters, numbers, hyphens and underscores only"));
m_value_edit->setClearButtonEnabled(true);
m_remove_button->setIcon(QET::Icons::Remove);
m_remove_button->setToolTip(tr("Supprimer cette propriété"));
m_remove_button->setToolTip(tr("Delete this property"));
m_remove_button->setAutoRaise(true);
auto *layout = new QGridLayout(this);
+1 -1
View File
@@ -27,7 +27,7 @@
CustomizeDialog::CustomizeDialog(QWidget *parent) :
QDialog(parent)
{
setWindowTitle(tr("Personnaliser", "window title"));
setWindowTitle(tr("Customize", "window title"));
m_tabs = new QTabWidget(this);
m_tabs->setObjectName(QStringLiteral("customizeTabs"));
+13 -13
View File
@@ -37,12 +37,12 @@ namespace {
QList<NamedColor> standardColors()
{
return {
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Blanc"), QColor(0xFF, 0xFF, 0xFF)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Blanc cassé"), QColor(0xFD, 0xFB, 0xF5)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Gris clair"), QColor(0xE0, 0xE0, 0xE0)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Gris"), QColor(0x80, 0x80, 0x80)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Gris foncé"), QColor(0x40, 0x40, 0x40)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Noir"), QColor(0x00, 0x00, 0x00)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "White"), QColor(0xFF, 0xFF, 0xFF)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Off-white"), QColor(0xFD, 0xFB, 0xF5)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Light gray"), QColor(0xE0, 0xE0, 0xE0)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Gray"), QColor(0x80, 0x80, 0x80)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Dark gray"), QColor(0x40, 0x40, 0x40)},
{QT_TRANSLATE_NOOP("DiagramBgColorToolButton", "Black"), QColor(0x00, 0x00, 0x00)},
};
}
@@ -59,8 +59,8 @@ DiagramBgColorToolButton::DiagramBgColorToolButton(QETDiagramEditor *editor, QWi
m_editor(editor)
{
setPopupMode(QToolButton::InstantPopup);
setToolTip(tr("Couleur de fond du folio"));
setStatusTip(tr("Choisir la couleur de fond du folio",
setToolTip(tr("Sheet background color"));
setStatusTip(tr("Choose the sheet background color",
"status bar tip"));
//main() already restored the stored choice onto the global
@@ -85,7 +85,7 @@ DiagramBgColorToolButton::DiagramBgColorToolButton(QETDiagramEditor *editor, QWi
m_recent.removeLast();
}
setMenu(new QMenu(tr("Couleur de fond du folio"), this));
setMenu(new QMenu(tr("Sheet background color"), this));
rebuildMenu();
setSwatch(m_current);
}
@@ -98,7 +98,7 @@ void DiagramBgColorToolButton::rebuildMenu()
QMenu *m = menu();
m->clear();
QAction *sys = m->addAction(tr("Couleur système"));
QAction *sys = m->addAction(tr("System color"));
connect(sys, &QAction::triggered, this, &DiagramBgColorToolButton::applySystemColor);
m->addSeparator();
@@ -113,7 +113,7 @@ void DiagramBgColorToolButton::rebuildMenu()
if (!m_recent.isEmpty())
{
m->addSeparator();
QAction *title = m->addAction(tr("Récemment utilisées"));
QAction *title = m->addAction(tr("Recently used"));
title->setEnabled(false);
for (const QColor &c : std::as_const(m_recent))
{
@@ -123,7 +123,7 @@ void DiagramBgColorToolButton::rebuildMenu()
}
m->addSeparator();
QAction *other = m->addAction(tr("Autre couleur…"));
QAction *other = m->addAction(tr("Other color…"));
connect(other, &QAction::triggered, this, &DiagramBgColorToolButton::chooseOtherColor);
}
@@ -186,7 +186,7 @@ void DiagramBgColorToolButton::applySystemColor()
void DiagramBgColorToolButton::chooseOtherColor()
{
const QColor c = QColorDialog::getColor(m_current, this,
tr("Choisir une couleur de fond"),
tr("Choose a background color"),
QColorDialog::DontUseNativeDialog);
if (c.isValid()) {
applyColor(c);
+1 -2
View File
@@ -153,8 +153,7 @@ int DiagramContextWidget::highlightNonAcceptableKeys()
void DiagramContextWidget::refreshFormatLabel()
{
QString format_text = tr(
"Les noms ne peuvent contenir que des lettres minuscules, des "
"chiffres et des tirets."
"Names may only contain lowercase letters, digits and dashes."
);
if (highlightNonAcceptableKeys()) {
+3 -3
View File
@@ -17,7 +17,7 @@
<item>
<widget class="QLabel" name="m_label">
<property name="text">
<string>Les noms ne peuvent contenir que des lettres minuscules, des chiffres et des tirets.</string>
<string>Names may only contain lowercase letters, digits and dashes.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -47,12 +47,12 @@
<row/>
<column>
<property name="text">
<string>Nom</string>
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Valeur</string>
<string>Value</string>
</property>
</column>
</widget>
+1 -1
View File
@@ -17,7 +17,7 @@
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Poignées :</string>
<string>Handles :</string>
</property>
</widget>
</item>
+1 -1
View File
@@ -49,7 +49,7 @@ DiagramPropertiesDialog::DiagramPropertiesDialog(Diagram *diagram, QWidget *pare
setWindowFlags(Qt::Sheet);
#endif
setWindowTitle(tr("Propriétés du folio", "window title"));
setWindowTitle(tr("Sheet properties", "window title"));
//Border widget
BorderPropertiesWidget *border_infos = new BorderPropertiesWidget(border, this);
+1 -1
View File
@@ -72,7 +72,7 @@ void DialogWaiting::setProgressReset()
*/
void DialogWaiting::setProgressBarRange(int min, int max){
ui->progressBar->setRange(min,max);
ui->progressBar->setFormat(QObject::tr("%p% effectué (%v sur %m)"));
ui->progressBar->setFormat(QObject::tr("%p% done (%v on %m)"));
}
/**
+2 -2
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Merci de patienter</string>
<string>Thank you for your patience</string>
</property>
<property name="windowIcon">
<iconset>
@@ -23,7 +23,7 @@
<item>
<widget class="QLabel" name="labelTitle">
<property name="text">
<string>Titre</string>
<string>Title</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
+8 -8
View File
@@ -35,23 +35,23 @@ namespace {
DuplicateOffsetDialog::DuplicateOffsetDialog(QWidget *parent) :
QDialog(parent)
{
setWindowTitle(tr("Dupliquer"));
setWindowTitle(tr("Duplicate"));
auto *form = new QFormLayout;
m_spacing = new QSpinBox(this);
m_spacing->setRange(1, 1000);
m_spacing->setSuffix(tr(" pas de grille"));
form->addRow(tr("Espacement :"), m_spacing);
m_spacing->setSuffix(tr(" no grid"));
form->addRow(tr("Spacing:"), m_spacing);
m_direction = new QComboBox(this);
// Order matches the Direction enum, so currentIndex() can be used
// directly wherever Direction is needed.
m_direction->addItem(tr("Haut"));
m_direction->addItem(tr("Bas"));
m_direction->addItem(tr("Gauche"));
m_direction->addItem(tr("Droite"));
form->addRow(tr("Direction :"), m_direction);
m_direction->addItem(tr("Top"));
m_direction->addItem(tr("Bottom"));
m_direction->addItem(tr("Left"));
m_direction->addItem(tr("Right"));
form->addRow(tr("Direction:"), m_direction);
const QPoint saved = savedStepOffset();
// The saved value is a signed (dx, dy) pair, not itself a
+4 -4
View File
@@ -126,7 +126,7 @@ void DynamicElementTextItemEditor::apply()
else
{
QUndoStack &us = m_element->diagram()->undoStack();
us.beginMacro(tr("Modifier des textes d'élément"));
us.beginMacro(tr("Edit an element texts"));
for (QUndoCommand *quc : undo_list)
us.push(quc);
us.endMacro();
@@ -168,7 +168,7 @@ void DynamicElementTextItemEditor::setCurrentGroup(ElementTextItemGroup *group)
QUndoCommand *DynamicElementTextItemEditor::associatedUndo() const
{
QUndoCommand *parent_undo = new QUndoCommand(tr("Modifier un texte d'élément"));
QUndoCommand *parent_undo = new QUndoCommand(tr("Edit element text"));
for (DynamicElementTextItem *deti : m_element.data()->dynamicTextItems())
m_model->undoForEditedText(deti, parent_undo);
@@ -178,7 +178,7 @@ QUndoCommand *DynamicElementTextItemEditor::associatedUndo() const
if(parent_undo->childCount() >= 1)
{
if(parent_undo->childCount() >= 2)
parent_undo->setText(tr("Modifier %1 textes d'élément").arg(QString::number(parent_undo->childCount())));
parent_undo->setText(tr("Edit %1 telement text").arg(QString::number(parent_undo->childCount())));
return parent_undo;
}
else
@@ -240,7 +240,7 @@ void DynamicElementTextItemEditor::on_m_remove_selection_clicked()
*/
void DynamicElementTextItemEditor::on_m_add_group_clicked()
{
QString name = QInputDialog::getText(this, tr("Nom du groupe"), tr("Entrer le nom du nouveau groupe"));
QString name = QInputDialog::getText(this, tr("Name of the group"), tr("Enter the name of the new group"));
if(name.isEmpty())
return;
+1 -1
View File
@@ -40,7 +40,7 @@ class DynamicElementTextItemEditor : public AbstractElementPropertiesEditorWidge
~DynamicElementTextItemEditor() override;
void setElement(Element *element) override;
QString title() const override {return tr("Textes");}
QString title() const override {return tr("texts");}
bool setLiveEdit(bool live_edit) override;
void apply() override;
void setCurrentText(DynamicElementTextItem *text);
+5 -5
View File
@@ -19,7 +19,7 @@
<item>
<widget class="QToolButton" name="m_export_pb">
<property name="toolTip">
<string>Exporter l'actuelle configuration des textes</string>
<string>Export the current text configuration</string>
</property>
<property name="text">
<string>...</string>
@@ -32,7 +32,7 @@
<item>
<widget class="QToolButton" name="m_import_pb">
<property name="toolTip">
<string>Importer une configuration de texte</string>
<string>Import a text configuration</string>
</property>
<property name="text">
<string>...</string>
@@ -58,7 +58,7 @@
<item>
<widget class="QToolButton" name="m_add_text">
<property name="toolTip">
<string>Ajouter un texte</string>
<string>Add text</string>
</property>
<property name="text">
<string>...</string>
@@ -71,7 +71,7 @@
<item>
<widget class="QToolButton" name="m_add_group">
<property name="toolTip">
<string>Ajouter un groupe de textes</string>
<string>Add a group of texts</string>
</property>
<property name="text">
<string>...</string>
@@ -84,7 +84,7 @@
<item>
<widget class="QToolButton" name="m_remove_selection">
<property name="toolTip">
<string>Supprimer la sélection</string>
<string>Delete selection</string>
</property>
<property name="text">
<string>...</string>
+59 -59
View File
@@ -67,8 +67,8 @@ DynamicElementTextModel::DynamicElementTextModel(Element *element, QObject *pare
m_element(element)
{
setColumnCount(2);
setHeaderData(0, Qt::Horizontal, tr("Propriété"), Qt::DisplayRole);
setHeaderData(1, Qt::Horizontal, tr("Valeur"), Qt::DisplayRole);
setHeaderData(0, Qt::Horizontal, tr("Property"), Qt::DisplayRole);
setHeaderData(1, Qt::Horizontal, tr("Value"), Qt::DisplayRole);
connect(this, &DynamicElementTextModel::itemChanged, this, &DynamicElementTextModel::itemDataChanged);
@@ -142,15 +142,15 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
//Source of text
QStandardItem *src = new QStandardItem(tr("Source du texte"));
QStandardItem *src = new QStandardItem(tr("Source of text"));
src->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QString title;
if (deti->textFrom() == DynamicElementTextItem::UserText)
title = tr("Texte utilisateur");
title = tr("User text");
else if (deti->textFrom() == DynamicElementTextItem::ElementInfo)
title = tr("Information de l'élément");
else title = tr("Texte composé");
title = tr("Element information");
else title = tr("Composite text");
QStandardItem *srca = new QStandardItem(title);
srca->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
@@ -161,7 +161,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//User text
QStandardItem *usr = new QStandardItem(tr("Texte"));
QStandardItem *usr = new QStandardItem(tr("Text"));
usr->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *usra = new QStandardItem(deti->toPlainText());
@@ -195,14 +195,14 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Composite text
QStandardItem *composite = new QStandardItem(tr("Texte composé"));
QStandardItem *composite = new QStandardItem(tr("Composite text"));
composite->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
DiagramContext dc;
if(deti->elementUseForInfo())
dc = deti->elementUseForInfo()->elementInformations();
QStandardItem *compositea = new QStandardItem(deti->compositeText().isEmpty()
? tr("Mon texte composé")
? tr("My composite text")
: autonum::AssignVariables::replaceVariable(
deti->compositeText(), dc));
compositea->setFlags(Qt::ItemIsSelectable
@@ -219,7 +219,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Size
QStandardItem *size = new QStandardItem(tr("Taille"));
QStandardItem *size = new QStandardItem(tr("Size"));
size->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *siza = new QStandardItem();
@@ -234,7 +234,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Font
QStandardItem *font = new QStandardItem(tr("Police"));
QStandardItem *font = new QStandardItem(tr("Font"));
font->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *fonta = new QStandardItem();
@@ -248,7 +248,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Color
QStandardItem *color = new QStandardItem(tr("Couleur"));
QStandardItem *color = new QStandardItem(tr("Color"));
color->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
// Shown as a swatch next to the value, not as the text color: black
@@ -266,7 +266,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Frame
QStandardItem *frame = new QStandardItem(tr("Cadre"));
QStandardItem *frame = new QStandardItem(tr("Frame"));
frame->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *frame_a = new QStandardItem;
@@ -282,7 +282,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Width
QStandardItem *width = new QStandardItem(tr("Largeur"));
QStandardItem *width = new QStandardItem(tr("Width"));
width->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *width_a = new QStandardItem;
@@ -345,7 +345,7 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//keep visual rotation
auto keep_rotation = new QStandardItem(tr("Conserver la rotation visuel"));
auto keep_rotation = new QStandardItem(tr("Maintain visual rotation"));
keep_rotation->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
auto keep_rotation_a = new QStandardItem;
@@ -359,10 +359,10 @@ QList<QStandardItem *> DynamicElementTextModel::itemsForText(
qsi->appendRow(qsi_list);
//Alignment
QStandardItem *alignment = new QStandardItem(tr("Alignement"));
QStandardItem *alignment = new QStandardItem(tr("Alignment"));
alignment->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QStandardItem *alignmenta = new QStandardItem(tr("Éditer"));
QStandardItem *alignmenta = new QStandardItem(tr("Edit"));
alignmenta->setFlags(Qt::ItemIsSelectable
| Qt::ItemIsEnabled
| Qt::ItemIsEditable);
@@ -523,7 +523,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
if(parent_undo)
undo = parent_undo;
else
undo = new QUndoCommand(tr("Éditer un texte d'élément"));
undo = new QUndoCommand(tr("Edit an element text"));
if (!m_texts_list.contains(deti))
return undo;
@@ -531,26 +531,26 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
QStandardItem *text_qsi = m_texts_list.value(deti);
QString from = text_qsi->child(src_txt_row,1)->data(Qt::DisplayRole).toString();
if ((from == tr("Texte utilisateur")) && (deti->textFrom() != DynamicElementTextItem::UserText))
if ((from == tr("User text")) && (deti->textFrom() != DynamicElementTextItem::UserText))
new QPropertyUndoCommand(deti, "textFrom", QVariant(deti->textFrom()), QVariant(DynamicElementTextItem::UserText), undo);
else if ((from == tr("Information de l'élément")) && (deti->textFrom() != DynamicElementTextItem::ElementInfo))
else if ((from == tr("Element information")) && (deti->textFrom() != DynamicElementTextItem::ElementInfo))
new QPropertyUndoCommand(deti, "textFrom", QVariant(deti->textFrom()), QVariant(DynamicElementTextItem::ElementInfo), undo);
else if ((from == tr("Texte composé")) && (deti->textFrom() != DynamicElementTextItem::CompositeText))
else if ((from == tr("Composite text")) && (deti->textFrom() != DynamicElementTextItem::CompositeText))
new QPropertyUndoCommand(deti, "textFrom", QVariant(deti->textFrom()), QVariant(DynamicElementTextItem::CompositeText), undo);
if(from == tr("Texte utilisateur"))
if(from == tr("User text"))
{
QString text = text_qsi->child(usr_txt_row,1)->data(Qt::DisplayRole).toString();
if (text != deti->text())
new QPropertyUndoCommand(deti, "text", QVariant(deti->text()), QVariant(text), undo);
}
else if (from == tr("Information de l'élément"))
else if (from == tr("Element information"))
{
QString info_name = text_qsi->child(info_txt_row,1)->data(Qt::UserRole+2).toString();
if(info_name != deti->infoName())
new QPropertyUndoCommand(deti, "infoName", QVariant(deti->infoName()), QVariant(info_name), undo);
}
else if (from == tr("Texte composé"))
else if (from == tr("Composite text"))
{
QString composite_text = text_qsi->child(compo_txt_row,1)->data(Qt::UserRole+2).toString();
if(composite_text != deti->compositeText())
@@ -563,28 +563,28 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
QFont font = deti->font();
font.setPointSize(fs);
QPropertyUndoCommand *quc = new QPropertyUndoCommand(deti, "font", QVariant(deti->font()), QVariant(font), undo);
quc->setText(tr("Modifier la taille d'un texte d'élément"));
quc->setText(tr("Change the size of an element text"));
}
QFont font = text_qsi->child(font_txt_row, 1)->data(Qt::UserRole+2).value<QFont>();
if (font != deti->font())
{
QPropertyUndoCommand *quc = new QPropertyUndoCommand(deti, "font", QVariant(deti->font()), QVariant(font), undo);
quc->setText(tr("Modifier la police d'un texte d'élément"));
quc->setText(tr("Change the font of an element text"));
}
QColor color = text_qsi->child(color_txt_row,1)->data(Qt::EditRole).value<QColor>();
if(color != deti->color())
{
QUndoCommand *quc = new QPropertyUndoCommand(deti, "color", QVariant(deti->color()), QVariant(color), undo);
quc->setText(tr("Modifier la couleur d'un texte d'élément"));
quc->setText(tr("Change the color of an element text"));
}
bool frame = text_qsi->child(frame_txt_row,1)->checkState() == Qt::Checked? true : false;
if(frame != deti->frame())
{
QUndoCommand *quc = new QPropertyUndoCommand(deti, "frame", QVariant(deti->frame()), QVariant(frame), undo);
quc->setText(tr("Modifier le cadre d'un texte d'élément"));
quc->setText(tr("Modify the frame of an element text"));
}
qreal text_width = text_qsi->child(width_txt_row, 1)->data(Qt::EditRole).toDouble();
@@ -592,7 +592,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
{
QPropertyUndoCommand *quc = new QPropertyUndoCommand(deti, "textWidth", QVariant(deti->textWidth()), QVariant(text_width), undo);
quc->setAnimated(true, false);
quc->setText(tr("Modifier la largeur d'un texte d'élément"));
quc->setText(tr("Change the width of an element text"));
}
//When text is in a group, they're isn't item for position of the text
@@ -604,7 +604,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
{
QPropertyUndoCommand *quc = new QPropertyUndoCommand(deti, "anchorPos", QVariant(deti->anchorPos()), QVariant(p), undo);
quc->setAnimated(true, false);
quc->setText(tr("Déplacer un texte d'élément"));
quc->setText(tr("Move an item text"));
}
}
//When text is in a group, they're isn't item for the rotation of the text
@@ -616,7 +616,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
{
QPropertyUndoCommand *quc = new QPropertyUndoCommand(deti, "rotation", QVariant(deti->rotation()), QVariant(rot), undo);
quc->setAnimated(true, false);
quc->setText(tr("Pivoter un texte d'élément"));
quc->setText(tr("Rotate element text"));
}
}
@@ -626,7 +626,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
if (keep_rot != deti->keepVisualRotation())
{
auto qpuc = new QPropertyUndoCommand(deti, "keepVisualRotation", QVariant(deti->keepVisualRotation()), QVariant(keep_rot), undo);
qpuc->setText(tr("Modifier le maintient de la rotation d'un texte d'élément"));
qpuc->setText(tr("Change the way item text stays rotated"));
}
}
@@ -637,7 +637,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedText(
if (alignment != deti->alignment())
{
QPropertyUndoCommand *quc = new QPropertyUndoCommand(deti, "alignmentAtAnchor", QVariant(deti->alignment()), QVariant(alignment), undo);
quc->setText(tr("Modifier l'alignement d'un texte d'élément"));
quc->setText(tr("Modify the alignment of an element text"));
}
}
@@ -661,7 +661,7 @@ QUndoCommand *DynamicElementTextModel::undoForEditedGroup(
if(parent_undo)
undo = parent_undo;
else
undo = new QUndoCommand(tr("Éditer un groupe de textes"));
undo = new QUndoCommand(tr("Edit a group of texts"));
if (!m_groups_list.contains(group))
return undo;
@@ -669,11 +669,11 @@ QUndoCommand *DynamicElementTextModel::undoForEditedGroup(
QStandardItem *group_qsi = m_groups_list.value(group);
QString alignment = group_qsi->child(align_grp_row,1)->data(Qt::DisplayRole).toString();
if((alignment == tr("Gauche")) && (group->alignment() != Qt::AlignLeft))
if((alignment == tr("Left")) && (group->alignment() != Qt::AlignLeft))
new QPropertyUndoCommand(group, "alignment", QVariant(group->alignment()), QVariant(Qt::AlignLeft), undo);
else if((alignment == tr("Droite")) && (group->alignment() != Qt::AlignRight))
else if((alignment == tr("Right")) && (group->alignment() != Qt::AlignRight))
new QPropertyUndoCommand(group, "alignment", QVariant(group->alignment()), QVariant(Qt::AlignRight), undo);
else if((alignment == tr("Centre")) && (group->alignment() != Qt::AlignVCenter))
else if((alignment == tr("Middle")) && (group->alignment() != Qt::AlignVCenter))
new QPropertyUndoCommand(group, "alignment", QVariant(group->alignment()), QVariant(Qt::AlignVCenter), undo);
@@ -742,14 +742,14 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
m_groups_list.insert(group, grp);
//Alignment
QStandardItem *alignment = new QStandardItem(tr("Alignement"));
QStandardItem *alignment = new QStandardItem(tr("Alignment"));
alignment->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
QString text;
switch (group->alignment()) {
case Qt::AlignLeft: text = tr("Gauche"); break;
case Qt::AlignRight: text = tr("Droite"); break;
case Qt::AlignVCenter: text = tr("Centre"); break;
case Qt::AlignLeft: text = tr("Left"); break;
case Qt::AlignRight: text = tr("Right"); break;
case Qt::AlignVCenter: text = tr("Middle"); break;
default: break;}
QStandardItem *alignment_a = new QStandardItem(text);
@@ -807,7 +807,7 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
grp->appendRow(qsi_list);
//Vertical adjustment
QStandardItem *v_adj = new QStandardItem(tr("Ajustement vertical"));
QStandardItem *v_adj = new QStandardItem(tr("Vertical adjustment"));
v_adj->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
QStandardItem *v_adj_a = new QStandardItem;
@@ -821,7 +821,7 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
grp->appendRow(qsi_list);
//Frame
QStandardItem *frame_ = new QStandardItem(tr("Cadre"));
QStandardItem *frame_ = new QStandardItem(tr("Frame"));
frame_->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
QStandardItem *frame_a = new QStandardItem;
@@ -837,7 +837,7 @@ void DynamicElementTextModel::addGroup(ElementTextItemGroup *group)
//Hold to the bottom of the page
QStandardItem *hold_bottom = new QStandardItem(tr("Maintenir en bas de page"));
QStandardItem *hold_bottom = new QStandardItem(tr("Keep at the bottom of the page"));
hold_bottom->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
QStandardItem *hold_bottom_a = new QStandardItem();
@@ -1143,7 +1143,7 @@ bool DynamicElementTextModel::dropMimeData(const QMimeData *data,
if(group && deti)
{
QUndoStack &stack = m_element.data()->diagram()->undoStack();
stack.beginMacro(tr("Déplacer un texte dans un autre groupe"));
stack.beginMacro(tr("Move a text to another group"));
stack.push(new RemoveTextFromGroupCommand(deti, grp));
stack.push(new AddTextToGroupCommand(deti, group));
stack.endMacro();
@@ -1315,12 +1315,12 @@ void DynamicElementTextModel::itemDataChanged(QStandardItem *qsi)
{
QString from = qsi->data(Qt::DisplayRole).toString();
if (from == tr("Texte utilisateur"))
if (from == tr("User text"))
{
enableSourceText(deti, DynamicElementTextItem::UserText);
text_qsi->setData(text_qsi->child(usr_txt_row,1)->data(Qt::DisplayRole).toString());
}
else if (from == tr("Information de l'élément"))
else if (from == tr("Element information"))
{
enableSourceText(deti, DynamicElementTextItem::ElementInfo);
QString info = text_qsi->child(info_txt_row,1)->data(Qt::UserRole+2).toString();
@@ -1457,9 +1457,9 @@ void DynamicElementTextModel::updateDataFromText(DynamicElementTextItem *deti,
{
switch (deti->textFrom())
{
case DynamicElementTextItem::UserText: qsi->child(0,1)->setData(tr("Texte utilisateur"), Qt::DisplayRole); break;
case DynamicElementTextItem::ElementInfo : qsi->child(0,1)->setData(tr("Information de l'élément"), Qt::DisplayRole); break;
case DynamicElementTextItem::CompositeText : qsi->child(0,1)->setData(tr("Texte composé"), Qt::DisplayRole); break;
case DynamicElementTextItem::UserText: qsi->child(0,1)->setData(tr("User text"), Qt::DisplayRole); break;
case DynamicElementTextItem::ElementInfo : qsi->child(0,1)->setData(tr("Element information"), Qt::DisplayRole); break;
case DynamicElementTextItem::CompositeText : qsi->child(0,1)->setData(tr("Composite text"), Qt::DisplayRole); break;
}
enableSourceText(deti, deti->textFrom());
qsi->setData(deti->toPlainText(), Qt::DisplayRole);
@@ -1559,9 +1559,9 @@ void DynamicElementTextModel::updateDataFromGroup(
{
switch (group->alignment())
{
case Qt::AlignLeft: qsi->child(align_grp_row,1)->setData(tr("Gauche"), Qt::DisplayRole); break;
case Qt::AlignRight : qsi->child(align_grp_row,1)->setData(tr("Droite"), Qt::DisplayRole); break;
case Qt::AlignVCenter : qsi->child(align_grp_row,1)->setData(tr("Centre"), Qt::DisplayRole); break;
case Qt::AlignLeft: qsi->child(align_grp_row,1)->setData(tr("Left"), Qt::DisplayRole); break;
case Qt::AlignRight : qsi->child(align_grp_row,1)->setData(tr("Right"), Qt::DisplayRole); break;
case Qt::AlignVCenter : qsi->child(align_grp_row,1)->setData(tr("Middle"), Qt::DisplayRole); break;
default: qsi->child(0,1)->setData("", Qt::DisplayRole); break;
}
break;
@@ -1626,9 +1626,9 @@ QWidget *DynamicTextItemDelegate::createEditor(
{
QComboBox *qcb = new QComboBox(parent);
qcb->setObjectName("text_from");
qcb->addItem(tr("Texte utilisateur"));
qcb->addItem(tr("Information de l'élément"));
qcb->addItem(tr("Texte composé"));
qcb->addItem(tr("User text"));
qcb->addItem(tr("Element information"));
qcb->addItem(tr("Composite text"));
return qcb;
}
case DynamicElementTextModel::infoText:
@@ -1774,9 +1774,9 @@ QWidget *DynamicTextItemDelegate::createEditor(
QComboBox *qcb = new QComboBox(parent);
qcb->setFrame(false);
qcb->setObjectName("group_alignment");
qcb->addItem(tr("Gauche"));
qcb->addItem(tr("Centre"));
qcb->addItem(tr("Droite"));
qcb->addItem(tr("Left"));
qcb->addItem(tr("Middle"));
qcb->addItem(tr("Right"));
return qcb;
}
case DynamicElementTextModel::grpPos:
+2 -2
View File
@@ -60,8 +60,8 @@ ElementInfoPartWidget::ElementInfoPartWidget(
{
auto *validator = new QETInformation::NumericInfoValidator(ui->line_edit);
ui->line_edit->setValidator(validator);
ui->line_edit->setPlaceholderText(tr("ex. 80.5"));
ui->line_edit->setToolTip(tr("Nombre décimal avec un point comme séparateur (ex. 80.5)"));
ui->line_edit->setPlaceholderText(tr("e.g. 80.5"));
ui->line_edit->setToolTip(tr("Decimal number with a dot as separator (e.g. 80.5)"));
}
connect(ui->line_edit, &QLineEdit::textEdited,
+2 -2
View File
@@ -58,7 +58,7 @@
<item row="2" column="1">
<widget class="QCheckBox" name="m_erase_text">
<property name="toolTip">
<string>Supprimer ce texte</string>
<string>Delete this text</string>
</property>
<property name="text">
<string/>
@@ -68,7 +68,7 @@
<item row="2" column="2">
<widget class="QToolButton" name="m_material_btn">
<property name="toolTip">
<string extracomment="tooltip of the button opening the material file; it fills the fields of this block from a catalogue entry">Choisir un article dans la liste de matériaux</string>
<string extracomment="tooltip of the button opening the material file; it fills the fields of this block from a catalogue entry">Choose an item from the materials list</string>
</property>
<property name="text">
<string notr="true">…</string>
+32 -28
View File
@@ -149,7 +149,7 @@ QUndoCommand* ElementInfoWidget::associatedUndo() const
}
auto *macro = new QUndoCommand(
QObject::tr("Modifier les informations de l'élément : %1")
QObject::tr("Edit information of the element : %1")
.arg(m_element->name()));
DiagramContext base_info = old_info;
bool state_frozen = was_frozen;
@@ -312,18 +312,18 @@ void ElementInfoWidget::buildInterface()
setupNumberRow();
setupFreezeRow();
m_add_custom_property_btn = new QPushButton(tr("Ajouter une propriété personnalisée"), this);
m_add_custom_property_btn = new QPushButton(tr("Add a custom property"), this);
connect(m_add_custom_property_btn, &QPushButton::clicked, this, [this]() { addCustomProperty(); });
ui->scroll_vlayout->addWidget(m_add_custom_property_btn);
ui->scroll_vlayout->addStretch();
// Existing potential isolating checkbox
m_potential_isolating_cb = new QCheckBox(tr("Séparation de potentiel"), this);
m_potential_isolating_cb = new QCheckBox(tr("Potential separation"), this);
m_potential_isolating_cb->setStyleSheet(QStringLiteral("margin: 5px; font-weight: bold;"));
// English: Initialize and style the BOM exclusion checkbox
m_exclude_from_bom_cb = new QCheckBox(tr("Exclure de la nomenclature"), this);
m_exclude_from_bom_cb = new QCheckBox(tr("Exclude from the bill of materials"), this);
m_exclude_from_bom_cb->setStyleSheet(QStringLiteral("margin: 5px; font-weight: bold;"));
if (QVBoxLayout *mainLayout = qobject_cast<QVBoxLayout*>(this->layout())) {
@@ -490,9 +490,11 @@ void ElementInfoWidget::materialFromFile(int block)
{
const auto answer = QET::QetMessageBox::question(
this,
tr("Liste de matériaux absente"),
tr("Aucun fichier de liste de matériaux n'existe à cet emplacement :\n"
"%1\n\nLe créer ?", "message asking to create the material file").arg(path),
tr("No materials list"),
tr("There is no materials list file at this location:\n"
"%1\n"
"\n"
"Create it?", "message asking to create the material file").arg(path),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::Yes);
@@ -504,8 +506,8 @@ void ElementInfoWidget::materialFromFile(int block)
if (!MaterialList::createFile(path, &error))
{
QET::QetMessageBox::critical(this,
tr("Création impossible"),
tr("Impossible de créer le fichier :\n%1\n%2")
tr("Cannot create"),
tr("Cannot create the file:\n%1\n%2")
.arg(path, error));
return;
}
@@ -779,7 +781,7 @@ void ElementInfoWidget::setupSchemeRow()
m_scheme_row = new QWidget(this);
auto *layout = new QHBoxLayout(m_scheme_row);
layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(new QLabel(tr("Numérotation automatique"), m_scheme_row));
layout->addWidget(new QLabel(tr("Automatic numbering"), m_scheme_row));
m_scheme_cb = new QComboBox(m_scheme_row);
m_scheme_cb->setObjectName(QStringLiteral("m_scheme_cb"));
@@ -787,7 +789,7 @@ void ElementInfoWidget::setupSchemeRow()
layout->addWidget(m_scheme_cb, 1);
auto *open = new QPushButton(tr("…"), m_scheme_row);
open->setToolTip(tr("Ouvrir les numérotations d'éléments du projet"));
open->setToolTip(tr("Open the project's element numberings"));
open->setMaximumWidth(32);
layout->addWidget(open);
@@ -815,9 +817,9 @@ void ElementInfoWidget::setupFreezeRow()
if (!label || !m_element) {
return;
}
m_freeze_cb = new QCheckBox(tr("Figer le nom"), this);
m_freeze_cb->setToolTip(tr("Un nom figé n'est pas changé par la numérotation automatique, "
"et son numéro n'est pas donné à un autre élément."));
m_freeze_cb = new QCheckBox(tr("Freeze name"), this);
m_freeze_cb->setToolTip(tr("A frozen name is not changed by automatic numbering, and its "
"number is not given to another element."));
ui->scroll_vlayout->insertWidget(ui->scroll_vlayout->indexOf(label) + 1, m_freeze_cb);
connect(m_freeze_cb, &QCheckBox::toggled, this, &ElementInfoWidget::updateNumberRow);
}
@@ -852,12 +854,12 @@ void ElementInfoWidget::setupNumberRow()
m_number_row = new QWidget(this);
auto *layout = new QHBoxLayout(m_number_row);
layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(new QLabel(tr("Numéro"), m_number_row));
layout->addWidget(new QLabel(tr("Number"), m_number_row));
m_number_cb = new QComboBox(m_number_row);
m_number_cb->setObjectName(QStringLiteral("m_number_cb"));
m_number_cb->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
m_number_cb->setToolTip(tr("Seuls les numéros libres sont proposés : un élément qui doit garder son "
"numéro réel peut le retrouver si personne ne l'a."));
m_number_cb->setToolTip(tr("Only free numbers are offered: an element that must keep its real number "
"can get it back if nobody else has it."));
layout->addWidget(m_number_cb, 1);
ui->scroll_vlayout->insertWidget(ui->scroll_vlayout->indexOf(m_scheme_row) + 1, m_number_row);
m_number_row->hide();
@@ -890,9 +892,9 @@ void ElementInfoWidget::refreshNumberRow()
}
if (const auto own = ElementAutoNumSchemeCommand::numberOf(support, m_element)) {
m_number_current = *own;
m_number_cb->addItem(tr("%1 (actuel)").arg(*own), *own);
m_number_cb->addItem(tr("%1 (current)").arg(*own), *own);
} else {
m_number_cb->addItem(tr("— (numéro inconnu)"), 0);
m_number_cb->addItem(tr("— (unknown number)"), 0);
}
for (int n : ElementAutoNumSchemeCommand::freeNumbers(project, title, m_element)) {
if (n == m_number_current) continue;
@@ -918,10 +920,10 @@ void ElementInfoWidget::updateNumberRow()
const bool frozen = m_freeze_cb ? m_freeze_cb->isChecked() : m_element->isFreezeLabel();
m_number_cb->setEnabled(keeps && !frozen);
m_number_cb->setToolTip(
frozen ? tr("Le nom est figé : dégelez-le pour changer son numéro.")
: !keeps ? tr("Le numéro se choisit quand l'élément garde sa numérotation.")
: tr("Seuls les numéros libres sont proposés : un élément qui doit garder son "
"numéro réel peut le retrouver si personne ne l'a."));
frozen ? tr("The name is frozen: unfreeze it to change its number.")
: !keeps ? tr("The number can be chosen when the element keeps its numbering.")
: tr("Only free numbers are offered: an element that must keep its real number "
"can get it back if nobody else has it."));
}
/**
@@ -984,7 +986,7 @@ void ElementInfoWidget::refreshSchemeRow()
const QSignalBlocker blocker(m_scheme_cb);
m_scheme_cb->clear();
m_scheme_cb->addItem(tr("Aucune (nom saisi à la main)"), QString());
m_scheme_cb->addItem(tr("None (name entered by hand)"), QString());
QStringList titles(project->elementAutoNum().keys());
titles.sort(Qt::CaseInsensitive);
@@ -1003,7 +1005,7 @@ void ElementInfoWidget::refreshSchemeRow()
.value(QETInformation::ELMT_FORMULA).toString();
if (!formula.isEmpty()) {
//Same data as "none" would clash: the entry is for display only
m_scheme_cb->insertItem(1, tr("Formule propre : %1").arg(formula), QStringLiteral("\x01"));
m_scheme_cb->insertItem(1, tr("Custom formula: %1").arg(formula), QStringLiteral("\x01"));
m_scheme_cb->setCurrentIndex(1);
}
m_scheme_index = m_scheme_cb->currentIndex();
@@ -1043,9 +1045,11 @@ void ElementInfoWidget::schemeChosen()
{
const auto answer = QET::QetMessageBox::question(
this,
tr("Nom figé"),
tr("Le nom de cet élément est figé.\n"
"Changer sa numérotation le remplacera ou l'effacera.\n\nContinuer ?"),
tr("Frozen name"),
tr("This element's name is frozen.\n"
"Changing its numbering will replace or erase it.\n"
"\n"
"Continue?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);
if (answer != QMessageBox::Yes) {
+1 -1
View File
@@ -54,7 +54,7 @@ class ElementInfoWidget : public AbstractElementPropertiesEditorWidget
void setElement(Element *element) override;
void apply() override;
QUndoCommand *associatedUndo () const override;
QString title() const override {return tr("Informations");}
QString title() const override {return tr("Information");}
bool setLiveEdit(bool live_edit) override;
void updateUi() override;
DiagramContext currentInfo() const;
+1 -1
View File
@@ -32,7 +32,7 @@
<item>
<widget class="QCheckBox" name="m_auto_num_locked_cb">
<property name="text">
<string>Exclure de la numérotation auto</string>
<string>Exclude from automatic numbering</string>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
+16 -16
View File
@@ -357,7 +357,7 @@ void ElementPropertiesWidget::addGeneralWidget()
delete m_general_widget;
}
m_general_widget = generalWidget();
m_tab -> addTab(m_general_widget, tr("Général"));
m_tab -> addTab(m_general_widget, tr("General"));
m_tab->setCurrentIndex(index);
}
@@ -367,33 +367,33 @@ void ElementPropertiesWidget::addGeneralWidget()
*/
QWidget *ElementPropertiesWidget::generalWidget()
{
QString description_string(tr("Élément\n"));
QString description_string(tr("Element\n"));
// some element characteristic
description_string += QString(tr("Nom : %1\n")).arg(m_element -> name());
description_string += QString(tr("Name : %1\n")).arg(m_element -> name());
int folio_index = m_diagram -> folioIndex();
if (folio_index != -1) {
description_string += QString(tr("Folio : %1\n")).arg(folio_index + 1);
description_string += QString(tr("Sheet : %1\n")).arg(folio_index + 1);
}
description_string += QString(tr("Type : %1\n")).arg(m_element->elementData().typeToString());
description_string += QString(tr("Sous-type : %1\n")).arg(m_element ->kindInformations()["type"].toString());
description_string += QString(tr("Type: %1\n")).arg(m_element->elementData().typeToString());
description_string += QString(tr("Sub-type : %1\n")).arg(m_element ->kindInformations()["type"].toString());
description_string += QString(tr("Position : %1\n")).arg(m_diagram -> convertPosition(m_element -> scenePos()).toString());
description_string += QString(tr("Rotation : %1°\n")).arg(m_element.data()->rotation());
description_string += QString(tr("Dimensions : %1*%2\n")).arg(m_element -> size().width()).arg(m_element -> size().height());
description_string += QString(tr("Bornes : %1\n")).arg(m_element -> terminals().count());
description_string += QString(tr("Terminals : %1\n")).arg(m_element -> terminals().count());
if (m_element->linkType() == Element::Master)
{
//The declared limit is optional: -1 means the element sets no
//limit at all, which is worth saying rather than printing "-1".
const int max_slaves = m_element->elementData().m_max_slaves;
description_string += max_slaves == -1
? QString(tr("Nombre maximum de contacts esclaves définis : non défini\n"))
: QString(tr("Nombre maximum de contacts esclaves définis : %1\n")).arg(max_slaves);
? QString(tr("Maximum number of slave contacts defined: not defined\n"))
: QString(tr("Maximum number of slave contacts defined: %1\n")).arg(max_slaves);
//Left as a count of linked elements: the line above is a number
//of slots, and a slave fills one slot however many contacts it
//carries, so the two stay in the same unit.
description_string += QString(tr("Nombre de contacts esclaves utilisés : %1\n")).arg(m_element->linkedElements().count());
description_string += QString(tr("Number of slave contacts used : %1\n")).arg(m_element->linkedElements().count());
//The breakdown below is in contacts, not slots: it answers how
//many contacts an auxiliary block must provide.
@@ -408,7 +408,7 @@ QWidget *ElementPropertiesWidget::generalWidget()
//only what has been used but what it has to offer. A type
//used beyond what is declared shows as e.g. "1/0", which
//is the point: it says this contact does not fit the part.
description_string += QString(tr(" Contacts : NO : %1/%2, NC : %3/%4, inverseurs : %5/%6, autres : %7/%8\n"))
description_string += QString(tr(" Contacts : NO : %1/%2, NC : %3/%4, changeover : %5/%6, other : %7/%8\n"))
.arg(usage.no).arg(capacity.no)
.arg(usage.nc).arg(capacity.nc)
.arg(usage.sw).arg(capacity.sw)
@@ -417,14 +417,14 @@ QWidget *ElementPropertiesWidget::generalWidget()
else if (usage.total() > 0)
{
//No declared groups, so a plain count of what is in use.
description_string += QString(tr(" Contacts : NO : %1, NC : %2, inverseurs : %3, autres : %4\n"))
description_string += QString(tr(" Contacts : NO : %1, NC : %2, changeover : %3, other : %4\n"))
.arg(usage.no)
.arg(usage.nc)
.arg(usage.sw)
.arg(usage.other);
}
}
description_string += QString(tr("Emplacement : %1\n")).arg(m_element.data()->location().toString());
description_string += QString(tr("Location : %1\n")).arg(m_element.data()->location().toString());
// widget himself
QWidget *general_widget = new QWidget (m_tab);
@@ -439,7 +439,7 @@ QWidget *ElementPropertiesWidget::generalWidget()
//checkbox to lock the element position on the diagram
//(same mechanism already used by images and drawn shapes)
QCheckBox *lock_pos_cb = new QCheckBox(tr("Verrouiller la position"), general_widget);
QCheckBox *lock_pos_cb = new QCheckBox(tr("Lock Position"), general_widget);
lock_pos_cb->setChecked(!m_element->isMovable());
QPointer<Element> element = m_element;
connect(lock_pos_cb, &QCheckBox::clicked, this, [element](bool checked) {
@@ -455,9 +455,9 @@ QWidget *ElementPropertiesWidget::generalWidget()
vlayout_ -> addStretch();
//button widget
QPushButton *find_in_panel = new QPushButton(QET::Icons::ZoomDraw, tr("Retrouver dans le panel"), general_widget);
QPushButton *find_in_panel = new QPushButton(QET::Icons::ZoomDraw, tr("Find in the panel"), general_widget);
connect(find_in_panel, &QPushButton::clicked, this, &ElementPropertiesWidget::findInPanel);
QPushButton *edit_element = new QPushButton(QET::Icons::ElementEdit, tr("Éditer l'élément"), general_widget);
QPushButton *edit_element = new QPushButton(QET::Icons::ElementEdit, tr("Edit element"), general_widget);
connect(edit_element, &QPushButton::clicked, this, &ElementPropertiesWidget::editElement);
QHBoxLayout *hlayout_ = new QHBoxLayout;
hlayout_->addWidget(find_in_panel);
+2 -2
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Assistant de formule</string>
<string>Formula Wizard</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -24,7 +24,7 @@
<item>
<widget class="QLineEdit" name="m_line_edit">
<property name="placeholderText">
<string>Formule</string>
<string>Formula</string>
</property>
</widget>
</item>
+4 -4
View File
@@ -254,15 +254,15 @@ void CropAreaWidget::paintEvent(QPaintEvent *)
ImageCropDialog::ImageCropDialog(const QPixmap &pixmap, const QRect &existingCropRect, QWidget *parent) :
QDialog(parent)
{
setWindowTitle(tr("Rogner l'image"));
setWindowTitle(tr("Crop the image"));
m_cropArea = new CropAreaWidget(pixmap.toImage(), existingCropRect, this);
auto *hint = new QLabel(tr("Faites glisser les poignées, ou l'intérieur du cadre, pour ajuster la zone à conserver."), this);
auto *hint = new QLabel(tr("Drag the handles, or the inside of the frame, to adjust the area to keep."), this);
hint->setWordWrap(true);
auto *resetButton = new QPushButton(tr("Réinitialiser"), this);
resetButton->setToolTip(tr("Revenir à l'image complète, sans rognage"));
auto *resetButton = new QPushButton(tr("Reset"), this);
resetButton->setToolTip(tr("Return to the full image, without cropping"));
connect(resetButton, &QPushButton::clicked, m_cropArea, &CropAreaWidget::resetToFullImage);
auto *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
+9 -9
View File
@@ -220,11 +220,11 @@ QUndoCommand* ImagePropertiesWidget::associatedUndo() const
}
};
chain("scaleFactorX", m_scaleX, newScaleX, tr("Modifier la largeur d'une image"));
chain("scaleFactorY", m_scaleY, newScaleY, tr("Modifier la hauteur d'une image"));
chain("rotationAngle", m_rotation, newRotation, tr("Modifier l'angle d'une image"));
chain("skewX", m_skewX, newSkewX, tr("Modifier l'inclinaison d'une image"));
chain("skewY", m_skewY, newSkewY, tr("Modifier l'inclinaison d'une image"));
chain("scaleFactorX", m_scaleX, newScaleX, tr("Change the width of an image"));
chain("scaleFactorY", m_scaleY, newScaleY, tr("Change the height of an image"));
chain("rotationAngle", m_rotation, newRotation, tr("Change the angle of an image"));
chain("skewX", m_skewX, newSkewX, tr("Change the skew of an image"));
chain("skewY", m_skewY, newSkewY, tr("Change the skew of an image"));
// Not through chain(): a string cannot be animated.
const QString newLabel = ui->m_label_le->text();
@@ -235,7 +235,7 @@ QUndoCommand* ImagePropertiesWidget::associatedUndo() const
else
{
undo = new QPropertyUndoCommand(m_image, "label", m_label, newLabel);
undo->setText(tr("Modifier le libellé d'une image"));
undo->setText(tr("Edit an image label"));
}
}
@@ -243,7 +243,7 @@ QUndoCommand* ImagePropertiesWidget::associatedUndo() const
if (adapt != m_adapt_to_dark_theme) {
if (undo) new QPropertyUndoCommand(m_image, "adaptToDarkTheme", m_adapt_to_dark_theme, adapt, undo);
else {
undo = new QUndoCommand(tr("Modifier l'adaptation d'une image au thème sombre"));
undo = new QUndoCommand(tr("Change a picture's dark theme adaptation"));
new QPropertyUndoCommand(m_image, "adaptToDarkTheme", m_adapt_to_dark_theme, adapt, undo);
}
}
@@ -296,8 +296,8 @@ void ImagePropertiesWidget::on_m_lock_ratio_tb_toggled(bool checked)
{
ui->m_lock_ratio_tb->setIcon(checked ? QET::Icons::ObjectLocked : QET::Icons::ObjectUnlocked);
ui->m_lock_ratio_tb->setToolTip(checked
? tr("Verrouillé : modifier la largeur ou la hauteur ajuste l'autre pour conserver les proportions. Cliquer pour déverrouiller.")
: tr("Déverrouillé : largeur et hauteur peuvent être modifiées indépendamment. Cliquer pour verrouiller."));
? tr("Locked: changing the width or height adjusts the other to keep proportions. Click to unlock.")
: tr("Unlocked: width and height can be changed independently. Click to lock."));
}
/**
+11 -11
View File
@@ -20,7 +20,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_width">
<property name="text">
<string>Largeur</string>
<string>Width</string>
</property>
</widget>
</item>
@@ -43,7 +43,7 @@
<item row="0" column="2" rowspan="2">
<widget class="QToolButton" name="m_lock_ratio_tb">
<property name="toolTip">
<string>Verrouillé : modifier la largeur ou la hauteur ajuste l'autre pour conserver les proportions. Cliquer pour déverrouiller.</string>
<string>Locked: changing the width or height adjusts the other to keep proportions. Click to unlock.</string>
</property>
<property name="checkable">
<bool>true</bool>
@@ -56,7 +56,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_height">
<property name="text">
<string>Hauteur</string>
<string>Height</string>
</property>
</widget>
</item>
@@ -79,7 +79,7 @@
<item row="2" column="0" colspan="3">
<widget class="QPushButton" name="m_restore_ratio_pb">
<property name="text">
<string>Restaurer les proportions</string>
<string>Restore proportions</string>
</property>
</widget>
</item>
@@ -109,7 +109,7 @@
<item row="4" column="0">
<widget class="QLabel" name="label_skew_x">
<property name="text">
<string>Inclinaison X</string>
<string>X skew</string>
</property>
</widget>
</item>
@@ -132,7 +132,7 @@
<item row="5" column="0">
<widget class="QLabel" name="label_skew_y">
<property name="text">
<string>Inclinaison Y</string>
<string>Y skew</string>
</property>
</widget>
</item>
@@ -155,31 +155,31 @@
<item row="6" column="0">
<widget class="QLabel" name="label_label">
<property name="text">
<string>Libellé</string>
<string>Label</string>
</property>
</widget>
</item>
<item row="6" column="1" colspan="2">
<widget class="QLineEdit" name="m_label_le">
<property name="toolTip">
<string>Texte affiché sous l'image. Il suit l'image quand elle est déplacée, copiée ou tournée.</string>
<string>Text displayed under the image. It follows the image when it is moved, copied or rotated.</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="m_lock_pos_cb">
<property name="text">
<string>Verrouiller la position</string>
<string>Lock Position</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="3">
<widget class="QCheckBox" name="m_adapt_to_dark_theme_cb">
<property name="text">
<string>Adapter l’image au thème sombre</string>
<string>Adapt the picture to the dark theme</string>
</property>
<property name="toolTip">
<string>Adapte les couleurs à l’affichage sombre uniquement. L’image originale, les exports et les impressions restent inchangés.</string>
<string>Adapts the colors for the dark display only. The original picture, exports and printouts stay unchanged.</string>
</property>
</widget>
</item>
+8 -8
View File
@@ -55,7 +55,7 @@ ClickableImageLabel::ClickableImageLabel(const QImage &sourceImage, QWidget *par
: m_source;
setPixmap(QPixmap::fromImage(m_displayImage));
setCursor(Qt::CrossCursor);
setToolTip(tr("Cliquez pour choisir une couleur"));
setToolTip(tr("Click to choose a color"));
}
/**
@@ -101,7 +101,7 @@ ImageTransparentColorDialog::ImageTransparentColorDialog(const QPixmap &basePixm
m_sourceImage(basePixmap.toImage()),
m_pickedColors(existingColors)
{
setWindowTitle(tr("Couleur transparente"));
setWindowTitle(tr("Transparent color"));
if (!m_pickedColors.isEmpty())
m_lastToleranceUsed = m_pickedColors.last().tolerance;
@@ -119,8 +119,8 @@ ImageTransparentColorDialog::ImageTransparentColorDialog(const QPixmap &basePixm
updateOkEnabled();
auto *grid = new QGridLayout;
grid->addWidget(new QLabel(tr("Image source")), 0, 0);
grid->addWidget(new QLabel(tr("Aperçu")), 0, 1);
grid->addWidget(new QLabel(tr("Source image")), 0, 0);
grid->addWidget(new QLabel(tr("Preview")), 0, 1);
grid->addWidget(m_sourceLabel, 1, 0);
grid->addWidget(m_previewLabel, 1, 1);
@@ -263,12 +263,12 @@ void ImageTransparentColorDialog::rebuildSwatches()
auto *slider = new QSlider(Qt::Horizontal, row);
slider->setRange(0, 100);
slider->setValue(pc.tolerance);
slider->setToolTip(tr("Tolérance pour cette couleur"));
slider->setToolTip(tr("Tolerance for this color"));
connect(slider, &QSlider::valueChanged, this, [this, i](int value) { setToleranceForIndex(i, value); });
auto *removeButton = new QToolButton(row);
removeButton->setText(QStringLiteral("×"));
removeButton->setToolTip(tr("Retirer cette couleur"));
removeButton->setToolTip(tr("Remove this color"));
connect(removeButton, &QToolButton::clicked, this, [this, i]() { removeColor(i); });
rowLayout->addWidget(swatch);
@@ -278,8 +278,8 @@ void ImageTransparentColorDialog::rebuildSwatches()
}
m_hintLabel->setText(m_pickedColors.isEmpty()
? tr("Cliquez sur l'image pour choisir une couleur")
: tr("Cliquez sur l'image pour ajouter une couleur. Ajustez la tolérance de chaque couleur avec son curseur, ou cliquez sur × pour la retirer."));
? tr("Click on the image to choose a color")
: tr("Click on the image to add a color. Adjust each color's tolerance with its slider, or click × to remove it."));
}
/**
+6 -6
View File
@@ -11,27 +11,27 @@
</rect>
</property>
<property name="windowTitle">
<string>Intégration d'un élément</string>
<string>Integration of an element</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>L'élément a déjà été intégré dans le projet. Toutefois, la version que vous tentez de poser semble différente. Que souhaitez-vous faire ?</string>
<string>The element has already been integrated in the project. However, the version you're trying to drop appears to be different. What do you wish to do ?</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="m_use_actual_rd">
<property name="text">
<string>Utiliser l'élément déjà integré</string>
<string>Using the already integrated element</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="m_use_drop_rb">
<property name="text">
<string>Intégrer l'élément déposé</string>
<string>Integrate the dropped element</string>
</property>
<property name="checkable">
<bool>true</bool>
@@ -49,14 +49,14 @@
<item>
<widget class="QRadioButton" name="m_erase_actual_rb">
<property name="text">
<string>Écraser l'élément déjà intégé</string>
<string>Overwrite the already integrated element</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="m_use_both_rb">
<property name="text">
<string>Faire cohabiter les deux éléments</string>
<string>Make the two elements coexist</string>
</property>
<property name="checked">
<bool>false</bool>
+1 -1
View File
@@ -27,7 +27,7 @@
<item>
<widget class="QCheckBox" name="m_erase_existing_text">
<property name="text">
<string>Écraser les textes existants</string>
<string>Erase existing texts</string>
</property>
</widget>
</item>
+15 -15
View File
@@ -194,36 +194,36 @@ QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const
if(ui->m_x_sb->value() != m_text->pos().x()) {
undo = new QPropertyUndoCommand(m_text.data(), "x", QVariant(m_text->pos().x()), QVariant(ui->m_x_sb->value()));
undo->setAnimated(true, false);
undo->setText(tr("Déplacer un champ texte"));
undo->setText(tr("Move a text field"));
}
if(ui->m_y_sb->value() != m_text->pos().y()) {
undo = new QPropertyUndoCommand(m_text.data(), "y", QVariant(m_text->pos().y()), QVariant(ui->m_y_sb->value()));
undo->setAnimated(true, false);
undo->setText(tr("Déplacer un champ texte"));
undo->setText(tr("Move a text field"));
}
if(ui->m_angle_sb->value() != m_text->rotation()) {
undo = new QPropertyUndoCommand(m_text.data(), "rotation", QVariant(m_text->rotation()), QVariant(ui->m_angle_sb->value()));
undo->setAnimated(true, false);
undo->setText(tr("Pivoter un champ texte"));
undo->setText(tr("Rotate a text field"));
}
if (ui->m_line_edit->text() != m_text->toPlainText()) {
undo = new QPropertyUndoCommand(m_text.data(), "plainText", m_text->toPlainText(), ui->m_line_edit->text());
undo->setText(tr("Modifier un champ texte"));
undo->setText(tr("Edit the text field"));
}
if (ui->m_size_sb->value() != m_text->font().pointSize()) {
QFont font = m_text->font();
font.setPointSize(ui->m_size_sb->value());
undo = new QPropertyUndoCommand(m_text.data(), "font", m_text->font(), font);
undo->setText(tr("Modifier la taille d'un champ texte"));
undo->setText(tr("Change the size of a text field"));
}
if (m_font_is_selected &&
m_selected_font != m_text->font()) {
undo = new QPropertyUndoCommand(m_text.data(), "font", m_text->font(), m_selected_font);
undo->setText(tr("Modifier la police d'un champ texte"));
undo->setText(tr("Change the font of a text field"));
}
if (ui->m_width_sb->value() != spinBoxWidth(m_text->textWidth())) {
undo = new QPropertyUndoCommand(m_text.data(), "textWidth", m_text->textWidth(), qreal(ui->m_width_sb->value()));
undo->setText(tr("Modifier la largeur d'un champ texte"));
undo->setText(tr("Change the width of a text field"));
}
return undo;
@@ -263,7 +263,7 @@ QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const
if (piti)
{
if (!parent_undo) {
parent_undo = new QUndoCommand(tr("Pivoter plusieurs champs texte"));
parent_undo = new QUndoCommand(tr("Rotate multiple text fields"));
}
QPropertyUndoCommand *qpuc = new QPropertyUndoCommand(piti.data(), "rotation", QVariant(piti->rotation()), QVariant(ui->m_angle_sb->value()), parent_undo);
qpuc->setAnimated(true, false);
@@ -278,7 +278,7 @@ QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const
if (piti)
{
if (!parent_undo) {
parent_undo = new QUndoCommand(tr("Modifier la taille de plusieurs champs texte"));
parent_undo = new QUndoCommand(tr("Change the size of multiple text fields"));
}
QFont font = piti->font();
font.setPointSize(ui->m_size_sb->value());
@@ -294,7 +294,7 @@ QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const
if (piti)
{
if (!parent_undo) {
parent_undo = new QUndoCommand(tr("Modifier la police de plusieurs champs texte"));
parent_undo = new QUndoCommand(tr("Change the font of several text fields"));
}
new QPropertyUndoCommand(piti.data(), "font", piti->font(), m_selected_font, parent_undo);
}
@@ -308,7 +308,7 @@ QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const
if (piti)
{
if (!parent_undo) {
parent_undo = new QUndoCommand(tr("Modifier la largeur de plusieurs champs texte"));
parent_undo = new QUndoCommand(tr("Change the width of several text fields"));
}
new QPropertyUndoCommand(piti.data(), "textWidth", piti->textWidth(), qreal(ui->m_width_sb->value()), parent_undo);
}
@@ -320,7 +320,7 @@ QUndoCommand *IndiTextPropertiesWidget::associatedUndo() const
//In mode not live edit, only one text can be edited
else if (m_text_list.isEmpty())
{
QUndoCommand *undo = new QUndoCommand(tr("Modifier les propriétés d'un texte"));
QUndoCommand *undo = new QUndoCommand(tr("Modify the properties of a text"));
if(ui->m_x_sb->value() != m_text->pos().x()) {
new QPropertyUndoCommand(m_text.data(), "x", QVariant(m_text->pos().x()), QVariant(ui->m_x_sb->value()), undo);
}
@@ -418,7 +418,7 @@ void IndiTextPropertiesWidget::updateUi()
ui->m_label->setVisible(m_text->isHtml() ? true : false);
ui->m_break_html_pb->setVisible(m_text->isHtml() ? true : false);
ui->m_font_pb->setDisabled(m_text->isHtml() ? true : false);
ui->m_font_pb->setText(m_text->isHtml() ? tr("Police") : m_text->font().family());
ui->m_font_pb->setText(m_text->isHtml() ? tr("Font") : m_text->font().family());
}
else
{
@@ -457,7 +457,7 @@ void IndiTextPropertiesWidget::updateUi()
}
}
ui->m_font_pb->setEnabled(valid_);
ui->m_font_pb->setText(font_equal ? font_.family() : tr("Police"));
ui->m_font_pb->setText(font_equal ? font_.family() : tr("Font"));
ui->m_size_sb->setEnabled(valid_);
ui->m_size_sb->setValue(size_equal ? size_ : 0);
ui->m_label->setVisible(false);
@@ -506,7 +506,7 @@ void IndiTextPropertiesWidget::on_m_font_pb_clicked()
LastUsedStyle::setTextFont(m_selected_font);
apply();
} else {
ui->m_font_pb->setText(tr("Police"));
ui->m_font_pb->setText(tr("Font"));
m_font_is_selected = false;
}
}
+10 -10
View File
@@ -27,14 +27,14 @@
<item row="1" column="0" colspan="4">
<widget class="QPushButton" name="m_advanced_editor_pb">
<property name="text">
<string>Éditeur avancé</string>
<string>Advanced Editor</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Taille :</string>
<string>Size :</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@@ -44,7 +44,7 @@
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Angle :</string>
<string>Angle:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@@ -129,7 +129,7 @@
<item row="4" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Largeur :</string>
<string>Width:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@@ -139,7 +139,7 @@
<item row="4" column="1">
<widget class="QSpinBox" name="m_width_sb">
<property name="toolTip">
<string>Largeur du texte, le texte passe à la ligne. Auto : pas de retour à la ligne automatique</string>
<string>Text width; the text wraps at this width. Auto: no automatic line wrap</string>
</property>
<property name="specialValueText">
<string>Auto</string>
@@ -161,8 +161,8 @@
<item row="5" column="0" colspan="4">
<widget class="QLabel" name="m_label">
<property name="text">
<string>Le contenu, la taille et la police du texte ne peuvent être modifié car formaté en html.
Veuillez utiliser l'éditeur avancé pour cela.</string>
<string>The contents, the size and the font of the text can not be modified because formatted in html.
Please use the advanced editor for this.</string>
</property>
<property name="scaledContents">
<bool>false</bool>
@@ -175,21 +175,21 @@ Veuillez utiliser l'éditeur avancé pour cela.</string>
<item row="6" column="0" colspan="4">
<widget class="QPushButton" name="m_break_html_pb">
<property name="text">
<string>Cliquez ici pour annuler le formatage html</string>
<string>Click here to cancel html formatting</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLineEdit" name="m_line_edit">
<property name="placeholderText">
<string>Texte</string>
<string>Text</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="m_font_pb">
<property name="text">
<string>Police</string>
<string>Font</string>
</property>
</widget>
</item>
+5 -5
View File
@@ -40,10 +40,10 @@ JumpToElementDialog::JumpToElementDialog(Diagram *diagram, QWidget *parent) :
QDialog(parent),
m_diagram(diagram)
{
setWindowTitle(tr("Atteindre un élément", "window title"));
setWindowTitle(tr("Navigate to an element", "window title"));
m_filter_edit = new QLineEdit(this);
m_filter_edit->setPlaceholderText(tr("Nom, label ou information de l'élément, ou case (ex. B13 ou 3-B13)…"));
m_filter_edit->setPlaceholderText(tr("Name, label or information of the element, or cell (e.g. B13 or 3-B13)…"));
m_filter_edit->installEventFilter(this);
m_result_list = new QListWidget(this);
@@ -236,12 +236,12 @@ QListWidgetItem *JumpToElementDialog::cellItem(const QString &needle) const
cell = cell.remove(QLatin1Char(' ')).toUpper();
if (diagram == m_diagram) {
text = tr("Case %1").arg(cell);
text = tr("Cell %1").arg(cell);
} else {
const QString title = diagram->title();
text = title.isEmpty()
? tr("Folio %1, case %2").arg(diagrams.indexOf(diagram) + 1).arg(cell)
: tr("Folio %1 (%2), case %3").arg(diagrams.indexOf(diagram) + 1).arg(title, cell);
? tr("Sheet %1, cell %2").arg(diagrams.indexOf(diagram) + 1).arg(cell)
: tr("Sheet %1 (%2), cell %3").arg(diagrams.indexOf(diagram) + 1).arg(title, cell);
}
auto *item = new QListWidgetItem(text);
+29 -29
View File
@@ -52,10 +52,10 @@ LinkSingleElementWidget::LinkSingleElementWidget(Element *elmt,
ui->m_tree_widget->setContextMenuPolicy(Qt::CustomContextMenu);
m_context_menu = new QMenu(this);
m_link_action = new QAction(tr("Lier l'élément"), this);
m_show_qtwi = new QAction(tr("Montrer l'élément"), this);
m_show_element = new QAction(tr("Montrer l'élément esclave"), this);
m_save_header_state = new QAction(tr("Enregistrer la disposition"), this);
m_link_action = new QAction(tr("Link the item"), this);
m_show_qtwi = new QAction(tr("Show item"), this);
m_show_element = new QAction(tr("Show slave element"), this);
m_save_header_state = new QAction(tr("Save the layout"), this);
// Hide the full-masters checkbox for non-slave elements
const bool is_slave = (elmt && elmt->elementData().m_type == ElementData::Slave);
@@ -233,9 +233,9 @@ QUndoCommand *LinkSingleElementWidget::associatedUndo() const
QString LinkSingleElementWidget::title() const
{
if (m_element->elementData().m_type & ElementData::AllReport)
return tr("Report de folio");
return tr("Sheet reference");
else
return tr("Référence croisée (esclave)");
return tr("Cross-reference (slave)");
}
/**
@@ -514,18 +514,18 @@ void LinkSingleElementWidget::setUpHeaderLabels()
if (settings.value(QStringLiteral("genericpanel/folio"), false).toBool())
{
list << tr("Label")
<< tr("Commentaire")
<< tr("Label de folio")
<< tr("Annotation")
<< tr("Sheet label")
<< tr("Position")
<< tr("Titre de folio");
<< tr("Sheet title");
}
else
{
list << tr("Label")
<< tr("Commentaire")
<< tr("N° de folio")
<< tr("Annotation")
<< tr("Sheet no.")
<< tr("Position")
<< tr("Titre de folio");
<< tr("Sheet title");
}
}
@@ -533,25 +533,25 @@ void LinkSingleElementWidget::setUpHeaderLabels()
{
if (settings.value(QStringLiteral("genericpanel/folio"), false).toBool())
{
list << tr("N° de fil")
<< tr("Fonction")
<< tr("Tension / Protocole")
<< tr("Couleur du conducteur")
<< tr("Section du conducteur")
<< tr("Label de folio")
list << tr("N° wire")
<< tr("Function")
<< tr("Voltage / Protocol")
<< tr("Conductor color")
<< tr("Conductor section")
<< tr("Sheet label")
<< tr("Position")
<< tr("Titre de folio");
<< tr("Sheet title");
}
else
{
list << tr("N° de fil")
<< tr("Fonction")
<< tr("Tension / Protocole")
<< tr("Couleur du conducteur")
<< tr("Section du conducteur")
<< tr("N° de folio")
list << tr("N° wire")
<< tr("Function")
<< tr("Voltage / Protocol")
<< tr("Conductor color")
<< tr("Conductor section")
<< tr("Sheet no.")
<< tr("Position")
<< tr("Titre de folio");
<< tr("Sheet title");
}
}
@@ -620,15 +620,15 @@ void LinkSingleElementWidget::linkTriggered()
.arg(io.address)
.arg(io.functionText);
if (used_indices.contains(i))
label += tr(" (déjà utilisé)");
label += tr(" (already used)");
items << label;
}
bool ok = false;
int selected = QInputDialog::getInt(
this,
tr("Sélectionner un IO PLC"),
tr("IO disponible:"),
tr("Select a PLC I/O"),
tr("Available I/O:"),
0, 0, plc_data.ios.size() - 1, 1, &ok);
if (ok && selected >= 0) {
+6 -6
View File
@@ -17,7 +17,7 @@
<item row="1" column="2">
<widget class="QPushButton" name="m_show_this_pb">
<property name="text">
<string>Voir cet élément</string>
<string>View this item</string>
</property>
</widget>
</item>
@@ -39,35 +39,35 @@
<item row="1" column="0">
<widget class="QPushButton" name="m_unlink_pb">
<property name="text">
<string>Délier</string>
<string>Unlink</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="m_show_linked_pb">
<property name="text">
<string>Voir l'élément lié</string>
<string>See the linked item</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="m_label">
<property name="text">
<string>Cet élément est déjà lié</string>
<string>This element is already linked</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<widget class="QLineEdit" name="m_search_field">
<property name="placeholderText">
<string>Recherche</string>
<string>Search</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3">
<widget class="QCheckBox" name="m_hide_full_masters_cb">
<property name="text">
<string>Masquer les éléments maîtres pleins</string>
<string>Hide full master elements</string>
</property>
</widget>
</item>
+5 -5
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Editer les marges</string>
<string>Edit margins</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="1">
@@ -68,28 +68,28 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Haut :</string>
<string>Top :</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Gauche :</string>
<string>Left :</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Droit :</string>
<string>Right :</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Bas :</string>
<string>Bottom :</string>
</property>
</widget>
</item>
+18 -17
View File
@@ -60,26 +60,26 @@ m_project(nullptr)
QStringList list;
QSettings settings;
if (settings.value("genericpanel/folio", false).toBool()) {
list << tr("Vignette")
<< tr("Label de folio")
<< tr("Titre de folio")
list << tr("Thumbnail")
<< tr("Sheet label")
<< tr("Sheet title")
<< tr("Position");
}
else {
list << tr("Vignette")
<< tr("N° de folio")
<< tr("Titre de folio")
list << tr("Thumbnail")
<< tr("Sheet no.")
<< tr("Sheet title")
<< tr("Position");
}
ui->m_free_tree_widget->setHeaderLabels(list);
ui->m_link_tree_widget->setHeaderLabels(list);
m_context_menu = new QMenu(this);
m_link_action = new QAction(tr("Lier l'élément"), this);
m_unlink_action = new QAction(tr("Délier l'élément"), this);
m_show_qtwi = new QAction(tr("Montrer l'élément"), this);
m_show_element = new QAction(tr("Montrer l'élément maître"), this);
m_save_header_state = new QAction(tr("Enregistrer la disposition"), this);
m_link_action = new QAction(tr("Link the item"), this);
m_unlink_action = new QAction(tr("Unlink the item"), this);
m_show_qtwi = new QAction(tr("Show item"), this);
m_show_element = new QAction(tr("Show master element"), this);
m_save_header_state = new QAction(tr("Save the layout"), this);
connect(ui->m_free_tree_widget, &QTreeWidget::itemDoubleClicked,
this, &MasterPropertiesWidget::showElementFromTWI);
@@ -317,9 +317,10 @@ void MasterPropertiesWidget::on_link_button_clicked()
// Show a message box with the actual window as parent to ensure it's on top
const auto answer = QMessageBox::warning(
this->window(),
tr("Nombre maximal d'esclaves atteint."),
tr("La limite fixée pour cet élément maître est atteinte (Limite: %1).\n\n"
"Voulez-vous tout de même lier ce contact esclave ?").arg(max_slaves),
tr("Maximum number of slaves reached."),
tr("The limit set for this master element has been reached (Limit: %1).\n"
"\n"
"Do you still want to link this slave contact?").arg(max_slaves),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::Yes);
if (answer != QMessageBox::Yes) {
@@ -536,8 +537,8 @@ void MasterPropertiesWidget::updateUi()
m_plc_table = new QTableWidget(m_plc_widget);
m_plc_table->setColumnCount(6);
m_plc_table->setHorizontalHeaderLabels({
tr("Type"), tr("Adresse"), tr("Fonction"),
tr("Commentaire"), tr("Réf. croisée"), tr("Bornes")
tr("Type"), tr("Address"), tr("Function"),
tr("Annotation"), tr("Cross-reference"), tr("Terminals")
});
m_plc_table->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
m_plc_table->horizontalHeader()->setSectionsMovable(true);
@@ -1074,7 +1075,7 @@ void MasterPropertiesWidget::plcShowTableContextMenu(const QPoint &pos)
return;
QMenu menu;
menu.addAction(tr("Coller depuis le presse-papiers"), this, &MasterPropertiesWidget::plcPasteFromClipboard);
menu.addAction(tr("Paste from the clipboard"), this, &MasterPropertiesWidget::plcPasteFromClipboard);
menu.exec(m_plc_table->mapToGlobal(pos));
}
+1 -1
View File
@@ -64,7 +64,7 @@ class MasterPropertiesWidget : public AbstractElementPropertiesEditorWidget
@return QString title
*/
QString title() const override {
return tr("Référence croisée (maître)");}
return tr("Cross-reference (master)");}
bool setLiveEdit(bool live_edit) override;
public slots:
+4 -4
View File
@@ -29,7 +29,7 @@
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string>Éléments liés</string>
<string>Elements related</string>
</property>
<property name="scaledContents">
<bool>false</bool>
@@ -120,7 +120,7 @@
<item row="0" column="2">
<widget class="QLabel" name="label">
<property name="text">
<string>Éléments disponibles</string>
<string>Available elements</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -130,7 +130,7 @@
<item row="2" column="3">
<widget class="QPushButton" name="unlink_button">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Délier l'élément sélectionné&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Unlink the selected item&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string/>
@@ -143,7 +143,7 @@
<item row="2" column="4">
<widget class="QPushButton" name="link_button">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Lier l'élément sélectionné&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Link the selected item&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string/>
+2 -2
View File
@@ -104,7 +104,7 @@ void MultiPasteDialog::on_m_button_box_accepted()
{
if(m_pasted_content.count())
{
m_diagram->undoStack().beginMacro(tr("Multi-collage"));
m_diagram->undoStack().beginMacro(tr("Multi-paste"));
QETProject *project = m_diagram->project();
@@ -161,7 +161,7 @@ void MultiPasteDialog::on_m_button_box_accepted()
//changed, and labels which other elements keep are not given.
if(!copy_schemes.at(copy).isEmpty())
{
auto *numbering = new QUndoCommand(tr("Numéroter les éléments collés"));
auto *numbering = new QUndoCommand(tr("Number pasted elements"));
ElementAutoNumSchemeCommand::numberPasted(project, copy_schemes.at(copy), numbering);
if(numbering->childCount())
m_diagram->undoStack().push(numbering);
+6 -6
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Collage multiple</string>
<string>Multiple paste</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -19,7 +19,7 @@
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Décalage</string>
<string>offset</string>
</property>
</widget>
</item>
@@ -74,7 +74,7 @@
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Nombre de copie</string>
<string>Number of copies</string>
</property>
</widget>
</item>
@@ -90,21 +90,21 @@
<item>
<widget class="QCheckBox" name="m_auto_connection_cb">
<property name="text">
<string>Auto-connexion</string>
<string>Auto-connection</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_auto_num_cb">
<property name="text">
<string>Auto-numérotation des éléments</string>
<string>Self-numbering of elements</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_auto_num_cond_cb">
<property name="text">
<string>Auto-numérotation des conducteurs</string>
<string>Self-numbering of conductors</string>
</property>
</widget>
</item>
+8 -8
View File
@@ -48,7 +48,7 @@ PdfPagesDialog::PdfPagesDialog(QPdfDocument &document, QWidget *parent)
: QDialog(parent),
m_document(document)
{
setWindowTitle(tr("Sélectionner une page"));
setWindowTitle(tr("Select a page"));
setMinimumWidth(500);
setMinimumHeight(500);
@@ -59,7 +59,7 @@ PdfPagesDialog::PdfPagesDialog(QPdfDocument &document, QWidget *parent)
// Info label: "Ce document PDF contient X page(s)"
m_info_label = new QLabel(
tr("Ce document PDF contient %n page(s)", "", pageCount),
tr("This PDF document contains %n pages", "", pageCount),
this
);
m_info_label->setWordWrap(true);
@@ -68,7 +68,7 @@ PdfPagesDialog::PdfPagesDialog(QPdfDocument &document, QWidget *parent)
// Page selection layout
QHBoxLayout *page_layout = new QHBoxLayout();
QLabel *select_label = new QLabel(tr("Page à importer :"), this);
QLabel *select_label = new QLabel(tr("Page to import:"), this);
page_layout->addWidget(select_label);
// Spinbox: min=1, max=pageCount
@@ -81,20 +81,20 @@ PdfPagesDialog::PdfPagesDialog(QPdfDocument &document, QWidget *parent)
page_layout->addStretch();
// DPI selection
QLabel *dpi_label = new QLabel(tr("Résolution :"), this);
QLabel *dpi_label = new QLabel(tr("Resolution:"), this);
page_layout->addWidget(dpi_label);
m_dpi_combo = new QComboBox(this);
m_dpi_combo->addItem(tr("150 DPI (écran)"), 150);
m_dpi_combo->addItem(tr("300 DPI (impression)"), 300);
m_dpi_combo->addItem(tr("600 DPI (haute qualité)"), 600);
m_dpi_combo->addItem(tr("150 DPI (screen)"), 150);
m_dpi_combo->addItem(tr("300 DPI (print)"), 300);
m_dpi_combo->addItem(tr("600 DPI (high quality)"), 600);
m_dpi_combo->setCurrentIndex(0);
page_layout->addWidget(m_dpi_combo);
main_layout->addLayout(page_layout);
// Preview area
QLabel *preview_title = new QLabel(tr("Aperçu :"), this);
QLabel *preview_title = new QLabel(tr("Preview :"), this);
main_layout->addWidget(preview_title);
QScrollArea *scroll_area = new QScrollArea(this);
+12 -12
View File
@@ -50,28 +50,28 @@ PlcLinkWidget::PlcLinkWidget(Element *elmt, QWidget *parent)
auto *main_layout = new QGridLayout(this);
// Row 0: Status label + buttons (shown when already linked)
m_label = new QLabel(tr("Cet élément est déjà lié"), this);
m_unlink_pb = new QPushButton(tr("Délier"), this);
m_show_this_pb = new QPushButton(tr("Voir cet élément"), this);
m_label = new QLabel(tr("This element is already linked"), this);
m_unlink_pb = new QPushButton(tr("Unlink"), this);
m_show_this_pb = new QPushButton(tr("View this item"), this);
main_layout->addWidget(m_label, 0, 0);
main_layout->addWidget(m_unlink_pb, 0, 1);
main_layout->addWidget(m_show_this_pb, 0, 2);
// Row 1: Hide linked elements checkbox
m_hide_linked_cb = new QCheckBox(tr("Masquer les éléments connectés"), this);
m_hide_linked_cb = new QCheckBox(tr("Hide connected elements"), this);
main_layout->addWidget(m_hide_linked_cb, 1, 0, 1, 3);
// Row 2: Search field
m_search_field = new QLineEdit(this);
m_search_field->setPlaceholderText(tr("Recherche"));
m_search_field->setPlaceholderText(tr("Search"));
main_layout->addWidget(m_search_field, 2, 0, 1, 3);
// Row 3: Tree widget
m_tree_widget = new QTreeWidget(this);
m_tree_widget->setHeaderLabels({
tr("Label"), tr("Type"), tr("Adresse"),
tr("Fonction"), tr("Commentaire"), tr("Bornes")
tr("Label"), tr("Type"), tr("Address"),
tr("Function"), tr("Annotation"), tr("Terminals")
});
m_tree_widget->setRootIsDecorated(true);
m_tree_widget->setIndentation(20);
@@ -88,8 +88,8 @@ PlcLinkWidget::PlcLinkWidget(Element *elmt, QWidget *parent)
// Row 4: Hidden masters note
m_hidden_masters_label = new QLabel(
tr("Remarque : les éléments maîtres ayant atteint leur nombre maximal "
"d'esclaves sont masqués."), this);
tr("Note: Master elements that have reached their maximum number of "
"slaves are hidden."), this);
m_hidden_masters_label->setWordWrap(true);
QFont italic_font = m_hidden_masters_label->font();
italic_font.setItalic(true);
@@ -153,7 +153,7 @@ QUndoCommand *PlcLinkWidget::associatedUndo() const
QString PlcLinkWidget::title() const
{
return tr("Automate (PLC)");
return tr("Programmable Logic Controller (PLC)");
}
void PlcLinkWidget::updateUi()
@@ -271,7 +271,7 @@ void PlcLinkWidget::buildPlcTree()
for (Element *linked : elmt->linkedElements()) {
if (elmt->groupIndexForElement(linked) == i) {
child_item->setToolTip(0,
tr("Lié à: %1").arg(linked->actualLabel()));
tr("Related to: %1").arg(linked->actualLabel()));
break;
}
}
@@ -377,7 +377,7 @@ void PlcLinkWidget::on_m_tree_widget_customContextMenuRequested(const QPoint &po
return; // Already linked, no actions
QMenu menu;
QAction *link_action = menu.addAction(tr("Connecter"));
QAction *link_action = menu.addAction(tr("Log in"));
QAction *selected_action = menu.exec(m_tree_widget->viewport()->mapToGlobal(pos));
if (selected_action == link_action) {
+25 -25
View File
@@ -203,8 +203,8 @@ ConductorProperties PotentialSelectorDialog::chosenProperties(QList<ConductorPro
QDialog dialog(widget);
QVBoxLayout layout(widget);
dialog.setLayout(&layout);
QLabel label(tr("Veuillez choisir un potentiel électrique de la liste \n"
"à utiliser pour le nouveau potentiel"));
QLabel label(tr("Please select an electrical potential from the list \n"
"to use for the new potential"));
layout.addWidget(&label);
QHash <QRadioButton *, ConductorProperties> H;
@@ -212,15 +212,15 @@ ConductorProperties PotentialSelectorDialog::chosenProperties(QList<ConductorPro
{
QString text;
if(!cp.text.isEmpty())
text.append(tr("\nNuméro : %1").arg(cp.text));
text.append(tr("\nNumber: %1").arg(cp.text));
if(!cp.m_function.isEmpty())
text.append(tr("\nFonction : %1").arg(cp.m_function));
text.append(tr("\nFunction : %1").arg(cp.m_function));
if(!cp.m_tension_protocol.isEmpty())
text.append(tr("\nTension/protocole : %1").arg(cp.m_tension_protocol));
text.append(tr("\nVoltage / Protocol : %1").arg(cp.m_tension_protocol));
if(!cp.m_wire_color.isEmpty())
text.append(tr("\nCouleur du conducteur : %1").arg(cp.m_wire_color));
text.append(tr("\nConductor color : %1").arg(cp.m_wire_color));
if(!cp.m_wire_section.isEmpty())
text.append(tr("\nSection du conducteur : %1").arg(cp.m_wire_section));
text.append(tr("\nConductor section : %1").arg(cp.m_wire_section));
QRadioButton *b = new QRadioButton(text, &dialog);
layout.addWidget(b);
@@ -311,7 +311,7 @@ PotentialSelectorDialog::~PotentialSelectorDialog()
*/
void PotentialSelectorDialog::buildWidget()
{
QString text1(tr("%n conducteurs composent le potentiel suivant :",
QString text1(tr("%n conductors make up the following potential :",
"",
m_potential_selector->m_conductor_number_1));
@@ -320,20 +320,20 @@ void PotentialSelectorDialog::buildWidget()
cp1 = m_potential_selector->m_properties_list_1.first();;
if(!cp1.text.isEmpty())
text1.append(tr("\nNuméro : %1").arg(cp1.text));
text1.append(tr("\nNumber: %1").arg(cp1.text));
if(!cp1.m_function.isEmpty())
text1.append(tr("\nFonction : %1").arg(cp1.m_function));
text1.append(tr("\nFunction : %1").arg(cp1.m_function));
if(!cp1.m_tension_protocol.isEmpty())
text1.append(tr("\nTension/protocole : %1")
text1.append(tr("\nVoltage / Protocol : %1")
.arg(cp1.m_tension_protocol));
if(!cp1.m_wire_color.isEmpty())
text1.append(tr("\nCouleur du conducteur : %1")
text1.append(tr("\nConductor color : %1")
.arg(cp1.m_wire_color));
if(!cp1.m_wire_section.isEmpty())
text1.append(tr("\nSection du conducteur : %1")
text1.append(tr("\nConductor section : %1")
.arg(cp1.m_wire_section));
QString text2(tr("%n conducteurs composent le potentiel suivant :",
QString text2(tr("%n conductors make up the following potential :",
"",
m_potential_selector->m_conductor_number_2));
ConductorProperties cp2;
@@ -341,27 +341,27 @@ void PotentialSelectorDialog::buildWidget()
cp2 = m_potential_selector->m_properties_list_2.first();
if(!cp2.text.isEmpty())
text2.append(tr("\nNuméro : %1").arg(cp2.text));
text2.append(tr("\nNumber: %1").arg(cp2.text));
if(!cp2.m_function.isEmpty())
text2.append(tr("\nFonction : %1").arg(cp2.m_function));
text2.append(tr("\nFunction : %1").arg(cp2.m_function));
if(!cp2.m_tension_protocol.isEmpty())
text2.append(tr("\nTension/protocole : %1")
text2.append(tr("\nVoltage / Protocol : %1")
.arg(cp2.m_tension_protocol));
if(!cp2.m_wire_color.isEmpty())
text2.append(tr("\nCouleur du conducteur : %1")
text2.append(tr("\nConductor color : %1")
.arg(cp2.m_wire_color));
if(!cp2.m_wire_section.isEmpty())
text2.append(tr("\nSection du conducteur : %1")
text2.append(tr("\nConductor section : %1")
.arg(cp2.m_wire_section));
QRadioButton *rb1 = new QRadioButton(text1, this);
QRadioButton *rb2 = new QRadioButton(text2, this);
QRadioButton *rbk = new QRadioButton(
tr("Ajouter au câble: %1")
tr("Add to cable: %1")
.arg("wouldn't this be nice?"), this);
QRadioButton *rbb = new QRadioButton(
tr("Ajouter au bus: %1")
tr("Add to bus: %1")
.arg("wouldn't this be nice?"), this);
#if TODO_LIST
@@ -433,7 +433,7 @@ void PotentialSelectorDialog::on_buttonBox_accepted()
undo = m_parent_undo;
else
undo = new QUndoCommand(
tr("Modifier les propriétés de plusieurs conducteurs",
tr("Edit the properties of several conductors",
"undo caption"));
Diagram * diagram = nullptr;
@@ -486,9 +486,9 @@ void PotentialSelectorDialog::on_buttonBox_accepted()
<< "%M"
<< "%LM";
QString text(tr("La formule du nouveau potentiel contient des variables incompatibles avec les reports de folio.\n"
"Veuillez saisir une formule compatible pour ce potentiel.\n"
"Les variables suivantes sont incompatibles :\n"
QString text(tr("The new potential formula contains variables incompatible with sheet references.\n"
"Please enter a compatible formula for this potential.\n"
"The following variables are incompatible:\n"
"%sequf_ %seqtf_ %seqhf_ %id %F %M %LM"));
FormulaAssistantDialog fag(this);
fag.setForbiddenVariables(forbidden_str);
+3 -3
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Sélectionner le potentiel éléctrique</string>
<string>Select the electric potential</string>
</property>
<property name="sizeGripEnabled">
<bool>false</bool>
@@ -35,8 +35,8 @@
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string>Vous tentez de lier deux potentiels différents ensemble.
Veuillez choisir les propriétées à appliquer au nouveau potentiel.</string>
<string>You try to link two different potentials together.
Please select the properties to be applied to new potential.</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
+18 -18
View File
@@ -45,7 +45,7 @@ PrefixConfigurationDialog::PrefixConfigurationDialog(QetLabelsFile &labels, cons
m_folders(folders),
m_tree(new QTreeWidget(this))
{
setWindowTitle(tr("Préfixes de la collection utilisateur", "title of the dialog configuring the prefixes of the user collection"));
setWindowTitle(tr("User collection prefixes", "title of the dialog configuring the prefixes of the user collection"));
setModal(true);
resize(700, 500);
@@ -53,12 +53,12 @@ PrefixConfigurationDialog::PrefixConfigurationDialog(QetLabelsFile &labels, cons
auto *hint = new QLabel(this);
hint->setWordWrap(true);
hint->setText(tr("Chaque dossier de la collection possède un préfixe : il est ajouté devant l'étiquette des éléments du dossier.\n"
"Un champ vide signifie que le dossier reprend le préfixe de son dossier parent."));
hint->setText(tr("Each folder of the collection has a prefix: it is added in front of the label of the symbols in the folder.\n"
"An empty field means the folder takes the prefix of its parent folder."));
layout->addWidget(hint);
m_tree->setColumnCount(2);
m_tree->setHeaderLabels(QStringList() << tr("Dossier", "column header of the folder tree") << tr("Préfixe", "column header of the prefix column"));
m_tree->setHeaderLabels(QStringList() << tr("Folder", "column header of the folder tree") << tr("Prefix", "column header of the prefix column"));
m_tree->setRootIsDecorated(true);
m_tree->setEditTriggers(QAbstractItemView::NoEditTriggers);
m_tree->setSelectionMode(QAbstractItemView::NoSelection);
@@ -66,8 +66,8 @@ PrefixConfigurationDialog::PrefixConfigurationDialog(QetLabelsFile &labels, cons
m_tree->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
layout->addWidget(m_tree);
auto *expand_pb = new QPushButton(tr("Tout déplier"), this);
auto *collapse_pb = new QPushButton(tr("Tout replier"), this);
auto *expand_pb = new QPushButton(tr("Expand all"), this);
auto *collapse_pb = new QPushButton(tr("Collapse all"), this);
connect(expand_pb, &QPushButton::clicked, m_tree, &QTreeWidget::expandAll);
connect(collapse_pb, &QPushButton::clicked, m_tree, &QTreeWidget::collapseAll);
@@ -107,13 +107,13 @@ void PrefixConfigurationDialog::askWhatToDoWithOrphans()
}
QMessageBox box(QMessageBox::Question,
tr("Entrées sans dossier"),
tr("%n entrée(s) de qet_labels.xml ne correspond à aucun dossier de la collection :\n"
"les conserver ou les supprimer ?", nullptr, static_cast<int>(orphans.size())),
tr("Entries without a folder"),
tr("%n entries of qet_labels.xml match no folder of the collection:\n"
"keep them or delete them?", nullptr, static_cast<int>(orphans.size())),
QMessageBox::NoButton,
parentWidget());
auto *keep_button = box.addButton(tr("Conserver"), QMessageBox::AcceptRole);
box.addButton(tr("Supprimer"), QMessageBox::DestructiveRole);
auto *keep_button = box.addButton(tr("Keep"), QMessageBox::AcceptRole);
box.addButton(tr("Delete"), QMessageBox::DestructiveRole);
box.setDetailedText(orphans.join(QLatin1Char('\n')));
box.exec();
@@ -165,16 +165,16 @@ void PrefixConfigurationDialog::buildTree()
//field too, but does not inherit : say so instead of promising
//an inheritance that will not happen
edit->setPlaceholderText(m_labels.hasPrefix(folder)
? tr("aucun préfixe : n'hérite pas du parent",
? tr("no prefix: does not take the parent's",
"placeholder of an empty prefix field whose folder explicitly has no prefix, which cancels the inheritance")
: tr("hériter du dossier parent", "placeholder of an empty prefix field"));
: tr("take the parent folder's", "placeholder of an empty prefix field"));
connect(edit, &QLineEdit::textEdited, this, [parent_item, edit]() {
//Once the user has typed in the field, whatever it holds
//when OK is pressed is what the folder gets - an emptied
//field then means "inherit" again, even when the file had
//an explicit <prefix/>
parent_item->setData(1, Qt::UserRole + 1, true);
edit->setPlaceholderText(tr("hériter du dossier parent", "placeholder of an empty prefix field"));
edit->setPlaceholderText(tr("take the parent folder's", "placeholder of an empty prefix field"));
});
edit->installEventFilter(this);
m_tree->setItemWidget(parent_item, 1, edit);
@@ -220,16 +220,16 @@ void PrefixConfigurationDialog::accept()
if (!m_labels.save()) {
QMessageBox::critical(this,
tr("Enregistrement impossible"),
tr("Le fichier %1 n'a pas pu être enregistré :\n%2")
tr("Cannot save"),
tr("The file %1 could not be saved:\n%2")
.arg(m_labels.filePath(), m_labels.errorString()));
return;
}
if (!m_labels.backupPath().isEmpty()) {
QMessageBox::information(this,
tr("Fichier endommagé remplacé"),
tr("Le fichier %1 était illisible : il a été remplacé.\nSa copie a été conservée sous :\n%2")
tr("Damaged file replaced"),
tr("The file %1 could not be read: it has been replaced.\nIts copy was kept as:\n%2")
.arg(m_labels.filePath(), m_labels.backupPath()));
}
+1 -1
View File
@@ -33,7 +33,7 @@
ProjectPropertiesDialog::ProjectPropertiesDialog(QETProject *project, QWidget *parent)
{
m_properties_dialog = new ConfigDialog (parent);
m_properties_dialog -> setWindowTitle(QObject::tr("Propriétés du projet", "window title"));
m_properties_dialog -> setWindowTitle(QObject::tr("Project properties", "window title"));
m_properties_dialog -> addPage(new ProjectMainConfigPage(project));
NewDiagramPage *newDiagramPage = new NewDiagramPage(project,parent,this);
+9 -9
View File
@@ -17,7 +17,7 @@
<item>
<widget class="QGroupBox" name="report_label_gb">
<property name="title">
<string>Label de report de folio</string>
<string>Sheet reference label</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
@@ -32,14 +32,14 @@
<item>
<widget class="QLabel" name="label_">
<property name="text">
<string>Vous pouvez définir un label personnalisé pour les reports de folio.
Créer votre propre texte en vous aidant des variables suivantes :
%f : la position du folio dans le projet
%F : le numéro de folio
%M : l'installation
%LM : la localisation
%l : le numéro de ligne
%c : le numéro de colonne</string>
<string>You can define a custom label for sheet references.
Create your own text using the following variables:
%f: the sheet position in the project
%F: the sheet number
%M: the installation
%LM: the location
%l: the row number
%c: the column number</string>
</property>
<property name="scaledContents">
<bool>false</bool>
@@ -180,7 +180,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
if (new_line != old_line)
{
undo = new QPropertyUndoCommand(m_shape, "line", old_line, new_line);
undo->setText(tr("Modifier la longueur d'une ligne"));
undo->setText(tr("Change the length of a line"));
}
}
else
@@ -199,7 +199,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
if (new_rect != old_rect)
{
undo = new QPropertyUndoCommand(m_shape, "rect", old_rect, new_rect);
undo->setText(tr("Modifier la taille d'une forme"));
undo->setText(tr("Change the size of a shape"));
}
}
@@ -212,7 +212,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
else
{
undo = new QPropertyUndoCommand(m_shape, "rotation", old_angle, new_angle);
undo->setText(tr("Modifier l'angle d'une forme"));
undo->setText(tr("Change the angle of a shape"));
}
}
}
@@ -233,7 +233,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
if (new_pen != old_pen)
{
undo = new QPropertyUndoCommand(m_shape, "pen", old_pen, new_pen);
undo->setText(tr("Modifier le trait d'une forme"));
undo->setText(tr("Edit line of a form"));
LastUsedStyle::setShapePen(new_pen);
}
@@ -249,7 +249,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
else
{
undo = new QPropertyUndoCommand(m_shape, "brush", old_brush, new_brush);
undo->setText(tr("Modifier le remplissage d'une forme"));
undo->setText(tr("Edit filling a form"));
}
LastUsedStyle::setShapeBrush(new_brush);
}
@@ -261,7 +261,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
else
{
undo = new QPropertyUndoCommand(m_shape, "close", m_shape->isClosed(), ui->m_close_polygon->isChecked(), undo);
undo->setText(tr("Fermer le polygone"));
undo->setText(tr("Close the polygon"));
}
}
@@ -317,7 +317,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
for (QPointer<QetShapeItem> qsi : pen_H.keys())
{
if (!parent_undo) {
parent_undo = new QUndoCommand(tr("Modifier une forme simple"));
parent_undo = new QUndoCommand(tr("Modify a simple form"));
}
new QPropertyUndoCommand(qsi, "pen", qsi->pen(), pen_H.value(qsi), parent_undo);
}
@@ -349,7 +349,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
for (QPointer<QetShapeItem> qsi : brush_H.keys())
{
if (!parent_undo) {
parent_undo = new QUndoCommand(tr("Modifier une forme simple"));
parent_undo = new QUndoCommand(tr("Modify a simple form"));
}
new QPropertyUndoCommand(qsi, "brush", qsi->brush(), brush_H.value(qsi), parent_undo);
@@ -361,7 +361,7 @@ QUndoCommand* ShapeGraphicsItemPropertiesWidget::associatedUndo() const
//In mode not live edit, only one shape can be edited
else if (m_shapes_list.isEmpty())
{
QUndoCommand *undo = new QUndoCommand(tr("Modifier les propriétés d'une forme simple"));
QUndoCommand *undo = new QUndoCommand(tr("Modify the properties of a simple form"));
QPen old_pen = m_shape->pen();
QPen new_pen = old_pen;
@@ -430,7 +430,7 @@ void ShapeGraphicsItemPropertiesWidget::updateUi()
if (m_shape->shapeType() == QetShapeItem::Line)
{
ui->m_geom_dim1_label->setText(tr("Longueur"));
ui->m_geom_dim1_label->setText(tr("Length"));
ui->m_geom_dim1_dsb->setValue(m_shape->line().length());
ui->m_geom_dim2_label->setVisible(false);
ui->m_geom_dim2_dsb->setVisible(false);
@@ -439,8 +439,8 @@ void ShapeGraphicsItemPropertiesWidget::updateUi()
{
const QRectF r = m_shape->rect().normalized();
const bool isEllipse = (m_shape->shapeType() == QetShapeItem::Ellipse);
ui->m_geom_dim1_label->setText(isEllipse ? tr("Rayon X") : tr("Largeur"));
ui->m_geom_dim2_label->setText(isEllipse ? tr("Rayon Y") : tr("Hauteur"));
ui->m_geom_dim1_label->setText(isEllipse ? tr("X radius") : tr("Width"));
ui->m_geom_dim2_label->setText(isEllipse ? tr("Y radius") : tr("Height"));
ui->m_geom_dim1_dsb->setValue(isEllipse ? r.width() / 2.0 : r.width());
ui->m_geom_dim2_dsb->setValue(isEllipse ? r.height() / 2.0 : r.height());
ui->m_geom_dim2_label->setVisible(true);
@@ -47,7 +47,7 @@ class ShapeGraphicsItemPropertiesWidget : public PropertiesEditorWidget
void reset() override;
public:
QUndoCommand* associatedUndo() const override;
QString title() const override { return tr("Éditer les propriétés d'une primitive "); }
QString title() const override { return tr("Edit the properties of a primitive "); }
void updateUi() override;
bool setLiveEdit(bool live_edit) override;
+28 -28
View File
@@ -17,13 +17,13 @@
<item>
<widget class="QGroupBox" name="m_geometry_gb">
<property name="title">
<string>Géométrie</string>
<string>Geometry</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="m_geom_dim1_label">
<property name="text">
<string>Largeur</string>
<string>Width</string>
</property>
</widget>
</item>
@@ -43,7 +43,7 @@
<item row="1" column="0">
<widget class="QLabel" name="m_geom_dim2_label">
<property name="text">
<string>Hauteur</string>
<string>Height</string>
</property>
</widget>
</item>
@@ -89,7 +89,7 @@
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Trait</string>
<string>Line</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
@@ -102,14 +102,14 @@
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Épaisseur</string>
<string>Thickness</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Couleur</string>
<string>Color</string>
</property>
</widget>
</item>
@@ -159,27 +159,27 @@
</item>
<item>
<property name="text">
<string>Tiret</string>
<string>Dashed</string>
</property>
</item>
<item>
<property name="text">
<string>Pointillé</string>
<string>Dotted</string>
</property>
</item>
<item>
<property name="text">
<string>Traits et points</string>
<string>Dots and dashes</string>
</property>
</item>
<item>
<property name="text">
<string>Traits points points</string>
<string>Dash dot dot</string>
</property>
</item>
<item>
<property name="text">
<string>Tiret custom</string>
<string>Custom Dash Line</string>
</property>
</item>
</widget>
@@ -190,54 +190,54 @@
<item>
<widget class="QGroupBox" name="m_filling_gb">
<property name="title">
<string>Remplissage</string>
<string>Filling</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QComboBox" name="m_brush_style_cb">
<item>
<property name="text">
<string>Aucun</string>
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Plein</string>
<string>Solid line</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 1</string>
<string>Dense 1</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 2</string>
<string>Dense 2</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 3</string>
<string>Dense 3</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 4</string>
<string>Dense 4</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 5</string>
<string>Dense 5</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 6</string>
<string>Dense 6</string>
</property>
</item>
<item>
<property name="text">
<string>Densité 7</string>
<string>Dense 7</string>
</property>
</item>
<item>
@@ -252,22 +252,22 @@
</item>
<item>
<property name="text">
<string>Croix</string>
<string>Cross</string>
</property>
</item>
<item>
<property name="text">
<string>Diagonal arrière</string>
<string>BDiag</string>
</property>
</item>
<item>
<property name="text">
<string>Diagonal avant</string>
<string>FDiag</string>
</property>
</item>
<item>
<property name="text">
<string>Diagonal en croix</string>
<string>CrossDiag</string>
</property>
</item>
</widget>
@@ -282,7 +282,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Couleur</string>
<string>Color</string>
</property>
</widget>
</item>
@@ -295,14 +295,14 @@
<item>
<widget class="QCheckBox" name="m_lock_pos_cb">
<property name="text">
<string>Verrouiller la position</string>
<string>Lock Position</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_close_polygon">
<property name="text">
<string>Forme fermée</string>
<string>Closed shape</string>
</property>
</widget>
</item>
+11 -11
View File
@@ -11,13 +11,13 @@
</rect>
</property>
<property name="windowTitle">
<string>Numérotation automatique des bornes</string>
<string>Automatic numbering of terminals</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_description">
<property name="text">
<string>Cette fonction numérote les bornes du projet selon leur position. Les bornes vides ou verrouillées sont ignorées.Le marquage des bornes doit être configuré au préalable comme suit : '-X:AB'. La partie avant les deux-points (le bornier) peut être nommée au choix. 'AB' peut être composé de chiffres ou de lettres."</string>
<string>This function numbers the terminals in the project according to their position. Empty or locked terminals are ignored. Terminal labelling must be configured in advance as follows : '-X:AB'. The part before the colon (the terminal block) can be named as desired. 'AB' can consist of numbers or letters."</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -31,13 +31,13 @@
<item>
<widget class="QGroupBox" name="groupBox_axis">
<property name="title">
<string>Priorité des axes</string>
<string>Priority of axes</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QRadioButton" name="rb_priority_x">
<property name="text">
<string>Priorité à l'axe X (horizontal)</string>
<string>Priority to the X-axis (horizontal)</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -47,7 +47,7 @@
<item>
<widget class="QRadioButton" name="rb_priority_y">
<property name="text">
<string>Priorité à l'axe Y (vertical)</string>
<string>Priority to the Y-axis (vertical)</string>
</property>
</widget>
</item>
@@ -57,13 +57,13 @@
<item>
<widget class="QGroupBox" name="groupBox_type">
<property name="title">
<string>Type de numérotation</string>
<string>Type of numbering</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QRadioButton" name="rb_type_num">
<property name="text">
<string>Numérique uniquement (1, 2, 3...)</string>
<string>Numeric only (1, 2, 3...)</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -73,7 +73,7 @@
<item>
<widget class="QRadioButton" name="rb_type_alpha">
<property name="text">
<string>Alphanumérique (A, B, C... 1, 2...)</string>
<string>Alphanumeric (A, B, C... 1, 2...)</string>
</property>
</widget>
</item>
@@ -98,7 +98,7 @@
<item>
<widget class="QCheckBox" name="cb_also_alpha">
<property name="text">
<string>Numéroter également les lettres</string>
<string>Number the letters as well</string>
</property>
<property name="enabled">
<bool>false</bool>
@@ -115,13 +115,13 @@
<item>
<widget class="QGroupBox" name="groupBox_strips">
<property name="title">
<string>Borniers</string>
<string>Terminal blocks</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_strips">
<item>
<widget class="QLabel" name="label_strips_description">
<property name="text">
<string>Décochez les borniers dont la numérotation doit être exclue</string>
<string>Uncheck the terminal blocks whose numbering is to be excluded</string>
</property>
<property name="wordWrap">
<bool>true</bool>
+3 -3
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Logiciel tiers requis</string>
<string>Third party software required</string>
</property>
<property name="modal">
<bool>true</bool>
@@ -30,7 +30,7 @@
<item row="1" column="0">
<widget class="QPushButton" name="m_download_pb">
<property name="text">
<string>Télechargement</string>
<string>Download</string>
</property>
<property name="icon">
<iconset theme="edit-download"/>
@@ -40,7 +40,7 @@
<item row="1" column="1">
<widget class="QPushButton" name="m_install_dir_pb">
<property name="text">
<string>Dossier installation</string>
<string>Installation folder</string>
</property>
<property name="icon">
<iconset theme="folder-open"/>
+6 -6
View File
@@ -232,7 +232,7 @@ TitleBlockProperties TitleBlockPropertiesWidget::properties() const
//was set unless the user picked something else.
if (!m_auto_page_num_picked)
prop.auto_page_num = m_auto_page_num;
else if (ui->auto_page_cb->currentText() != tr("Créer un Folio Numérotation Auto"))
else if (ui->auto_page_cb->currentText() != tr("Create an auto sheet numbering"))
prop.auto_page_num = ui->auto_page_cb->currentText();
return prop;
@@ -388,8 +388,8 @@ void TitleBlockPropertiesWidget::initDialog(
setTitleBlockTemplatesVisible(false);
ui -> m_current_date_rb -> setVisible(current_date);
m_tbt_edit = new QAction(tr("Éditer ce modèle", "menu entry"), this);
m_tbt_duplicate = new QAction(tr("Dupliquer et éditer ce modèle",
m_tbt_edit = new QAction(tr("Edit this template", "menu entry"), this);
m_tbt_duplicate = new QAction(tr("Duplicate and edit this template",
"menu entry"),
this);
@@ -425,7 +425,7 @@ void TitleBlockPropertiesWidget::initDialog(
keys_2 = project -> folioAutoNum().keys();
foreach (QString str, keys_2) { ui -> auto_page_cb -> addItem(str); }
if (ui->auto_page_cb->currentText()==nullptr)
ui->auto_page_cb->addItem(tr("Créer un Folio Numérotation Auto"));
ui->auto_page_cb->addItem(tr("Create an auto sheet numbering"));
//activated() is only emitted for a choice the user makes
connect(ui->auto_page_cb, qOverload<int>(&QComboBox::activated),
this, [this]() { m_auto_page_num_picked = true; });
@@ -486,7 +486,7 @@ void TitleBlockPropertiesWidget::updateTemplateList()
//Add the default title block
m_map_index_to_collection_type.clear();
m_map_index_to_collection_type.append(QET::QetCollection::Common);
ui -> m_tbt_cb -> addItem(QET::Icons::QETLogo, tr("Modèle par défaut"));
ui -> m_tbt_cb -> addItem(QET::Icons::QETLogo, tr("Default template"));
//Add every title block stored in m_tbt_collection_list
foreach (TitleBlockTemplatesCollection *tbt_c, m_tbt_collection_list)
@@ -602,7 +602,7 @@ void TitleBlockPropertiesWidget::on_m_date_now_pb_clicked()
void TitleBlockPropertiesWidget::on_m_edit_autofolionum_pb_clicked()
{
emit openAutoNumFolioEditor(ui->auto_page_cb->currentText());
if (ui->auto_page_cb->currentText()!=tr("Créer un Folio Numérotation Auto"))
if (ui->auto_page_cb->currentText()!=tr("Create an auto sheet numbering"))
{
//still to implement: load current auto folio num settings
}
+31 -32
View File
@@ -29,7 +29,7 @@
<item>
<widget class="QGroupBox" name="m_tbt_gb">
<property name="title">
<string>Informations des cartouches</string>
<string>Title block information</string>
</property>
<property name="checkable">
<bool>false</bool>
@@ -46,7 +46,7 @@
<item>
<widget class="QLabel" name="m_tbt_label">
<property name="text">
<string>Modèle :</string>
<string>Template:</string>
</property>
</widget>
</item>
@@ -81,7 +81,7 @@
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Affiche le cartouche en bas (horizontalement) ou à droite (verticalement) du folio.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt; &lt;head/&gt;&lt;body&gt;&lt;p&gt;Sets the title block at the bottom (horizontal) or right (vertically) of the sheet.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="iconSize">
<size>
@@ -162,7 +162,7 @@
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Principales</string>
<string>Main</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
@@ -170,7 +170,7 @@
<item row="3" column="1">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Date :</string>
<string>Date:</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
@@ -216,63 +216,63 @@
<item row="2" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Auteur :</string>
<string>Author:</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Indice Rev:</string>
<string>Rev index:</string>
</property>
</widget>
</item>
<item row="8" column="3">
<widget class="QLineEdit" name="m_loc">
<property name="toolTip">
<string>Disponible en tant que %locmach pour les modèles de cartouches</string>
<string>Available as variable %locmach for title blocks</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QLineEdit" name="m_plant">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Disponible en tant que %plant pour les modèles de cartouches&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Available as% plant for title block templates&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLineEdit" name="m_title_le">
<property name="toolTip">
<string>Disponible en tant que %title pour les modèles de cartouches</string>
<string>Available as variable %title for title blocks</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Folio :</string>
<string>Sheet:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Fichier :</string>
<string>File:</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLineEdit" name="m_author_le">
<property name="toolTip">
<string>Disponible en tant que %author pour les modèles de cartouches</string>
<string>Available as variable %author for title blocks</string>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QLineEdit" name="m_file_le">
<property name="toolTip">
<string>Disponible en tant que %filename pour les modèles de cartouches</string>
<string>Available as variable %filename for title blocks</string>
</property>
</widget>
</item>
@@ -281,21 +281,21 @@
<item row="0" column="0">
<widget class="QRadioButton" name="m_no_date_rb">
<property name="text">
<string>Pas de date</string>
<string>No date</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="m_current_date_rb">
<property name="text">
<string>Date courante</string>
<string>Current date</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="m_date_now_pb">
<property name="toolTip">
<string>Appliquer la date actuelle</string>
<string>Set to current date</string>
</property>
<property name="text">
<string/>
@@ -308,7 +308,7 @@
<item row="2" column="1">
<widget class="QDateEdit" name="m_date_edit">
<property name="toolTip">
<string>Disponible en tant que %date pour les modèles de cartouches</string>
<string>Available as variable %date for title blocks</string>
</property>
<property name="frame">
<bool>true</bool>
@@ -321,7 +321,7 @@
<item row="2" column="0">
<widget class="QRadioButton" name="m_fixed_date_rb">
<property name="text">
<string>Date fixe :</string>
<string>Fixed date:</string>
</property>
</widget>
</item>
@@ -330,18 +330,18 @@
<item row="5" column="3">
<widget class="QLineEdit" name="m_folio_le">
<property name="toolTip">
<string>Disponible en tant que %folio pour les modèles de cartouches
Les variables suivantes sont utilisables :
- %id : numéro du folio courant dans le projet
- %total : nombre total de folios dans le projet
- %autonum : Folio Auto Numeration</string>
<string>Available as % folio for titleblock models
The following variables can be used:
-%id: current number of sheets in the project
-%total: total number of sheets in the project
-%autonum: sheet auto numbering</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Titre :</string>
<string>Title:</string>
</property>
</widget>
</item>
@@ -354,28 +354,28 @@ Les variables suivantes sont utilisables :
</sizepolicy>
</property>
<property name="text">
<string>Page Num:</string>
<string>Page no.:</string>
</property>
</widget>
</item>
<item row="9" column="3">
<widget class="QLineEdit" name="m_indice">
<property name="toolTip">
<string>Disponible en tant que %indexrev pour les modèles de cartouches</string>
<string>Available as variable %indexrev for title blocks</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Installation :</string>
<string>Plant:</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Localisation:</string>
<string>Location :</string>
</property>
</widget>
</item>
@@ -398,7 +398,7 @@ Les variables suivantes sont utilisables :
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Personnalisées</string>
<string>Custom</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -406,8 +406,7 @@ Les variables suivantes sont utilisables :
<item>
<widget class="QLabel" name="label_8">
<property name="text">
<string>Vous pouvez définir ici vos propres associations noms/valeurs pour que le cartouche en tienne compte. Exemple :
associer le nom &quot;volta&quot; et la valeur &quot;1745&quot; remplacera %{volta} par 1745 dans le cartouche.</string>
<string>You may define here your own name/value associations so the title block takes them into account. E.g. associating the name "volta" with the value "1745" will replace %{volta} by 1745 within the title block.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
+11 -11
View File
@@ -37,7 +37,7 @@ WiringListDialog::WiringListDialog(QETProject *project, QWidget *parent) :
QDialog(parent),
m_project(project)
{
setWindowTitle(tr("Liste de câblage", "window title"));
setWindowTitle(tr("Wiring list", "window title"));
resize(900, 500);
auto *layout = new QVBoxLayout(this);
@@ -63,12 +63,12 @@ WiringListDialog::WiringListDialog(QETProject *project, QWidget *parent) :
" wire_number"),
m_project->dataBase()->database());
model->setHeaderData(0, Qt::Horizontal, tr("Fil", "column title"));
model->setHeaderData(1, Qt::Horizontal, tr("Composant 1", "column title"));
model->setHeaderData(2, Qt::Horizontal, tr("Borne 1", "column title"));
model->setHeaderData(3, Qt::Horizontal, tr("Composant 2", "column title"));
model->setHeaderData(4, Qt::Horizontal, tr("Borne 2", "column title"));
model->setHeaderData(5, Qt::Horizontal, tr("Folio", "column title"));
model->setHeaderData(0, Qt::Horizontal, tr("Wire", "column title"));
model->setHeaderData(1, Qt::Horizontal, tr("Component 1", "column title"));
model->setHeaderData(2, Qt::Horizontal, tr("Terminal 1", "column title"));
model->setHeaderData(3, Qt::Horizontal, tr("Component 2", "column title"));
model->setHeaderData(4, Qt::Horizontal, tr("Terminal 2", "column title"));
model->setHeaderData(5, Qt::Horizontal, tr("Sheet", "column title"));
const int excluded = m_project->dataBase()->excludedConductorCount();
@@ -89,14 +89,14 @@ WiringListDialog::WiringListDialog(QETProject *project, QWidget *parent) :
//identity: what is left is a conductor whose endpoint has no
//parent element at all. Still worth saying out loud rather than
//presenting a short list as if it were complete.
summary->setText(tr("%n conducteur(s) listé(s).", "wiring list summary", listed)
summary->setText(tr("%n conductors listed.", "wiring list summary", listed)
% QStringLiteral(" ")
% tr("%n conducteur(s) exclu(s) : une extrémité n'est rattachée"
" à aucun élément.",
% tr("%n conductors excluded: one end is not attached to any "
"element.",
"wiring list exclusion warning", excluded));
}
else {
summary->setText(tr("%n conducteur(s) listé(s).", "wiring list summary", listed));
summary->setText(tr("%n conductors listed.", "wiring list summary", listed));
}
layout->addWidget(summary);
+6 -8
View File
@@ -34,14 +34,12 @@ void WiringRulesWarning::show(QWidget *parent)
{
QMessageBox::warning(
parent,
QApplication::translate("WiringRulesWarning", "Avertissement"),
QApplication::translate("WiringRulesWarning", "Warning"),
QApplication::translate(
"WiringRulesWarning",
"<b>Les règles de conducteurs par borne sont une fonction expérimentale.</b>"
"<br><br>Elles comptent les conducteurs tels que QElectroTech les représente "
"aujourd'hui. Elles pourraient changer, et vos réglages devoir être refaits, "
"si les fils et les conducteurs deviennent des objets distincts dans une "
"version future."
"<br><br>Toutes ces règles peuvent être désactivées dans Configurer "
"QElectroTech > Général."));
"<b>The conductors-per-terminal rules are an experimental "
"feature.</b><br><br>They count conductors as QElectroTech represents them "
"today. They may change, and your settings may need redoing, if wires and "
"conductors become separate objects in a future version.<br><br>All these "
"rules can be turned off in Configure QElectroTech > General."));
}
+7 -7
View File
@@ -100,20 +100,20 @@ void XRefPropertiesWidget::setReadOnly(bool ro) {
*/
void XRefPropertiesWidget::buildUi()
{
ui -> m_type_cb -> addItem(tr("Bobine"), "coil");
ui -> m_type_cb -> addItem(tr("Organe de protection"), "protection");
ui -> m_type_cb -> addItem(tr("Commutateur / bouton"), "commutator");
ui -> m_type_cb -> addItem(tr("Automate (PLC)"), "plc");
ui -> m_type_cb -> addItem(tr("Coil"), "coil");
ui -> m_type_cb -> addItem(tr("Organ of protection"), "protection");
ui -> m_type_cb -> addItem(tr("Switch / button"), "commutator");
ui -> m_type_cb -> addItem(tr("Programmable Logic Controller (PLC)"), "plc");
ui -> m_snap_to_cb -> addItem(tr("En bas de page"), "bottom");
ui -> m_snap_to_cb -> addItem(tr("Sous le label de l'élément"), "label");
ui -> m_snap_to_cb -> addItem(tr("Footer"), "bottom");
ui -> m_snap_to_cb -> addItem(tr("Under the label of the element"), "label");
ui -> m_xrefpos_cb -> addItem(tr("Top"),"top");
ui -> m_xrefpos_cb -> addItem(tr("Bottom"),"bottom");
ui -> m_xrefpos_cb -> addItem(tr("Left"),"left");
ui -> m_xrefpos_cb -> addItem(tr("Right"),"right");
ui -> m_xrefpos_cb -> addItem(tr("Text alignment"),"alignment");
ui -> m_xrefpos_cb -> addItem(tr("Champ de texte"),"text_field");
ui -> m_xrefpos_cb -> addItem(tr("Text field"),"text_field");
m_previous_type_index = ui -> m_type_cb -> currentIndex();
}
+26 -26
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
<string>Properties cross references</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -19,7 +19,7 @@
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Type :</string>
<string>Type:</string>
</property>
</widget>
</item>
@@ -31,7 +31,7 @@
<item>
<widget class="QGroupBox" name="m_display_gb">
<property name="title">
<string>Représentation:</string>
<string>Representation:</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
@@ -39,7 +39,7 @@
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Positionner :</string>
<string>Positioning :</string>
</property>
</widget>
</item>
@@ -93,10 +93,10 @@
<item>
<widget class="QCheckBox" name="m_stack_overlapping_cb">
<property name="toolTip">
<string>Quand les textes de deux références croisées se chevauchent, celle de l'élément le plus haut est placée au-dessus de l'autre.</string>
<string>When the texts of two cross-references overlap, the one of the higher element is placed above the other.</string>
</property>
<property name="text">
<string>Empiler les références dont les textes se chevauchent</string>
<string>Stack references whose texts overlap</string>
</property>
</widget>
</item>
@@ -157,31 +157,31 @@
<item>
<widget class="QCheckBox" name="m_show_terminal_name_cb">
<property name="text">
<string>Afficher les numéros de bornes dans les Xrefs</string>
<string>Display terminal numbers in Xrefs</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_show_all_slaves_cb">
<property name="toolTip">
<string>Afficher dans le peigne de contacts tous les contacts esclaves définis par le maître, même ceux qui ne sont pas encore reliés, dans l'ordre défini par le maître</string>
<string>Show in the contact comb all slave contacts defined by the master, even those not yet connected, in the order defined by the master</string>
</property>
<property name="text">
<string>Afficher tous les esclaves définis par le maître</string>
<string>Show all slaves defined by the master</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="m_display_has_contacts_rb">
<property name="text">
<string>Affiche&amp;r en contacts</string>
<string>&amp;View contacts</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="m_display_has_cross_rb">
<property name="text">
<string>Afficher en croix</string>
<string>View cross</string>
</property>
</widget>
</item>
@@ -194,7 +194,7 @@
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Label des références croisées</string>
<string>Label cross reference</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
@@ -214,7 +214,7 @@
</size>
</property>
<property name="text">
<string>Maitre</string>
<string>Master</string>
</property>
</widget>
</item>
@@ -247,7 +247,7 @@
</size>
</property>
<property name="text">
<string>Esclave</string>
<string>Slave</string>
</property>
<property name="scaledContents">
<bool>false</bool>
@@ -266,13 +266,13 @@
<item>
<widget class="QLabel" name="label_8">
<property name="text">
<string>Créer votre propre texte en vous aidant des variables suivantes :
%f : le numéro de folio
%F: le label de folio
%l : le numéro de ligne
%c : le numéro de colonne
%M: Installation
%LM: Localisation </string>
<string>Create your own text using the following variables:
%f: the sheet number
%F: the sheet label
%l: the row number
%c: the column number
%M: the installation
%LM: the location</string>
</property>
</widget>
</item>
@@ -287,13 +287,13 @@
<item>
<widget class="QGroupBox" name="m_cross_properties_gb">
<property name="title">
<string>Option d'affichage en croix</string>
<string>Option display cross</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="m_show_power_cb">
<property name="text">
<string>Afficher les contacts de puissance dans la croix</string>
<string>Show the power contacts in the cross</string>
</property>
</widget>
</item>
@@ -302,14 +302,14 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Préfixe des contacts de puissance :</string>
<string>Prefix of power contacts :</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Préfixe des contacts temporisés :</string>
<string>Prefix delayed contacts :</string>
</property>
</widget>
</item>
@@ -322,7 +322,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Préfixe des contacts inverseurs :</string>
<string>Prefix changeover contacts :</string>
</property>
</widget>
</item>