10.7 Summary: Writing an Internationalized Application

This chapter has covered a lot of tricky material. The following guidelines summarize the requirements for ANSI-C and R5-based internationalization:

  • Set the locale desired by the user by calling setlocale with the empty string ("") as the locale name argument. Verify that the locale is supported by Xlib with XSupportsLocale(). Set the X locale modifiers as desired by the user by passing the empty string to XSetLocaleModifiers(). In an X Toolkit application, use XtSetLanguageProc to register a procedure to set the locale. The default language procedure (which is not actually registered by default) performs all of the above functions.

  • Use ANSI-C functions such as strcoll and strftime which make use of the current setting of the locale. Avoid the superseded functions that do not.

  • Place all strings which will be displayed by the application in an X resource file. Use X Resource Manager functions in the application to look those strings up.

  • Do not assume that the strings your application handles have a uniform state-independent encoding. Treat them as multi-byte strings or convert them to wide-character strings.

  • Create an XFontSet for the locale and use it with the new R5 text output functions to measure and display multi-byte and wide-character strings.

  • Use XmbSetWMProperties() to set the essential properties for communication with the window manager.

  • Use the new R5 property routines to convert from or to the encoding of the current locale ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.