class %SYS.NLS.Table extends %RegisteredObject

NLS tables can be divided into I/O (also called translation) and Internal tables, each type having a set of categories:

I/O tables

Internal tables For each category, a locale defines a set of available tables and selects one of them to be used as the system default. InterSystems distributes a set of read-only locales but users can create their own locales.

A configuration allows a different system default to be selected among the available tables. Configuration defaults are optional and independent of the locale. They persist across system reboots and updates.

At startup, the system defaults are set either from the configured defaults or from the locale defaults. Configuration defaults have precedence if defined; otherwise the locale defaults are used.

When a process starts it inherits all the system defaults. The process setting for I/O tables can still be overriden when opening a device by specifying "K\TableName\" in the OPEN parameters.

This class has properties that represent each of the above categories.

To get the Configured defaults, instantiate an object with

Set obj=##class(%SYS.NLS.Table).%New("Config")

To get the loaded System defaults, instantiate an object with

Set obj=##class(%SYS.NLS.Table).%New("System")

To get the loaded Process settings, instantiate an object with

Set obj=##class(%SYS.NLS.Table).%New("Process")

Changing a property for a Process object immediately changes the corresponding setting in the process, but it is not possible to change the properties of a system object. Changes to a Config object will only affect the next system reboot.

For generic locale properties see %SYS.NLS.Locale.
For current device NLS properties see %SYS.NLS.Device.
For date, time and number format properties see %SYS.NLS.Format.


Parameters Properties Methods Queries Indices ForeignKeys Triggers
19 4


IRISTerminal Identifier Lowercase Magtape OtherTerminal
PatternMatch Printer Process State SystemCall
TCPIP Titlecase Uppercase XYAction
%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OriginalNamespace %PackageName
%RemoveFromSaveSet %SerializeObject %SetModified %ValidateObject
DisplayToLogical GetIOTable GetInternalTable LogicalToDisplay


property CSP as %String;
property Collation as %String;
property DSMDDP as %String;
property DTMDCP as %String;
property File as %String;
property IRISTerminal as %String;
property Identifier as %String;
property Lowercase as %String;
property Magtape as %String;
property OtherTerminal as %String;
property PatternMatch as %String;
property Printer as %String;
property Process as %String;
property State as %Boolean;
True if translation is ON
property SystemCall as %String;
property TCPIP as %String;
property Titlecase as %String;
property Uppercase as %String;
property XYAction as %String;


classmethod DisplayToLogical(ext As %String) as %String
Converts an external character set name to its internal name

  • ext - External charset name (eg: "ISO-8859-2"). If it is already an internal name (eg: "UTF8"), it is returned unchanged (except that "Latin1" is returned as "RAW").
  • Internal name equivalent to ext (eg: "Latin2")
  • "" if there is no internal equivalent to 'ext'
method GetIOTable(index As %Integer) as %String
Gets the name of an I/O table

Parameter: index - table index
  1. Process
  2. InterSystems IRIS Terminal
  3. Other terminal
  4. File
  5. Magtape
  6. TCP/IP
  7. DSM-DDP
  8. DTM-DCP
  9. System call
  10. Printer
method GetInternalTable(index As %Integer) as %String
Gets the name of an Internal table

Parameter: index - table index
  1. Pattern match
  2. Identifier
  3. Uppercase
  4. Lowercase
  5. Titlecase
  6. Collation
  7. $X/$Y action
classmethod LogicalToDisplay(int As %String) as %String
Converts an internal character set name to its preferred external name

  • int - Internal charset name (eg: "Latin2")
  • Preferred external name (eg: "ISO-8859-2")
  • "" if there is no internal charset 'int'.
Copyright © 1997-2020 InterSystems Corporation, Cambridge, MA