Localization (LOC)
The loc submodule of sys provides the reference data for places, currencies, and language/locale settings used everywhere else in the ERP — currencies, languages, regions, countries (with EU/embargo and AML markers), country regions, locales, and time zones. It owns no business processes; it seeds the defaults at bootstrap and exposes lookups to other modules.
Concepts
CurrencyA monetary unit identified by an ISO-style 3-letter code.
LanguageA spoken/written language identified by an ISO-style 3-letter code.
RegionA high-level grouping of countries (e.g. "Europe", "Asia").
CountryA nation-state, attached to a default currency, language, and region. Carries EU-membership, telephone prefix, unit-of-measure system, trade restriction, and the AML risk classification used when assessing counterparties.
Country RegionA subdivision inside a country (state, province, or administrative region).
LocaleA language/country/variant combination used to format dates, numbers, and text for a user (e.g.
en-GB).Time ZoneA named zone identified by a short code and the corresponding IANA
ZoneId(e.g.Europe/Amsterdam).
Entities
Currency (Currency)
A monetary unit. Used as the default currency on countries and as the trading currency throughout the ERP.
| Field | Description |
|---|---|
| ISO-style 3-letter business key. |
| Human-readable name. |
Language (Language)
A spoken/written language. Used to localize user-facing text and as the default language on countries and locales.
| Field | Description |
|---|---|
| ISO-style 3-letter business key. |
| Human-readable name. |
Region (Region)
A high-level group of countries.
| Field | Description |
|---|---|
| Business key (up to 8 characters). |
| Human-readable name. |
Country (Country)
A nation-state. Carries the defaults for currency, language, region, and unit-of-measure system, plus the trade and AML markers used when transacting with parties from this country.
| Field | Description |
|---|---|
| Business key (up to 8 characters). |
| Human-readable name. |
| Optional international telephone prefix (e.g. |
| Optional EU-membership flag. |
| Default currency for the country. |
| Default language for the country. |
| Unit-of-measure system used in the country — see Unit Systems below. |
| Region the country belongs to. |
| Trade restriction marker — see Country Restrictions below. |
| Anti-money-laundering risk classification — see AML Country Restrictions below. |
| Optional timestamp of the most recent AML risk assessment. |
Country Restrictions (CountryRestriction)
| Code | Name | Meaning |
|---|---|---|
| None | No trade restriction. |
| Embargo | The country is under embargo; trading is blocked. |
| Embargo Warning | The country has been flagged for an embargo warning. |
Unit Systems (UomSystem)
| Code | Name | Meaning |
|---|---|---|
| Metric | Metric system (SI units). |
| Imperial | Imperial system. |
| USA Measure | US customary system. |
AML Country Restrictions (AmlCountryRestriction)
| Code | Name | Meaning |
|---|---|---|
| None | No AML restriction. |
| Embargo | AML embargo applies. |
| Embargo Warning | AML embargo warning. |
| Unknown | AML status has not been assessed yet. |
Country Region (CountryRegion)
A subdivision of a country (state, province, …).
| Field | Description |
|---|---|
| Business key (up to 8 characters). |
| Human-readable name. |
| Owning country. |
Locale (SLocale)
A language/country/variant combination used to format text, numbers, and dates for users.
| Field | Description |
|---|---|
| Business key (up to 12 characters, e.g. |
| Language portion of the locale. |
| Country portion of the locale. |
| Optional locale variant (e.g. |
Time Zone (STimeZone)
A named time zone keyed by a short code and resolved to a ZoneId.
| Field | Description |
|---|---|
| Business key (up to 8 characters, e.g. |
| IANA zone identifier (e.g. |
Functionality
Bootstrap of default reference data
SYS_LOC_BootstrapApi.bootstrap runs at system bootstrap and idempotently inserts a baseline set of localization records when they are missing: a default currency, language, region, country, locale, and time zone. The values are the constants on SYS_LOC_Constant (see Defaults below) and existing records are never overwritten — the bootstrap only creates what is not already there. Other modules can rely on these defaults being present after startup.
Defaults
| Constant | Value | Used for |
|---|---|---|
|
| Default currency. |
|
| |
|
| Default language. |
|
| |
|
| Default region. |
|
| |
|
| Default country. |
|
| |
|
| Default locale. |
|
| Default time-zone code. |
|
| Default time-zone IANA id. |
Currency lookup with mandatory variant
CurrencyReaderService exposes both an optional and a mandatory currency lookup by code. The mandatory variant raises a business exception when the code does not exist and is the seam used by other modules that cannot proceed without a known currency. All other entities are read directly through their generated readers.
Public API
SYS_LOC_QueryApi
Read-side facade.
| Method | Description |
|---|---|
| Locale by code, or |
| Time zone by code, or |
| Language by code, or |
| Currency by code, or |
| Currency by code; raises a business exception if not found. |
SYS_LOC_CommandApi
Currently an empty placeholder — no cross-module write operations are exposed. Other modules treat localization data as read-only at runtime.
SYS_LOC_BootstrapApi
Single entry point bootstrap(HasTrace) — see Bootstrap of default reference data above. Called by the system-wide bootstrap sequence, not by end users.
ViewModel actions
The submodule defines view models for the standard CRUD pages on every entity but does not declare any custom UI actions. Localization data is maintained through the default toolbar.