Applies To: Portal capabilities for Microsoft Dynamics 365
With Portal capabilities for Microsoft Dynamics 365, you get the ability to support multiple languages in your single portal. This new feature allows content creation of a website to reach a wider global audience in different languages. For an introduction on this topic, see Multi language capabilities in Portal capabilities for Microsoft Dynamics 365. In this blog post, we’ll walk through the process of enabling Multilanguage for a Portal website, creating content specific to a language, and browsing a multi-language portal.
Portals comes with a new entity called Portal Languages. When installing Portal, 43 Portal Language records are created out of the box. Portal capabilities for Microsoft Dynamics 365 supports all the Dynamics 365 languages except Arabic and Hebrew. If you have a current Portal that is upgrading, then these Portal Language sample data will be created. Considering the Dynamics 365 portals uses the Dynamics 365 Solution metadata translations, the Portal Language models the language that is enabled on the Dynamics 365 portals and the underlying Dynamics 365 language information. A language must be enabled/activated in your organization first. Once your languages are enabled, you can go to your website record by navigating to Portals -> Website.
In the dialog that opens, you will see a list of Portal Languages that you have enabled in the organization. Select one of these to add. By default, the publishing status for a new supported language is set to Draft. When a supported language is in the Published state, it will be visible for browsing on the portal. Leaving it as Draft allows the content to be edited and hidden from those without privilege until content is created and ready to publish.
Once you save this new supported language, it is added to your website as a language option. Now you can create/edit content in that specific language. Adding content for supported language is done automatically as a part of adding the supported language to the website.
Web pages have the concept of localized Content pages. When creating a new web page record, the configurations of the web page are chosen on the form and then saved. By default, new web pages created will have a localized Content page created in the default language of the website. The main Webpage record is used to give default values to new localized Content pages on creation, and the localized Content page is where the actual content of the web page is created/modified. Any configuration changes intended for web pages should be made on the Content pages, as this is the data that is used when rendering pages on the portal. This means that if you want to update any fields, such as an Entity List or the Publishing State of a web page, you must do so on the Content pages. In addition to this concept, every lookup to a web page points to the main web page record, but in Portal rendering, if the page does not exist in that specific language, then the page will not be found in the context of that language.
Once Multilanguage is enabled, however, there is still a single page hierarchy structure for webpages. In each language of the Portal, parent and child pages will have the same relationship. They will also all inherit the same Access Control Rules and Web Files as they would in a single language portal.
Web Link Sets
Each supported language of a website should have corresponding Web Link Sets in the language. The Web Link Sets are specific to the language chosen. This means that the navigation can vary for different languages of the portal. If a Web Link Set does not exist for the portal, the navigation links do not appear in that language.
Content Snippets can be language specific or language agnostic. When a content snippet exists with no supported language value, then it will be viewed in the context of all languages where the content snippet would render. On the other hand, if a content snippet has a language value, then it will only show the value of the content snippet when the portal context is in that specific language. There can also be a mix, where there is a generic language agnostic content snippet that exists for some languages, but selected languages have the same content snippet with a language value, so that the specified languages can have their own values when that content snippet is rendered.
Like Content Snippets, Blogs, Forums, and Idea Forums can be either language specific or language agnostic. When given a language, the blog, forum, or idea forum, along with the related posts/content will show on the language specific web page (or partial url, which is used by Idea Forums). When they exist with no language value, then they will show across all languages of the Portal.
Once your Multilanguage portal has been set up and configured, you can change the Publishing status of the supported languages of the website to Published to bring the Multilanguage portal browsing experience to life. Enabling more than one supported language as Published brings the experience through a language dropdown on Portal, where all of the Published supported languages can be selected for browsing. This dropdown is the result of a new Web Template included in the header of the portal called Languages Dropdown. Also coming to life through the Multilanguage experience is the language code visibility in the URL. The site setting “MultiLanguage/DisplayLanguageCodeInURL” should be set to true in Dynamics 365, when more than one supported language is added to a website. This will allow the URL to show what language the portal is currently being browsed in addition to the language dropdown. Any shared links or saved bookmarks will still navigate to the appropriate web page through a redirect, whether or not the language code is included in the URL input.
Portal Language helps you support different language variants on the Portal. To do so, you can create a new Portal Language record, or modify an existing one. The value given in the Dynamics 365 Language field should match a language LCID that is enabled in the organization (the same LCID as one of the original 43 values). The LCID field should be the LCID value of the language desired, and the code should be the Language Code value of the language desired. Refer to .net support languages for the LCID and ll-CC. This will enable you to light up your portal in different flavors of a language.
If you are interested to create Canadian flavor of English on your Dynamics 365 portals, you can do that as in the screenshot below. You will be limited by the translations coming from Dynamics 365 but you can create custom web page content to give a personalized experience for your Canadian English customers.
When a supported language is added to your website, the plugin uses a Site Setting with the name “MultiLanguage/MaximumDepthToClone” which gives you further control on what content should be replicated when the new language is added. The plugin creates Web Page content and Content Snippets in the newly added language using the default language content. The depth of Web Pages the plugin replicates is dependent on the site setting value:
Here is how you can calculate the depth of your website. With Home Page being level 0. A value of “1” will create Home web page, and all of Home web page’s child pages, etc.).