senternet-site-multilingual

Implements URL-prefixed multilingual routing with hreflang, localized prerendering, and SEO regression tests.

Updated May 8, 2026
One-click install
npx skills add https://github.com/MattSenter/senternet-site-skills --skill senternet-site-multilingual-mattsenter
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: senternet-site-multilingual
Source: https://github.com/MattSenter/senternet-site-skills/tree/main/.claude/skills/senternet-site-multilingual
Command: npx skills add https://github.com/MattSenter/senternet-site-skills --skill senternet-site-multilingual-mattsenter

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding multiple languages to a marketing site often produces half-translated pages, broken hreflang tags, and untranslated content indexed by search engines. This Skill enforces a complete, gated workflow for shipping fully localized sites with correct SEO signals. ## Core Features & Use Cases - URL-based locale routing: English at /, other locales at prefixes like /es/ and /fr/, with React Context or Next.js App Router implementations. - SEO correctness: Generates hreflang alternates with x-default, localized canonicals, locale-aware JSON-LD structured data, and sitemap entries from a single locale list. - Publication gating: Keeps incomplete locales out of prerendered output, sitemaps, and hreflang until every indexable route passes translation and metadata checks. - Use Case: You have an English React marketing site and want to launch Spanish and French versions. The Skill scaffolds the i18n copy layer, locale routes, prerender loop, language switcher, and regression tests that fail the build if any locale page contains untranslated English content. ## Quick Start Ask the assistant to add Spanish and French multilingual support to the site with URL prefixes, hreflang tags, and localized prerendering.

Frequently Asked Questions about senternet-site-multilingual

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add multilingual support to a React website?▼

Create a central i18n module with a Language type, a copy object keyed by locale, and a React Context provider. Add URL-prefixed routes per locale (e.g. /es/, /fr/), detect language from the URL prefix, and render all copy through a useCopy hook.

How do I add hreflang tags for multilingual SEO?▼

Generate one link rel="alternate" per locale plus an x-default entry pointing at the English URL, built dynamically from the locale list. Each localized page must reference its own locale canonical, and hreflang targets must be reciprocal across all pages.

Does this work with Next.js App Router?▼

Yes. The Next.js track uses a dynamic [locale] segment with generateStaticParams, a library like next-intl for messages, middleware.ts for locale detection, and metadata alternates.languages for hreflang instead of a React Context provider and prerender loop.

Should I publish a locale before translations are complete?▼

No. An indexable locale is a complete content release. Keep incomplete locales out of the published locale list, routes, prerendering, hreflang, and sitemaps until every indexable route has full translated copy, metadata, and schema labels.

How do I handle RTL languages like Arabic on my site?▼

Maintain a list of RTL locale codes and set document.documentElement.dir to rtl and lang to the active locale in an effect. Arabic, Hebrew, Persian, and Urdu require dir="rtl" on the html element for correct layout.

Why does my localized page show English content in search results?▼

This happens when locale routes are prerendered or indexed before translations are complete, or when components hardcode default-language strings. Run regression tests that compare localized main content against the English version and fail on identical text.