Skip to content

feat(i18n): Bahasa Indonesia at /id/ (hreflang, switcher, geo-detect) - #114

Merged
slaveofcode merged 30 commits into
developfrom
feat/i18n-bahasa
Aug 1, 2026
Merged

feat(i18n): Bahasa Indonesia at /id/ (hreflang, switcher, geo-detect)#114
slaveofcode merged 30 commits into
developfrom
feat/i18n-bahasa

Conversation

@slaveofcode

Copy link
Copy Markdown
Owner

Adds a fully-indexable Bahasa Indonesia version of the site under /id/, to capture Indonesian search traffic.

Approach

  • Astro optional [...locale] routing — one template emits English at root (/tools/x) and Bahasa at /id/tools/x. No per-tool page duplication. Public pages (home, tools, category) moved under src/pages/[...locale]/; app/desktop pages stay English-only.
  • Per-language content: tool-seo.ts now holds EN + ID for all 74 web tools (English authored + Bahasa translated by fan-out agents), plus category copy and an i18n shell dictionary. Bahasa avoids alat — uses the tool loanword, per request.
  • hreflang (en / id / x-default) + og:locale on every localized page; sitemap lists /id/ URLs with hreflang. This is what makes Google rank the Indonesian pages.
  • Header language switcher (EN ⇄ ID, remembers choice in a gwt.lang cookie).
  • Edge geo-detect in the worker: first-visit Indonesian humans → /id/; bots excluded; the cookie/switcher always overrides.

Verify

  • npx vitest run → 603 passed · npm run lint → 0 errors · npm run build → 179 pages.
  • EN URLs unchanged (canonical intact); /id/ tree renders Bahasa titles/intro/how-to/FAQ; hreflang trio + og:locale correct; sitemap carries /id/ + hreflang.

slaveofcode and others added 30 commits July 31, 2026 23:19
Promote to production: watermark scale slider
Promote to production: Image Stamp tool
Promote to production: Add QR to Image tool
Promote to production: Voice to Text tool
Promote to production: P2P File Transfer + Network category + connection options
Promote to production: file-transfer reconnect + branded OG/app icons
Promote to production: file-transfer mobile reconnect fix
Promote to production: Video Call tool
Promote to production: voice-to-text dtype fix
Promote to production: voice-to-text Transcribe hint
Promote to production: voice-to-text model cache + audio pause
Promote to production: voice-to-text audio player fix
Promote to production: voice-to-text language selector + larger model
Promote to production: voice-to-text worker + persistent cache
Promote to production: voice-to-text wake lock + recording persistence
Promote to production: cache ML models in the service worker
Promote to production: Repair PDF tool
Promote to production: same-origin HF model proxy
Promote to production: Optical File Transfer tool
Promote to production: Coordinate Converter + Maps category
Promote to production: Map Explorer
Promote to production: GeoJSON/GPX/KML viewer
Promote to production: Static Map Maker (maps suite complete)
Promote to production: map resize fix
Promote to production: optical transfer progress fix
Promote to production: OCR model cache fix + voice cache indicator
Promote to production: Share button
Promote to production: rich per-tool SEO content + category hubs
Promote to production: per-tool OG images
- Astro optional [...locale] routing: one template emits English at root and
  Bahasa under /id/ (no per-tool duplication). Public pages (home, tools,
  category) moved under src/pages/[...locale]/.
- Per-language content: tool-seo.ts (74 tools EN + ID, authored/translated),
  category descriptions, and an i18n shell dictionary (src/i18n). Bahasa avoids
  'alat' — uses the 'tool' loanword — per request.
- Base.astro emits <html lang>, reciprocal hreflang (en/id/x-default) + og:locale.
- Header LangSwitcher (remembers choice in a gwt.lang cookie).
- Worker geo-redirect: first-visit Indonesian humans → /id/ (bots excluded,
  cookie/switcher overrides).
- Sitemap i18n so /id/ URLs carry hreflang.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ubfx4XocHcECaL8twp9zsr
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 1, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
goodwebtools 4bffef4 Aug 01 2026, 08:14 PM

@slaveofcode
slaveofcode merged commit ab24e92 into develop Aug 1, 2026
1 of 2 checks passed
@slaveofcode
slaveofcode deleted the feat/i18n-bahasa branch August 1, 2026 20:13
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