Translating Dexterity Code

David Meego - Click for blog homepageThis is a reposting of an article I originally wrote on my Developing for Dynamics GP blog.

From the Translating Dexterity Applications Series.

Now that we understand how to write the Dexterity code to allow it to be easily translated and also work in a multi-lingual system.  The next step is actually translating the strings and messages.

The actual process of translation is actually really simple. Make sure you have a backup of the Dexterity dictionary before you start. Below are the steps from a high level:

  1. Download the Translation Tool, it is available as a sample application from both PartnerSource and CustomerSource.  This sample application by Andrew Ingalls is an updated version of the original tool created Dave Gaboury and Tom Irsfeld.

    Translation Tools – (156 KB) 6/19/2007
    This download contains release Translation Tools.  The zip file contains a translation instruction document, as well as a translation tool dictionary.  The translation tools will work with release 10.0 of Microsoft Dexterity.

    The file is also attached at the bottom of the article.

  2. Load the Dexterity environment and open the AiTranslate.dic file.
  3. Select Debug >> Test Mode or press Ctrl-T to enter Test Mode.
  4. From the Main Menu window, click Import/Export Strings to open the Translation Utility window.

  5. Select the dictionary that you want to translate.  This can be your extracted dictionary that you create during the chunking process. That way you will not have to wade through all the Dynamics.dic core strings and messages.
  6. Select the name for the Text File to contain the exported strings.
  7. Make sure the Direction arrow is pointing to the right by clicking on it.
  8. Click Transfer to complete the export.
  9. This will produce a text file with contents along the lines of the example below:

    Series Resource ID ValueSystem String 22000 Find …
    System String 22001 Debugger
    System String 22002 Find Next
    System String 22003 Support Debugging Tool
    System String 22004 Replace …

    System RWString 22000 0 22001
    System RWString 22001 DYNAMICS 22001
    System RWString 22002 System Database 22001

    System Error Message 22000 @PROD5261@
    System Error Message 22001 About @PROD5261@


  10. You will need to now translate all the strings.  You can use find and replace, but need to be sure you don’t change the meaning of the strings. Also be sure to not damage the data in the first three columns, you must only change the strings themselves.

    Note: There are some strings which should not be translated, for example the @PROD0@ or @PROD5261@ place holders which are automatically converted to the matching Product Name from the Dynamics.set launch file.  This is covered in more detail in the AiTranslate.rtf document.

  11. Once you have completed the changes and save the file, we can reverse the process to bring the strings back into the Dictionary.
  12. Go back to the Translation Utility, make sure that Direction arrow is point to the left.
  13. Re-enter the dictionary and text file paths, if required.  They will still be there if you did not close the Translation Utility.
  14. Click OK to overwrite resources.
  15. If any errors occur, they will be logged in an errors.txt file.
  16. Use the now translated extracted dictionary to create your translated chunk file.

For more detailed information on the process of translation, hints and tricks, see the AiTranslate.rtf file included with the AiTranslate.dic file in the archive.

Below is an example that was sent to me a while back showing Advanced Security in German:

The following Knowledge Base (KB) article is a great reference for the process of creating a chunk file:

How to create a chunk file in Dexterity in Microsoft Dynamics GP (KB 894700)

Please post comments to let me know what your experiences are.


This article was originally posted on the Developing for Dynamics GP Blog and has been reposted on

10 thoughts on “Translating Dexterity Code

  1. David,
    You really made my day! Translating messages and strings directly using dexterity is a real nightmare, a very hard job that couldn’t be distributed to the other team members.
    I did allot of tries to generate the dictionary resource file and use Macro to re-import the translated strings but this caused allot of work and incorrect results, I even tried to use macro on “Find and Replace” window in dexterity, but it would take forever!
    Currently I am looking forward to check the form flipping solution in Feb 20, using Dexterity 5.0 to flip forms is not flipping the scrolling windows correctly.
    Thanks for your usual helpful tools.
    Mohammad R. Daoud


  2. Hi all
    I should clarify that I did not create the translation tool.  It has been available from Sample Applications on PartnerSource and CustomerSource for a number of versions.


Please post feedback or comments

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.