How do I create language satellite DLLs for a C++ (MSVC 2008) solution? -


We are finally localizing our application and need to create satellite DLL for string tables (one month long processing hard -coded strings out of the source code)

I'm looking for MSDN and other help but I'm really confused about the mechanism for making language DLL.

We have English resources in XE. I think now we need to create a DLL project (named MyAPPXXX.dll).

I'm not sure how we should do this. Is there only one resource / RC file and different sections in the file, or is there a copy RC file for each language with copy translation in every language?

I should try to follow the instructions which I see how to do it.

Does each language need a DLL, or do we have the same project that has many configurations - and if this is done?

I have a list of pages here - read about this - but conflicting information and my ignorance confuse me:

< P>

Edit:

Do I have different sections of RC files for different languages ​​or do I have to copy the RC file - each A dell for language?

You have more than one. The Rc file can be. The built environment from MS itself is not WDK (Windows Driver Kit), but you can work around it by using the #include statements.

Actually the way you combine or different languages ​​are completely above you, a language identifier is coming along with resources (you can call it in language LANG_ITALIAN, SUBLANG_ITALIAN , Though they are given in winnt.rh , winres.h , or may have to include afxres.h for symbolic names of languages) , So more than one language can be moved to a DLL. You can also define a group of main languages ​​within .exe and other languages ​​one. Dll can be separated in the file.

However, how previously language was chosen by the user in clear language), this is why MS started supporting Vista.

The best option so far in my deployment is a language per DLL and a "core language". Exe

I also differ per language Like RC files, but any one can safely receive it by using #ifdef ...

NB: View your updates with the link, Now you are skimming on them ...


Your first link, "Creating only one resource DLL" inspires me to add another small fact, since in such a DLL There is no entry point and there is no code, using a DLL compiled in x64 process for x86 It is possible to do LoadLibraryEx with LOAD_LIBRARY_AS_DATAFILE will also allow for files that contain the code.


Okay, does RC files go in? In general. The RC file will look something like this:

  // ... #include "afxres.h" // ... Language LANG_ *, SUBLANG_ * IDR_MAINFRAME menu // Language-specific Menu entries IDD_Aboutbox dialogues 0, 0, ... ... Language specific pre-loaded dialogs, adjust control size and all STRINGTABLE // ... language-specific * strings * END   

So, the answer depends on where it depends. If you do not have the menus and dialogs needed for translation, you can properly create language-specific string tables by putting them in each .rc file and using .dll with it (if you select / noentry All use it) However, if you have other items from bare wires that require translation, then you have to include those people (usually the dialogues and menus are more common ones) in this case you can change the per-language control size and Can adjust the per-position but warned, maintenance cost may be considerable for this. There may be better solutions for this, for example, wxWidgets uses a so-called bag-sizers to adjust for long strings.

Comments