This tutorial is intended for MonoX administrators. It describes the localization settings and gives the details on how to use the interactive localization infrastructure that does not require recompilation of the project.
We will divide this tutorial in the following sections:
1. Localization.
2. Managing localization settings with accent on the database resource manager(
DBResourceManager).
2.1. Translation of MonoX resources.
2.2. Interactive localization using the
DBResourceManager.
2.3. Using MonoX administration to manage portal resources.
1. Localization
Multiple localization scenarios are fully supported in MonoX due to its flexible architecture. It is very easy to localize portal contents, as well as all administration and support utilities. A single portal instance can support unlimited number of localized sites, where each site has the same structure, but different (localized) content.
2. Managing localization settings
MonoX can be fully localized using two very different approaches. First one is standard: it involves translating MonoX resource (.resx) files using any of the publicly available resource editors. It is still better suited for scenarios in which you plan to build multiple sites on top of MonoX platform, as resources can be shared between projects. This approach is described in section 2.1.
Additionally, when you need a quick and interactive way to localize content for a single project, MonoX provides an alternative localization infrastructure that allows you to modify any of the MonoX localization resources and translate them to your language instantly. This approach is described in section 2.2.
2.1 Translation of MonoX resources
Note: Before you start translating the resources we advise you to copy the whole localization solution to your custom location: from "MonoX/Samples/Solution/LocalizationSolution" to "YourCustomFolder/LocalizationSolution" (out of the MonoX CMS folder structure). New versions of the MonoX CMS that you may upgrade to in the future will overwrite the localization solution folder with the new MonoX resources, and that is why we advise you to copy the whole localization solution to your custom, protected location. When you do so please open "YourCustomFolder/LocalizationSolution/LocalizationSolution.sln" in the
Visual Studio. You can open RESX files and translate the resources as usual - they contain simple name-value pairs of strings.
After you have translated the resources you need to build the project and navigate to the localization project's "bin" folder. Copy all files and subfolders (e.g. "en-US", "hr-HR", "tr-TR", "cs-CZ") to the MonoX bin folder and overwrite all of the MonoX original localization folders. Restart the IIS application pool and refresh the portal page to get new translated resources.
2.2 Interactive localization using the DBResourceManager
MonoX includes support for completely interactive localization that does not require recompilation of the project, as all resources are stored in the database. This gives users more power and flexibility, since it would be impossible to localize all resources at run time (both built-in and custom ones) using the approach described in the previous section. Note that the previous approach still may be better if you need to share the resources between multiple projects.
It is possible to export values from database to resx files and vice versa, both for a single page/control or for a whole portal at once. To start using this approach you will have to change the default
ResourceProviderModel setting in the
web.config file and set it to
DBResourceManager. This will enable the Portal localization management utility (found under "Other tasks" on the main administrative screen), that does the real job for all portal pages and controls.
2.3. Using MonoX administration to manage portal resources
In the following part od this tutorial I will show you how to change the existing portal resources or translate it to another language. The first step is to log in with an admin account. Username and password are the same:
admin/admin.
Navigate to the portal adminstration area:
Lets assume you want to change just the existing resources for the current language. To do so, click on the portal localization option:
... and you will get the following screen:
This pane allows administrators to localize each and every localizable resource in the portal. From the drop down list you can choose one of the resources groups that you want to modify. On the left side you can select any of the localization items, change their values and save the changes to the database. Note that MonoX uses several translation engines to suggest a correct translation for each text.
The second scenario would include adding a new language to your portal. Open the language manager and add a desired language.
You can now navigate to the portal localization area, change the language to the one you just added and start changing the resources.
Note that it is possible to have only one default language. Pages in all other languages will have URLs of the form /language/LocaleName/PageName.aspx. The "language" part of this URL is configurable and can be changed - of course, you don't have to create a physical folder structure of this type for the localization tasks, as MonoX URL rewriting engine will take care of everything. The format of the localized URL is not fixed, and can be controlled by developing a custom localization handler - this task requires implementing the ILocalizationHandler interface.
You can always switch the active language using the language dropdown in the administrative toolbar on top of each page. It is important to understand the types of content that is held in resource files, as opposed to content that is also language-dependant, but localized using other tools. For example, a localized version of the site will initially have all administrative interfaces translated to the appropriate language. However, text in HTML editor Web parts will initially hold default (English) versions, and you will be able to change it using the familiar HTML editing interface. Each localized site will hold its own version of the content. The same hold for the navigation links, as each localized site can have totally independent navigation hierarchy - you can create it in the Page management administration section. Blogs, groups, and other social networking resources are also language-aware, so you are expected to open a separate blog (or multiple blogs) for each localization instance of the site.