* M12: regional format data (Region, 15 regions, Workbook::region)
Adds the data model for Excel-style regional formats, with no behaviour
change: nothing reads it yet.
- core: region.rs with `Region` (separators, grouping, date order, short and
long date and time codes, month and day names, AM/PM words, currency) and
the 15 regions en-US, en-GB, en-IN, es-ES, de-DE, fr-FR, it-IT, pt-BR,
pt-PT, ru-RU, cs-CZ, ja-JP, ko-KR, zh-CN, zh-TW. Values follow Unicode CLDR;
the deliberate departures (four-digit short-date year, Windows grouping
spaces) are listed in the module doc. `all`, `find` (strict tag),
`lookup` (system or browser tag, best effort) and `default_region` (en-US)
select one; `EN_US` reproduces today's behaviour exactly. Unit tests check
the tables and the lookups.
- model: `Workbook::region`, a `#[serde(skip)]` runtime field that is never
saved and defaults to en-US. It is here so that the following changes can
be reviewed independently of each other.
The region is independent of the interface language and of the formula
language. Builds on this, in order: typed input (core `parse_input_in`),
display (numfmt and engine display), the engine session and `app.region`
command, then the Options UI and the app defaults.
* M12: region data: review fixes (tag extensions, zh territory, month periods)
- lookup stops at an extension or private-use singleton:
en-GB-u-ca-gregory is en-GB (ca was read as Canada) and
zh-Hant-u-nu-latn is zh-TW.
- For Chinese an explicit territory wins over the script, so
zh-Hant-CN is China's conventions, consistent with zh-Hans-TW.
- In regions whose month abbreviations end in a period (ru-RU, fr-FR),
month_from_name accepts any abbreviation typed with one (мар., июн.);
elsewhere a period stays outside the name, so en-US is unchanged.
* Region: document where dates and month names follow Windows, not CLDR
* M12: Swiss regions (en-CH, de-CH, fr-CH, it-CH) and nl-NL
The Swiss regions group digits with an apostrophe (CLDR 48) and accept the
typographic one glibc uses; lookup maps CH and LI tags to them. Dutch
(Netherlands) follows CLDR 48.
* Region: table-driven lookup test, under main's cognitive-complexity limit
* Region: French and Italian Liechtenstein tags resolve to the Swiss regions
* Region: credit the Unicode CLDR data under the Unicode License v3 (NOTICE, ATTRIBUTION.md)
* Region: month_from_name takes one word; the currency format has the currency's own decimals
---------
Co-authored-by: quantmind-br <dsrodrigues20@gmail.com>
Co-authored-by: quantforge-br <218010578+quantforge-br@users.noreply.github.com>
Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com>
Keep the Linux Adwaita no-title feature with X11 fallback; preserve
non-Linux Unix targets, regenerate the merged lockfile entries, and
retain the dependency's MIT notice without duplicate package installs.
* E37: migrate GridCraft to egui 0.37
Pin the reviewed fork and shared dependencies, adapt input and rendering to the
new frame lifecycle, and preserve bounded capture handling and font notices.
Add representative accessibility checks and meaningful control labels.
Validation: full repository CI passed all ten stages, with 2,249 tests passed,
zero failed and one existing timing test ignored. Native workflows and paired
performance qualification remain documented separately.
* egui037: record final published pins and local qualification
* M0.37: fix RTL clipping and preserve screenshot budgets
* test: share migrated GridCraft UI harness setup
* egui037: document migrated UI and regression contracts
* egui-037: align popup test fonts and avoid redundant tooltip probes