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 Apr  2  4
2024 Mar  19  4
2024 Feb  22  3
2024 Jan  6  7
2023 Dec  9  6
2023 Nov  32  5
2023 Oct  86  12
2023 Sep  196  9
2023 Aug  57  7
2023 Jul  31  5
2023 Jun  20  4
2023 May  43  5
2023 Apr  32  5
2023 Mar  90  6
2023 Feb  105  5
2023 Jan  37  4
2022 Dec  94  7
2022 Nov  249  2
2022 Sep  13  1
2022 Aug  27  2
2022 Jun  7  2
2022 May  3  2
2022 Apr  6  2
2022 Mar  1  1
2022 Feb  2  1
2022 Jan  1  1
2021 Dec  3  1
2021 Nov  2  1
2021 Oct  1  1
2021 Sep  11  1
2021 Aug  37  5
2021 Jul  36  4
2021 Jun  1207  5
2021 May  31  3
2021 Apr  1997  3
2021 Mar  188  5
2021 Feb  2093  7
2021 Jan  2973  9
2020 Dec  433  7
2020 Sep  73  3
2020 Aug  671  3
2020 Jul  126  1
2020 Jun  75  3
2020 Apr  68  3
2020 Mar  12  2
2020 Feb  27  5
2020 Jan  34  7
2019 Dec  17  4
2019 Nov  29  1
2019 Jan  23  2
2018 Dec  63  4
2018 Nov  68  3
2018 Oct  18  3
2018 Sep  1132  11
2018 Aug  7  2
2018 Jun  13  1
2018 Jan  68  2
2017 Sep  585  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  62  2
2017 May  21  1
2017 Apr  35  2
2017 Mar  135  4
2017 Feb  773  4
2016 Dec  203  3
2016 Nov  823  8
2016 Oct  304  10
2016 Sep  697  6
2016 Aug  39  1
2016 Jun  1871  6
2016 May  110  3
2016 Jan  71  2
2015 Dec  471  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1464  6
2015 Aug  14  1
2015 Jul  128  2
2015 Jun  10  1
2015 May  20  1
2015 Apr  30  3
2015 Mar  80  3
2015 Jan  5335  4
2014 Dec  17  1
2014 Nov  2257  4
2014 Oct  68  1
2014 Sep  107  2
2014 Aug  5272  1
2014 Jul  48  2
2014 Apr  2578  12
2014 Mar  300  17
2014 Feb  220  6
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  689  2
2013 Oct  256  3
2013 Sep  11  1
2013 Aug  40  3
2013 Jul  214  1
2013 Apr  57  6
2013 Mar  2279  10
2013 Feb  127  3
2013 Jan  341  2
2012 Nov  57  2
2012 Oct  499  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote