Skip to content

site: add a Spanish translation of the landing and downloads pages - #47

Merged
emuehlstein merged 1 commit into
mainfrom
site-spanish
Oct 17, 2026
Merged

emuehlstein merged 1 commit into
mainfrom
site-spanish

Conversation

@emuehlstein

Copy link
Copy Markdown
Contributor

Adds /es/ as a mirror of the English site tree, with a language switch in the header and hreflang alternates on both pages.

Scope

  • site/es/index.html: hand-maintained Spanish translation of the landing page. tools/gen_radio_table.py fills the radio table in every page listed in PAGES (translating only the few strings it emits itself) and --check covers both.
  • tools/build_site_artifacts.py: renders the downloads page once per language. Artifacts are published once under codeplugs/; es/codeplugs/index.html links across to them. Source name/description come from an optional per-language i18n block in site/codeplug-sources.json, falling back to English.
  • Radio names, format names, and channel/zone labels are left untranslated: they appear on the radio and match what is used on-air.
  • CLI stays English-only (operators' tool; messages are what gets pasted into issues).

Verified locally

  • Full test suite passes (new tests for both generators' Spanish output).
  • build_site_artifacts.py run against the sibling checkouts; served site/ over HTTP and confirmed /es/, /es/codeplugs/, the cross-tree download links, and the language switch on all four pages resolve.

The site's audience for the downloads page is Chicago Offline neighbours
picking up a prebuilt codeplug, not developers, and a large share of
Chicagoland is Spanish-dominant. The CLI stays English-only: its users are
operators already reading YAML and CHIRP in English, and its messages are
what gets pasted into issues.

The Spanish tree mirrors the English one under site/es/, so relative links
work the same from either side:

- site/es/index.html is a hand-maintained translation of site/index.html.
  gen_radio_table.py now fills the radio table in every page listed in
  PAGES, translating only the handful of strings it emits itself (sr
  labels, the hw badge title, the codeplug link). --check covers both.
- build_site_artifacts.py renders the downloads page once per language.
  The artifacts themselves are published once, under codeplugs/; the
  es/codeplugs/ page links back across to them. Source name/description
  come from an optional per-language "i18n" block in codeplug-sources.json
  and fall back to the English text.
- Both pages carry a language switch in the header plus canonical and
  hreflang alternates; x-default is English.

Radio names, format names, and channel/zone labels are deliberately not
translated: those appear on the radio and must match what is used on-air.
@emuehlstein
emuehlstein merged commit cf4689f into main Oct 17, 2026
2 checks passed
@emuehlstein
emuehlstein deleted the site-spanish branch October 17, 2026 04:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant