mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-24 10:27:44 -06:00
New documents follow the system region: A4, centimetres and decimal comma outside the US (#838) (#857)
* #838: new documents follow the system region (A4/cm/decimal comma outside the US) - geom: Region (from a locale tag; CLDR Letter and US-measurement territories, decimal separator), Unit::format_with; parse_measure takes either separator and a Unicode minus. - engine: Session.region (plain value, en-US headless), Session::units() (explicit Measurement units choice wins, else the region's), blank_document(); file.new blank uses the region's paper; file.options takes "region" and units "auto" and reports unitsFromRegion/region. Prefs.units is now Option and saved as measurementUnits (old saved values were the inch default, not a choice). - ui: region from WORDCRAFT_REGION, LC_PAPER/LC_MEASUREMENT/LC_NUMERIC, the platform locale (browser on the web) and Windows' home location; length fields show and read the region's decimal separator (MeasureExt); Size menu lists sizes in the measurement unit. - Tests: engine new_documents_follow_the_region, geom region/format/parse, ui length_fields_follow_the_region. Docs: localization parity, roadmap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Review fixes for #857: keep a measurement unit chosen before the rename Settings saved before #838 kept the unit under `editing.units`, defaulting to inches. On load, a value there other than inches was the user's own choice, so it now carries over to `measurementUnits` (unless that key is already present); inches, junk and non-strings follow the region. Test: `a_unit_chosen_before_regions_survives_the_rename`. Also merged main (ROADMAP.md, engine lib.rs re-exports: `blank_document` and main's `set_system_locale`). The Windows region code (`GlobalizationPreferences::HomeGeographicRegion`) was cross-checked with clippy -D warnings for x86_64-pc-windows-gnu. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * #838 review: saved region choice, Unix conventions apart, the browser's locale - File › Options › Advanced › Region: Automatic (the system's) or a chosen region, saved with the preferences (`Prefs::region`; `file.options {"region": "pl-PL" | "auto"}`). The session keeps the platform's region as `system_region`; `Session::region()` is the one in effect. Measurement units gains an Automatic entry (follows the region). - Unix: numbers follow LC_NUMERIC (else LANG), paper LC_PAPER and measurement LC_MEASUREMENT, each on its own (`Region::with_paper_and_measurement`); WORDCRAFT_REGION and LC_ALL still set all three. - Web: sys-locale's `js` feature, so the browser's language reaches the region (and the interface language, as its comment already said). - Runs without preferences (WORDCRAFT_NO_PREFS) stay en-US unless WORDCRAFT_REGION is set. - docs/localization-parity.md: where the region comes from, the Windows home location vs. Word's regional format, and where the decimal separator comes from. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * #838 review: rustfmt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * #838: rustfmt after merging main Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * i18n: Hungarian and French strings for this change Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Dmitrii Khlapov <19991457+dkhlapov@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
Dmitrii Khlapov
Brandon Thomas
parent
411ce31de7
commit
00ed50515e
Generated
+3
@@ -3847,7 +3847,10 @@ version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"libc",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in New Issue
Block a user