Tutoriels · pour les devs
Traduisez votre app avec Sonenta
Un parcours par scénario. Chaque tutoriel a deux parties : Intégration & init (brancher Sonenta dans votre dépôt) et une séquence de travail (les prompts IA et les revues qui font le boulot). Les commandes et les prompts sont exacts, copiez-les tels quels.
La v1 couvre la Traduction. D’autres scénarios (accessibilité, évaluation, diffusion) arriveront une fois ce format validé.
Intégration & init
-
1. Installez le CLI
shellnpm install -g @sonenta/cli # fournit la commande `sonenta`
-
2. Authentifiez-vous
Créez une clé API dans le dashboard (Réglages → Clés API) avec le scope
mcp:*pour que les agents IA locaux puissent agir.shellsonenta login --token snt_live_<prefix>.<secret> # --host vaut https://api.sonenta.dev par défaut
-
3. Initialisez le projet
À lancer à la racine de votre dépôt. Cela génère
sonenta.config.json, un bloc géré dansCLAUDE.md/AGENTS.mdpour que votre IA locale connaisse le projet, et branche automatiquement le serveur MCP dans.mcp.json(sans secret, le serveur lit les identifiants de votresonenta login). Dans Claude Code, quittez votre session et démarrez-en une nouvelle ensuite : Claude Code lit.mcp.jsonau démarrage de la session, une session déjà ouverte continue donc sans les outils Sonenta.shellsonenta init --project <PROJECT_UUID>
sonenta.config.json{ "host": "https://api.sonenta.dev", "project_uuid": "<PROJECT_UUID>", "version_slug": "main" }.mcp.json{ "mcpServers": { "sonenta": { "command": "npx", "args": ["-y", "@sonenta/mcp"], "env": { "SONENTA_BASE_URL": "https://api.sonenta.dev", "SONENTA_PROJECT": "<PROJECT_UUID>" } } } } -
4. Installez l’agent IA local
Écrit
.claude/agents/sonenta-i18n.mdet s’assure que.mcp.jsonest branché.sonenta agents listaffiche tous les agents fournis, p. ex.sonenta-a11y.shellsonenta agents add sonenta-i18n # l’agent de traduction
-
5. Vérifiez l’installation
shellsonenta doctor # vérifie MCP branché, joignable, scopé
-
6. Ajoutez le SDK runtime
Enveloppez votre app une fois avec le provider, puis affichez vos chaînes avec le hook
t()comme d’habitude. Les traductions publiées arrivent par le CDN sans changement de code.shellnpm install @sonenta/react-i18next
entrée de l’appimport { SonentaProvider } from "@sonenta/react-i18next"; <SonentaProvider apiBase="https://api.sonenta.dev" projectUuid="<PROJECT_UUID>" token="snt_live_<prefix>.<secret>" // a key with the missing:write scope defaultLocale="en" namespaces={["common"]} > <App /> </SonentaProvider>un composantconst { t } = useTranslation(); return <button>{t("checkout.pay")}</button>;
La séquence de traduction
Une boucle simple en trois étapes : générer des brouillons, relire, publier.
-
1. Générez les traductions (brouillons)
L’agent tourne en local (0 crédit IA) :
coverage_report→list_untranslated_keys→propose_translations_bulk, en respectant votre glossaire et le contexte du projet. Le résultat : des traductions en brouillon dans Sonenta, rien n’est encore en ligne.Demandez à votre IA Avec sonenta-i18n, traduisez chaque clé non traduite dans toutes mes langues cibles, en suivant mon glossaire et mon ton.
-
2. Relisez dans Sonenta
Ouvrez l’éditeur Traductions du dashboard (
/translations). Validez ou modifiez chaque brouillon. Seul ce que vous validez devient publiable. -
3. Publiez sur le CDN
L’agent appelle
publish_cdn. Les traductions publiées sont servies par le CDN et reprises automatiquement par votre app via@sonenta/react-i18next, sans changement de code, sans redéploiement.Demandez à votre IA Publiez les traductions validées sur le CDN.
La publication passe par l’outil publish_cdn de l’agent (ou le prompt ci-dessus). Il n’y a pas de commande sonenta publish séparée, les commandes push / pull du CLI synchronisent des fichiers de langue locaux, pas le flux IA ci-dessus.