REST API
React + i18next
Den fullständiga API-referensen kommer att auto-genereras från vår OpenAPI 3.1-spec så fort surface är stabil. Vi shippar hellre en placeholder än fake-dokar endpoints som fortfarande kan röra sig. Under tiden, här är formen, vad den kommer täcka och vad du gör idag.
Installera
Kräver <strong>Node 20 LTS</strong> eller nyare. Två binärer installeras: <code>verbumia</code> och det kortare aliaset <code>vrb</code> — utbytbara.
terminal 1npm i @verbumia/react-i18next 2. Linda din app
VerbumiaProvider tar en projectId och en apiKey. Allt annat har rimliga defaults: locale auto-detekteras från webbläsaren, namespaces laddas lazy från ditt CDN, missing-key-handler debouncas och POST:as automatiskt.
main.tsx 1// src/main.tsx2import { VerbumiaProvider } from "@verbumia/react-i18next";3import { createRoot } from "react-dom/client";4import { App } from "./App"; 6createRoot(document.getElementById("root")!).render(7 <VerbumiaProvider8 projectId="proj_xxx"9 apiKey={import.meta.env.VITE_VERBUMIA_KEY}10 defaultLocale="en"11 namespaces={["common"]}12 >13 <App />14 </VerbumiaProvider>15); Alla VerbumiaProvider-props
| Prop | Typ | Default |
|---|---|---|
| projectId | string | — krävs |
| apiKey | string | — krävs |
| defaultLocale | string | browser |
| defaultNS | string | "common" |
| namespaces | string[] | ["common"] |
| cdnUrl | string | cdn.verbumia.ca |
| baseUrl | string | api.verbumia.ca |
| missingHandlerEndpoint | string | /v1/missing |
| debounceMs | number | 5000 |
| transport | (batch) => void | Promise<void> | internal |
3. Använd hooken
useTranslation() returnerar { t, i18n }. Bekant form om du använt react-i18next. i18n.ready säger när de initiala namespacen är hydrerade; i18n.changeLanguage() byter locale i runtime.
Checkout.tsx 1// src/Checkout.tsx2import { useTranslation } from "@verbumia/react-i18next"; 4export function Checkout() {5 const { t, i18n } = useTranslation("common"); 7 if (!i18n.ready) return null; // first paint after hydration 9 return (10 <button onClick={() => i18n.changeLanguage("fr")}>11 {t("checkout.review.confirm")}12 </button>13 );14} Vad du får gratis
- Fångst av saknade nycklar. Varje nyckel du anropar som inte finns i ordlistan köas, debouncas (5s default) och POST:as till dashboardens missing-kö. Produktionssäkert — din fallback renderas fortfarande.
- Namespaces via CDN. Översättningsbuntar hämtas från
cdn.verbumia.camed HTTP-caching och stale-while-revalidate. Ingen build-time-bundling krävs. - Auto-detekterad locale. Om du inte skickar
defaultLocaleläser SDK:nnavigator.languageoch faller tillbaka på projektets default. - Öppna exporter. Allt du pushar till Verbumia kan du exportera tillbaka till JSON i18next, XLIFF eller PO. Byt verktyg imorgon utan att skriva om koden.
Egen transport (avancerat)
Behöver du logga saknade nycklar till din egen observability-stack, gate:a dem bakom din auth eller stub:a dem i tester? Skicka in en transport-funktion. SDK:n debouncar och batchar fortfarande; du bestämmer vad som händer med batchen.
main.tsx 1// custom transport — useful for tests, edge cases, or auditing2<VerbumiaProvider3 projectId="proj_xxx"4 apiKey={import.meta.env.VITE_VERBUMIA_KEY}5 debounceMs={2000}6 transport={(batch) => fetch("/internal/i18n-misses", {7 method: "POST",8 body: JSON.stringify(batch),9 })}10/>