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...


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 Website Copy 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:


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.

MS CRM 2016
Blog Calendar
Blog Calendar List
2021 Sep  3  2
2021 Aug  7  4
2021 Jul  12  4
2021 Jun  49  6
2021 May  12  2
2021 Apr  26  3
2021 Mar  30  5
2021 Feb  78  7
2021 Jan  138  9
2020 Dec  62  7
2020 Sep  38  3
2020 Aug  121  3
2020 Jul  68  1
2020 Jun  29  3
2020 Apr  16  3
2020 Mar  11  2
2020 Feb  23  5
2020 Jan  23  7
2019 Dec  15  4
2019 Nov  12  1
2019 Jan  33  3
2018 Dec  36  4
2018 Nov  66  3
2018 Oct  12  3
2018 Sep  463  11
2018 Aug  6  2
2018 Jun  11  1
2018 Jan  58  2
2017 Sep  565  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  54  2
2017 May  21  1
2017 Apr  33  2
2017 Mar  120  4
2017 Feb  483  4
2016 Dec  185  3
2016 Nov  449  8
2016 Oct  256  10
2016 Sep  367  6
2016 Aug  39  1
2016 Jun  1797  6
2016 May  104  3
2016 Jan  71  2
2015 Dec  392  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1400  6
2015 Aug  13  1
2015 Jul  127  2
2015 Jun  10  1
2015 May  20  1
2015 Apr  28  3
2015 Mar  78  3
2015 Jan  5284  4
2014 Dec  17  1
2014 Nov  2231  4
2014 Oct  64  1
2014 Sep  106  2
2014 Aug  4880  1
2014 Jul  46  2
2014 Apr  2492  12
2014 Mar  295  19
2014 Feb  241  8
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  662  2
2013 Oct  252  3
2013 Sep  11  1
2013 Aug  38  3
2013 Jul  209  1
2013 Apr  50  6
2013 Mar  1962  10
2013 Feb  312  4
2013 Jan  273  2
2012 Nov  39  2
2012 Oct  464  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote