mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-26 19:37:03 -06:00
* #836, #837: language-aware sorting and locale numbers in tables Sorts (Table > Sort, Home > Sort, index and its letter headings, bibliography, Table of Authorities) use the text language's alphabet via a small pure-Rust collation (crates/doc/src/collate.rs). Table sort and formulas read numbers with the cell language's decimal/group separators and write formula results with its decimal separator (crates/doc/src/locale_number.rs). Sort comparators are now total orders. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * #836, #837 review: ordinals, leading zeros, percentages; untagged text; decomposed letters - parse_number: a trailing separator with no digits is the whole number (`1.`, a numbered "Lp." column, sorts as 1); a first group of `0` is never grouping (`0.125` in Polish is 0.125, not 125); a trailing `%` is ignored (`12 %` is 12); an en dash is a minus. - Text with no language follows the document default, else the editing language (`cmd::default_lang`), as AutoCorrect does: a Polish interface reads `3,50` as 3.5 in an untagged document. Table sort and formulas, paragraph sort, the index, the bibliography and the Table of Authorities use it. - Collation composes a letter and a following combining mark first (table from Unicode NFC), so a decomposed `ż` (z + U+0307) sorts as `ż`. - Tests: every Polish letter and its index heading, decomposed letters, the ordinal column, an untagged Polish SUM, Polish bibliography order. 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>