Massively Speed MSDYN365BC Translations using (free) Poedit

Using the open source Poedit tool, you can rapidly work on Microsoft Dynamics 365 Business Central XLIFF / XLF translation files.

One handy tip I was given by Gregory Alekseev over on Twitter was to use Poedit (Download here) to edit my translation files. Wow! Double wow!

Quick Summary (step by step below):

  1. Download and Install Poedit
  2. Add the Translation Files from the BC DVD to Poedit’s memory
  3. Pre-Translate and watch the magic!

Step-by-Step:

Install Poedit

Poedit is open source (there’s a Pro version you can use to hook into online services) and free to use for commercial purposes. The installation is super simple, just Terms and no options. Easy enough – leave it open and we’ll come back to it.

Add Translation Files to Memory

You’ll want to fetch the Translation source files from the BC DVD. For example, in the 16 CU3 BC On Prem installer, the BaseApp source is located in a collection of ZIP files inside Applications\BaseApp\Source. Extract the language(s) you need and pop the XLF file you need somewhere you can find. In my examples below, I’ll use Swedish (for my region).

Back in Poedit, we’ll see the initial starting screen:

Under the File menu, you’ll want to Select Preferences. Then, change tabs to Translation Memory and you should see something like so:

For me, I’d uncheck the Use suggestions from online collaborative TM setting, as I’m not using Pro. But, the more vital part, we can Manage the memory database.

For now, we’ll make use of the Import translation files… option. (You can find use for the Import from TMX and Export to TMX functionality to share a prepared Memory Database with coworkers, perhaps?). Select the XLF file from BaseApp you located earlier and it’ll take a bit to import the translations. If all goes well, your Stored Translations should jump by over 40,000. Click OK to close up the preferences.

Use Poedit to Edit Translations

You’ll need to create the XLF file for your project and target language. (I might recommend this XLIFF Sync extension if you don’t already use it) Simple do File -> Open to open your XLF file. You’ll see an editor window like so:

Let’s break down the window a little:

  1. The main window is columns of Source and Target. It should show your Destination language from the XLF.
  2. The editing area – you can manually enter/edit translations here, as well as ‘flag’ translations as “Needs work” with the toddle switch between the two
  3. This area will show you ‘Suggestions’ from the Translation Memory. This is where all that prep work shines. Each row in section 1, when you click on that row, you’ll see matches with weighted % chances (and handy Ctrl-1, Ctrl-2, etc shortcuts)
  4. This area shows you the ‘Notes’ from the XLF file, which BC generates to let you know what object/field/property is the context.
  5. The stats about this XLF. In my example, as soon as I open it, I know I have 0 of 300 done.

Pre-translate: Using Exact Match

I like to show off how clever using Pre-translate is first by using the “Exact Match” method. In the toolbar, click Pre-Translate. You’ll get some options:

This first pass, we’ll use the Only fill in exact matches option, then click Pre-Translate. In my test case I’m using, I get 140 perfect matches, so my job is already 46% done now.

Pre-translate: General Use

Running the pre-translate again, with the Only fill in exact matches option unchecked, it’ll have more interesting results.

As an example, I know in my test extension, I have a field named “Decimal Places”. In the ‘Translation Suggestions’ area, the right fit is 3rd in the list:

In my Pre-translate results dialog, it lets me know another 134 entries were handled, but ‘marked as needing work’:

As you can see, many more are now colored (orange in my case) and the “Decimal Places” field has the “best guess” (but wrong) value.

Fun aside: You can, under the View menu, change the display sorting to “Source” to group things together (this does not change the order in the file, so this does not break compare options). This shows me that I have two fields named “Decimal Places” in my example.

I will click on the 3rd suggestion (or press ctrl+3) to correct it. This automatically unflags the “Needs work” from the field.

The biggest and brightest power now comes to shine: Save your progress after you manually fix just one instance of a mismatch. In my case, I only fixed one of the “Decimal Places”. Now when you click on the other ‘wrong’ “Decimal Places” entry? Your manually entered value is considered 100%. This means you can re-run the Pre-translate and fix all others that match!

Huge stuff.

If you have another other tips as you come across with Poedit & BC, let me know! I’m easy to find at @JeremyVyska.

Tool recap:

  1. Poedit: https://poedit.net/download
  2. XLIFF Sync: https://marketplace.visualstudio.com/items?itemName=rvanbekkum.xliff-sync