Every official language, in JSON: 113 listed, five shipped so far
Build / Desktop, server and tools (push) Successful in 33s
Build / Desktop, server and tools (push) Successful in 33s
The language list comes from CLDR (official in a UN member state, plus the six UN languages), with autonyms and text direction supplied for the 21 that ICU does not know. Strings move from resx to one JSON file per language, looked up by code, so a language unknown to ICU or MSBuild still loads; tools/strings.cs checks keys and placeholders in CI. Arabic, Hindi and Chinese drafts prove right-to-left and system-font fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
1 parent
7589121846
commit
8eaf9f36fc
17 files changed
+1072
-99
No files matched your search
+10
-4
@@ -131,8 +131,11 @@ Scope: `src/`, `tools/`. Out of scope: generated files (`obj/`, `*.g.cs`), third
|
||||
|
||||
38. **Structured logging with `{Placeholder}` templates**, never interpolated strings (Microsoft.Extensions.Logging,
|
||||
as passolo).
|
||||
39. **Localization-first:** every user-facing string is a resx key in `src/MeWeb.App/Strings/Strings*.resx`; no
|
||||
literals in XAML or view models (the product name `me-web?` excepted).
|
||||
39. **Localization-first:** every user-facing string is a key in `src/MeWeb.App/Strings/<code>.json`, one flat
|
||||
file per language, English the fallback; no literals in XAML or view models (the product name `me-web?`
|
||||
excepted). JSON rather than resx on purpose: 21 of the 113 official languages are unknown to ICU and to MSBuild's
|
||||
satellite-culture list, and a file looked up by code needs neither. Keys change only through
|
||||
`tools/strings.cs set`, and `tools/strings.cs check` (keys and `{n}` placeholders against English) runs in CI.
|
||||
40. **Central Package Management** (`Directory.Packages.props`); Avalonia packages move together through
|
||||
`AvaloniaVersion`.
|
||||
41. **Docs as convention:** `AGENT.md` (operational), `CLAUDE.md` (quick reference + pitfalls), `PATTERNS.md`
|
||||
@@ -172,7 +175,10 @@ Scope: `src/`, `tools/`. Out of scope: generated files (`obj/`, `*.g.cs`), third
|
||||
private, loopback, link-local, CGNAT, ULA and the server's own prefixes.
|
||||
124. **Shared findings leave only after the person has read exactly what is sent**, and every submission can be
|
||||
deleted with the id and token the app keeps.
|
||||
125. **Every language ships; drafts say so.** `data/languages.json` marks each language `reviewed` or `draft`; a
|
||||
draft shows its notice and the "suggest a correction" link. The root `FlowDirection` follows the language.
|
||||
125. **Every language ships; drafts say so.** `data/languages.json` (written by `tools/languages.cs` from CLDR:
|
||||
every language official or de facto official in a UN member state, plus the six UN languages) marks each
|
||||
`reviewed` or `draft` and carries its own `rtl` flag, because ICU does not know every script's direction. The
|
||||
picker lists a language once its strings file exists; a draft shows its notice and the "suggest a correction"
|
||||
link; the root `FlowDirection` follows `rtl`.
|
||||
126. **`?` appears only in display text.** File names, package ids and paths use `MeWeb`, `meweb` and
|
||||
`software.arasaka.meweb`.
|
||||
Reference in new issue
Block a user