Once installed, the language pack needs to be enabled by a user with appropriate security role, i.e. System Administrator. To enable a language in the CRM, go to Setting > Administration > Languages, open the Language setting dialog box. You now need to select any or all language that need to be enabled and then just click Apply. Please note, enabling a language pack can be a very time taking process.
Now you just need to create a CRM System User record for every language and login to CRM with the account you need a portal for and set the language in the options.
2. Language Localization for ADXStudio Portal:
Unique labels should be created for each hardcoded text in the portal which are required to be translated. This should be done very carefully so that no label is created for any text that is directly used in the code.
Create Multiple Region Websites:
A website portal should be created which will be a copy of the pre-existing portal for each language. This can be done using WebsiteCopy utility. Language Code will have to be assigned to the form control to translate label in a particular language. This can be set in the Site Setting in the CRM.
To support language localization of CRM components, a few modifications should be made in the specific language portal.
We need to edit the web.config files of the each newly created portal.
1. A connection string needs to be specified with a particular user with the option set for each language.
2. Contexts and services will have to be specified for each language
3. A portal configuration will have to be specified for each of the multilingual website. The contextName property will also have to be specified as the language code for any given language.
The default base language will have entry with the name "Xrm". For every other entry, the name will be the language code.
3. Language Localization for the Custom Web Pages:
This step is necessary for localizing the custom created web pages. Now, to localize the web pages, the procedure is given below:
1. Create a resource file for each custom web page.
2. In each resource file, we will have to add labels for all the hard coded text in the corresponding page that are required to be translated.
3. Repeat Step 2 for all the to-be-localized web pages.
4. Each label has a value which is a hard coded text in the code, with the translated text. For this, new resources will be created for each existing resource file for all the required languages.
5. These new resources will have the required language translation of the values of all the labels in a single resource file.
For any given language, there will be a resource file that will contain all the translations in a page.
This can be a very tedious task, I am telling you this from a personal experience. When all the resource files have been created, we will need to make changes in the code of all the pages for which we had created resource files earlier. To do this use: Replace the hard coded text with:
<%$ Resources: resource_filename, resource_name %>
if working with GlobalResources or
<%Resources: resource_name %>
if you have created local resource.. “<%%>” is the code rendering block, which is an inline expression. This only works in the ASPX code. For the codebehind, you might wanna use this:
to replace with the text in the C# code. Now as quite visible, if somehow GetLocalResourceObject("resource_name") is returned null then, this expression can cause an error. A work around for this can be,
String.Empty + GetLocalResourceObject(“resource_name”).
4. Translating the labels and fields in the CRM System:
Not all fields and labels are included in the language pack, especially the custom entities and fields created. You will have to manually translate and upload them back into the CRM System.
For this, Go to Settings > Customizations.
1. Click on Customize the System.
2. On the Actions toolbar, choose Export Translations.
3. Follow the wizard, and when complete, open or save the compressed (.zip) file to your computer.
4. Now you have to extract the XML file that contains the exported labels from the compressed (.zip) file and translate it.
What you have now is a localized ADXStudio portal, repeat for localizing another Adxstudio Portal. With all this setup, you now only have to change the resource files. Modification of the code was only to be done once. And but will still have to translate the custom labels and fields in the CRM.