Quickstart · Astro
Utiliser Sonenta dans un site Astro
L’intégration officielle @sonenta/astro récupère vos bundles de traduction publiés depuis le CDN Sonenta au build et les injecte dans votre HTML statique — zéro JS client, SSG pur, pas de contenu non traduit qui clignote. Ce site tourne dessus.
1 · Créez un projet et récupérez vos clés
Connectez-vous, créez un projet, copiez son UUID. Vous gérez clés et traductions dans Sonenta — en parlant à votre agent via MCP, avec la CLI, ou dans le dashboard.
2 · Installez le package
Ajoutez l’intégration Astro officielle :
npm install @sonenta/astro
3 · Ajoutez l’intégration
Déclarez-la dans astro.config.mjs avec votre UUID de projet, vos langues et vos namespaces. Les bundles sont récupérés une fois au build (langue × namespace). Options : version (défaut "main"), cdnBase, fallbackLng.
// astro.config.mjs
import { defineConfig } from "astro/config";
import sonenta from "@sonenta/astro";
export default defineConfig({
integrations: [
sonenta({
project: "<your-project-uuid>",
locales: ["en", "fr"],
defaultLocale: "en", // source / fallback locale
namespaces: ["common"],
}),
],
}); 4 · Utilisez getT() dans vos pages
Importez getT du module virtuel sonenta:i18n et liez-le à une langue. Passez la langue que vous voulez — compatible avec le routing i18n natif d’Astro ou le vôtre. Ciblez d’autres namespaces avec la syntaxe "ns:key" (ex. t("docs:intro")) ; les chaînes sont injectées dans le HTML statique :
---
// src/pages/index.astro
import { getT } from "sonenta:i18n";
const t = getT(Astro.currentLocale ?? "en");
---
<h1>{t("home.title")}</h1>
<p>{t("home.greeting", { name: "Ada" })}</p> 5 · Publiez, puis rebuild
Gérez les chaînes source dans Sonenta et publiez une release (via votre agent, la CLI ou le dashboard). Le prochain astro build récupère le dernier bundle :
# push your source strings to Sonenta + publish a release npx @sonenta/cli push # or let your agent do it over MCPCLI →
On l’utilise nous-mêmes : ce site tourne dessus
Sonenta.com — cette page comprise — est construit avec @sonenta/astro : 13 langues sur plusieurs namespaces, chaînes source poussées dans Sonenta via MCP, publiées sur le CDN, récupérées au build, injectées en HTML statique. Exactement la config ci-dessus, à l’échelle.
La suite (0.2.0)
Surfaces d’accessibilité (t.aria, t.alt), pluriels CLDR, et variantes de surface responsive (desktop / mobile via <SurfaceText>) arrivent de façon additive en 0.2.0 — sans casser l’API ci-dessus.