Skip to content

v0.5.2

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Aug 22:04
3c4c864

Wire format unchanged — v0.5.2 interoperates with 0.5.0 and 0.5.1 both ways. (0.4.x remains incompatible; see the v0.5.0 notes.) One floor moves: builds now target ES2022 — Chrome/Edge 89+, Firefox 89+, Safari 15+, all 2021.

Twelve languages

  • English, Spanish, Brazilian Portuguese, French, German, Italian, Russian, Hindi, Simplified Chinese, Japanese, Korean, and Arabic — with full right-to-left layout. Asked for in #14.
  • Every language is its own page tree (/es/send/, /ar/receive/, …): translated titles, social cards, and hreflang alternates, so a Spanish search finds a Spanish page. The footer switcher navigates; nothing redirects on browser language, so a shared link always shows the page that was shared. The home page offers your language once, dismissibly.
  • Installing from a tree installs that language — per-locale PWA manifests, every tree precached, offline in all twelve.
  • The standalone files embed all twelve catalogs and pick the reader's language when opened; the switcher swaps in place, no reload — localStorage is unreliable under file://, and a reload that forgot the choice would put the old language back.
  • A localized sender shares its own language's receiver: the QR on /es/send/ hands the other device /es/receive/.

Unreviewed translations say so

  • Every non-English catalog is machine-drafted and carries one quiet footer line in that language saying so, linked to the issue tracker. A native review is a PR that fixes the wording and flips that language's reviewed flag — the note disappears on the next build. Reviews are the most useful small contribution this project can take.

Under the hood

  • Protocol errors and wire-version verdicts travel as codes and localize at display time. The English wording stays the reference, pinned by test, so every client in a given language words the same failure the same way.
  • A language missing a key, or the page copy drifting from the catalog, fails the build — the rule the %TOKEN%s already lived under. Catalogs are code-split per language; the receive chunk stays under its tripwire.
  • Node is pinned: .nvmrc is the single source, CI reads it, and engine-strict makes the wrong Node fail an install instead of warning past it.