Skip to content

Italian language update#34

Closed
bovirus wants to merge 6 commits into
no-faff:mainfrom
bovirus:main
Closed

Italian language update#34
bovirus wants to merge 6 commits into
no-faff:mainfrom
bovirus:main

Conversation

@bovirus

@bovirus bovirus commented Jun 20, 2026

Copy link
Copy Markdown

@FarmLox

What this changes

Installer

Improvemnt (lien missing to avoid "versione" on top elft

image

Italian language*

Many string missing in Italian language.

String not identified

Could you please describe what string in language file is what red box?

image

@FarmLox

FarmLox commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

@bovirus Thanks for the PR and for taking the time. I've been through all of it. Here's what I'm doing with each part and why, so you can see the reasoning.

The line breaks. Most of the PR adds hard line breaks (
) inside the tooltips and messages. I'm not taking these. The English originals are single flowing lines on purpose, and the app wraps them to fit the control; only four strings use a deliberate break. Adding breaks to the Italian only would make it render differently from every other language, with fixed line widths that won't always match the box. If I ever want multi-line tooltips I'd do it in every language at once as a design choice, not in one.

The wording changes. I went through these one by one. A few can't go in:

  • "Annullamento richiesto" became "Richiesto annullamento richiesto", the word is doubled.
  • "summary" is "riepilogo" everywhere in the app; the PR changes it to "rapporto" in two places, which breaks that consistency.
  • "lingua di visualizzazione" is Microsoft's own Italian for "display language" (it's what Windows itself uses), so I'm keeping it over "lingua dell'interfaccia".
  • The help label "Apre..." describes what the control does, matching the English "Opens..."; "Apri..." is an imperative, a different register, so I'm keeping "Apre".
  • A few strings picked up double or trailing spaces.

The crash.log header ("registra... di" against your "cattura... da") is the one real coin-flip: both are fine Italian, so I'm leaving the original. The 1.9.1 Italian was already reviewed, so I'm only changing it where there's a clear improvement, and I don't think these are.

The installer title ("versione"). I see what you mean about "InstallerClean versione 1.9.1" in the title bar. That's standard Inno behaviour though, not a missing line: with AppName and AppVersion set, Inno builds the title from its own name-and-version message, which includes the word. Your AppVerName line does remove it, but AppVerName is a directive Inno itself marks deprecated (it tells you to use AppName + AppVersion, which I already do), and it strips the word from the English title too. It's a normal title, not a fault, so I'm leaving it.

Your question about the red box ("149 file nel Cestino"). You couldn't find that text because it isn't stored as a sentence. It's built at runtime from the key Completion.DeleteSummary, whose value is "{0} {1} nel Cestino": {0} is the file count (149) and {1} is the word for file(s) (in Italian "file", invariant), which the app fills in. That's why searching the file for the whole phrase finds nothing, only the template "{0} {1} nel Cestino" is in there.

The CLI translation (~60 Cli.* strings). Thanks for doing these. I'm not adding them yet, but I'm keeping them for when I do the CLI properly. The reason it's separate work: the command-line tool is used by scripts and monitoring tools, so parts of its output (the exit codes, the Event Log entries, some stdout lines) are a fixed contract those tools match on, and they need to stay stable and English. Localising the CLI means deciding carefully which strings are human-facing (translate) and which are machine-facing (leave English), then changing how the CLI loads strings. So it's a job of its own for a later version, and I'll use your draft as a starting point when I get to it. Thanks :) One thing to flag for that pass: "Cancellazione/Cancellato" reads as deletion in Italian; for cancelling an operation it should be "Annullamento/Annullato", to match the GUI.

Thanks again. The thing that helps most is you spotting where something reads wrong, keep those coming.

@FarmLox FarmLox closed this Jun 21, 2026
@bovirus

bovirus commented Jun 22, 2026

Copy link
Copy Markdown
Author

@FarmLox

About line breaks please consider that when you have long string multiperiod without line breaks make the line more complex to follow the string then when you have line breaks to separate periods.

Probably could you please consider to change some english strings for a more clear (for me) meanings.

About the file that you sent typically is a "report" not a "summary".
It's more usual to use a string like "send a report" instead "send a summary"

About the "display language" that could be misunterpreted you could change it in "Interface language" (more clear about the use).

About string 149 could be "{0} {1} spostati nel Cestino" "{0} {1} moved in Recycle Byn" (is missing the verb that is the object of the phrase).

About "Apre" it's more common to use in Italian for command help a third person verb ("Apri").

FarmLox added a commit that referenced this pull request Jun 23, 2026
The completion-screen button is now "Send report" rather than "Send summary",
and the tooltip, the confirmation dialog's screen-reader text and the
sent / nothing-to-send status lines follow, in English and in Italian
("rapporto"). It matches what the sent data and the README have always called
it, and reads a touch clearer.

Suggested by bovirus (#34).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@FarmLox

FarmLox commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

@bovirus Thanks, you've talked me round on most of these.

The missing verb in the delete summary - taken, it reads "spostati nel Cestino" now.

"summary" vs "report" - you were right, the button's "Send report" now ("Invia rapporto" in Italian). I've kept "summary" in the tooltip on purpose, though.

While we're on that word, a separate question that's got nothing to do with your PR: the README translations are all machine-translated, and the Italian one renders this as the English loan "report" rather than "rapporto". I'd never given it a thought until it came up just now. Is the loan "report" a poor choice in Italian - should it be "rapporto"? I'm not asking you to wade through the whole machine-translated README (though I'd be delighted if you ever fancied it), I just want to know whether I've got that one word wrong in there.

"display language" vs "interface language" - you flagged that "display language" wasn't quite right. I went a step further than your suggestion and dropped the qualifier altogether: the control just says "Change language" / "Cambia lingua" now, since "display language" is really Windows's term for the whole-system setting and it's overkill for an app choosing its own language. The verb, "Cambia" vs the "Modifica" you put in the other PR, I've gone into properly over there.

"Apre" vs "Apri" - you're right here too. My reason for "Apre" was that the English is "Opens...", so I'd kept the Italian in the third person to match it, but making the Italian follow the English grammar is the wrong instinct. Rather than guess, I'd much rather have your wording: how would you phrase the whole string? It's the screen-reader help for the licence link, the one that opens the MIT licence file on github.com in the browser.

Line breaks - I'm up for this, I just need to know where you mean. Point me at the specific strings where you think a break would read better and I'll go through them with you. The ones I agree on I'll put into the English itself, so the break carries into every language, not just Italian.

Thanks yet again.


@bovirus Grazie, mi hai convinto sulla maggior parte di questi punti.

Il verbo mancante nel riepilogo di eliminazione - preso, ora si legge "spostati nel Cestino".

"summary" contro "report" - avevi ragione, il pulsante ora è "Send report" ("Invia rapporto" in italiano). Ho però tenuto di proposito "riepilogo" nel tooltip.

Già che siamo su quella parola, una domanda a parte che non ha nulla a che fare con la tua PR: le traduzioni del README sono tutte automatiche, e quella italiana rende questo termine con il prestito inglese "report" invece di "rapporto". Non ci avevo mai pensato finché non è saltato fuori adesso. Il prestito "report" è una scelta sbagliata in italiano, dovrebbe essere "rapporto"? Non ti sto chiedendo di esaminare tutto il README tradotto a macchina (anche se mi farebbe molto piacere se ti andasse), voglio solo sapere se ho sbagliato quella singola parola lì dentro.

"display language" contro "interface language" - avevi segnalato che "display language" non era proprio giusto. Sono andato un passo oltre il tuo suggerimento e ho tolto del tutto la qualifica: il controllo ora dice semplicemente "Change language" / "Cambia lingua", visto che "display language" è in realtà il termine di Windows per l'impostazione dell'intero sistema ed è eccessivo per un'app che sceglie la propria lingua. Il verbo, "Cambia" contro il "Modifica" che hai messo nell'altra PR, l'ho trattato per bene di là.

"Apre" contro "Apri" - hai ragione anche qui. Il mio motivo per "Apre" era che l'inglese è "Opens...", quindi avevo tenuto l'italiano alla terza persona per corrispondere, ma far seguire all'italiano la grammatica inglese è l'istinto sbagliato. Invece di tirare a indovinare, preferirei di gran lunga la tua formulazione: come scriveresti la stringa per intero? È il testo per lo screen reader del link alla licenza, quello che apre il file della licenza MIT su github.com nel browser.

Interruzioni di riga - mi va l'idea, ho solo bisogno di sapere dove intendi. Indicami le stringhe specifiche dove pensi che un'interruzione si leggerebbe meglio e le esaminiamo insieme. Quelle su cui sono d'accordo le metto nell'inglese stesso, così l'interruzione si porta in ogni lingua, non solo in italiano.

Grazie ancora.

@bovirus

bovirus commented Jun 24, 2026

Copy link
Copy Markdown
Author

@FarmLox

I agree wioth you.

Please take care with "Change language" / "Cambia lingua" for me is missing the object of the language.
For me could be "Change interface language" / "Cambia lingua interfaccia"

For the line breaks I will report where there are needs to use it.

@FarmLox

FarmLox commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

@bovirus I really do think "Change language" is clear enough already. It couldn't mean anything else. Do you feel strongly about it?

FarmLox added a commit that referenced this pull request Jun 26, 2026
The CLI localisation mechanism shipped able to render any satellite that
carries Cli.* keys; it.resx carried none, so an Italian machine fell back
to English. Add the 39 human-facing Cli.* strings (bovirus's PR #34,
vetted and aligned to the native-reviewed Italian GUI) so the CLI now
renders Italian on an Italian machine. The 21 machine-contract
Cli.EventLog* keys stay English and remain absent from it.resx: the
Application-channel event log an RMM tool greps must not drift by OS.

The three count lines (FoundOrphans, DeletedFiles, MovedFiles) carry
bovirus's participle style, which inflects at n==1 (Trovato/Trovati,
Eliminato/Eliminati, Spostato/Spostati). Route those call sites through
DisplayHelpers.Pluralise with the it.resx base holding the plural form
and a satellite-only .One override for the singular, mirroring the GUI's
Status.RegisteredPackagesFound.One. English (no .One, falls back to the
neutral base) and Japanese (never inflects) are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FarmLox added a commit that referenced this pull request Jun 26, 2026
The CLI entry covered only the Japanese CLI; the Italian CLI is shipping in this release too, so it credits bovirus (#34) alongside coolvitto.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@FarmLox

FarmLox commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

@bovirus Back on the command-line tool you translated here in #34. I said I'd do it properly as its own pass, and I have, so here's the whole thing, with your Italian as the backbone of it. It's going into the app, and I'm shipping it as it stands here (so it can go out at the same time as Japanese) the parts you've not seen included. If anything reads wrong, tell me: I'll fix it in this release if you catch me before it ships, otherwise in the next one.

First, how it splits. Of the roughly 60 command-line strings, about 21 are the Windows Event Log entries that monitoring tools (RMM) match on by their exact English text, so those have to stay English on every machine, whatever the OS language. It's the same machine-contract reason we talked about. You had translated 18 of those in good faith, with no way to know they were the no-translate ones, so those particular values I've set aside, nothing at all to do with their quality. The other 39 strings are what a person reads on screen, and those are the Italian ones.

The help screen (--help). This wasn't in your PR, it was added to the app after it, so you've never seen it, and it's the part I'd most like you to have a look at. Here's how it reads now:

InstallerClean - pulizia di C:\Windows\Installer

Utilizzo:
  installerclean-cli --help       Mostra questa guida (accetta anche /?, -h)
  installerclean-cli --version    Mostra la versione (accetta anche -v)
  installerclean-cli /s           Solo scansione - elenca i file non necessari
  installerclean-cli /d           Elimina i file non necessari (Cestino)
  installerclean-cli /m           Sposta nella destinazione predefinita salvata
  installerclean-cli /m PERCORSO  Sposta nel percorso specificato

Codici di uscita:
  0   successo: ogni file segnalato è stato elaborato
  1   errore: nessuna elaborazione (argomenti errati, scansione non riuscita, tutti i file non riusciti)
  2   parziale: alcuni file elaborati, altri non riusciti
  75  transitorio: una condizione temporanea ha bloccato l'esecuzione (vedi il messaggio)
  130 annullato (Ctrl+C)

installerclean-cli è un vero processo console e blocca il prompt
finché non termina; reindirizza o usa una pipe sul suo output come
per qualsiasi altro eseguibile console. La GUI è in InstallerClean.exe.

On the "event log write failed" note (also new, not in your PR): it points the sysadmin at the Application event log. I've called it "il registro Applicazione", the wording Italian Event Viewer uses (the log sits under "Registri di Windows").

What I changed in your wording, and why:

  • The two cancel messages (shown on Ctrl+C): yours were Cancellazione... / Cancellato, which read as deletion in Italian, so I matched the GUI's Annullamento... / Operazione annullata.
  • The count lines (Found / Deleted / Moved N files): I kept your participle wording (Trovato/Trovati, Eliminato/Eliminati, Spostato/Spostati) and made it agree with the number properly, using the app's plural engine, so it reads right whether it's one file or many.
  • The crash log: "il file crash.log", to match what the app calls it everywhere else.
  • A few of the error messages (Recycle Bin unavailable, move destination inside the Installer folder, destination in a system folder, the three pending-reboot ones) I lined up word for word with the Italian already in the app window, which is your own reviewed wording, and fixed a couple of small typos along the way.
  • Smaller ones: "Ricevuto:" rather than "Ottenuto:" for echoing a path back to the user; "file non necessari" (the app's term) for the target files; PERCORSO as the path placeholder, the way you already had it in the error messages.
  • Seven of your strings I kept exactly as you wrote them.

That's it! Thanks very much again 🙏

FarmLox added a commit that referenced this pull request Jun 26, 2026
The button became "Send report" (bovirus #34), so the filename's "summary"
no longer matches. The image is unchanged; only the name and its ten README
references move.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FarmLox added a commit that referenced this pull request Jul 19, 2026
Six items the user explicitly told me to stop dismissing.

(1) ISettingsService.Save was a void wrapper around TrySave that
discarded the bool. Three call sites used it. Removed Save from
the interface; call sites now use `_ = TrySave(...)` so the discard
is explicit. Tests updated. (review #21)

(2) MainWindow's title-bar Maximize/Restore glyphs used literal
Unicode characters. Switched to \u escape form so source-file
encoding isn't load-bearing. (review #25)

(3) IsExternallyBlocked was a settable observable on ScanViewModel
that MainViewModel wrote from outside. Refactored: ScanViewModel
takes a Func<bool> isExternallyBlocked at construction and exposes
NotifyExternallyBlockedChanged() for the parent to call. The "this
field is meant to only be set by MainViewModel" footgun is gone.
(review #34)

(4) WindowChromeExtensions.EnableAltSpaceSystemMenu registered a
PreviewKeyDown handler that was never unhooked. No leak today (the
window was the GC root) but inconsistent with how every other
window unhooks its handlers in OnClosed. Tightened to match.
(review #24)

(5) Indeterminate-progress 9-line comment collapsed to four lines
naming the constraint. The hardcoded 320 max-travel constant stays
because DoubleAnimation can't template-bind ActualWidth.
(review #27)

(6) Stale 2026-04-23 reminder removed from MEMORY.md (user has
already submitted to AlternativeTo and InstallerClean already
appears as a PatchCleaner alternative).
FarmLox added a commit that referenced this pull request Jul 19, 2026
The completion-screen button is now "Send report" rather than "Send summary",
and the tooltip, the confirmation dialog's screen-reader text and the
sent / nothing-to-send status lines follow, in English and in Italian
("rapporto"). It matches what the sent data and the README have always called
it, and reads a touch clearer.

Suggested by bovirus (#34).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FarmLox added a commit that referenced this pull request Jul 19, 2026
The CLI localisation mechanism shipped able to render any satellite that
carries Cli.* keys; it.resx carried none, so an Italian machine fell back
to English. Add the 39 human-facing Cli.* strings (bovirus's PR #34,
vetted and aligned to the native-reviewed Italian GUI) so the CLI now
renders Italian on an Italian machine. The 21 machine-contract
Cli.EventLog* keys stay English and remain absent from it.resx: the
Application-channel event log an RMM tool greps must not drift by OS.

The three count lines (FoundOrphans, DeletedFiles, MovedFiles) carry
bovirus's participle style, which inflects at n==1 (Trovato/Trovati,
Eliminato/Eliminati, Spostato/Spostati). Route those call sites through
DisplayHelpers.Pluralise with the it.resx base holding the plural form
and a satellite-only .One override for the singular, mirroring the GUI's
Status.RegisteredPackagesFound.One. English (no .One, falls back to the
neutral base) and Japanese (never inflects) are unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FarmLox added a commit that referenced this pull request Jul 19, 2026
The CLI entry covered only the Japanese CLI; the Italian CLI is shipping in this release too, so it credits bovirus (#34) alongside coolvitto.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FarmLox added a commit that referenced this pull request Jul 19, 2026
The button became "Send report" (bovirus #34), so the filename's "summary"
no longer matches. The image is unchanged; only the name and its ten README
references move.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants