| name | astro-i18n |
| description | Use when implementing internationalization in Astro, configuring i18n routing, setting up locale strategies, using getRelativeLocaleUrl/getAbsoluteLocaleUrl, handling Astro.currentLocale, or adding hreflang tags with sitemap. |
| versions | {"astro":"7"} |
| user-invocable | true |
| references | references/routing-config.md, references/strategies.md, references/helper-functions.md, references/content-translation.md, references/sitemap-hreflang.md, references/fallback.md, references/templates/i18n-config.md, references/templates/locale-page.md, references/templates/language-switcher.md |
| related-skills | astro-7, astro-content, astro-seo, solid-astro |
Astro i18n
Agent Workflow (MANDATORY)
Before ANY implementation, use TeamCreate to spawn 3 agents:
- fuse-ai-pilot:explore-codebase - Analyze existing routing, content collections, and locale files
- fuse-ai-pilot:research-expert - Verify latest Astro i18n docs via Context7/Exa
- mcp__context7__query-docs - Check
astro:i18n API and sitemap integration
After implementation, run fuse-ai-pilot:sniper for validation.
Overview
When to Use
- Building multilingual Astro sites with locale-prefixed URLs
- Configuring
defaultLocale and routing strategies
- Generating locale-aware links with
getRelativeLocaleUrl()
- Reading
Astro.currentLocale in components and pages
- Adding
hreflang alternate links via @astrojs/sitemap
- Translating content using Content Collections per locale
Built-in i18n (Astro 3.5+)
Astro's built-in i18n system provides:
- File-based locale routing via
src/pages/[locale]/
- Routing strategies for URL prefix behavior
- URL helper functions from
astro:i18n
- Middleware-based routing logic
- Fallback locale configuration
Reference Guide
Concepts
Templates
Best Practices
- Use
getRelativeLocaleUrl() — never hardcode locale prefixes in links
Astro.currentLocale — read locale in components, not from URL manually
- Content Collections per locale — organize translated content in
src/content/[type]/[locale]/
- Sitemap hreflang — always configure
@astrojs/sitemap with i18n option for SEO
- Fallback locales — configure
fallback to prevent 404s for missing translations
Forbidden
- Hardcoding locale strings in URL paths
- Parsing the URL manually to detect locale (use
Astro.currentLocale)
- Skipping hreflang configuration for SEO-sensitive sites
- Using
getRelativeLocaleUrl without configuring site in Astro config