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
- Process
- Cache Terminal
- Other terminal
- File
- Magtape
- TCP/IP
- DSM-DDP
- DTM-DCP
- System call
- Printer
Internal tables
- Pattern match
- Identifier
- Uppercase
- Lowercase
- Titlecase
- Collation
- $X/$Y action
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 Caché 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 Caché 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.
classmethod DisplayToLogical(ext As %String)
as %String
Converts an external character set name to its internal name
Parameter:
- ext - External charset name (eg: "ISO_8859-2")
Returns:
- 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
- Process
- Cache Terminal
- Other terminal
- File
- Magtape
- TCP/IP
- DSM-DDP
- DTM-DCP
- System call
- Printer
method GetInternalTable(index As %Integer)
as %String
Gets the name of an Internal table
Parameter: index - table index
- Pattern match
- Identifier
- Uppercase
- Lowercase
- Titlecase
- Collation
- $X/$Y action
classmethod LogicalToDisplay(int As %String)
as %String
Converts an internal character set name to its preferred external name
Parameter:
- int - Internal charset name (eg: "Latin2")
Returns:
- Preferred external name (eg: "ISO-8859-2")
- "" if there is no internal charset 'int'.