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

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
2024 Aug  4  1
2024 Apr  42  4
2024 Mar  77  4
2024 Feb  135  3
2024 Jan  24  7
2023 Dec  22  6
2023 Nov  219  5
2023 Oct  342  12
2023 Sep  878  9
2023 Aug  202  6
2023 Jul  44  6
2023 Jun  25  4
2023 May  44  5
2023 Apr  58  5
2023 Mar  155  6
2023 Feb  149  5
2023 Jan  59  4
2022 Dec  95  7
2022 Nov  275  2
2022 Sep  13  1
2022 Aug  31  2
2022 Jun  11  2
2022 May  6  2
2022 Apr  12  2
2022 Mar  2  1
2022 Feb  2  1
2022 Jan  1  1
2021 Dec  4  1
2021 Nov  2  1
2021 Oct  2  1
2021 Sep  14  1
2021 Aug  49  5
2021 Jul  50  4
2021 Jun  1549  5
2021 May  39  3
2021 Apr  2142  3
2021 Mar  207  5
2021 Feb  2420  7
2021 Jan  3564  9
2020 Dec  501  7
2020 Sep  80  3
2020 Aug  750  3
2020 Jul  134  1
2020 Jun  93  3
2020 Apr  85  3
2020 Mar  19  2
2020 Feb  34  5
2020 Jan  46  7
2019 Dec  17  4
2019 Nov  35  1
2019 Jan  23  2
2018 Dec  102  4
2018 Nov  68  3
2018 Oct  18  3
2018 Sep  1196  11
2018 Aug  7  2
2018 Jun  17  1
2018 Jan  70  2
2017 Sep  588  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  64  2
2017 May  21  1
2017 Apr  38  2
2017 Mar  138  4
2017 Feb  817  4
2016 Dec  207  3
2016 Nov  881  8
2016 Oct  314  10
2016 Sep  749  6
2016 Aug  39  1
2016 Jun  1882  6
2016 May  111  3
2016 Jan  71  2
2015 Dec  590  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1470  6
2015 Aug  14  1
2015 Jul  128  2
2015 Jun  11  1
2015 May  20  1
2015 Apr  30  3
2015 Mar  80  3
2015 Jan  5341  4
2014 Dec  17  1
2014 Nov  2260  4
2014 Oct  69  1
2014 Sep  107  2
2014 Aug  5302  1
2014 Jul  49  2
2014 Apr  2588  12
2014 Mar  303  17
2014 Feb  220  6
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  693  2
2013 Oct  256  3
2013 Sep  11  1
2013 Aug  40  3
2013 Jul  214  1
2013 Apr  61  6
2013 Mar  2327  10
2013 Feb  131  3
2013 Jan  349  2
2012 Nov  61  2
2012 Oct  518  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote