Microsoft Dynamics GP Developing for Dynamics GP
A blog dedicated to the Microsoft Dynamics GP Developer & Consultant community
 
Welcome to MSDN Blogs Sign in | Join | Help

Developing for Dynamics GP

by David Musgrave (Australia) and the Microsoft Dynamics GP Developer Support Team (USA)

News

  • Please use the Blog Feedback? - Contact Us link at the top of the page to email questions relating to the blog itself.

    If you wish to ask a technical question, please use the links below to ask on the Newsgroups. If you ask on the Newsgroups, others in the community can respond and the answers are available for everyone in the future.

    Please do not use comments on pages and posts to ask questions unrelated to the topic on that page or post.



    Dates of Interest:

    11-Jul-2008: Blog Created by David Musgrave.
    10-Oct-2008: First Post by Scott Stephenson.
    04-Nov-2008: First Post by Dave Dusek.
    11-Nov-2008: First Post by Beth Gardner.
    28-Nov-2008: First Post by Chris Roehrich.
    30-Dec-2008: First Post by Patrick Roth.
    24-Feb-2009: First Post by Greg Willson.
    22-Apr-2009: First Post by David Clauson.
    04-May-2009: First Post by Ryan Wigestrand.
    19-Jun-2009: First Post by Dawn Langlie.
    03-Jul-2009: First Post by Emily Halvorson.
    23-Sep-2009: Created Twitter account with blog feed.
    20-Nov-2009: First Post by Alice Newsam.



    WorldMaps Statistics since
    24-Feb-2009:




    Click for WorldMaps Stumbler



    Translator Tool:




    Social Networking

    Follow David Musgrave and the blog on:

    David Musgrave on Twitter

    David Musgrave on LinkedIn


    Disclaimer

    This blog is provided "AS IS" with no warranties, and confers no rights.

    The links in this blog may lead to third-party Web sites. Microsoft provides third-party resources to help you find customer service and/or technical support resources. Information at these sites may change without notice. Microsoft is not responsible for the content at any third-party Web sites and does not guarantee the accuracy of third-party information.

Contents

Favourite Posts

Blog Links

Newsgroups Links

Resources Links

Dexterity: Designed for Translation

David MeegoFrom the Translating Dexterity Applications Series

When Great Plains Software decided to update their text based Great Plains Accounting (GPA) software for the graphical user interface (GUI) world of Windows and Macintosh, they found that a suitable development environment did not exist and so decided to develop their own. Hence we have Dexterity.

What was Needed

One of the design principles for Dexterity was that it needed to be translatable.  Translation includes changing the complete application into another language as well as just changing terminology for localization.

Examples of terminology changes from US English to International English include:

  • Customer - Debtor
  • Vendor - Creditor
  • Zip Code - Post Code
  • Check - Cheque
  • Fiscal - Financial
  • Inquiry - Enquiry
  • Color - Colour

It was important that the ability to translate did not require any code changes or recompilation.  This would separate the development process from the translation process and decrease the possibility that application faults would be introduced during translation.  It also allows a language expert with no development skills to translate the application without needing the assistance of a developer.

How it was achieved

To be able to translate the application without changing the source code, Dexterity uses Message resources which can be accessed from scripts and displayed to the user interface as desired.  By removing all user visible strings from the actual source and placing them into Messages, there is no requirement to change source code when translating.

To be able to translate the application windows and reports, Dexterity uses String resources.  By storing every field prompt caption, button label, drop down list item, etc. as strings, there is no requirement to directly edit the window or report layouts when translating.

By using Message and String resources, Dexterity has separated all the text that is visible to the user from the source code and the window and report layouts.  Now we can extract all the messages and strings.  Translate them and import them back into the Dexterity dictionary. This creates a translated dictionary.

The End Result

The core dictionary (Dynamics.dic) is shipped as US English (which is how it is developed) and can be patched by a language chunk file (such as UKERR.CNK or AUERR.CNK) to update the messages and strings.

A third party product which re-uses any of the strings or messages from the Dynamics.dic will now have those resource translated and only needs any additional strings or messages changed.  For translated third party products it is usually easiest to deploy a translated chunk file rather than use patching.

Now that the theory is covered, the following posts in this series explain in more details how this process works.  Please be sure to catch them as they are published.

David

Posted: Wednesday, February 11, 2009 9:00 AM by David Musgrave

Comments

DynamicAccounting.net said:

Over at Developing for Dynamics GP, Dave Musgrave is taking on language translation in Dexterity and

# February 11, 2009 10:50 AM

David Musgrave said:

# February 23, 2009 10:55 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker