The $LOCALIZATION System Node
The $LOCALIZATION server system node provides a helpful interface to some of the common tasks typically performed in the localization system, such as setting string values or adding locales. Similarly, the $LOCALIZE client system node implements manages the Localization Table Editor GUI and acts as a singleton for retrieving information from runtime tables.
The HSL for the Localization System provides the following features
- Automated generation of default configuration, universe and table files. The Localization System runs as a process in the Debug System Area. When the world spins up for the first time (and subsequently the Debug System Area), the _LocalizationConfigurationManager stored as a field on the $LOCALIZATION System node will invoke the external functions to create the required files in the default paths.
- A _LocalizationProxyObjectManager queues many simultaneous requests and execute them on a customizable time interval and in batches of a customizable size. The manager keeps noderefs to proxy objects which are simply information about tables and universes. These proxy objects do not include the contents of these files. Requests are created as noderefs by invoking the corresponding methods on the $LOCALIZATION system node. New requests can be created by subclassing _LocalizationParentRequest and processing them in similar ways other requests are processed on the $LOCALIZATION system node.
- A Localization Table Editor GUI allows for quick and simple data entry and automated generation of runtime table files. The editor gui is designed so that multiple clients can simultaneously modify the game table. Additionally, table entries are streamed to clients to conserve space and network traffic.