About this question, the DotnetNuke framework hasn’t offered a complete solution yet. But this infamous problem has troubled many DotnetNuke followers,here Nova would like to share our own complete solution for multi-language website with DotnetNuke.
We can start from the following aspects to make DotnetNuke website multilingualism:

Some of these parts are already supported by DotnetNuke framework, please refer to the below table for each specific part:
|
Part for Multi Language
|
Supported by DotnetNuke framework
|
|
Multi Language package for framework
|
Yes
|
|
ML for Navigation Control
|
No
|
|
ML for HTML Content
|
No
|
|
ML for Modules
|
ML for HTML Module
|
No
|
|
Other
Custom
Modules
|
ML for Module Info(Module title etc)
|
No
|
|
ML for Static resource (Label, grid header etc)
|
Yes
|
|
ML for Dynamic Data Of Module
|
No
|
Now we can come up to detailed ML approach for each part:
-
Multi-language for DNN framework
It’s very easy to implement multilingualism for DNN core framework, you only need to download relevant Language Packs and install them on your DNN website. (Language Packs can be downloaded from here http://www.dotnetnuke.com/Resources/Language-Packs.aspx)
-
Multi-language for Navigation Control
There are two free 3rd party modules you can use for localization of dnn menu:
The first one is developed by Effority.net and you can download it on Codeplex (http://ealo.codeplex.com/); remember to download the readme file together, and then you can follow the readme file to localize the menu. For convenience, I quoted the following steps:
1) Make sure that the Effority Ealo Core API (DNN Module) is installed.
2) Make sure that the Effority Tab Localization Module is installed.
3) Add the following tag to the navigation provider section in your web.config
>
4) Change the value of the Attribute ProviderName of the tag in your skin to EfforityMenuNavigationProvider
5) Translate some Tab Names with the Effority Tab Localization Module.
The second module you can use for localizing your menu is DSLocalizator Package. About how to use this module, you can refer to this thread: http://dnn.tiendaboliviana.com/web/Support/Forums/tabid/72/forumid/2/threadid/2741/scope/posts/threadpage/2/Locale/en-US/Default.aspx
-
Multi-Language for HTML Content
One of the free modules you can use for localizing html content is Ealo MultiLanguage (ML) Simple HTML Module, you can download it from http://ealo.codeplex.com/ and install it on your website. Then you can add static html content to your website with this module instead of DNN core Text/HTML module.
Another essential module will be MLHTML from Apollo-Software which is free. This powerful and very reliable bug free module will replace the DNN core Text/HTML module.
-
Multi-Language for Custom DNN module
For the module info (module title etc) in the module, you can also use the DSLocalizator Package module to localize. The usage has been introduced above.
For the static label in the module which is already supported by DotnetNuke framework, you only need to use the resource file to archive it(add the language code as the ext name for the resource file, eg: ViewModule.ascx.resx.fr).
For the dynamic data of the module, you can implement Multi-Language by changing the database design. For example, add a “Locale” column to the data table to save relevant language code (en, zh etc), you can only filter the data by current language of your website when querying data.