Localization
The language the station's screens are written in, and the date, time and number formats every screen and every exported file reads in.
Localization is the fourth row of the GENERAL group on the Settings page. Its first pick list decides the language every screen of the station is written in; the four under it decide how the station writes a date, a time of day and a number, everywhere at once: on screen, in the status bar, on charts, in exports and in reports. Each format row shows a live preview of what the choice produces. The page takes the Change settings permission; a format applies the moment it is chosen, and a language applies the next time the app starts.
Interface language
| Field | What it is | Values / default | Effect |
|---|---|---|---|
| Interface language | The language the station's screens are written in. The row says "The language this station's screens are written in, here and on any device that opens them. It takes effect the next time Ganter Lab starts: nothing running is interrupted, and the date, time and number formats below stay as they are." | The eleven languages the product ships, each written in its own name, so somebody who cannot read the screen still finds their own. Default: the Windows display language when the product speaks it, English otherwise. | Every word the application writes: labels, descriptions, menus, notices, confirmations and refusals, here and on any browser that opens the station, plus the offline help and the legal documents. |
Choosing a language saves it at once and changes nothing on screen yet. The row then adds a line in the accent colour, "Saved. The screens are written in … until Ganter Lab is restarted.", naming the language still being read, and the new words arrive at the next ordinary start: nothing restarts itself, and no acquisition, recording or run is interrupted to change a label. The choice belongs to the station, not to the screen that made it: it is stored in the configuration database with the theme and the formats below (one row, carried by a backup), and a browser on the plant network reads the station's language instead of its own, so a dashboard reads identically wherever it is opened.
An agent with the Settings area open on the Agent page reads the current language with settings_read and sets it with localization_set, passing the culture code of a language this build ships (en, pt-BR, de-DE, fr, fr-CA, it-IT, es, es-MX, zh-CN, ja-JP, ko-KR); any other code is refused, with that list as the answer. What an agent sets is recorded exactly like a choice made here, and read at the next start.
The four formats
| Field | What it is | Values / default | Effect |
|---|---|---|---|
| Date format | The layout of a calendar date. Preview: today's date. | Day / Month / Year (31/12/2026), Month / Day / Year (12/31/2026), Year - Month - Day (2026-12-31). Default: Day / Month / Year. | Every date the station shows or writes to a file. |
| Time format | The layout of a clock time. Preview: the time now. | 24-hour (14:05:09), 12-hour AM/PM (02:05:09 PM). Default: 24-hour. | Every time of day; readouts that carry milliseconds keep them (14:05:09.123, or 02:05:09.123 PM). |
| Decimal separator | The mark between the integer and the fraction, and with it the grouping mark. Preview: 1234.5678 written with the current decimal places. | Point (1,234.56), Comma (1.234,56). Default: Point. | Every number the station writes for reading, and every decimal typed into a text field (a point is read on every station too). |
| Decimal places | "Number of fractional digits shown for values." | 0 to 6. Default: 2. | Every number that has no closer rule of its own. |
A change applies at once to every open screen, the station's window and any browser alike, and is stored in the configuration database with the theme (one row, carried by a backup). The pick lists are not locked while a unit is running: these are display preferences, not station mutations. An agent with the Settings area open on the Agent page reads them with settings_read and changes them with localization_set, held to the same 0 to 6 decimal places the pick list offers: any other number is refused, with that range as the answer, and the call changes nothing. While the runtime is stopped neither the formats nor the language can be changed: this page gives way to the paused notice, like every page except Account (see What the stopped runtime does to this page), and localization_set answers "Runtime stopped".
Where each format applies
Everything a person reads goes through one formatter, so no two surfaces in the same window speak different calendars.
- The status bar clock: date and time at the right end of the bar, in the chosen date and time formats.
- Connector: live tag values with the decimal separator and its grouping mark, to the places the tag itself declares rather than the ones chosen here (Tags), the source and application timestamps of a tag, with milliseconds, and the preview table of the two-point assistant (Calibration).
- Logic: point values in the address space rows and panels, and the VALUE card of a variable, with the decimal separator and its grouping mark: a whole number without a fraction, a tag's decimal value to the places the tag declares (as on the Connector), and any other decimal value to the places chosen here. The limit an action names when its script is aborted takes the grouping mark too (Actions).
- Dashboards: value readouts, KPI cards, the alarm banner rows. A component that states its own decimal places uses those for its value; the separator is always the station's. The reading shown under an address field in the editor is written like the Value it confirms when that Value states no places: a whole number without a fraction, and a decimal value to the places chosen here even when the tag declares its own, so on a station writing two places a tag declaring one reads 239.10 there and 239.1 on the Connector and in Logic.
- Charts: the axis labels of every chart use the chosen decimal mark, the date order and the 12-hour or 24-hour clock, and the station's decimal places unless a series declares its own.
- Process: unit cards, the Histories list, run comments, labels and the generated reports. On the setup screens, the effect lines under an evaluation's fields, the result line of each stage of a procedure, the sample reading of a channel and the Value column of a unit's bindings. And every size in bytes: the frozen bytes of a label in the run's record, and the size of the copy of a report kept in the run, of a run exported or imported as a
.glabfile and of a label template's commands. - Exports: a run exported as CSV writes numbers with the chosen decimal mark, and the column separator follows it: a comma between columns with point decimals, a semicolon with comma decimals, so the file opens cleanly in a spreadsheet of the same locale. The XLSX export and the Events exports carry the same stamps.
- Events, Users, Account and Settings: log rows, alarm history, a user's last access, subscription dates, the backup list and certificate validity dates.
Instants are stored in UTC and shown in the station's local time zone; that conversion happens in the same formatter, so a file that carries stamps names the station's zone once in its timestamp column header. The remote browser's own locale is ignored: a dashboard reads identically wherever it is opened.
What these settings do not change
Storage, driver traffic, recordings, wire payloads and download file names always use a fixed invariant format; a format change never rewrites a recorded value. A format an item states for itself, such as a label marker, a part of a sequential identifier or a chart axis with its own places, is that item's own data. A label prints its numbers for the machine that reads it, with the invariant decimal point and never a grouping mark, whatever is chosen here (Label templates), and the source picker of a new label in the run's record shows each number the way the label prints it. The language above is none of these formats either: a station read in Japanese still writes the date, the time and the number the way the four rows say, and it never translates what somebody typed, so device, tag, variable, dashboard and unit names, notes and comments read exactly as they were written.