Mixing Programs With and Without NLS

Restriction: National Locale Support is only supported for native COBOL code.

Programs in your application can be compiled with or without the NLS directive set. A program which is compiled without the NLS directive set can CALL programs which were compiled without this directive set and programs which were compiled with it set. The reverse is equally true; that is, a program compiled with the NLS directive set can CALL both programs compiled with this directive, and those compiled without it.

A program compiled with the NLS directive set has no particular language or locale associated with it. The locale it uses is the application locale, which is initialized along with the NLS facility when the first program that uses NLS in the application is called.

The library routines for NLS can be called from any program which has been compiled with the NLS directive set.

Programs in the application which were compiled without the NLS directive set can also call these routines, but only after the National Locale Support module has been loaded and initialized by calling a program which has been compiled with the NLS directive set.

You can pass parameters from a program with the NLS facility to a program without it. However, you must note that parameters that are dependent on the language environment in which they are created retain their format regardless of the language environment in which they are used. If you attempt to use a parameter that was created in a program with the NLS facility in a program without the NLS facility, the result might not be as you would expect. We recommend that you do not attempt to pass such parameters to programs other than those which have the same language environment.