Nine messages were never passed through tr(), so every user saw them in
French: the undo entries for grouping and ungrouping terminals, for
editing an arc (3), an ellipse, a rectangle and a PLC table in the
element editor, and the error box when integrating a title block
template fails. They are now wrapped, text unchanged.
qet_en.ts also lacked English for 63 messages added since the last
translations update (Customize dialog, mouse gestures, toolbar contents,
mirror, element scale, paste element information, paper format).
update_translations was run on qet_en.ts with lupdate's guessing
heuristics off, then the 72 new entries were translated. Most of the
diff is lupdate refreshing line numbers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lupdate over sources/ adds the 164 strings merged after the last
translations update (da39ec1c8) and revives 3 entries it had wrongly
marked vanished (the issue #1366 describes for English); the mirror
script then fills the new ones. qet_fr.qm: 3792 finished, 0 unfinished,
0 null records.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The strings in the code are French and serve as both translation key
and displayed text. lang/qet_fr.ts was almost empty: 3425 messages and
22 plural messages had no translation, so lrelease compiled them as
null-string records (3469 in qet_fr.qm) and the French UI showed the
code text through QTranslator's null fallback. Correcting French
wording therefore meant changing the key, which orphans the translation
of that string in all 33 other language files; the "Élement" typo fix
needed a key rename in 34 files for one accent.
This copies every empty French entry's source text into its own
translation, so qet_fr.qm is complete (514 KB, 0 null records, like
the other languages) and French wording can be corrected in the .ts
alone. Translations that already had text (113 French renderings of
English-written sources, 16 identical, 54 plurals) are untouched, as
are the 10 vanished entries. The file is byte-identical outside the
rewritten <translation> elements.
misc/i18n/mirror_source_language.py does the copy and is meant to run
after update_translations; --check exits 1 when a run is needed.
Forgetting it breaks nothing: an empty entry still falls back to the
code text. INSTALL.md section 10 explains the rule and that
-removeidentical must never be added to lrelease. Tests:
misc/i18n/test_mirror_source_language.py with a before/after fixture
pair covering every message class.
No visible change in the application.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The "general" tab of the element properties starts its description with
tr("Élement\n"), missing the second accent. The French UI shows the typo,
and the misspelt string is the translation key in all 34 lang/qet_*.ts
files (and from there was copied into 11 phrase books).
This fixes the source string to "Élément\n" and renames the key in the
34 .ts files so every existing translation stays attached. Without the
.ts change, the next lupdate run would mark the old entry vanished and
add an empty "Élément" entry: lupdate's similar-text heuristic does not
carry the translation over (checked with Qt 6.11 lupdate on copies of
qet_de/pl/en/fr.ts). With the change, lupdate reports the entry as
already existing and keeps the translation. qet_fr.ts also gets the
corrected spelling as its translation.
No behaviour change besides the one character in the label. The phrase
books keep their copy of the typo for now; they are cleaned up with the
other phrase-book corrections.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Four strings added on this branch rendered "maître" as "nadrzędny",
following the rest of the file. A Polish reviewer confirmed that the
phrase book's "Element główny" is the right term and "nadrzędny" is
wrong for a master element. The 14 older entries that use "nadrzędny"
are left for a separate change, so this PR does not rewrite existing
translations.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream added 154 source strings after the last translations update
(da39ec1c8), among them the Toolbars, Shortcuts, Gestures and 3D mouse
pages, DXF block export, the image dark-theme option, text width and
cross-reference stacking. That update had also marked 38 entries vanished
whose strings are still in the code (table properties, text field
properties, database model widget), so lrelease left them out and the
German UI showed French there (the same issue #1366 fixes for English).
lupdate over sources/ revives the 38 with their existing translations and
adds the new strings; the 116 that had no translation are translated with
the terms the file already uses. lupdate's same-text suggestions were
reviewed rather than accepted (e.g. "Grille des textes" had been offered
as "Textübersicht"). Most of the diff is lupdate moving line numbers.
Checked with lrelease (3782 translations, no warning) and the placeholder
check for every changed entry.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream added 154 source strings after the last translations update
(da39ec1c8), among them the Toolbars, Shortcuts, Gestures and 3D mouse
pages, DXF block export, the image dark-theme option, text width and
cross-reference stacking. That update had also marked 38 entries vanished
whose strings are still in the code (table properties, text field
properties, database model widget), so lrelease left them out and the
Polish UI showed French there (the same issue #1366 fixes for English).
lupdate over sources/ revives the 38 with their existing translations and
adds the new strings; the 116 that had no translation are translated with
the terms the file already uses. lupdate's same-text suggestions were
reviewed rather than accepted; the 20 offered for Polish were kept
after review. Most of the diff is lupdate moving line numbers.
Checked with lrelease (3782 translations, no warning) and the placeholder
check for every changed entry.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
qet_de.ts had 407 strings with no German translation (plus 7 plural
entries with only the singular filled), almost all from features merged
in the last two months: auto-numbering pages, script manager, AI
assistant dialog, live server, material list, prefix configuration,
element info widget, fillet/arc tools, alignment and grouping. A German
user saw the French source text in those places.
This fills every empty translation and the missing plural forms, using
the terms the file already uses (Bauteil, Seite, Leiter, Anschluss,
Nummerierung, Schnellzugriffsleiste). Two existing entries were wrong
and are corrected: "Exécuter un script" was translated as "v", and the
spin-box suffix " pas de grille" (grid steps) as " kein Raster".
No source code or file-format change. Checked with lrelease (3630
translations, no warning) and a script that compares source and
translation placeholders (%1, %n) for every changed entry.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
qet_pl.ts had 675 strings with no Polish translation (plus 4 plural
entries with missing forms), almost all from features merged in the last
two months: auto-numbering pages, script manager, AI assistant dialog,
live server, material list, prefix configuration, shortcut bar, element
picker, conductor and background colour buttons, fillet/arc tools,
alignment and grouping. A Polish user saw the French source text in
those places.
This fills every empty translation and the missing plural forms, using
the terms the file already uses (element, arkusz, przewód, zacisk,
numeracja, pasek skrótów). Three existing entries are corrected: the
plural of "%n action(s)" contained the placeholder "niepewne"
(uncertain) and an empty third form, the PDF page count had only its
first form, and "Borne" was translated as "Terminal" twice while the
rest of the file uses "Zacisk".
No source code or file-format change. Checked with lrelease (3630
translations, no warning) and a script that compares source and
translation placeholders (%1, %n) for every changed entry.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
lupdate over sources/ finds 98 new source texts. 41 are new and are
translated here: the Toolbars settings page, the new Shortcuts page
controls (category filter, search by key, Menu column, copy list), the
Edit > Selection submenu, DXF block export options, cross-reference
stacking, picture dark-theme adaptation and text width.
The other 57 were already translated but marked vanished by the
4 October translations update (da39ec1c8), so lrelease left them out
and these screens showed French in the English interface: the 3D mouse
settings page, the table properties editor and the text field
properties. They come back with their existing English.
lrelease: 3737 finished, 0 unfinished.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Slave contacts, Leave out junctions and its tooltip; the locations of the
entries after them in the two .ui files moved down accordingly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lupdate (run on qet_en.ts only) found strings added since the last
update that the English interface showed in French:
- wires per terminal (#1272, #1273): the rules in Settings > General
and Project properties, the experimental-feature warning, and the
tooltip on a terminal that refuses a conductor (both plural forms);
- Display > Show (#1268): the item kinds and the "%n kinds of items
hidden" status message;
- the 3D mouse settings page.
Terms follow the existing English: conductor (conducteur), terminal
(borne), sheet (folio), sheet reference (renvoi de folio). The menu
"Affichage" is "Display", so its "Afficher" submenu is "Show" rather
than lupdate's guess "Display". lrelease reports 3573 finished,
0 unfinished. Other languages are untouched.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lupdate had added them, but nobody filled them in, so the English
interface showed these strings in French: align, group and ungroup,
arc and fillet, centre on cursor, paste at the original position, wire
hops, the collection prefixes, the materials list, saving and loading
settings, the terminal-name check in the symbol editor, recovery files,
the macro recorder's messages and a few more.
About 30 of them were pre-filled by lupdate from an identical string
elsewhere and left unfinished; some of those guesses were wrong (a
dialog's "Annuler" offered as "Undo"). All are reviewed here. Plural
messages get both English forms. lrelease now reports 3487 finished,
0 unfinished. Other languages are untouched.
Terms follow the existing English: sheet (folio), terminal (borne),
conductor (conducteur), parts list (nomenclature); "liste de matériaux"
is "materials list" so it is not confused with the parts list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ELKpbGxqJd7EFiTUypBtVe
Reported on #1178 after a first try of live mode on macOS:
- The English interface showed the live-mode setting in French. The
strings were in lang/qet_en.ts but untranslated. This fills in English
for live mode, the script buttons, the macro recorder and the Connect
an AI assistant dialog (101 entries); other features' untranslated
English entries are left for their own change.
- The setting is on Configurer QElectroTech > Général > Projets, but the
start-up warning, the MCP server's error and its README all said
"Configurer > Général". All three now name the Projects tab, and the
README and the server name the English menus and buttons.
- qet_live_screenshot grabbed the whole viewport, so a tall window around
a landscape folio came back mostly empty. It now crops to the folio's
frame and title block where they are on screen (the whole viewport if
the folio is scrolled out of sight), and says so in cropped_to_folio.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Issue #935. Changes the English translation only: "folio" becomes "sheet"
in the 171 interface strings that use it, and the "Folio" label of the seven
shipped title blocks becomes "Sheet". Variable names (%folio, %{folio-id},
%{previous-folio-num}, ...) are unchanged, so existing title blocks and
labels keep working. French and the other languages are untouched.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The three new strings only. A full update_translations run rewrites 33
files (+87,518/-52,666 lines, 184 new strings from other merged work),
so that is left to the next translations refresh.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- fill all three Russian plural forms for the PDF page count and the two
font-recovery messages (lrelease dropped them, so French showed)
- restore the trailing and embedded newlines 12 translations had lost
- translate the remaining French AutoNumberingDockWidget tooltip
- wording: Повернуть %1, Сочетание клавиш / Горячие клавиши,
Перетаскивание: наклон, горизонтали, Вспомогательное текстовое
описание 1, со значением, ни при какой ширине
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wanderson_rds posted a corrected qet_pt_BR.qm on the forum
(https://qelectrotech.org/forum/viewtopic.php?id=3205). The .qm was
decompiled with lconvert and merged into the current qet_pt_BR.ts,
changing only the <translation> of each message, so line locations and
the lupdate layout are untouched.
- 266 strings that had no translation now have one (all plurals too).
- 29 existing translations replaced: "forme" was translated as "form"
(formulário) instead of "shape" (forma); zero-width spaces removed
from several "variáveis"; smaller wording and grammar fixes.
- "TextLabel" kept as master had it; vanished entries not touched.
lrelease: 2949 translations and 266 untranslated before,
3215 and 0 after.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hovering a symbol's text shows its value and the hint "<Shift> to move"
("<Shift> pour déplacer" in French), which does not say what moves: a
plain drag moves the whole symbol, Shift+drag moves the text alone
(DynamicElementTextItem::mousePressEvent).
English: "Hold Shift and drag to move this text on its own".
French: "Maintenir Maj et faire glisser pour déplacer ce texte seul".
Translations only, as for #1124: the source string is unchanged, so the
other languages keep their current text.
Revives #499 (closed 2026-06-11 by its author to test locally first).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Translation text only; no source string, no other language touched.
"folio" is kept, as decided in #935, and the two "on the current sheet"
strings whose source says folio now say folio too.
- Broken wording: "N° scheme", "Export fully folio", "Title of folio",
"Label folio", "N° of folio", "Dimensions of folio", "Folio Untitled",
"Move up this folio", "Title block informations", the table
"lines are missing %1" warning.
- Folio report elements get one name, "folio reference", which
DiagramView already used (was: folio referencing(s), reference folio
following, previous reference folio, folio reports).
- Machine-translation damage: "</ b>" broke the folio-reference error
message's HTML, and two variable help texts listed "% F", "% l" etc.,
which are not variables.
- Plurals still showing French or wrong: conductor colour undo entry
(empty, so French was shown), "%n erreur", "%n forme", "%n item placed"
for both forms, "redesigned" for redrawn, and "bornes" rendered as
"boundaries" in the element-reload message.
- Cross-reference spelled one way; "Réf." and "Numéro : %1" translated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fills lang/phrase/qet_fr_xx.qph for every language QET ships, following
on from discussion #873. A phrase book is never compiled into what
ships -- a translator opens it in Qt Linguist and sees a suggestion
already filled in, to accept or correct.
Only ever appends. phrasebook.write() skips any source string already
in the file (case-insensitive), so no existing entry -- human or
machine -- is touched. 24 languages had no phrase book at all before
this; the other 5 (da, de, nl, ru, sv) keep every line they had.
Built and run with tools/qet-i18n in the qelectrotech-docker harness
(DeepSeek Flash). Companion to qelectrotech-elements#82, which does the
same for the element collection.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>