Add dynamic localization system and related fixes#376
Conversation
|
While this is a change made with an AI agent, I like the proposals for language translations. Unfortunately, it appears as though your agent touched more files than necessary and, thus, there are conflicts. Resolve these before I can check further but, from what I've seen, it's going well. |
I used an older version (version 8) as a base, but as a standalone project rather than a fork. To save time, I asked an AI agent to port it over. Aside from localization, I made extra changes based on user feedback. There was also an issue with the window dropping to the background, which I fixed, so now it stays in the foreground on the first launch. I personally verified everything during each compilation and after user bug reports, and then users confirmed whether it worked or not. |
Another change I added is the checkbox logic in the file associations section. A user was having issues with the portable version's file association logic. What I changed is the activation sequence for the second checkbox from the top: now it toggles on automatically when you click the first one. Before this, users didn't understand why icons weren't working upon clicking, because they actually needed to activate both checkboxes. However, if you only want it to work on click, you can uncheck the second checkboxe just like before. |
Summary
This draft contributes the dynamic localization system developed and tested in
MinDeaDBlood/test.The implementation was built on DISMTools 0.8 stable (
399a055) while the official development branch advanced todt_pre_0.8.1. I am intentionally submitting the existing tested implementation instead of rewriting it against the newer branch, so the maintainer can decide whether to merge it, rebase it, or port selected parts.What changed
.dtprojassociations with custom icons.Why
The previous localization implementation was tied to built-in languages and many hard-coded UI strings. Users could not reliably add a language to an installed or portable copy, and malformed files could lead to unclear failures. The new system loads external language files, validates them, reports actionable errors, and falls back safely.
Validation
MinDeaDBlood/testmain(6f248e2d99096174a6573e10a0f7c4fa10ce2d90)..dtprojregistration, icon persistence, removal, and end-to-end/load="%1"shell launching were tested successfully.Upstream compatibility
The target branch is three commits ahead of the implementation base. A non-destructive merge preview reports conflicts in 17 files, mainly project/installer files and UI files changed by both branches. This PR is therefore intentionally opened as a draft. No attempt was made to resolve those conflicts by rewriting the localization work.
An additional strict audit also reports 12 existing non-German formatting-token discrepancies in Spanish, French, Italian, and Portuguese strings. The German file passes that audit.