The only conflict was contributors/people.toml: other contributors appended
their entries at the end of the file in the meantime. All entries kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Own entry only, as AGENTS.md describes: credited by the name on my public
GitHub profile (sync_github_name), otherwise by @username.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge the fixed#104 branch (which carries #31 and #38) and restructure
the Brazilian Portuguese language onto its per-language layout:
- The PORTUGUESE table moves, unchanged, to crates/ui-egui/src/i18n/pt.rs
as pt::translate, like zh/ko/ru. Language::PtBr gets code() "pt"
(parse also accepts pt-BR/pt_BR via the tag reduction); it is still
saved as "pt".
- No per-language command: the View combo and the control channel switch
with app.language.set {"language": "pt"} (app.language.portuguese is
dropped); error text, engine.commands params and the snapshot example
list every code.
- pt.rs covers the keys added since (Page Layout|Orientation, the display
theme combo, and the Sheet Options View/Print checkboxes, Exibir /
Imprimir); the coverage test checks pt like zh/ko/ru.
- people.toml keeps both new contributor entries.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds PtBr to the interface-language system from #31: a PORTUGUESE table
covering the same 259 chrome strings as JAPANESE (a test keeps the two
tables in step), Excel's pt-BR wording throughout, "pt"/"pt-br" codes
(serde-stored as "pt"), Português (Brasil) in the switcher, the
app.language.portuguese command, and first-run detection of a pt-BR
system locale via the existing tag reduction.
* About: contributors compiled in from contributors.json (grab bag + table, sortable, name toggle)
Adds an About GridCraft dialog (tabs About · Contributors · Models) following the craftrules
standard (standards/contributors.md): contributors/contributors.json is generated by
craftrules/scripts/contributors.py and baked into the binary by crates/ui-egui/build.rs as
static tables. Each contributor line: @username, opt-in display/real name, PRs, commits,
lines +/−/Δ, binary assets +/−, first/last commit. Sortable by every column; alphabetical
ignores case and the leading @.
Reachable from the macOS app menu (About GridCraft, previously a web link), Help ▸
Contributors…, and Automate ▸ About GridCraft in the ribbon (all platforms and the web).
Dialog hyperlinks open through the host's open_url service. The snapshot example gains
--dialog 'name={json}' for offscreen renders of dialogs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Contributors: self-submitted names in contributors/people.toml; AGENTS.md credit-yourself section
build.rs reads contributors/people.toml next to the generated contributors.json and shows a name only
for entries the generator verified as written by that person (craftrules standards/contributors.md).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Contributors: regenerate (verified people.toml entries)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>