- commit
- 06611e674b879d9e0468c745abb6b47d07068450
- parent
- aeaf904123e84332564b1ccd88ce720aafea0a25
- author
- Dami <dami.etoile@gmail.com>
| M | ROADMAP.md | 3 | ++- |
| M | docs/ | 17 | ++++++++++++++++- |
| M | docs/ | 1 | + |
| M | docs/ | 5 | +++++ |
| M | docs/ | 4 | ++-- |
@@ -27,7 +27,7 @@ Sizes: S (a day or two), M (about a week), L (weeks).
2727 | Item | Notes | Size |2828 |---|---|---|2929 | Wrap text, row heights, borders, merged cells | Layout changes in the grid renderer | M to L |30-| Locale: decimal comma, date order, list separator in formulas | Sheets' File > Settings > Locale | M |30+| Locale, what's left: month and day names in the locale's language (`mmm`, `dddd`), Excel downloads with the locale's Currency and Date formats | The rest follows the locale: [Locale](docs/sheets/locale.md) | S |3131 3232 ### 3. Scale3333 @@ -86,6 +86,7 @@ by a gateway dialing the iroh ticket.
8686 - Sheets' everyday, math, text, lookup, date and finance functions, checked against excelize: [Functions](docs/reference/functions.md), [Testing](docs/contributing/testing.md#the-excelize-oracle)8787 - Dynamic arrays that spill (FILTER, SORT, UNIQUE, SEQUENCE and more, ARRAYFORMULA), LET and LAMBDA, SPLIT and the REGEX functions: [Arrays and spills](docs/formulas/arrays.md)8888 - Opt-in decimal arithmetic for money: [Decimal arithmetic](docs/formulas/decimal.md)89+- A locale per file, as Sheets' File > Settings > Locale: decimal commas, date order, currency and `;` in formulas, typed and shown while files store en-US's form: [Locale](docs/sheets/locale.md)8990 - An Excel-sized grid with a `max-cells` budget; operations cost the data, not the grid: [Bounds of support](docs/contributing/limits.md#sheet-size)9091 9192 **Finding and using features**@@ -16,6 +16,7 @@ internal/functions the function library: the FuncDef table, evaluation, decimal
1616 internal/value cell values, number formats, typed-entry parsing, the clock1717 internal/formula the formula language: references, lexer, parser, printer, rewriting1818 internal/numfmt number formats, rounding, General, date serials19+internal/locale the locales: separators, date order, currency, formula separators1920 internal/fileio import and export: CSV, TSV, XLSX, SQLite, Parquet, Lotus .wk12021 internal/chart chart layout, text rendering and kitty image encoding2122 internal/jev the API key's resolution, answer cache and TypeSafe client@@ -58,7 +59,21 @@ internal/functions ---> internal/formula |
5859 internal/value ---> internal/numfmt <------+5960 ```6061 61-(`sheet` also uses `formula`, `value` and `numfmt` directly.)62+(`sheet` also uses `formula`, `value` and `numfmt` directly. Below63+them all, `internal/locale` holds the table of locales and depends on64+nothing.)65+66+- `internal/locale` is the conventions of each locale: decimal and67+ thousands separators, date order and patterns, currency symbol and68+ place, and the formula separators that follow from the decimal one.69+ Cells, formulas and files keep en-US's form whatever the locale; the70+ packages above translate at the edges, where entries are typed and71+ shown: `value.Canonicalize` and `Localize` for typed values,72+ `formula.Delocalize` and `Localize` for formulas (one byte for one,73+ so positions carry over), `numfmt.FormatIn` and `Format.CodeIn` for74+ display, and `sheet.CanonicalEntry` and `LocalEntry` for whole75+ entries. The workbook's locale is a file setting beside decimal76+ arithmetic ([Locale](../sheets/locale.md)).6277 6378 - `internal/formula` is the language: `Addr` and `Rect`, A1 references6479 with their `$` markers, sheet names in references and their quoting,@@ -25,6 +25,7 @@ shows it is derived from the table rather than listing it again.
2525 | `chart.types`, with `sheet.ChartTypes` | a type: name and order (sheet, saved in files), a layout drawing text and image and the series its legend lists (chart) | `chart.Draw`, `chart.Image`, chart editor, Insert > Chart |2626 | theme roles (`theme.Theme`) | a role: dark and light styles on the 16 ANSI colors, with a contrast minimum for schemes (`minContrast`) | every style in the UI, drawn in the terminal's palette or any color scheme (`FromPalette`); `TestEveryThemeReadable` checks each role under every built-in scheme |2727 | `config.Options` | an option: name, type, default, environment variables, flag, live or not, description, check | parsing and warnings, flags, `012 config` and its default file, [Configuration](../reference/config.md), Reload config |28+| `locale.table` | a locale: tag, name, separators, date order and patterns, currency and its place | parsing typed entries, display, formula separators, CSV, File > Settings > Locale, the `locale` option's values |2829 2930 Adding a function, command, format, chart type, option or role means3031 adding an entry (and its file), not editing switch statements elsewhere.@@ -20,6 +20,11 @@ entry is the way Sheets does:
2020 | `=A1*2`, `+A1*2` | a formula |2121 | `'42` | text, even though it looks like a number |2222 23+That's in English (United States); in another [locale](../sheets/locale.md)24+numbers, currency and dates are typed its way (`1.234,5`, `12,50 €`,25+`26.09.2026` in German), and formulas with a decimal comma separate26+their arguments with `;`: `=ROUND(A1*1,19; 2)`.27+2328 A formula that doesn't parse isn't accepted: 012 stays in EDIT mode with the2429 caret on the problem and says what's wrong on the context line, e.g.2530 `Expected , or ) in SUM`.@@ -62,8 +62,8 @@ is already in the formulas that use it.
6262 | `move(cols=0, rows=0)` | Move the active cell, dropping the selection |6363 | `extend(cols=0, rows=0, whole=None)` | Select from the active cell to `cols`, `rows` away; `whole="columns"` or `"rows"` selects whole ones |6464 | `jump(to, extend=False)` | Move as keys do: `"up"`, `"down"`, `"left"`, `"right"` (Ctrl+arrows, to the edge of the data), `"home"` (column A), `"start"` (A1), `"end"` (the last used cell) |65-| `enter(text, fill=False, origin=None)` | Type into the active cell and accept, as Enter does without moving; `fill=True` fills every selected cell (Ctrl+Enter). With `origin`, a formula is taken as typed at that cell and its relative references move with the distance to the active cell |66-| `paste_text(text)` | Paste tab-separated text from the active cell, as pasting from another program |65+| `enter(text, fill=False, origin=None)` | Type into the active cell and accept, as Enter does without moving; `fill=True` fills every selected cell (Ctrl+Enter). With `origin`, a formula is taken as typed at that cell and its relative references move with the distance to the active cell. `text` is in en-US's form (`1.5`, `9/26/2026`, `=ROUND(A1, 2)`) whatever the file's [locale](../sheets/locale.md), as a recording writes it, so a macro does the same everywhere |66+| `paste_text(text)` | Paste tab-separated text from the active cell, as pasting from another program: read in the file's [locale](../sheets/locale.md) |6767 | `fill(to=None, rows=0, cols=0)` | Drag the fill handle: continue the selection's series or copy it over `to`, or `rows` down (up if negative), or `cols` right (left if negative) |6868 6969 ## Sheets