
PowerApps Portals provide you with the tools to allow external users to view and interact with your CDS data in their local language. Using Microsoft’s vast array of language packs and a bit of extra customisation detailed in this article, you can open up possibilities for connecting with more people, from more places.
1. Enable your language in Dynamics
First, we need to enable our new language in our Dynamics/PowerApps environment. Microsoft supports a host of standard language packs, and will provide translations for all OOTB entities and fields for these languages.
To enable a new language, go to the advanced settings are of Dynamics, select Settings à Administration then select the Languages section. Scroll to your desired language, tick the box, and click apply. This is all you need to do here, but note that it can take 5-10 mins to fully apply all the required settings.
2. Export translations from your solution
First select the solution you’ve been working in, then click export translations on the navigation bar. This will download a ZIP file with two XMLs inside, the one we want to use is titled ‘CrmTranslations’. Extract the ZIP file and open the ‘CrmTranslations’ XML in Excel. This has a tab called ‘Localized Labels’ – here you get a list of all entity names, field names, labels, and descriptions that are included within the solution. We get this with the first language column showing our environments default language, and then a new column for each new language we have enabled.
You will notice here that any OOTB field rows already have the newly enabled language columns populated. Now you can use your preferred method to translate the custom rows. I used Google Translate’s document translation functionality. The benefit of this is that it’s free and quick to do, the negative being that it’s not the most advanced translation software, so if you’re going down this route it’s best to schedule in some time for someone to go in and sense check the translations before publishing for all users.

N.B. For the purpose of the project I am working on, we only need to enable new languages for external portal users, not for internal CRM users. Therefore, we only need to think about translating entity information that is included in the client facing portal. I therefore ensured that the solution I exported translations for only included the entity forms and views that we use in the portal, so as not to be doing lots of unnecessary work.
3. Upload translations into your environment
When you’ve made all the required translations in your CrmTranslations file, you need to save this back into an XML file with the same name, and zip it back up with the other file extracted (at the time of writing, the only two files you get from the export are the CrmTranslations and another XML called [Content_Types].
Then, you can go back to the solutions area of the advanced settings, and click ‘upload translations’ on the navigation bar. Then select the edited ZIP folder, and wait for thew new translations to import, this again can take a few minutes to process.
4. Edit portal specific text
While some areas of the portal are driven off CRM data, fields, and labels, there are some that totally driven through the portal. These will not be affected by the upload of the translations file in CRM. I will show you the
a. Content Pages
Any web page that you create on your portal will automatically create a subsidiary ‘localized content’ page that houses the actual page content. This can be viewed in a subgrid on the web page form. When you enable a new language, a new localized content page will be automatically created in that language. However this won’t be automatically translated, so you must go to each web page that your portal uses, and go into the newly created localized content page, and translate any text in the Copy (HTML) field, the Summary (HTML) field, and don’t forget the Content: Title field.
b. Web Link Sets
When you create a new web link set, there will be a version created for each language enabled. Likewise, when you enable a new language, a new version of existing web link sets will be created. When you view your web link sets, you will see this with the language column specified. You need to go into each web link set for your new language and edit the title for each web link within this web link set to be in that language.
5. How to test, and use your new language capabilities in the portal
Now that you’ve enabled and edited all the relevant areas, your users will see the option to switch between languages when they log into the portal, this will appear as a dropdown to the left of the profile navigation button.
The best way I found to test this is to switch languages and click through every possible page in your portal, scanning all the text ensuring there hasn’t been anything missed.
One thing to make sure when testing every page, is that you’ve considered all pages shown to different web roles/to anonymous web roles.
Another easy one to forget to look at is the footer – make sure you’ve edited the footer web page localized content!
FURTHER READING – Designing and Developing Microsoft Power Apps Portals / VISIT: Open Up New Possibilities with Power Apps Portals
If you have any questions for CRMCS you can contact us on 0161 348 7360 or contact@crmcs.co.uk
