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
+8 -9
View File
@@ -716,16 +716,16 @@ bool projectDataBase::isReadOnlySelect(const QString &query, QString *error)
if (trimmed.isEmpty()) {
if (error) {
*error = projectDataBase::tr("La requête est vide.");
*error = projectDataBase::tr("The query is empty.");
}
return false;
}
if (trimmed.contains(QLatin1Char(';'))) {
if (error) {
*error = projectDataBase::tr("Une seule requête SELECT est autorisée"
" (le caractère ';' ne peut apparaître"
" qu'à la toute fin).");
*error = projectDataBase::tr("Only a single SELECT query is allowed "
"(the ';' character may only appear at "
"the very end).");
}
return false;
}
@@ -734,9 +734,8 @@ bool projectDataBase::isReadOnlySelect(const QString &query, QString *error)
const QString first_word = (first_space == -1 ? trimmed : trimmed.left(first_space)).toUpper();
if (first_word != QLatin1String("SELECT") && first_word != QLatin1String("WITH")) {
if (error) {
*error = projectDataBase::tr("Seules les requêtes en lecture seule"
" (SELECT ou WITH ... SELECT) sont"
" autorisées.");
*error = projectDataBase::tr("Only read-only queries (SELECT or "
"WITH ... SELECT) are allowed.");
}
return false;
}
@@ -2374,14 +2373,14 @@ void projectDataBase::exportDb(projectDataBase *db,
{
auto caption_ = caption;
if (caption_.isEmpty()) {
caption_ = tr("Exporter la base de données interne du projet");
caption_ = tr("Export the internal project database");
}
auto dir_ = dir;
if(dir_.isEmpty()) {
dir_ = db->project()->filePath();
if (dir_.isEmpty()) {
dir_ = QETApp::documentDir() % "/" % tr("sans_nom") % ".sqlite";
dir_ = QETApp::documentDir() % "/" % tr("untitled") % ".sqlite";
} else {
dir_.remove(".qet");
dir_.append(".sqlite");
+5 -5
View File
@@ -78,8 +78,8 @@ QSqlQuery execReadOnly(const QSqlDatabase &db, const QString &query, QString *er
if (!QSqlQuery(db).exec(QStringLiteral("PRAGMA query_only = ON"))) {
if (error) {
*error = QCoreApplication::translate("QETSql",
"Impossible de vérifier la requête : "
"la base de données ne peut pas être mise en lecture seule.");
"Unable to verify the query: the database cannot be set to "
"read-only.");
}
return QSqlQuery(db);
}
@@ -103,11 +103,11 @@ QSqlQuery execReadOnly(const QSqlDatabase &db, const QString &query, QString *er
// SQLITE_READONLY is 8; extended codes keep it in the low byte.
if ((result.lastError().nativeErrorCode().toInt() & 0xff) == 8) {
*error = QCoreApplication::translate("QETSql",
"Seules les requêtes en lecture seule sont autorisées : "
"cette requête modifierait la base de données.");
"Only read-only queries are allowed: this query would "
"modify the database.");
} else {
*error = QCoreApplication::translate("QETSql",
"Requête SQL invalide : %1")
"Invalid SQL query: %1")
.arg(result.lastError().databaseText());
}
}
+18 -18
View File
@@ -43,9 +43,9 @@ ElementQueryWidget::ElementQueryWidget(QWidget *parent) :
ui->setupUi(this);
m_export_info.insert("position", tr("Position"));
m_export_info.insert("title", tr("Titre du folio"));
m_export_info.insert("diagram_position", tr("Position du folio"));
m_export_info.insert("folio", tr("Numéro du folio"));
m_export_info.insert("title", tr("Sheet title"));
m_export_info.insert("diagram_position", tr("Sheet position"));
m_export_info.insert("folio", tr("Sheet number"));
m_button_group.setExclusive(false);
m_button_group.addButton(ui->m_all_cb, 0);
@@ -812,27 +812,27 @@ void ElementQueryWidget::on_m_export_reports_pb_clicked()
{
QFile source(QETApp::configDir() % "/nomenclature.json");
if (!source.open(QFile::ReadOnly)) {
QMessageBox::information(this, tr("Exporter"), tr("Aucun rapport enregistré à exporter."));
QMessageBox::information(this, tr("Export"), tr("No saved report to export."));
return;
}
const auto content = source.readAll();
source.close();
if (QJsonDocument::fromJson(content).object().isEmpty()) {
QMessageBox::information(this, tr("Exporter"), tr("Aucun rapport enregistré à exporter."));
QMessageBox::information(this, tr("Export"), tr("No saved report to export."));
return;
}
const QString file_path = QFileDialog::getSaveFileName(
this, tr("Exporter les rapports"), QStringLiteral("rapports_qet.json"),
tr("Fichiers JSON (*.json)"));
this, tr("Export reports"), QStringLiteral("rapports_qet.json"),
tr("JSON files (*.json)"));
if (file_path.isEmpty()) {
return;
}
QFile dest(file_path);
if (!dest.open(QFile::WriteOnly) || dest.write(content) == -1) {
QMessageBox::critical(this, tr("Erreur"), tr("Impossible d'écrire dans %1.").arg(file_path));
QMessageBox::critical(this, tr("Error"), tr("Unable to write to %1.").arg(file_path));
}
}
@@ -845,14 +845,14 @@ void ElementQueryWidget::on_m_export_reports_pb_clicked()
void ElementQueryWidget::on_m_import_reports_pb_clicked()
{
const QString file_path = QFileDialog::getOpenFileName(
this, tr("Importer des rapports"), QString(), tr("Fichiers JSON (*.json)"));
this, tr("Import reports"), QString(), tr("JSON files (*.json)"));
if (file_path.isEmpty()) {
return;
}
QFile source(file_path);
if (!source.open(QFile::ReadOnly)) {
QMessageBox::critical(this, tr("Erreur"), tr("Impossible de lire %1.").arg(file_path));
QMessageBox::critical(this, tr("Error"), tr("Unable to read %1.").arg(file_path));
return;
}
@@ -862,14 +862,14 @@ void ElementQueryWidget::on_m_import_reports_pb_clicked()
if (parse_error.error != QJsonParseError::NoError || !incoming_doc.isObject()) {
QMessageBox::critical(
this, tr("Erreur"),
tr("%1 ne contient pas des rapports QElectroTech valides.").arg(file_path));
this, tr("Error"),
tr("%1 does not contain valid QElectroTech reports.").arg(file_path));
return;
}
const auto incoming = incoming_doc.object();
if (incoming.isEmpty()) {
QMessageBox::information(this, tr("Importer"), tr("Ce fichier ne contient aucun rapport."));
QMessageBox::information(this, tr("Import"), tr("This file does not contain any report."));
return;
}
@@ -886,8 +886,8 @@ void ElementQueryWidget::on_m_import_reports_pb_clicked()
if (existing.contains(it.key()))
{
const auto answer = QMessageBox::question(
this, tr("Rapport déjà existant"),
tr("Un rapport nommé « %1 » existe déjà. Le remplacer ?").arg(it.key()),
this, tr("Report already exists"),
tr("A report named \"%1\" already exists. Replace it?").arg(it.key()),
QMessageBox::Yes | QMessageBox::No);
if (answer != QMessageBox::Yes) {
++skipped;
@@ -905,7 +905,7 @@ void ElementQueryWidget::on_m_import_reports_pb_clicked()
}
else
{
QMessageBox::critical(this, tr("Erreur"), tr("Impossible d'écrire la configuration locale."));
QMessageBox::critical(this, tr("Error"), tr("Unable to write the local configuration."));
return;
}
@@ -913,8 +913,8 @@ void ElementQueryWidget::on_m_import_reports_pb_clicked()
fillSavedQuery();
QMessageBox::information(
this, tr("Importer"),
tr("%1 rapport(s) importé(s), %2 ignoré(s).").arg(imported).arg(skipped));
this, tr("Import"),
tr("%1 report(s) imported, %2 skipped.").arg(imported).arg(skipped));
}
void ElementQueryWidget::on_m_choosen_list_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
+32 -32
View File
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
<string comment="fr: Form">Export</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
@@ -32,7 +32,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Informations disponibles</string>
<string>Available information</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -42,7 +42,7 @@
<item row="0" column="2">
<widget class="QLabel" name="label">
<property name="text">
<string>Informations à exporter</string>
<string>Information to export</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -82,7 +82,7 @@
<item>
<widget class="QPushButton" name="m_up_pb">
<property name="toolTip">
<string>Monter la sélection</string>
<string>go up the selection</string>
</property>
<property name="text">
<string/>
@@ -98,7 +98,7 @@
<item>
<widget class="QPushButton" name="m_add_pb">
<property name="toolTip">
<string>Ajouter la sélection</string>
<string>Add selection</string>
</property>
<property name="text">
<string/>
@@ -111,7 +111,7 @@
<item>
<widget class="QPushButton" name="m_remove_pb">
<property name="toolTip">
<string>Supprimer la sélection</string>
<string>Delete selection</string>
</property>
<property name="text">
<string/>
@@ -124,7 +124,7 @@
<item>
<widget class="QPushButton" name="m_down_pb">
<property name="toolTip">
<string>Descendre la sélection</string>
<string>go down the selection</string>
</property>
<property name="text">
<string/>
@@ -166,37 +166,37 @@
<widget class="QComboBox" name="m_filter_type_cb">
<item>
<property name="text">
<string>Pas de filtre</string>
<string>No filter</string>
</property>
</item>
<item>
<property name="text">
<string>N'est pas vide</string>
<string>Is not empty</string>
</property>
</item>
<item>
<property name="text">
<string>Est vide</string>
<string>Is empty</string>
</property>
</item>
<item>
<property name="text">
<string>Contient</string>
<string>Contain</string>
</property>
</item>
<item>
<property name="text">
<string>Ne contient pas</string>
<string>Does not contain</string>
</property>
</item>
<item>
<property name="text">
<string>Est égal à</string>
<string>Is equal to</string>
</property>
</item>
<item>
<property name="text">
<string>N'est pas égale à</string>
<string>Is not equal to</string>
</property>
</item>
</widget>
@@ -207,7 +207,7 @@
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Filtre :</string>
<string>Filter :</string>
</property>
</widget>
</item>
@@ -232,7 +232,7 @@
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Type d'éléments</string>
<string>Type of elements</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
@@ -241,7 +241,7 @@
<item row="0" column="0">
<widget class="QCheckBox" name="m_all_cb">
<property name="text">
<string>Tous</string>
<string>all</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -261,7 +261,7 @@
<item row="1" column="0">
<widget class="QCheckBox" name="m_terminal_cb">
<property name="text">
<string>Borniers</string>
<string>Terminal blocks</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -271,7 +271,7 @@
<item row="1" column="1">
<widget class="QCheckBox" name="m_protection_cb">
<property name="text">
<string>Organes de protection</string>
<string>Protection devices</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -281,7 +281,7 @@
<item row="2" column="0">
<widget class="QCheckBox" name="m_coil_cb">
<property name="text">
<string>Contacteurs et relais</string>
<string>Contactors and relays</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -291,7 +291,7 @@
<item row="2" column="1">
<widget class="QCheckBox" name="m_thumbnail_cb">
<property name="text">
<string>Vignettes</string>
<string>Thumbnails</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -301,7 +301,7 @@
<item row="3" column="0">
<widget class="QCheckBox" name="m_button_cb">
<property name="text">
<string>Boutons et commutateurs</string>
<string>Buttons and switches</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -311,7 +311,7 @@
<item row="3" column="1">
<widget class="QCheckBox" name="m_plc_cb">
<property name="text">
<string>Automates (MAE/SPS)</string>
<string>PLCs (MAE/SPS)</string>
</property>
<property name="checked">
<bool>true</bool>
@@ -321,7 +321,7 @@
<item row="4" column="0">
<widget class="QCheckBox" name="m_slave_cb">
<property name="text">
<string>Contacts esclaves</string>
<string>Slave contacts</string>
</property>
<property name="checked">
<bool>false</bool>
@@ -353,7 +353,7 @@
<bool>true</bool>
</property>
<property name="toolTip">
<string>Ouvrir la configuration sélectionné</string>
<string>Open the selected configuration</string>
</property>
<property name="text">
<string/>
@@ -379,7 +379,7 @@
<bool>false</bool>
</property>
<property name="toolTip">
<string>Sauvegarder la configuration actuelle</string>
<string>Save the current configuration</string>
</property>
<property name="text">
<string/>
@@ -395,20 +395,20 @@
<item row="2" column="0">
<widget class="QPushButton" name="m_import_reports_pb">
<property name="toolTip">
<string>Importer des rapports depuis un fichier</string>
<string>Import reports from a file</string>
</property>
<property name="text">
<string>Importer...</string>
<string>Import...</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="m_export_reports_pb">
<property name="toolTip">
<string>Exporter tous les rapports enregistrés vers un fichier</string>
<string>Export all saved reports to a file</string>
</property>
<property name="text">
<string>Exporter...</string>
<string>Export...</string>
</property>
</widget>
</item>
@@ -430,7 +430,7 @@
<item>
<widget class="QCheckBox" name="m_edit_sql_query_cb">
<property name="toolTip">
<string>Requête SQL personnalisée</string>
<string>Custom SQL Query</string>
</property>
<property name="text">
<string/>
@@ -440,7 +440,7 @@
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Requête SQL :</string>
<string>SQL request :</string>
</property>
</widget>
</item>
+3 -3
View File
@@ -35,7 +35,7 @@
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Informations disponibles</string>
<string>Available information</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -48,7 +48,7 @@
<item row="0" column="2">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Information à afficher</string>
<string>Information to display</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -154,7 +154,7 @@
<item>
<widget class="QCheckBox" name="m_edit_sql_query_cb">
<property name="text">
<string>Requête SQL :</string>
<string>SQL request :</string>
</property>
</widget>
</item>