Support forum of the software localization tool Sisulizer


Localization Tool for VB, Delphi, .NET, C#, VB.NET, XML, Online Help, HTML ... Home

Get in contact with the makers of Sisulizer.
Our forum is open for all questions around Sisulizer from customers and prospects.
Don't hesitate to register and ask. The Sisulizer team will answer ASAP.

Search     Help Home Sisulizer Website Download
Search by username
Not logged in - Login | Register 

 Moderated by: Renate.Reinartz, Markus.Kreisel, Jaakko.Salmenius, Ilkka.Salmenius
New Topic Reply Printer Friendly
VC++ 6.0 MFC application - One EXE, one DLL for all languages. - Usage - Three simple steps to localize - Technical Support (You need to be registered at the forum to write) - Localization Tool for VB, Delphi, .NET, C#, VB.NET, XML, Online Help, HTML ...
AuthorPost
 Posted: Tue Apr 15th, 2008 08:34 pm
PM Quote Reply
danliu
Member
 

Joined: Wed Apr 9th, 2008
Location:  
Posts: 10
Status: 
Offline
I am evaluating Sisulizer for my company on one of our VC++6/MFC applications.  For example, my EXE is named Original.exe, and I would like to support two languages besides English - German and Japanese.

I chose Sisulizer output file type #3 - "Resource DLLs", and Sisulizer created me 2 new DLLs (OriginalDEU.dll and OriginalJPN.dll). I was able to load them at runtime with no problems. However, my manager prefers to have only one DLL instead of two. Does Sisulizer support this?

I tried Sisulizer output file option #4 - "Embedded resource DLLs", but I got three files under emb folder: originalDEU.dll, originalDEU.exe, and originalJPN.dll. If the option can work for me, how am I going to use these files? Am I supposed to have only one EXE file in this case?

Thank you all for your reply.

Back To Top PM Quote Reply

 Posted: Tue Apr 15th, 2008 08:58 pm
PM Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Bedburg, Germany
Posts: 831
Status: 
Offline
Hi,

please take a look at the option multilingual file (http://www.sisulizer.com/online-help/MfcResourceDllFiles.htm). If you use this Sisulizer creates one file with more than one language in it. Please also take a look at the samples coming with Sisulizer for C++.

Best

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 03:15 pm
PM Quote Reply
danliu
Member
 

Joined: Wed Apr 9th, 2008
Location:  
Posts: 10
Status: 
Offline
Hi Markus,

Thank you very much for your reply. Yes, you're right. I want to use Sisulizer to create one file with 3 languages in it, and also want to have the ability to load different languages at runtime based on the user's selections other than OS settings. Could you please let me know how to do it?

I tried the samples for C++, and used Sisulizer to build it with option #4 - "Embedded resource DLLs", but again, I got ConverterJPN.dll, ConverterDEU.dll, ConverterFIN.exe, and ConverterFIN.dll in emb folder. I assume ConverterFIN.exe is the one that contains all resource DLLs, how can I extract them using C++ code?

The Sisulizer help says "Sisulizer does not contain resource DLL extraction function for MFC. You have to write you own code to extract DLLs from resource to local files. " Could you please give me some clues or examples on how to extract DLLs from this ConverterFIN.exe?

I appreciate your help.

Dan

Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 04:10 pm
PM Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Bedburg, Germany
Posts: 831
Status: 
Offline
Hi Dan,

I'm not a developer myself. I asked the developers to help with this. The problem to me seems to be the logic in the MFC. I googled a lot of posts regarding that. The only solutions I found deal with one EXE and one DLL for each language. The developers then load the DLL with the language they want and then use AfxSetResourceHandle to use the resource in it. I have not found a "AfxSetResourceHandleX" where you can choose between languages if they are stored in a DLL with multilingual resouces. The pity with multilanguage resources is, that the OS wants to choose the right language for you.

That for now. I hope our developers have some better solution for you.

Best

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 05:45 pm
PM Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Bedburg, Germany
Posts: 831
Status: 
Offline
Hi Dan,

I spoke the developers and it seems there is no easy solution for this at the moment. The combination of runtime langauge switch plus all languages in one DLL seems not be possible with MFC - at least I have not found some hint on the http://www.

If multiple DLLs would be fine for you, the routine to load the needed one is like this:

BOOL CMyApp::InitInstance()
{
//Default Application Wizard code.
HINSTANCE hRes = NULL;
hRes= LoadLibrary("ResourceD.dll");
if(hRes)
AfxSetResourceHandle(hRes);
//Rest of wizard code
return CWinApp::InitInstance();
}[code]Depending on the language you choosed you have to load the matching DLL with LoadLibrary.

Hope this helps.

Best

Markus




____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 06:33 pm
PM Quote Reply
danliu
Member
 

Joined: Wed Apr 9th, 2008
Location:  
Posts: 10
Status: 
Offline
Hi Markus,

Thank you for your prompt reply. Like I said, I had no problems loading multiple DLLs at runtime with similar code you just provided. I guess the real question is, if I know how to extract resource from one DLL that contains multiple languages, can Sisulizer create such DLL for me? For example, my MFC EXE is test.exe, can Sisulizer create only one DLL, say test.dll, which contains 3 different languages?

Best regards,

Dan

Last edited on Wed Apr 16th, 2008 06:34 pm by danliu

Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 07:07 pm
PM Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Bedburg, Germany
Posts: 831
Status: 
Offline
Hi Dan,

yes, that is possible with the multilanguage option (#2). You should make the DLL your main source and Sisulizer creates you a DLL with multiple languages. With Sisulizer V2008 there will be also support for multilingual RC files.

Best

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 08:12 pm
PM Quote Reply
danliu
Member
 

Joined: Wed Apr 9th, 2008
Location:  
Posts: 10
Status: 
Offline
Thanks Markus!

My understanding is that in option #2, if my EXE is test.exe, it will create a new EXE with the same name under a new "all" folder, and this new EXE will contain not only resources with all lanugages, but the source code as well.  My manager wants to have the original EXE unchanged, and a new DLL with all languages, is that possible for Sisulizer?

Regards,

Dan

 

Back To Top PM Quote Reply

 Posted: Wed Apr 16th, 2008 08:30 pm
PM Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Bedburg, Germany
Posts: 831
Status: 
Offline
Yes,

but the source then can not be "test.exe". Your source then has to be "test.dll" with one language. Sisulizer then can create you a new DLL with multiple resources = multiple languages.
So you first have to move your resourcs from your EXE to a single language DLL. Then you can use Sisulizer to make a multilingual DLL with option #2. You still have to solve the problem how to load the right language table. MFC wants to have single DLLs for each languages. Sisulizer offers you the localization possibilities MFC has to offer.

Your EXE or DLL can have multiple languages with MFC but the OS wants to switch themself which is the right one. The embedded option just means that multiple DLLs are inside your EXE and are written out at startup.

Best

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Quote Reply

 Posted: Thu Apr 17th, 2008 02:03 pm
PM Quote Reply
danliu
Member
 

Joined: Wed Apr 9th, 2008
Location:  
Posts: 10
Status: 
Offline
Hi Markus,

Great! I tried what you said and got exactly what my manager wanted - one EXE and one DLL for all languages.

Thank you for your help!

Dan

Back To Top PM Quote Reply

 Posted: Thu Apr 17th, 2008 02:10 pm
PM Quote Reply
Markus.Kreisel
Administrator


Joined: Sat Apr 8th, 2006
Location: Bedburg, Germany
Posts: 831
Status: 
Offline
Thanks for the positive feedback!

I'm very glad that I could help you in the end. Sorry that I could point you faster to the point, but as I said, I'm not a developer myself ;-)

Best

Markus



____________________
http://www.sisulizer.com - Three simple steps to localize
Back To Top PM Quote Reply

Current time is 09:51 pm  
Localization Tool for VB, Delphi, .NET, C#, VB.NET, XML, Online Help, HTML ... > Technical Support (You need to be registered at the forum to write) > Usage - Three simple steps to localize > VC++ 6.0 MFC application - One EXE, one DLL for all languages.



WowUltra 1.11 Copyright © 2007 by Jim Hale - Based on WowBB Copyright © 2003-2006 Aycan Gulez

Sisulizer software localization tool - Three simple steps to localize