80 lines
1.7 KiB
Markdown
80 lines
1.7 KiB
Markdown
# EDUT Web
|
|
|
|
Public-facing EDUT web surfaces and deployment specs.
|
|
|
|
## Repository Layout
|
|
|
|
```text
|
|
public/
|
|
index.html
|
|
privacy/index.html
|
|
terms/index.html
|
|
translations/
|
|
en.json
|
|
zh.json
|
|
es.json
|
|
ar.json
|
|
fr.json
|
|
pt.json
|
|
de.json
|
|
ja.json
|
|
ru.json
|
|
ko.json
|
|
hi.json
|
|
he.json
|
|
docs/
|
|
secret-system-spec.md
|
|
vision.md
|
|
roadmap-membership-platform.md
|
|
review-notes.md
|
|
platform-spec-alignment-review.md
|
|
contracts/
|
|
membership-platform-interfaces.md
|
|
conformance/
|
|
membership-gating-vectors.md
|
|
schemas/
|
|
offer.v1.schema.json
|
|
entitlement.v1.schema.json
|
|
issuer-manifest.v1.schema.json
|
|
examples/
|
|
offer.v1.example.json
|
|
entitlement.v1.example.json
|
|
issuer-manifest.v1.example.json
|
|
README.md
|
|
```
|
|
|
|
## Internationalization
|
|
|
|
Landing-page i18n rules:
|
|
|
|
- Never translated: `edut · עֵדוּת`
|
|
- Localized: meaning line, descriptor, `acknowledged` label, footer labels, accessibility/AI context abstract
|
|
- English authoritative at launch: privacy and terms pages
|
|
|
|
Runtime behavior in `/public/index.html`:
|
|
|
|
1. Resolve language from `localStorage` or `navigator.language`
|
|
2. Match to supported locale set
|
|
3. Load `translations/<lang>.json`
|
|
4. Fallback to English
|
|
5. Persist chosen language to `localStorage`
|
|
|
|
RTL handling:
|
|
|
|
- Locale bundles set `dir` to `rtl` for Arabic/Hebrew.
|
|
- Page layout remains LTR.
|
|
- Localized nodes receive per-node direction.
|
|
|
|
## Deployment Notes
|
|
|
|
If web root is `public/`, ensure `translations/` is also served at `/translations`.
|
|
|
|
Example options:
|
|
|
|
- copy `translations/` to web root as sibling static directory
|
|
- configure server alias `/translations -> <repo>/translations`
|
|
|
|
## Legal Note
|
|
|
|
`/public/privacy/index.html` and `/public/terms/index.html` are English-governing versions.
|