6: Designing And Implementing Desktop Applications. The installation appears to work fine until it starts downloading Microsoft Visual Basic for Applications Core which stays at 0 for several hours and doesn't proceed.
I'd like to see another answer here with more details about storing, loading and especially using non-ANSI string resources. An identified security issue in Microsoft Visual Basic for Applications could allow an attacker to compromise a Microsoft Windows-based system and then take a variety of actions. To troubleshoot this issue, please try clearing caches of Office apps, see if it works. Where To Download Core MCSD: Designing And Implementing Desktop Applications With Microsoft Visual Basic.
The point being, if the current app isn't localized, it's probably not concerned about localization localizing it means introducing a new concern so in order to affect legacy code as little as possible, you'll need to seek & destroy "magic strings" and "magic formats" all over the code base (and if your UI has hard-coded design-time captions and images, remove those as well), replacing them with calls to your localization API - keeping the localization concern separated. This reference is for experienced Office users who want to learn about VBA and who want some insight into how programming can help them to customize Office. Implementing a variant of this answer: Implementing String.Format() in VB6, could greatly simplify your life if you also encapsulate the notion of 'culture' and introduce some cultureInfo argument to this StringFormat method's signature (perhaps call it StringFormatLocal). Office Visual Basic for Applications (VBA) is an event-driven programming language that enables you to extend Office applications. Then the bulk of the work is to convert your code from perhaps hard-coded strings to method calls to retrieve the appropriate strings. Regarding the "while minimizing the impact on the application's code" part of the question, I would suggest encapsulating the resource-lookup-related features into a class of its own, exposing methods to fetch a string (by passing a culture specifier argument).