This module lets you add and modify language translations for user data, so that people in different reguions can understand the data. For example, this is useful for descriptions of items that you sell, or for providing standard operating procedures in factories located in different regions.


Developers can identify the fields for which to enable translations, and then add a calculated field on the page to show the translations.


The Translation module provides capabilities for:

  • Setting translations for a specified field on a record, and a given language.
  • Fetching and showing up the translations for a field on a record.
  • Deleting all translations for a record or for a specified field on it
  • Showing the Translations page for a specified field on all records in a table
  • Checking whether any translations are available

The Translation page shows the Target Language field, whichcontains the targetlanguage, and the Value field, which is the translation. Note that the translation can only be added for a record that is persisted on the database, and not for temporary records.


Page 1801 Assisted Setup in the Assisted Setup module shows the translationsfor each record using a page field TranslatedName. The code examples below show how to make this new field lookup other translations, how to populate the field from the Translation module the first time the page is opened, and how to set the translation for a given field from code.

 field(TranslatedName; TranslatedName) { Caption = 'Translated Name'; ApplicationArea = All; ToolTip = 'Specifies the name translated locally.'; trigger OnDrillDown() var Translation: Codeunit Translation; begin Translation.Show(Rec, FieldNo(Name)); end; }


The value is populated during the trigger,
 trigger OnAfterGetRecord() var Translation: Codeunit Translation; begin HelpAvailable := ''; VideoAvailable := ''; if "Help Url" <> '' then HelpAvailable := HelpLinkTxt; if "Video Url" <> '' then VideoAvailable := VideoLinkTxt; TranslatedName := Translation.Get(Rec, FieldNo(Name)); end;


The translationsareadded to eachrecord by calling the appropriate API in the Assisted Setup, which in turncalls the following on Codeunit 1813 Assisted Setup Impl.

 procedure AddSetupAssistantTranslation(ExtensionId: Guid; PageID: Integer; LanguageID: Integer; TranslatedName: Text) var AssistedSetup: Record "Assisted Setup"; Translation: Codeunit Translation; begin if not AssistedSetup.Get(PageID) then exit; if LanguageID <> GlobalLanguage() THEN Translation.Set(AssistedSetup, AssistedSetup.FIELDNO(Name), LanguageID, TranslatedName); end;

The post Translation Module in Dynamics 365 Business Central appeared first on Dynamics 365 Blog.