What I've done in the past is create a DLL to do this. There are several ways to do it.
Example 1:
Create a DLL and include your resource file in the DLL. Create public menthod in the DLL called GetResString(lngIndex As Long) As String. Have your program call this function to get the string from the DLL. If you want multiple languages in one DLL then you have to define offsets for each language. So for English you might set aside 1 thru 1999, then for Dutch set aside 2000 thru 3999, etc for each language. Then all you have to do is send the ID for the string to the function and add the offset for each language. For example if the string at location 1 was "Hello", then your code would look like this:
strPhrase = obj.GetResString(1 + lngLanguageOffset)
If you want it in English, lngLanguageOffset = 0, if you want it in Dutch, then lngLanguageOffset = 2000, etc for each language you have in the resource file.
Example 2:
The other way to do it is to create the base language as you did in the first example and compiple the DLL. After you compile the DLL, go to the project and set "Binary Compatability Mode" for the DLL. Then copy the DLL to a new language directory, use the a different RES file and recompile. This gives you a different language for each DLL. Then all you have to do is register the approriate DLL to change the language. If you don't use Binary Compatability IT WON'T WORK! Snaggs
tribesaddict@swbell.net
To define recursion, we must first define recursion.