feat(15d): complete localization of full-guide page to PT

This commit is contained in:
Marcos Paulo
2026-09-05 22:30:50 +00:00
parent c022a93302
commit 054393f7af
38 changed files with 1322 additions and 325 deletions
+14 -11
View File
@@ -15,12 +15,12 @@ this site's ten pages ship no JS today and must continue to.
Only these need interactivity. Anything else claiming island status is wrong:
| Island | Why | Directive |
| --- | --- | --- |
| Guide phase/tab switchers | click-driven panel swap | `client:visible` |
| Review desk catalog + file viewer | search, filter, fetch source files | `client:load` |
| Vote widget | talks to `vote-service/` | `client:visible` |
| Language toggle | swaps EN/PT across the page | `client:idle` |
| Island | Why | Directive |
| --------------------------------- | ---------------------------------- | ---------------- |
| Guide phase/tab switchers | click-driven panel swap | `client:visible` |
| Review desk catalog + file viewer | search, filter, fetch source files | `client:load` |
| Vote widget | talks to `vote-service/` | `client:visible` |
| Language toggle | swaps EN/PT across the page | `client:idle` |
## Structure
@@ -31,8 +31,11 @@ Only these need interactivity. Anything else claiming island status is wrong:
// 3. destructure Astro.props
// 4. derived values — no side effects, no fetch in components
---
<!-- markup -->
<style>/* component-scoped */</style>
<style>
/* component-scoped */
</style>
```
- Typed props always: `interface Props { … }`, then `const { … } = Astro.props`.
@@ -60,13 +63,13 @@ almost one-to-one — do that rather than importing a 27 KB JS file.
The site is served from `/ai-for-dummies/`. Set `base` in `astro.config.mjs` and
never hand-write an absolute internal path. Use `import.meta.env.BASE_URL`.
Existing routes are load-bearing and must not change, including trailing
slashes and the review desk's query params.
Existing routes are load-bearing and must not change, including trailing slashes
and the review desk's query params.
## Never
- No UI framework (React/Vue/Svelte) unless a task brief explicitly calls for it.
Astro components plus a little vanilla JS cover everything here.
- No UI framework (React/Vue/Svelte) unless a task brief explicitly calls for
it. Astro components plus a little vanilla JS cover everything here.
- No CSS framework. This site has a hand-built visual identity — see
[`theming.md`](theming.md).
- No external runtime requests. Self-host. `audit-ui.mjs` enforces it.