React Native et Expo
Sur mobile, le provider est le même que sur le web : @sonenta/react-i18next. Ce qui change, c'est le moment où les traductions arrivent et ce qui se passe quand il n'y a pas de réseau.
Le gain est là : corriger un texte ne demande pas de nouvelle version ni de passage par les stores, parce que les bundles se chargent à l'exécution.
1. Installez le SDK
Section intitulée « 1. Installez le SDK »Le même paquet que sur le web. Aucun module natif supplémentaire.
npm i @sonenta/react-i18nextLe stockage du jeton utilise le secure store de la plateforme.
2. Branchez le provider
Section intitulée « 2. Branchez le provider »// App.tsx (Expo / React Native)import { SonentaProvider } from "@sonenta/react-i18next";
export default function App() { return ( <SonentaProvider projectUuid="proj_xxx" token={process.env.EXPO_PUBLIC_SONENTA_TOKEN} defaultLocale="fr" > {/* votre navigation */} </SonentaProvider> );}3. Figez un jeu de bundles pour le premier démarrage
Section intitulée « 3. Figez un jeu de bundles pour le premier démarrage »Une app mobile peut démarrer sans réseau. sonenta snapshot récupère les bundles publiés au moment du build et les écrit sur le disque, pour que l'app ait quelque chose à afficher avant le premier chargement CDN.
npx sonenta snapshot --out ./assets/i18nimport snapshot from "./assets/i18n";
<SonentaProvider projectUuid="proj_xxx" snapshot={snapshot} autoStart> {/* … */}</SonentaProvider>Au démarrage suivant, le provider rafraîchit depuis le CDN et bascule sur la version publiée. Si le CDN est injoignable, l'API sert les mêmes bundles en repli.
Limite connue : la détection de clés manquantes
Section intitulée « Limite connue : la détection de clés manquantes »La remontée automatique des clés appelées sans traduction ne fonctionne pas en mode zéro réseau : elle a besoin du chemin snapshot avec autoStart: true. Si vous coupez le réseau entièrement, les clés manquantes ne remontent pas au dashboard, et il faut les repérer autrement.
C'est une limite du transport, pas un défaut de configuration : sans réseau, rien ne part.
Les add-ons d'évaluation par l'utilisateur final et d'édition en contexte ont un point d'entrée /native, qui se branche sur le même provider :
import { feedbackPlugin } from "@sonenta/feedback/native";
<SonentaProvider projectUuid="proj_xxx" plugins={[ feedbackPlugin({ onReady: (c) => (ctrl = c) }) ]}>{/* … */}</SonentaProvider>- Cas d'usage mobile : App mobile, sans repasser par les stores
- Référence CLI :
sonenta snapshot - Évaluation par l'utilisateur final :
@sonenta/feedback