Traditionally there have been three approaches to creating a Multi-language DotNetNuke Content Management System. Your DNN could have a master portal in your preferred language and then you could copy the content and tab structure in one child portal per language. This is the preferred approach with most of our clients.
The second approach involves a single portal with content being in two or more languages. This approach is implemented utilising a set of modules by our partners at apollo-software.nl or other methods like this one here.
In DNN 6.2 and beyond, there is a fully localized core that can enables customers to work in their preferred language out of the box. So DotNetNuke Corporation now supports four additional core languages: Dutch, French, German and Spanish. With DNN 6.2 organizations can now download and install fully localized versions of the DNN Content Management Platform and work in their preferred language. The complete platform including the installer, site template, administrative menus and included modules are fully localized.
Since this approach is built inside the core, we will not go deep into it, Here are couple of videos that explain it well.
Page Localization Module
The Page Localization Module enhances the localization capabilities of DotNetNuke. Now you can translate the names of your pages into any language your portal supports.
All localized values are stored in the database and are easily manageable. The rendering of the localized values is taken care of by a set of multi-language enabled versions of all core skin objects that are related to the rendering of page names. To be specific: BreadCrumb, Links, SolPartMenu, PageTitle and TreeViewMenu. These skin objects are registered during the installation of the Page Localization Module.
Multi-language Advanced Announcements
The concept behind the module is a simple one. If the data structure of the majority of the core modules is almost exactly the same, then why not have just one combined module? The advantage is clear and you no longer you have to learn to use 4 or more different module. This is where MLAdvAnnouncements comes in.
The magic of the module happens in the Module Settings. In the module settings you can select how the module should behave when rendering items. The edit page of the module is the same for every display type, but the content entered will be rendered differently or not at all depending on the selected display type.
Features of Advanced Announcement:
- Different display modes, which allow the module to act as the Announcement, Links, FAQ, Image, or ImageLinks module
- Enhanced URL control, with image preview upon file selection
- Publish date for easy future publishing of items
- Expired and future items can be easily viewed by module editors
- Archived items can be made visible to all visitors
- More sorting options, which include publish date, expire date, alphabetical on item title, number of clicks (to allow a "most favourite" list), and manual sort order (the legacy "view order")
- FAQ view uses client-side collapsing and expanding of items, and includes an "Expand All" and "Collapse All" option
- You can add automatic numbering to items
- Add (or remove) publish dates to all titles with one click
- Optional automatic thumbnail generation
- Full support for IExportable, needed for importing and exporting modules and for use in portal templates
- Full support for ISearchable, needed for the DotNetNuke search function and module RSS feed.
- And of course... Multi-language functionalities. The multilingual capabilities have been implemented in a subtle way: if your portal has only one installed language (ie. en-US), you will not see any of the multilingual options of the module.
Multi-language Language Selector
With the Language Selector skin object anex module we can add 3 different options to select the language on your site. Other than a drop down menu, you can also add image links (flags) or text links. The image and text links generate basic hyperlinks which are easy to follow by internet search bots. This ensures that all languages on your site are spidered. You can add the language selector to your skin so it will be displayed on all pages or you can add it as a module to one or a few pages. The module version has a settings page that lets control its appearance. To this end the skin object version supports a number of parameters.
The language selector comes with 110 of pre-installed flags (for every country supported by DotNetNuke). These flags are courtesy of the CIA Factbook. You can find out for yourself how the language selector works via our demo site: demo site. Online help is available here.
Multi-language Survey
MLSurvey is a multilingual version of the core Survey module. The first version does not contain many features, however, there is support for ISearchable (DNN search and DNN RSS feeds), and IPortable (import/export). And of course you can edit content for different languages which may be helpful to you.
Multi-language HTML and Rich Text Module
This module allows you to enter the text/images/HTML for a piece of content on your page in your preferred language as well as any other languages you may require. The end users preferred language is recognized and so the dynamically-displayed content is rendered correctly in relation to the user.
Features of ML HTML & Rich Text Module
- Text can be entered in all localities that are available to the portal
- Localization of module title
- When the module is viewed, only the text entered for the current page locale is visible
- If no text is available for the current page locale then the text available in the default portal locale is shown
- If no text for the default portal locale is available, then any available text is shown
- Search is implemented
- Import and export is implemented
What's New with MLHTML Module?
Due to the fact that the MLAnnouncements module required a new method for the localization of the module title, the MLHTML module is upgraded accordingly to work the same way. This means in that the new version of MLHTML the localization of the module title is no longer on the edit page but on the settings page. If you already have a previous version of the MLHTML module in your portal, then it may be necessary to regenerate the search index to avoid any conflicts. You can do this in the Search Admin page.
Basic Multi-language Annoucement
The multi-language announcement module (ML Announcements) allows you to enter announcements in every language that is available to the portal. The special features are:
- Localization of title, announcement and url, so you can link to a different URL for each language
- DNN search is implemented.
- DNN import and export is implemented
- Localization of the module title is accessible via the settings page of the module
Google Analytics for ML Portal
In order to allow for injection of the google analytics script into your page, we created the freely available skin object GGLAnalytics. The skin object has one public property, fUacct, which you can use to pass your Google analytics account number. The skin object will render the following script block inside your page header:
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-xxxxxx-x";
urchinTracker();
</script>