Today’s post is about language translations. I’ve not really done much with language translations in the past, but it always seemed as though it was a very tedious thing to have to do.
This post though is going to show you how to do it quite quickly, and if all goes well you can translate your AL extension in a matter of minutes.
Note that in order to perform the tasks in this post, you will need access to Microsoft Dynamics Lifecycle Services (LCS). If you do not have access contact your system administrator, or the person that manages your CustomerSource/PartnerSource account, as the systems are linked in some way.
Let’s Get Started
Assuming you have already developed your AL extension, you need to enable the new translation feature. You can do that by adding the following line to your app.json:
This feature will cause a new translation file to be generated when the extension is built. The translation files are created using the standard XLIFF format that is used to pass data between system for the purposes of language translation. For more info on XLIFF, check here. You will find the translation file at the root of your AL project in a Translations folder.
You’re also going to need to change all of your ML properties as they are being deprecated (as of this post though they are still available). You can read more about that here.
Ok, you have now enabled the new translation file feature, and you’ve updated all of your ML properties, you need to build your extension. Once that completes, look for the newly created XLF file in the Translations folder. This is the file that we need to submit to the translation service.
The Translation Service
Before we get into submitting the file, note that in my solution my base language is English (US). I’ll be translating that to Canadian French. Substitute the appropriate languages for your solution.
Here are the steps to perform the translation:
- In your web browser go to Microsoft Dynamics Lifecycle Services and sign in.
- Select the Translation service tile at the right side of the screen.
- Select the ‘+’ button at the top left to make a new request and fill in the request based on your desired translation. Make sure to select Microsoft Dynamics NAV as the product and the appropriate product version.
- Once you have filled in your request, press Create to submit the request. At this point you just wait. You should receive an email from LCS stating that “A new request has been created.”
- After a short period of time (for me this was only about 2 minutes!!) you will receive another email from LCS stating “The request has been completed.”
- Follow the link in the email and you will be brought to a page that shows you the details of your translation request.
- Click Request output at the left side of the screen.
- Click the link to download your translated XLF file. and extract it to the Translations folder in your AL project. It will have a new file name so it should not overwrite your existing file. Do not remove the original XLF file as that still represents the base language of your extension!
Now all you have left to do is to rebuild your extension with the new translation file and voila…..you now have a multi-language extension! Test it out by changing to the appropriate language in the web client.
Once you have non-base translation files in your AL project, they do not get updated when the extension is built. For example, if you add a new field with a caption and build your extension, the base language XLF will get updated to include the new field. Your non-base XLF files will not, so you will need to revisit LCS and submit a new base language file to get those updated.
Hopefully this service has works as well for you as it seems to for me. I was actually quite shocked at how fast I was able to get the translated file back.
That’s all for now, happy coding!