How-to: Make Sure Your Pages Can Be Translated

As with Forms, an essential part of the Pages we build are the informational labels displayed. At MS we tend to call them in short UI strings. For the majority of pages these labels, including their (textual) content, are inherited from the table fields they are bounded to. However some parts of a Page will not inherit their textual content, but are, let me call it, self containing. Some examples:

  • FastTabs

  • Calculated “Fields”, being field controls that show the content of a (calculated) variable

To be sure that all of the UI strings related to a Page can be translated, you have to take care that all these self containing labels have their CaptionML property populated with at least an ENU value.

Rule of Thumb

Don’t populate the Name property but the Caption for these controls.


Standard tools like MakeCap or make-ml to help you create (missing) caption, or a translation tool, will do this for table fields, but not for page controls.

So … be sure to populate CaptionML for these controls!


  • If you would like a tool to create captions for page controls as discussed above the tool will become much more complex as it needs to be able to determine whether a control is bounded to a table field or not.
  • we have learned this the hard way as we found out that in one of our international solutions, where pages had been build from scratch, a vast number of FastTabs always appeared in ENU, even if we had selected a local language. Apparently for these FastTab controls (Group controls) CaptionML did not contain any value. As such they did not show up in or translation tool. (See also: How-to: Efficiently Translate UI)
  • we have updated are coding standards accordingly:

    Captions (ENU) need to be provided for the following objects only:

    • text constants
    • unbounded form/page/report controls, i.e. linked to variables, f.e
      • calculated fields (form/page/report)
      • option buttons (form/page/report)
      • label controls displaying a message (form/page/report)
      • group controls (pages)
  • Update: only today I discovered that the Page wizard does not comply with my arguments above, i.e. FastTab created by the wizard will get the Name property populated and not the Caption. Note that any standard page having FastTabs however does comply, i.e. Caption is populated and Name not. I have just now entered this at msconnect as a suggestion for improving the Page wizard. If you agree with this please go here and give your vote it.

One Comment

  1. Hi Javier,

    There is no standard tool to do this. If you search for "translation" on my blog you will find some posts that give some tips on this.

    Good luck.

Leave a Reply

Your email address will not be published. Required fields are marked *