Skip to content
Geoffrey Horsington edited this page Dec 31, 2017 · 6 revisions

Q: Why is translation so slow?

A: Short answer: Try turning Global Mode on. Moreover, remove translations you don't use.

Long answer: Translating IMGUI is no easy task: the GUI is being redrawn on every tick, which makes retranslation quite costly. Thus plug-in attempts to fix the problem by caching already translated strings and bailing out of the translation as soon as possible. This doesn't always work, which causes lag.

The best solution is to either (1) attempt to fix the translations by minifying and simplifying the translation file or (2) not using this plug-in.

Q: Why the translations don't change even though I edited the translation file.

A: Is the name of the translation file the same as the plug-in assembly that you are attempting to translate? Do you use an original plug-in, or an already-translated DLL? IMGUI Translation Loader only works with original, untranslated assemblies.

Q: I translated <insert string here> and now the plug-in doesn't work.

A: IMGUI Translation Loader has one job: it takes strings from the GUI and converts them to other strings. IMGUI Translaton Loader cannot and does not keep track of how the GUI is itself used in the plug-in. If the developer of the plug-in directly uses GUI's elements in plug-in logic, it is inevitable that the plug-in breaks after the strings get replaced!

The best solution is to leave the problematic strings untranslated.

Q: I use EnableStringReload, but some strings are never retranslated.

A: This is a known issue (#1) and intentional payoff for better performance. IMGUI Translation Loader does not know how the plug-ins that use IMGUI use the GUI's components: some plug-ins update all components each frame update, while others may cache and reuse some GUI components (like strings). Because of that and concerns for performance, IMGUI Translation Loader does not keep track of any GUI components it encounters, as it cannot possibly determine its life cycle automatically. As a consequence, reloading strings will not always work.

More info can be found in the source code comments.

Q: None of my questions were answered!

A: That's not a question, you doughnut! But if you do have a question, feel free to create an issue!