welcome to XRM blog

Keep in touch with latest CRM/ERP articles

To remain competitive your organisation must be efficient across the business process spectrum. To do so you need to take sound decisions based on a balance between the cost and risk. To do so you will be heavily dependent on your content management in itself needs...

image
Blog

Language Localization of ADXStudio Portals

By Ami Atishay on 9/21/2016

Expanding a portal to cover multiple regions and/or languages can be quite a handful of a job. This can be done in two ways, either making the portal multilingual or making separate portals for each region or language. Language localization is the process of translating a pre-existing portal into any given language.

From a high level view, localization of an ADXStudio Portal can be divided into 4 major steps:

1.   Adding the required language pack into the Microsoft Dynamics CRM:


Well this is the easy one, you can download the language pack you want from here. Once downloaded, you can install on the MS Dynamics CRM Server (on-premises). And if your organization is using MS Dynamics CRM Online version, this step is not even required. But do remember, language pack having same Locale ID as the base language pack cannot be installed.

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:

Label Translations:

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.

 

Portal Configuration:

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:

GetLocalResourceObject("resource_name").ToString()

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.


.Net
MS CRM 2016
ADXStudio
Author
Blog Calendar
Blog Calendar List
2018 Nov  22  3
2018 Oct  7  3
2018 Sep  13  11
2018 Aug  2  2
2018 Jun  11  1
2018 Jan  41  2
2017 Sep  348  5
2017 Aug  14  1
2017 Jul  15  2
2017 Jun  36  2
2017 May  17  1
2017 Apr  31  2
2017 Mar  104  4
2017 Feb  269  4
2016 Dec  171  3
2016 Nov  265  8
2016 Oct  197  10
2016 Sep  341  6
2016 Aug  38  1
2016 Jun  1580  6
2016 May  102  3
2016 Jan  68  2
2015 Dec  373  6
2015 Nov  3  1
2015 Oct  11  1
2015 Sep  1104  6
2015 Aug  10  1
2015 Jul  101  2
2015 Jun  7  1
2015 May  20  1
2015 Apr  21  2
2015 Mar  67  3
2015 Jan  4997  4
2014 Dec  14  1
2014 Nov  2159  4
2014 Oct  74  2
2014 Sep  95  2
2014 Aug  2847  1
2014 Jul  40  2
2014 Apr  2401  12
2014 Mar  268  19
2014 Feb  216  8
2014 Jan  1490  16
2013 Dec  21  2
2013 Nov  607  2
2013 Oct  239  3
2013 Sep  10  1
2013 Aug  29  3
2013 Jul  202  1
2013 Apr  43  6
2013 Mar  1633  10
2013 Feb  272  4
2013 Jan  244  2
2012 Nov  24  2
2012 Oct  394  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote