chore: Translations 2026-02#7141
Conversation
✅ No Merge Conflicts DetectedThis PR currently has no conflicts with other open PRs. |
WalkthroughThis pull request updates Qt locale translation strings and source entries for the Dash wallet UI. The changes span dashstrings.cpp with minor rewording of existing translation strings and significant additions across 11 language translation files (Arabic, Bulgarian, German, Spanish, Finnish, French, Italian, Japanese, Korean, Dutch, Polish). New translation contexts are introduced for mnemonic verification workflows, external signer support, governance proposal management, masternode details, wallet recovery activities, and additional operational error messages. Several existing translation context names are renamed (notably Proposal to ProposalCreate) to reflect updated UI flows. Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Tip Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 12
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
src/qt/locale/dash_nl.ts (1)
1662-1735:⚠️ Potential issue | 🟡 MinorStandardize masternode address labels across contexts.
“MasternodeList” uses “Adres eigenaar/Betalingsadres/Onderpand adres” while the detailed labels use “Eigenaaradres/Uitbetalingsadres/Onderpandadres”. Mixed wording can confuse users—please align terminology.💡 One possible alignment (match detail labels)
- <translation>Betalingsadres</translation> + <translation>Uitbetalingsadres</translation> ... - <translation>Onderpand adres</translation> + <translation>Onderpandadres</translation> ... - <translation>Adres eigenaar</translation> + <translation>Eigenaaradres</translation>Also applies to: 3376-3540
src/qt/locale/dash_pl.ts (1)
1662-1736:⚠️ Potential issue | 🟡 MinorLocalize “Collateral” consistently and fix the typo.
These strings keep English “Collateral” and miss a diacritic (“wyjscia”), while nearby strings already use “zabezpieczenia”. Aligning terminology will improve consistency.✏️ Suggested fix
- <translation>Adres Collateral</translation> + <translation>Adres zabezpieczenia</translation> ... - <translation>Skopiuj Collateral punkt wyjscia</translation> + <translation>Skopiuj punkt wyjścia zabezpieczenia</translation>src/qt/locale/dash_es.ts (1)
1362-1476:⚠️ Potential issue | 🟡 MinorPreserve the “Raw” qualifier in the JSON action label.
“Copy Raw JSON” is translated as “Copiar JSON,” which drops the “raw/sin procesar” nuance and can be confused with formatted JSON.
💡 Suggested wording
- <translation>Copiar JSON</translation> + <translation>Copiar JSON sin procesar</translation>src/qt/locale/dash_fi.ts (2)
1206-1257:⚠️ Potential issue | 🟡 MinorUse consistent terminology for descriptor wallets.
Elsewhere in this file you use “deskriptorilompakko” (e.g., the sqlite support message). Consider aligning the “Descriptor Wallet” label to the same term for consistency.
💬 Suggested wording tweak
- <translation>Kuvaaja-lompakko</translation> + <translation>Deskriptorilompakko</translation>
1662-1736:⚠️ Potential issue | 🟡 MinorAlign compound-word address labels for consistency.
Finnish compounds are typically joined, and other sections already use joined forms (e.g., “Maksuosoite”). Consider aligning these labels.
💬 Suggested wording tweaks
- <translation>Maksu osoite</translation> + <translation>Maksuosoite</translation> ... - <translation>Vakuus osoite</translation> + <translation>Vakuusosoite</translation> ... - <translation>Omistaja osoite</translation> + <translation>Omistajan osoite</translation> ... - <translation>Äänestys osoite</translation> + <translation>Äänestysosoite</translation>
🤖 Fix all issues with AI agents
In `@src/qt/locale/dash_ar.ts`:
- Around line 2971-2973: The translated QSS property name was changed
incorrectly; restore the translation for the message whose source is
"margin-left: 8px;" so the translation string is identical to the source (i.e.,
"margin-left: 8px;") rather than "margin-right: 8px;". Locate the translation
entry in dash_ar.ts that corresponds to the source "margin-left: 8px;" and
replace the translated text with the exact source text to avoid altering layout
semantics.
In `@src/qt/locale/dash_bg.ts`:
- Around line 3956-3959: The Bulgarian translation for the Addresses Processed
tooltip is incorrect ("Възраст"); update the <translation> for the message whose
<source> is "The total number of addresses received from this peer that were
processed (excludes addresses that were dropped due to rate-limiting)." (used
for the "Addresses Processed" field) to a proper Bulgarian rendering conveying
the full meaning, e.g. replace with a string like "Общият брой адреси, получени
от този връстник, които бяха обработени (без адреси, отпаднали поради
ограничаване на честотата)."
- Around line 4136-4139: The translation for the source "&Copy IP/Netmask" is
incorrect and must be replaced with a proper Bulgarian UI string; locate the
message whose <source> is "&Copy IP/Netmask" and replace the current bogus
translation "v1: нешифрован, plaintext транспортен протокол" with a concise
Bulgarian action such as "&Копирай IP/мрежова маска" (keep the leading & for the
accelerator).
In `@src/qt/locale/dash_de.ts`:
- Around line 1422-1425: The translation for the message with source "Copy Raw
JSON" currently reads "JSON kopieren" which omits "Raw"; update the
<translation> for the message whose <source> is "Copy Raw JSON" to preserve
"raw" (e.g., "Rohes JSON kopieren" or "Unverändertes JSON kopieren") so the
distinction from other "Copy JSON" entries is retained.
In `@src/qt/locale/dash_fr.ts`:
- Around line 3940-3942: Update the French translation for the message with
source "Rescan Chain (full)" in dash_fr.ts: change the translation string
"Réexaminer la chaîne (complet)" to use the correct feminine agreement
"Réexaminer la chaîne (complète)"; locate the message by the exact source text
"Rescan Chain (full)" and replace the translation value accordingly.
In `@src/qt/locale/dash_it.ts`:
- Around line 2143-2145: The translation for the message with source string
"duffs" is incorrectly singular; update the <translation> for the message
containing <source>duffs</source> in src/qt/locale/dash_it.ts to use the plural
"duffs" so it matches the source unit label exactly (locate the message block
containing <source>duffs</source> and change its <translation>duff</translation>
to <translation>duffs</translation>).
- Around line 1422-1425: The translation for the <message> with <source>Copy Raw
JSON</source> currently drops the word "Raw"; update its <translation> to
preserve that meaning (e.g., use "Copia JSON grezzo" or "Copia JSON non
formattato") so the label clearly indicates the unformatted/raw JSON view in the
UI.
- Around line 1726-1732: The string for source "Copy Collateral Outpoint" is
left untranslated in dash_it.ts; update the corresponding <translation> for that
<message> (the entry whose <source> is "Copy Collateral Outpoint") to an Italian
equivalent (e.g., "Copia Outpoint del Collaterale" or another consistent Italian
phrasing) so it matches the adjacent localized entries like "Copia ProTx Hash".
In `@src/qt/locale/dash_nl.ts`:
- Around line 1422-1425: The translated string for the message whose <source> is
"Copy Raw JSON" lost the "Raw" qualifier; update the corresponding <translation>
for that message (the element paired with the <source> "Copy Raw JSON") to
preserve the qualifier in Dutch (e.g., "Kopieer ruwe JSON" or "JSON (ruw)
kopiëren") so it remains unambiguous with other JSON actions.
- Around line 6122-6125: The Dutch translation of the message for source "Error:
Cannot extract destination from the generated scriptpubkey" lowercases
"scriptPubKey"; update the translation in dash_nl.ts so the term matches
upstream casing "scriptPubKey" (e.g., "Fout: Kan bestemming niet extraheren uit
de gegenereerde scriptPubKey") by editing the <message> translation for that
source string to use the exact "scriptPubKey" identifier.
In `@src/qt/locale/dash_pl.ts`:
- Around line 3405-3411: Update the Polish translation for the message whose
<source> text is "to UNKNOWN": change the <translation> value from "do NIEZNANY"
to the correct genitive form "do NIEZNANEGO" so the translation uses proper
Polish case for "UNKNOWN".
- Around line 176-179: The translation for the source string "Font in the
Overview tab: " uses "Podgląd", which conflicts with the existing UI term;
update the translation for that message so it uses the same tab label as the UI
(e.g., replace "Czcionka w zakładce Podgląd: " with "Czcionka w zakładce
Podsumowanie: " or the exact UI label "Podsumowanie/Przegląd" to match the rest
of the application).
🧹 Nitpick comments (3)
src/qt/locale/dash_fr.ts (2)
1702-1704: Use consistent term for “Payout Address”.
“Adresse de rétribution” diverges from other “Payment address” labels and can confuse users. Consider aligning with “Adresse de paiement”.Suggested fix
- <translation>Adresse de rétribution</translation> + <translation>Adresse de paiement</translation>
1726-1728: Align “ProTx Hash” wording with existing labels.
You already use “Hash ProTx” elsewhere; keeping the “Copier …” action consistent avoids UI mismatch.Suggested fix
- <translation>Copier hachage ProTx</translation> + <translation>Copier le hash ProTx</translation>Also applies to: 1793-1795
src/qt/locale/dash_de.ts (1)
1709-1712: Align “Collateral Address” terminology.
Line 1711 uses “Sicherheitszahlungs-Adresse” while Line 3442 uses “Sicherheiten-Adresse”. Aligning to a single term avoids mixed terminology in the UI.💡 Suggested tweak
- <translation>Sicherheitszahlungs-Adresse</translation> + <translation>Sicherheiten-Adresse</translation>Also applies to: 3440-3443
| <source>margin-left: 8px;</source> | ||
| <translation>margin-right: 8px;</translation> | ||
| </message> |
There was a problem hiding this comment.
Do not translate QSS property names
Changing margin-left to margin-right alters the layout semantics; this string should stay identical to the source.
🛠️ Proposed fix
- <translation>margin-right: 8px;</translation>
+ <translation>margin-left: 8px;</translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <source>margin-left: 8px;</source> | |
| <translation>margin-right: 8px;</translation> | |
| </message> | |
| <source>margin-left: 8px;</source> | |
| <translation>margin-left: 8px;</translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_ar.ts` around lines 2971 - 2973, The translated QSS
property name was changed incorrectly; restore the translation for the message
whose source is "margin-left: 8px;" so the translation string is identical to
the source (i.e., "margin-left: 8px;") rather than "margin-right: 8px;". Locate
the translation entry in dash_ar.ts that corresponds to the source "margin-left:
8px;" and replace the translated text with the exact source text to avoid
altering layout semantics.
| <source>The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</source> | ||
| <extracomment>Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment> | ||
| <translation>Възраст</translation> | ||
| </message> |
There was a problem hiding this comment.
Fix mismatched tooltip translation for “Addresses Processed”.
The current Bulgarian string reads “Възраст”, which doesn’t match the source tooltip and will mislead users. Consider translating the actual meaning of the tooltip.
🔧 Suggested fix
- <translation>Възраст</translation>
+ <translation>Общият брой адреси, получени от този пиър, които са обработени (без адресите, отхвърлени поради ограничение на честотата).</translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <source>The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</source> | |
| <extracomment>Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment> | |
| <translation>Възраст</translation> | |
| </message> | |
| <source>The total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</source> | |
| <extracomment>Tooltip text for the Addresses Processed field in the peer details area, which displays the total number of addresses received from this peer that were processed (excludes addresses that were dropped due to rate-limiting).</extracomment> | |
| <translation>Общият брой адреси, получени от този пиър, които са обработени (без адресите, отхвърлени поради ограничение на честотата).</translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_bg.ts` around lines 3956 - 3959, The Bulgarian translation
for the Addresses Processed tooltip is incorrect ("Възраст"); update the
<translation> for the message whose <source> is "The total number of addresses
received from this peer that were processed (excludes addresses that were
dropped due to rate-limiting)." (used for the "Addresses Processed" field) to a
proper Bulgarian rendering conveying the full meaning, e.g. replace with a
string like "Общият брой адреси, получени от този връстник, които бяха
обработени (без адреси, отпаднали поради ограничаване на честотата)."
| <source>&Copy IP/Netmask</source> | ||
| <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address see: https://en.wikipedia.org/wiki/IP_address</extracomment> | ||
| <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment> | ||
| <translation>v1: нешифрован, plaintext транспортен протокол</translation> | ||
| </message> |
There was a problem hiding this comment.
Translation for “Copy IP/Netmask” is incorrect.
The Bulgarian string is unrelated to the source. It should reflect the copy action for IP/Netmask.
🔧 Suggested fix
- <translation>v1: нешифрован, plaintext транспортен протокол</translation>
+ <translation>&Копирай IP/Netmask</translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <source>&Copy IP/Netmask</source> | |
| <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address see: https://en.wikipedia.org/wiki/IP_address</extracomment> | |
| <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment> | |
| <translation>v1: нешифрован, plaintext транспортен протокол</translation> | |
| </message> | |
| <source>&Copy IP/Netmask</source> | |
| <extracomment>Context menu action to copy the IP/Netmask of a banned peer. IP/Netmask is the combination of a peer's IP address and its Netmask. For IP address, see: https://en.wikipedia.org/wiki/IP_address.</extracomment> | |
| <translation>&Копирай IP/Netmask</translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_bg.ts` around lines 4136 - 4139, The translation for the
source "&Copy IP/Netmask" is incorrect and must be replaced with a proper
Bulgarian UI string; locate the message whose <source> is "&Copy IP/Netmask" and
replace the current bogus translation "v1: нешифрован, plaintext транспортен
протокол" with a concise Bulgarian action such as "&Копирай IP/мрежова маска"
(keep the leading & for the accelerator).
| <message> | ||
| <source>Copy Raw JSON</source> | ||
| <translation>JSON kopieren</translation> | ||
| </message> |
There was a problem hiding this comment.
Clarify “Copy Raw JSON” translation.
Line 1424 drops “Raw”, which removes the distinction from “Copy JSON”. Consider a translation that preserves the meaning (e.g., “Rohes JSON kopieren”).
💡 Suggested tweak
- <translation>JSON kopieren</translation>
+ <translation>Rohes JSON kopieren</translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <message> | |
| <source>Copy Raw JSON</source> | |
| <translation>JSON kopieren</translation> | |
| </message> | |
| <message> | |
| <source>Copy Raw JSON</source> | |
| <translation>Rohes JSON kopieren</translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_de.ts` around lines 1422 - 1425, The translation for the
message with source "Copy Raw JSON" currently reads "JSON kopieren" which omits
"Raw"; update the <translation> for the message whose <source> is "Copy Raw
JSON" to preserve "raw" (e.g., "Rohes JSON kopieren" or "Unverändertes JSON
kopieren") so the distinction from other "Copy JSON" entries is retained.
| <source>Rescan Chain (full)</source> | ||
| <translation>Réexaminer la chaîne (complet)</translation> | ||
| </message> |
There was a problem hiding this comment.
Fix gender agreement in “Rescan Chain (full)”.
“Chaîne” is feminine, so “complète” is the correct form.
Suggested fix
- <translation>Réexaminer la chaîne (complet)</translation>
+ <translation>Réexaminer la chaîne (complète)</translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <source>Rescan Chain (full)</source> | |
| <translation>Réexaminer la chaîne (complet)</translation> | |
| </message> | |
| <source>Rescan Chain (full)</source> | |
| <translation>Réexaminer la chaîne (complète)</translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_fr.ts` around lines 3940 - 3942, Update the French
translation for the message with source "Rescan Chain (full)" in dash_fr.ts:
change the translation string "Réexaminer la chaîne (complet)" to use the
correct feminine agreement "Réexaminer la chaîne (complète)"; locate the message
by the exact source text "Rescan Chain (full)" and replace the translation value
accordingly.
| <source>duffs</source> | ||
| <translation>duff</translation> | ||
| </message> |
There was a problem hiding this comment.
Keep the unit label consistent (“duffs”).
At Line 2143 the translation uses singular “duff,” but the source is plural “duffs.”
Suggested fix
- <translation>duff</translation>
+ <translation>duffs</translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <source>duffs</source> | |
| <translation>duff</translation> | |
| </message> | |
| <source>duffs</source> | |
| <translation>duffs</translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_it.ts` around lines 2143 - 2145, The translation for the
message with source string "duffs" is incorrectly singular; update the
<translation> for the message containing <source>duffs</source> in
src/qt/locale/dash_it.ts to use the plural "duffs" so it matches the source unit
label exactly (locate the message block containing <source>duffs</source> and
change its <translation>duff</translation> to <translation>duffs</translation>).
| <message> | ||
| <source>Copy Raw JSON</source> | ||
| <translation>JSON kopiëren</translation> | ||
| </message> |
There was a problem hiding this comment.
Preserve the “Raw” qualifier in the JSON action.
Dropping “Raw” makes this ambiguous with other JSON-related actions.
💡 Suggested fix
- <translation>JSON kopiëren</translation>
+ <translation>Ruwe JSON kopiëren</translation>🤖 Prompt for AI Agents
In `@src/qt/locale/dash_nl.ts` around lines 1422 - 1425, The translated string for
the message whose <source> is "Copy Raw JSON" lost the "Raw" qualifier; update
the corresponding <translation> for that message (the element paired with the
<source> "Copy Raw JSON") to preserve the qualifier in Dutch (e.g., "Kopieer
ruwe JSON" or "JSON (ruw) kopiëren") so it remains unambiguous with other JSON
actions.
| <message> | ||
| <source>Error: Cannot extract destination from the generated scriptpubkey</source> | ||
| <translation>Fout: Kan bestemming niet extraheren uit de gegenereerde scriptpubkey</translation> | ||
| </message> |
There was a problem hiding this comment.
Keep “scriptPubKey” casing consistent with upstream terminology.
The current translation lowercases it, which makes the term harder to recognize.
💡 Suggested fix
- <translation>Fout: Kan bestemming niet extraheren uit de gegenereerde scriptpubkey</translation>
+ <translation>Fout: Kan bestemming niet extraheren uit de gegenereerde scriptPubKey</translation>🤖 Prompt for AI Agents
In `@src/qt/locale/dash_nl.ts` around lines 6122 - 6125, The Dutch translation of
the message for source "Error: Cannot extract destination from the generated
scriptpubkey" lowercases "scriptPubKey"; update the translation in dash_nl.ts so
the term matches upstream casing "scriptPubKey" (e.g., "Fout: Kan bestemming
niet extraheren uit de gegenereerde scriptPubKey") by editing the <message>
translation for that source string to use the exact "scriptPubKey" identifier.
| <message> | ||
| <source>Font in the Overview tab: </source> | ||
| <translation>Czcionka w zakładce Podgląd: </translation> | ||
| </message> |
There was a problem hiding this comment.
Align the Overview tab term with the existing UI label.
The new translation introduces “Podgląd”, while the UI already uses “Podsumowanie/Przegląd”. A third variant can be confusing—please align with the tab label.
✏️ Suggested fix
- <translation>Czcionka w zakładce Podgląd: </translation>
+ <translation>Czcionka w zakładce Podsumowanie: </translation>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <message> | |
| <source>Font in the Overview tab: </source> | |
| <translation>Czcionka w zakładce Podgląd: </translation> | |
| </message> | |
| <message> | |
| <source>Font in the Overview tab: </source> | |
| <translation>Czcionka w zakładce Podsumowanie: </translation> | |
| </message> |
🤖 Prompt for AI Agents
In `@src/qt/locale/dash_pl.ts` around lines 176 - 179, The translation for the
source string "Font in the Overview tab: " uses "Podgląd", which conflicts with
the existing UI term; update the translation for that message so it uses the
same tab label as the UI (e.g., replace "Czcionka w zakładce Podgląd: " with
"Czcionka w zakładce Podsumowanie: " or the exact UI label
"Podsumowanie/Przegląd" to match the rest of the application).
517a661 chore: translations 202602 follow-up (UdjinM6) Pull request description: ## Issue being fixed or feature implemented Apply some of @coderabbitai suggestions from #7141 ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: a42c9bc4580dcaba94fd5dbadd06112554f90f896360b3ab2cf38d51a62aa47cb231595e883b77f14f9e5584ed483048cfebe837d7dbe6f5fbc3bd2748956a3f
…into general.css bc779c6 fix(qt): move labelError styling from proposalcreate.ui into general.css (UdjinM6) Pull request description: ## Issue being fixed or feature implemented `labelError` styling is in the wrong place, it's a translatable string (missed `notr="true"`) and... it is not actually working at all 🤷♂️ |develop | this PR| |-|-| | <img width="972" height="520" alt="Screenshot 2026-02-14 at 00 27 44" src="proxy.php?url=https://github.com/user-attachments/assets/896a9245-ff1e-45cf-902a-93fe6a4785b1" /> | <img width="972" height="520" alt="Screenshot 2026-02-14 at 00 29 24" src="proxy.php?url=https://github.com/user-attachments/assets/2fffb0c4-b8ed-49d4-a554-3f78ee382488" /> | Discovered thanks to a broken translation found by @coderabbitai #7141 (comment) ## What was done? Move `labelError` styling from `proposalcreate.ui` into `general.css`. Will be dropped from `*.ts` files in some future Translations PR. ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK bc779c6 Tree-SHA512: 08724dd5506723ba00cad50a9643b6b8a143894df2d53ab6f193d11e84880757d9c82c4aa9a13fe25cb5f2953ffcde590f6d7630bdae8d436b739c1f6fa8f647
…ate.ui into general.css bc779c6 fix(qt): move labelError styling from proposalcreate.ui into general.css (UdjinM6) Pull request description: ## Issue being fixed or feature implemented `labelError` styling is in the wrong place, it's a translatable string (missed `notr="true"`) and... it is not actually working at all 🤷♂️ |develop | this PR| |-|-| | <img width="972" height="520" alt="Screenshot 2026-02-14 at 00 27 44" src="proxy.php?url=https://github.com/user-attachments/assets/896a9245-ff1e-45cf-902a-93fe6a4785b1" /> | <img width="972" height="520" alt="Screenshot 2026-02-14 at 00 29 24" src="proxy.php?url=https://github.com/user-attachments/assets/2fffb0c4-b8ed-49d4-a554-3f78ee382488" /> | Discovered thanks to a broken translation found by @coderabbitai dashpay#7141 (comment) ## What was done? Move `labelError` styling from `proposalcreate.ui` into `general.css`. Will be dropped from `*.ts` files in some future Translations PR. ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK bc779c6 Tree-SHA512: 08724dd5506723ba00cad50a9643b6b8a143894df2d53ab6f193d11e84880757d9c82c4aa9a13fe25cb5f2953ffcde590f6d7630bdae8d436b739c1f6fa8f647
Issue being fixed or feature implemented
Note: AI-translated
What was done?
How Has This Been Tested?
Breaking Changes
Checklist: