The POSIX locale model
The POSIX locale model divides locale-dependent information into six locale categories that assist in the development of internationalized applications. Each locale category controls the behavior of a predefined set of operations and is associated with a particular locale. Locale categories are represented by symbolic constants describing their function and are prefixed by LC_. The locale categories defined by the POSIX model are listed in the following figure, along with a brief description of the responsibilities and functions controlled by each category.
POSIX locale model
Each locale category controls the behavior of a predefined set of operations and ensures that the operations under its control behave properly for the locale associated with the category. For example, the LC_COLLATE category maintains information pertinent to string sorting, and, if configured for the U.S. English locale, ensures that strings are sorted according the rules for U.S. English.
Locale categories function independently within an application and need not be associated with the same locale. For example, it is possible for an application to format monetary quantities according to the rules for U.S. English and to display messages in French by setting the LC_MONETARY and LC_MESSAGES categories appropriately.
Each process (application) maintains its own set of locale category information, and can configure the locale categories appropriately for the needs of the application. The POSIX locale model provides a well defined set of locale-sensitive operations and a mechanism for controlling the behavior of these operations. By using these locale-sensitive operations, the same internationalized application can support several locales simply by altering the settings of the locale categories.
For Linux (UNIX):
Setting your monetary symbols in UNIX
On UNIX, make sure your LC_MONETARY locale setting contains a non-empty mon_decimal_point entry. On some machines, mon_decimal_point may be empty for the "C" locale.
For example, if you wish to change to the en_US locale, set your LANG environment variable to en_US before starting VA Smalltalk with the ksh command:
export LANG=en_US
You can check the value of mon_decimal_point with the command:
locale -k LC_MONETARY
The output should look like:
 
int_curr_symbol="USD "
currency_symbol="$"
mon_decimal_point="."
mon_grouping="3"
mon_thousands_sep=","
positive_sign=""
negative_sign="-"
int_frac_digits=2
frac_digits=2
p_cs_precedes=1
p_sep_by_space=0
n_cs_precedes=1
n_sep_by_space=0
p_sign_posn=1
n_sign_posn=1
debit_sign="DB"
credit_sign="CR"
left_parenthesis="("
right_parenthesis=")"
Last modified date: 05/11/2020