DotNetNuke is one of the top online communities of Web Content Management. DNN is an open source platform based on Microsoft .Net and thus, makes use of all rich built-in internationalization and localization features of this technology. Over the years, DNN shows high flexibility regarding third-party module integration which is considered a significant advantage in comparison to other platforms.
As DNN is fully built using Microsoft .Net framework, internationalization and localization can smoothly follow the same rules of .Net framework. A web site has always two types of content: static and dynamic. Static content is the text that appears for example in buttons and labels such as Submit, Cancel, Error Messages and so on. Dynamic content is the web site content itself. As a common web development best practice, all static content should be stored in resource files.
Resource files (*.resx)
Resource files are an xml repository where static content is stored per language. A resource file takes the extension *.resx and should be created one per language with the correct naming convention recommended by Microsoft: base_filename[.optional RFC 1766 culture info string].resx (for example: Resource.ar-EG.resx). Using resource files simplifies the localization process because the only action needed here is to send the resx file for translation without having to send the application itself to the translation company. Also there is no risk of corrupting application technical code. Furthermore, as the resource file is in the required xml format, localization engineers have few if any issues during pre- or final engineering.
Localizing DotNetNuke Static Content
DNN uses resources files to handle all static content for localization in the following ways:
– Language packs can be downloaded from the DotNetNuke website for different languages. Also custom language packs can be developed.
– Each installed language will have an icon in the home page such as the below screen capture from DotNetNuke 7.
– Install a new language pack from Admin under languages section.
– Also resource keys can be modified or new items can be added from within the platform by selecting “Edit” by the selected language.
– Furthermore, you can create a custom language pack also by selecting “Create Language Pack”.
Localizing DotNetNuke Dynamic Content
There are a few things you need to do in order to localize your dynamic content in DotNetNuke.
– First you must enable the CMS for multilingual content. From Host, select “Host Settings” then “Other Settings”. Scroll down and check “Allow Content Localization” and click “Update”.
Without completing this first step, content inserted for ANY language will OVERRIDE all of the other languages.
– Next, you must select “Enable Localized Content” from the “Languages” section (Admin > Languages).
– Once you click on “Enable Localized Content”, a new popup page will appear to confirm the default culture of the site and if all pages should be enabled for localization.
– When you return to the “Languages” section, new features will be displayed under five new columns: page numbers, localization progress (%), check/uncheck to activate localization, publish and delete. These items help the content manager to control the overall localization process.
Important note: If the content manager did not check the “Active” checkbox, the content for this language will not be enabled for translation.
– Also under “Language”, a new tab will be added called “Content Localization”. When the content manager selects this, the following screen will be displayed:
From this section, the Content Manager can select a page and view translation per language for each of the modules installed on it as well as the page title and description. Also, Content Manager can excluded a module from the translation process by checking the box beside it.
This blog highlights briefly the main internationalization/localization features within DotNetNuke 7. In the next blog, I will go through different possible approaches to export/import content for translation and how multiple versions of language content is stored and handled in DotNetNuke.
GPI Resources on Multilingual CMS and Connectors
GPI offers custom CMS translation services connectors to a variety of web content management systems and client relationship management systems in order to streamline localization workflows and access to translation project information across your enterprise. For more information, check Multilingual CMS Translation Connectors.