Fonctionnalité

REST API & SDK better-i18n : Gestion programmatique des traductions

Contrôle programmatique complet sur vos traductions, clés, langues et projets via une REST API claire et bien documentée.

REST API & SDK better-i18n : Gestion programmatique des traductions

La plateforme better-i18n offre aux développeurs un accès programmatique complet à la gestion des traductions — via un SDK TypeScript, une REST API, des outils CLI et un serveur MCP pour les assistants IA. Gérez les clés, traductions, langues et contenus directement depuis votre code et vos pipelines CI.

Deux APIs, deux usages distincts

better-i18n expose deux APIs différentes selon ce que vous construisez :

APIURL de baseAuthCas d'usage
Translation APIdash.better-i18n.com/apiBearer tokenGestion des clés, traductions, langues, syncs
Content APIcontent.better-i18n.comHeader x-api-keyCMS headless — articles de blog, pages marketing, contenu structuré

Les deux APIs utilisent des corps JSON en requête/réponse et suivent les conventions REST.

Authentification

Générez des clés API dans Paramètres → Clés API sur votre tableau de bord.

# Translation API (gestion des clés, traductions)
curl -H "Authorization: Bearer bi18_live_abc123..." \
  https://dash.better-i18n.com/api/...

# Content API (CMS headless)
curl -H "x-api-key: bi-your-api-key" \
  https://content.better-i18n.com/v1/content/acme/web-app/models

N'exposez jamais vos clés API côté client. Utilisez des variables d'environnement et des proxies côté serveur.

Translation API

La Translation API gère le flux i18n principal : projets, clés, traductions et langues.

Projets

listProjects()          → Lister tous les projets auxquels vous avez accès
getProject(project)     → Obtenir les détails, langues et namespaces d'un projet

Chaque projet est identifié au format org/projet (ex. acme/web-app). Vous le trouverez dans votre i18n.config.ts.

Clés de traduction

listKeys(project, options)    → Rechercher et parcourir les clés de traduction
createKeys(project, keys)     → Créer des clés avec texte source et traductions
updateKeys(project, updates)  → Mettre à jour les traductions de clés existantes
deleteKeys(project, keys)     → Suppression douce des clés de traduction

Créer des clés avec traductions en un seul appel :

{
  "project": "acme/web-app",
  "keys": [
    {
      "name": "auth.login.title",
      "namespace": "auth",
      "sourceText": "Sign in to your account",
      "translations": {
        "tr": "Hesabınıza giriş yapın",
        "de": "Melden Sie sich bei Ihrem Konto an"
      }
    },
    {
      "name": "auth.login.button",
      "namespace": "auth",
      "sourceText": "Sign in"
    }
  ]
}

Rechercher et filtrer les clés :

{
  "project": "acme/web-app",
  "search": "login",
  "namespaces": ["auth"],
  "missingLanguage": "tr"
}

Mettre à jour les traductions avec un statut :

{
  "project": "acme/web-app",
  "translations": [
    {
      "key": "auth.login.title",
      "language": "tr",
      "text": "Hesabınıza giriş yapın",
      "status": "approved"
    }
  ]
}

Langues

addLanguage(project, language)   → Ajouter une nouvelle langue cible
getProject(project)              → Voir toutes les langues actives et leur progression

Opérations de synchronisation

getSyncs(project)    → Lister les opérations de sync récentes (GitHub, CDN, etc.)
getSync(project, id) → Obtenir les détails d'un job de sync spécifique

Content SDK

Le @better-i18n/sdk est un client TypeScript pour la Content API — notre CMS headless pour les contenus structurés comme les articles de blog, les entrées de changelog et les pages marketing.

Installation

npm install @better-i18n/sdk

Initialisation

import { createClient } from "@better-i18n/sdk";

const client = createClient({
  project: "acme/web-app",
  apiKey: process.env.BETTER_I18N_API_KEY!,
});

Query Builder (style Supabase)

Le SDK fournit un query builder chaînable et immuable :

// Lister les articles de blog publiés
const { data: posts, total, hasMore } = await client
  .from("blog-posts")
  .eq("status", "published")
  .order("publishedAt", { ascending: false })
  .expand("author", "category")
  .limit(10);

// Obtenir une entrée unique en français
const { data: post } = await client
  .from("blog-posts")
  .language("fr")
  .single("getting-started");

console.log(post.title, post.body);

Méthodes disponibles

MéthodeDescription
.eq(field, value)Filtrer par valeur exacte
.search(term)Recherche plein texte sur les titres
.language(code)Définir la langue pour le contenu localisé
.order(field, opts)Trier par publishedAt, createdAt, updatedAt ou title
.limit(n)Entrées par page (1–100)
.page(n)Numéro de page
.expand(...fields)Développer les champs de relation inline
.select(...fields)Choisir les champs à retourner
.single(slug)Récupérer une entrée unique par slug

Endpoints REST (sous le capot)

Le SDK appelle ces endpoints :

MéthodeEndpoint
GET/v1/content/{org}/{project}/models
GET/v1/content/{org}/{project}/models/{model}/entries
GET/v1/content/{org}/{project}/models/{model}/entries/{slug}

Outils CLI

Le @better-i18n/cli s'intègre dans votre workflow de développement :

# Détecter les chaînes en dur dans votre codebase
better-i18n scan

# Comparer les clés locales avec le projet cloud
better-i18n sync

# Intégration CI/CD avec sortie JSON
better-i18n scan --ci --format json
better-i18n sync --format json

Le CLI détecte automatiquement les hooks useTranslations() et getTranslations(), extrait les namespaces et signale les traductions manquantes — en moins de 100 ms pour les codebases typiques.

Intégration pre-commit & CI

# Hook pre-commit
npx @better-i18n/cli scan --staged --ci

# GitHub Actions
- run: npx @better-i18n/cli scan --ci --format json

Serveur MCP pour assistants IA

Le serveur MCP (Model Context Protocol) better-i18n permet aux assistants IA comme Claude, Cursor et Windsurf de gérer les traductions directement depuis votre IDE :

# Installer le serveur MCP
npm install @better-i18n/mcp

Les assistants IA peuvent :

  • Lister et rechercher des clés de traduction
  • Créer de nouvelles clés avec traductions
  • Mettre à jour les traductions existantes
  • Vérifier le statut de synchronisation
  • Ajouter de nouvelles langues

Cela signifie que vous pouvez dire « Ajoute les traductions allemandes pour le namespace auth » et votre assistant IA s'en charge via l'API.

Diffusion via CDN

Les traductions sont servies mondialement via notre CDN avec un schéma d'URL prévisible :

https://cdn.better-i18n.com/{org}/{project}/{locale}/{namespace}.json

Par exemple :

https://cdn.better-i18n.com/acme/web-app/de/common.json

Aucun déploiement nécessaire — les traductions se mettent à jour sur le CDN automatiquement à la publication.

SDKs par plateforme

PackageRôle
@better-i18n/sdkClient Content API (TypeScript)
@better-i18n/cliAnalyse du code & sync (CLI)
@better-i18n/nextIntégration runtime Next.js
@better-i18n/use-intlHooks de traduction React
@better-i18n/mcpServeur MCP pour assistants IA

Tous les packages sont disponibles sur npm et fonctionnent dans tout runtime JavaScript avec fetch() natif.

Ressources associées

En savoir plus

Translation Sync Engine — Traitement Async Fiable pour votre Pipeline de Localisation avec better-i18n

Une pipeline de traduction async fiable qui maintient votre code source, vos traductions et votre CDN parfaitement synchronisés — avec détection des conflits, activity logging et zéro perte de données.

better-i18n Doctor : Surveillance Automatisée de la Qualité des Traductions

Analysez votre code à la recherche de traductions manquantes, de clés orphelines et d'incohérences de placeholders. Obtenez un score de santé de 0 à 100 à chaque commit.

Batch Operations pour la gestion des traductions à l'échelle enterprise avec better-i18n

Mettez à jour, publiez et gérez des milliers de traductions en une seule opération. Les outils batch de better-i18n gèrent des volumes enterprise sans effort.

Developer Experience & Platform UX — better-i18n : conçu pour la vitesse, pensé pour le plaisir

Une developer experience soignée où chaque interaction est intentionnelle — navigation par Command Palette, Inline Editing, Auto-Sync et assistance alimentée par IA intégrée dans chaque flux de travail.

better-i18n Gestion des Médias : Ressources de Contenu pour Projets Localisés

Téléchargez, organisez et livrez des ressources médias aux côtés de vos traductions dans toutes les langues — des photos de profil aux images de contenu, tout stocké dans le repository R2 edge storage ultra-rapide.

Sécurité et Compliance Enterprise pour les Équipes better-i18n

Authentification, chiffrement et conformité de niveau enterprise — protégeant vos workflows de traduction du code à la production.