Conversation
hreflang has carried the full seven-language graph since the translations landed. Open Graph was never told: no og:locale, no og:locale:alternate. Every consumer that reads OG rather than hreflang -- Facebook, LinkedIn, Slack, most scrapers -- therefore treated a share of /ja/ or /pt/ as an English page. Each page now declares its own og:locale and lists the six others as og:locale:alternate, from the same set hreflang uses, so the two cannot drift apart. The mapping lives in LOCALES because Open Graph wants language_TERRITORY rather than BCP 47: en_US, zh_CN, ja_JP, de_DE, es_ES, ko_KR and pt_BR. That last one is the same call made twice already this week -- the pages, the shell strings and the vendor locale the editor loads (pt.json) are all Brazilian. Landing pages also gain the inLanguage their WebApplication node was missing; the homepage and the documentation pages already had it. Reverse-checked: dropping the og:locale line turns the new assertion red on every generated page. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
chaxus
enabled auto-merge (rebase)
August 23, 2026 04:38
Deploying document with
|
| Latest commit: |
4fc3e65
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://9433d403.document-7hm.pages.dev |
| Branch Preview URL: | https://og-locale.document-7hm.pages.dev |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Second pass over the seven-language site. One real gap, found by diffing what
hreflangsays against what everything else says.Open Graph never heard about the translations
hreflanghas carried the full seven-language graph since the translations landed. Open Graph was never told — noog:locale, noog:locale:alternate. Every consumer that reads OG rather than hreflang (Facebook, LinkedIn, Slack, most scrapers) treated a share of/ja/or/pt/as an English page.Each page now declares its own
og:localeand lists the other six asog:locale:alternate, built from the same sethreflanguses so the two cannot drift apart. The mapping lives inLOCALES, because OG wantslanguage_TERRITORYrather than BCP 47:en_US·zh_CN·ja_JP·de_DE·es_ES·ko_KR·pt_BRThat last one is the same call made twice already this week: the pages, the shell strings and the vendor locale the editor loads (
pt.json, notpt-pt.json) are all Brazilian.Landing pages also gain the
inLanguagetheirWebApplicationnode was missing — the homepage and the documentation pages already had it.Reverse-checked: dropping the
og:localeline turns the new assertion red on every generated page.Checked in this pass and clean
alt, no link or button without an accessible name, no heading-level jumps, exactly oneh1per page,<html lang>everywhere. The format index rows, rail links and language select are all reachable by keyboard.landing-prefetch.jswarming all three editor engines after load (existing behaviour, pinned by e2e); over the wire it is Brotli —sdk-all.js13.7 MB → 3.0 MB.sdkjs/andweb-apps/deliberately skipimmutable(they carry our patches and the iframe HTML). The locale files backfilled in fix(editor): a missing translation must not become a document error #194 live in that tree, but the service worker names its runtime cache afterVENDOR_VERSION, so a vendor change is a new cache and cannot serve the old copies.docs/explorations/2026-08-23-seven-languages-audit.mdis updated with this pass.🤖 Generated with Claude Code