AIXwindows checklist

The remaining checklist items are specific to the AIXwindows systems.

  1. Does your program use the font set specification in order to be code-set independent in X applications?
  2. Does your client use labels, buttons, or other output-only widgets to display translatable messages?

    If yes:

    • Invoke the *XtSetLanguageProc subroutine in the following manner:
      XtSetLanguageProc(NULL, NULL, NULL);
    • Messages can be placed in either message catalogs or localized resource files. See checklist items 1 or 20, respectively.
    • To make the widgets code set-independent, specify fonts that use font sets.
  3. Does your client use X resource files to define the text of labels, buttons, or text widgets?

    If yes:

    • Put all resources that need translation in one place.
    • Consider using message catalogs for the text strings.
    • Do not use translated color names, since color names are restricted to one encoding. The only portable names are encoded in the portable character set.
    • Put language-specific resource files in /usr/lib/X11/%L/app-defaults/%N, where %L is the name of the locale, such as fr_FR, and %N is the name of the client.
  4. Is keyboard input localized by language?

    If yes:

    • Invoke the *XtSetLanguageProc subroutine in the following manner:
      XtSetLanguageProc(NULL, NULL, NULL);
    • Use the XmText or XmTextField widgets for all text input.

      Some of the XmText widgets' arguments are defined in terms of character length instead of byte length. The cursor position is maintained in character position, not byte position.

    • Are you using the XmDrawingArea widget to do localized input?
      • Use the input method subroutines to do input processing in different languages.
  5. Does your client present lists or labels consisting of localized text from user files rather than from X resource files?

    If yes:

    • Invoke the *XtSetLanguageProc subroutine in the following manner:
      XtSetLanguageProc(NULL, NULL, NULL);
    • Use the XmStringCreateSimple subroutine to create the XmString data type for localized text. The XmStringCreate subroutine can be used, but XmSTRING_DEFAULT_CHARSET is preferable.
    • To make the widgets code-set independent, specify fonts by using font sets. Font resources (for example, *fontList: instead) in the app-defaults files should use the upper case and class form rather than the lower case form (for example, *FontList: instead). This allow the desktop style manager to affect the application font selection.
  6. Does your program do any presentation operations (Xlib drawing, printing, formatting, or editing) on bidirectional text?

    If yes:

    • Use the XmText or XmTextField in the Xm (Motif) library. These widgets are enabled for bidirectional text.
    • If the Xm library can not be used, use the layout subroutines to perform any re-ordering and shaping on the text.
    • Store and communicate the text in the implicit (logical) form. Some utilities (for example, aixterm) support the visual form of bidirectional text, but most multicultural support subroutines cannot process the visual form of bidirectional text.

If the response to all of the above items is no, the program probably has no multicultural support dependencies. In this case, you might not need the locale-setting subroutine setlocale and the catalog facility subroutines catopen and catgets.