Repository navigation
Prepare the website for twenty more languages - #85
Conversation
The site generator already treated a language as a file per page and a key per word. This
adds what a larger set needs and keeps the rule that a half-finished language fails the build.
- A language registry in site.json: tag, og:locale, the language's own name, the short code the
switch shows, direction and slug policy. A language can be in the registry and not published.
- The language switch is a disclosure listing every language by its own name, with no script.
- Slugs are either the language's own or the default language's, so the alphabets that cannot be
an ASCII address are not transliterated into one.
- {{url:ID}} resolves another page's address in the language of the page that writes it.
- A translation is held against its original: same block structure, same links to the same
pages, same commands (comments and angle-bracket placeholders excepted), same tokens.
- A translation records which English it follows. An older one is listed, and fails the build
only with --require-fresh. --stamp CODE records it, and a missing stamp is always a problem.
- Right to left: logical properties instead of left and right, code isolated from the page
direction, no letter spacing in cursive or CJK scripts, a font stack and line height per script.
- The Polish code samples go back to the English commands so one check covers every language,
and the question about the program's own language is now in the English source too.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📜 Recent review details
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
The tests edited the published list by matching its exact text and borrowed Arabic for the right-to-left case, so each language added would have broken them. They now append to whatever the list holds and invent the languages they need. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…uctured data French writes a no-break space before a colon and a question mark, as an entity. The structured data is JSON a machine reads, and without this it carried the letters of the entity. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A label is nowrap so a short English one stays on a line, but a label of forty-odd characters in another language is wider than a phone and pushed the whole page sideways - Spanish at 375 px, six pixels over. The button is full width there already, so wrapping costs a line of height. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The tests for the languages took GeneratorTests over the ceiling the size ratchet holds test files to. The seam is the one the file already had: the sandbox a test breaks something in, the older tests, and the tests for languages. The mutation entries follow the tests that moved. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
What this changes
The generator already had one file per page per language and one key per word. This adds what twenty-two languages need. No new language is published by this PR -
languagesstays["en", "pl"]. The other twenty are written and enabled in later PRs, a handful at a time.site/site.json: tag,og:locale, the language's own name, the short code the switch shows, direction, slug policy. A language can be registered and not yet published.<details>disclosure listing every language by its own name. No script, which the site promises.{{url:ID}}resolves another page's address in the language of the page that writes it.<placeholder>words excepted), same tokens.--require-fresh.--stamp CODErecords it. A missing stamp is always a problem.style.css: logical properties, code isolated from the page direction, no letter spacing in cursive or CJK text, a font stack and line height per script.Checked
--require-fresh.Bws.Site.Tests: 40 passing.PublicSurfaceGuardsandSizeRatchetGuardspassing.stale-check: 0.Not checked
diron the English page, not on Arabic text.🤖 Generated with Claude Code