Microsoft Dynamics 365 allows users to define translations for product properties, such as product name or product description, as can be seen in this article. By default, DocumentsCorePack will load the language defined by the user that is generating the document. This article describes how to set the language of product properties loaded into a certain template.
Use Case: Let’s assume your office is in England and your users are all using Dynamics 365 in English. You have customers out of Germany and you need to send documents that should show the names of products in German.
Product translations are stored in the Business Data Localized Label table. This entity is only loosely bound to the product entity and the fields within do not have Display Names. Therefore, you will need to perform the following steps to retrieve fields in the desired language:
1. Enable support for fields without a Display Name
First, we need to enable our Template Designer within Microsoft Word to work with fields that do not have a Display Name defined. This can be done by:
❶ Open the Insert MailMerge Fields taskbar.
❷ Open the treeview settings.
❸ Enable the Add fields without DisplayName option and hit OK.

2. Add a relationship to your template
Typically you will need product translations to be available for products. Thus, we would recommend to resolve the relationship to products (e.g. Quote ⇒ Quote Detail ⇒ Product) using our relationship designer.
Since the translation is only loosely bound, we cannot use our relationship designer, but will instead need to add the fetch-statement that retrieves translations to our query manually. To do so, please follow the following steps.
❶ Select the Additional tab.
❷ Select the relationship to the product entity you want to add translations to.
❸ Press the Edit button.
❹ Switch to the FetchXML tab.

Now the most important part: Adding the relationship to deliver translated content in the preferred language.
The fetch that needs to be added should look as follows:
<link-entity name='businessdatalocalizedlabel' from='objectid' to='productid' alias='productid_businessdatalocalizedlabel'>
<attribute name='languageid' />
<attribute name='label' />
<attribute name='objectcolumnname' />
<attribute name='businessdatalocalizedlabelid' />
<filter type='and'>
<condition attribute='objectidtypecode' operator='eq' value='1024' />
<condition attribute='objectcolumnname' operator='eq' value='name' />
<condition attribute='languageid' operator='eq' value='1031' />
</filter>
</link-entity>
IMPORTANT: The language-id specified in the following line defines the language to be retrieved. You can find the codes in Dynamics 365 ⇒ Advanced Settings ⇒ Administration ⇒ Languages
<condition attribute='languageid' operator='eq' value='1031' />
In this example, we chose to load language 1031 (German).
We recommend copying the above fetch statement, setting the language-id as needed, and adding it to your fetch from the predefined relationship. In our case, this looks as follows:

Hit OK. A new node called Business Data Localized Label will now be visible in your tree.
3. Add field to your template
The field that will now deliver the product name in the correct language is called “*label“. You can go ahead and add this field to your document as needed.
You will also find a working demo-template that has the relationship included attached to this document.
That’s it! We appreciate your feedback! Please share your thoughts by sending an email to support@mscrm-addons.com.