DX ultime pour l'i18n

Le moins cher et le plus efficace i18n pour le codage agentique

i18n sans clé votre agent de codage l'obtient juste du premier coup : un seul fichier à modifier, aucun JSON local à charger, aucun conflit de fusion, à partir de 4 € par mois.

Installation en 5 minutes

Votre implémentation i18n complète en 5 minutes. Pas de blague.

Système sans clés

Votre cerveau ne devrait pas être impliqué dans de telles tâches sans importance.

Global dès le premier jour

Expédiez vers les marchés internationaux sans effort supplémentaire.

Configurer l'i18n, garder votre code propre et livrer rapidement

Plusieurs PITA existent avec les solutions d'i18n actuelles. Les douleurs sont si grandes que vous retardez l'i18n autant que possible.

Il consomme le temps que vous devriez passer à la plage

Configurer le système de clés : au moins 1 heure de temps de développement senior

Aller-retour pour chaque nouvelle clé : 1 minute par clé, x500 clés, x2 langues = 17 heures

Avec i18n-keyless, vous ne vous souciez pas du système i18n. Vous pouvez aller à la plage et commander un mojito.

Aujourd'hui, la plupart des systèmes utilisent des clés pour traduire le texte

C'est douloureux à générer. C'est douloureux à maintenir.

Lorsque vous voyez un texte dans l'application, et que vous souhaitez le mettre à jour, vous devez trouver la clé correspondante.

Avec i18n-keyless, vous ne vous souciez pas du système i18n. Utilisez votre cerveau pour quelque chose de plus intéressant.

Laisser les traductions à l'IA

Avec le système de clé, vous devez gérer les traductions dans l'application.

Sinon, vos utilisateurs verront someheader.welcome.title dans leur application.

Avec i18n-keyless, vous n'avez pas à vous soucier du système i18n. Il suffit d'écrire de bons titres, concentrez-vous sur le marketing, obtenez des ventes.

Les bases de code sont belles... jusqu'à l'infection des clés i18n

Avec le système de clés, lorsque vous lisez le code et le contenu, vous devez lire les clés, pas le langage naturel.

Parfois, vous devez faire une correction parce qu'une phrase n'est pas grammaticalement correcte. Mais vous ne le savez pas parce que vous lisez les clés.

Avec i18n-keyless, vous ne vous souciez pas du tout du système i18n. La base de code reste belle.

Ajoutez l'i18n dès le premier jour sans aucun impact sur votre rythme de développement
Conçu pour les agents de codage

Serveur MCP pour couvrir tous vos besoins en internationalisation

Six autres raisons pour lesquelles le système est si optimisé pour le codage agentique.

Aucun nom à inventer

Une clé est une décision de nommage sans bonne réponse. Deux agents écrivent login.submit et auth.button.send pour le même bouton. Sans clés, il n'y a pas de décision à prendre.

Un seul fichier à éditer, pas vingt

Une modification avec clé affecte le composant et chaque fichier JSON de localisation, et les agents oublient les fichiers. Ici, une modification de copie est une édition d'un seul fichier.

Zéro conflit de fusion dans les flottes d'agents

Cinq agents sur cinq branches modifient tous en.json : un conflit garanti. Il n'y a pas de fichier partagé, donc les worktrees et les agents en arrière-plan ne se heurtent jamais.

Bon marché en tokens

Pour réutiliser une clé, un agent doit charger les fichiers de locale dans le contexte à chaque édition. Les chargements sans clé ne font rien : le texte est directement dans le composant.

Différences lisibles

La pull request affiche des phrases réelles. Un humain ou un agent de révision peut juger la copie sans avoir à chercher ce que représente une clé.

Une règle dans votre CLAUDE.md

Chaque règle d'internationalisation que vous écrivez est une règle que l'agent peut enfreindre. Celle-ci n'a besoin que d'une seule ligne — et la solution de repli est le texte réel, donc une erreur ne peut pas afficher a.b.c à l'écran.

La seule règle d'i18n dont votre agent a besoin

# CLAUDE.md
Write the UI copy in English and wrap it in <T>…</T> from i18n-keyless-react.
That is the whole i18n setup.

Votre agent peut l'utiliser, pas seulement l'écrire

Via le serveur MCP, l'agent liste les traductions manquantes, en lit une, remplace une mauvaise ou importe la copie que vous possédez déjà — avec sa propre connexion OAuth, sans clé à coller.

Lisez le guide MCP
Parfait pour les MVPs

Lancez à l'échelle mondiale dès le premier jour

Arrêtez de retarder l'i18n à cause de la complexité. Implémentez en 5 minutes, pas en jours. Maintenez votre vitesse de développement comme si l'i18n n'était pas implémenté.

  • Implémentation en 5 minutes. Pas de blague.

    Un simple objet de configuration et vous avez terminé.

  • Maintenir la vitesse de développement

    Codez comme si l'i18n n'était pas du tout implémenté.

  • Livraison sur les marchés mondiaux

    Aucune refactorisation nécessaire lors du passage à de nouvelles langues.

  • Prêt pour SSR & SEO

    Fonctionne avec Next.js, Remix, TanStack Start et Astro. Rendu côté serveur dans n'importe quelle langue pour les moteurs de recherche — même configuration en 5 minutes.

Traditionnel i18n

Configuration du système de clés (1 heure)
Créer des fichiers de traduction (2 heures)
Refactoriser les composants (4 heures)
Tester toutes les langues (2 heures)
Corriger les problèmes de mise en page (3 heures)
12+ heures de travail

i18n-keyless

Ajouter un package (1 min)
Configurer avec une clé API (2 min)
Envelopper les composants de texte (2 min)
5 minutes de travail
Comment ça marche

C'est un jeu d'enfant à configurer

Un simple objet de configuration et vous êtes prêt à partir à l'international.
Et même plus, votre agent le configurera pour vous.

1. Configuration de base

import * as I18nKeyless from "i18n-keyless-react";

I18nKeyless.init({
  API_KEY: "YOUR_API_KEY",
  storage: window.localStorage,
  languages: {
    primary: "en",
    supported: ["en", "fr"],
  },
});

2. Utilisation du composant (React ici ; la même chose dans Vue, Angular, Flutter, Swift et Kotlin)

import { I18nKeylessText } from "i18n-keyless-react";
// import { T } from "i18n-keyless-react"; // also works

// Just write in your primary language
<I18nKeylessText>
  Welcome to our website
</I18nKeylessText>

3. Utilisation côté serveur (ici Node.js ; le même appel dans Laravel, Rails, Python et Go)

import { awaitForTranslationOrFallbackToOriginal, type Lang } from 'i18n-keyless-node';

const title = await awaitForTranslationOrFallbackToOriginal('Come see my app!', user.lang as Lang);
const body = await awaitForTranslationOrFallbackToOriginal('So many new stuff!', user.lang as Lang);

await sendExpoPushNotification({ user, title, body });

4. Pour le texte en dehors des composants

import { getTranslation } from "i18n-keyless-react";

export default function Navigation() {
  return (
    <HomeTabs.Navigator>
      <HomeTabs.Screen
        options={{ tabBarLabel: getTranslation("Welcome") }}
        name="WELCOME"
      />
    </HomeTabs.Navigator>
  );
}

5. Choisissez votre SDK : une seule ligne d'installation, la même API partout

  • React, React Native, Expo, Next.js, Remix, TanStack Start, Astronpm install i18n-keyless-react
  • Vue, Nuxtnpm install i18n-keyless-vue
  • Angularnpm install i18n-keyless-angular
  • Plain HTML, Svelte, Alpine, htmx, one script tagnpm install i18n-keyless-browser
  • Node.jsnpm install i18n-keyless-node
  • Laravel, PHPcomposer require i18n-keyless/laravel
  • Rails, Rubybundle add i18n-keyless-rails
  • Flutter, Dartflutter pub add i18n_keyless
  • Swift, iOS, macOS, VaporSwiftPM: arnaudambro/i18n-keyless-swift
  • Kotlin, Android, Ktorio.github.arnaudambro:i18n-keyless-kotlin
  • Python, Django, Flask, FastAPIpip install i18n-keyless
  • Gogo get github.com/arnaudambro/i18n-keyless/ports/go/v3

Configuration rapide pour chacun des douze SDK

Comment fonctionnent les traductions

i18n-keyless est une bibliothèque, combinée avec un service API, qui vous permet de traduire votre texte sans avoir besoin d'utiliser des clés.

Si la traduction n'est pas trouvée, il y aura une récupération asynchrone vers l'API de I18nKeyless pour obtenir la traduction par un appel d'API IA.

Cette opération est généralement effectuée en mode développement, pendant que vous codez. Si vous en avez manqué une, en production, seul le premier utilisateur manquant la traduction verra un bug, puis elle sera disponible instantanément pour les utilisateurs du monde entier.

App Store & Google Play

Votre fiche de magasin dans toutes les langues, à chaque sortie

Chaque mise à jour signifie de nouvelles notes de version, une description et des mots-clés — pour chaque langue, sur les deux boutiques. C'est ce qui vous empêche d'ajouter des langues. Pas l'application.

  • Notes de version pour chaque langue, en un seul appel

    Écrivez la mise à jour une fois. awaitForTranslation la renvoie dans chaque langue dans laquelle vous vendez, et la configuration de votre boutique l'alimente vers EAS ou fastlane.

  • 48 langues, mappées sur les emplacements de l'App Store

    pt-BR et pt-PT sont deux listes ; en-GB, en-AU et en-CA en sont trois. toAppStoreLocale place chaque traduction au bon endroit.

  • Corrigez une mauvaise traduction sans version

    Dans l'application, un override dans le tableau de bord est actif à la fois — pas de build de correctif à chaud, pas d'avis de magasin. Dans la liste, relancez le push.

  • Non tarifé par mot

    Un traducteur facture environ 0,10 € par mot. 2 000 chaînes multipliées par 10 langues représentent un budget qu'un développeur solo ne peut pas se permettre. Ici, les mots ne sont pas comptés.

La recette complète pour une application Expo

// store.config.js — EAS Metadata awaits an async config
const { init, awaitForTranslation, toAppStoreLocale } = require("i18n-keyless-node");

const LANGS = ["en", "fr", "de", "ja", "pt-BR"];
const DESCRIPTION = "Bibi translates your app while you sleep…";

module.exports = async () => {
  init({ API_KEY: process.env.I18N_KEYLESS_KEY, languages: { primary: "en", supported: LANGS } });
  const info = {};
  for (const lang of LANGS) {
    info[toAppStoreLocale(lang)] = {
      title: await awaitForTranslation("Bibi", lang, { context: "App Store app name, 30 characters max" }),
      subtitle: await awaitForTranslation("Keyless i18n", lang, { context: "App Store subtitle, 30 characters max" }),
      description: await awaitForTranslation(DESCRIPTION, lang, { context: "App Store description" }),
    };
  }
  return { configVersion: 0, apple: { info } };
};

Le même appel écrit les fichiers de métadonnées fastlane pour Google Play. Les majuscules sont indicatives : fixez la limite dans le contexte et vérifiez la longueur avant de pousser.

Essayez vous-même

Bac à sable interactif

Voir comment fonctionne i18n-keyless en temps réel

Ouvrez un projet StackBlitz en direct et modifiable pour voir les traductions se résoudre au fur et à mesure que vous tapez.

Pourquoi j'ai construit cela

J’ai toujours repoussé l’internationalisation jusqu’à ce que mon client en ait tellement besoin que je n’avais pas le choix. Je déteste lire du code avec des clés d’internationalisation à l’intérieur, et je déteste autant maintenir des fichiers JSON que de constater à quel point les prestataires de traduction i18n sont chers. Alors j’ai dû créer le mien, et J’ADORE. Tous mes apps sont désormais internationalisés par défaut.

AA

Arnaud Ambroselli

Fondateur de i18n-keyless

Vous voulez ajouter le vôtre ?

Un témoignage contre un abonnement gratuit. Demandez le vôtre !

Envoyez mon témoignage
Tarification

Tarification simple et prévisible

Un prix unique pour votre échelle.
Chaque fonctionnalité dans chaque plan.
Aucun frais par mot, aucun calcul de jetons.

Entrée
4/ mois

Jusqu'à 1 000 utilisateurs actifs par mois

Pour les applications indépendantes et les nouveaux produits

Indie
9/ mois

Jusqu'à 5 000 utilisateurs actifs par mois

Pour les applications qui trouvent leur public

Croissance
29/ mois

Jusqu'à 50 000 utilisateurs actifs par mois

Pour les applications avec une traction réelle

Échelle
99/ mois

Jusqu'à 500 000 utilisateurs actifs mensuels

Pour des produits à grande échelle

Auto-hébergé

Ou possédez-le : gratuit à installer, 30 € une seule fois pour des projets illimités.

La même API, le tableau de bord et le serveur MCP, dans un seul conteneur Docker avec SQLite, sur votre serveur, avec votre propre clé Mistral. Un projet est gratuit à vie ; une licence à vie à 30 € déverrouille des projets illimités. Pas d'abonnement, pas de limite d'utilisation, des mises à jour à vie.

Achetez la licence à vie

Chaque plan comprend :

Toutes les 48 langues. Le monde entier, dès le premier jour

Traductions illimitées, y compris l'IA. Les nouvelles chaînes se traduisent automatiquement en production

Traduction en direct de contenu généré par les utilisateurs (UGC)

Mettez à niveau, rétrogradez ou annulez à tout moment

Plus de 500 000 utilisateurs actifs mensuels ? Contactez-nous

Ce que coûte la même application ailleurs

Déplacez les deux curseurs. La facture est pour votre application dans les 48 langues.

1,000
2,500
SolutionVotre facture mensuelleVous payez parTraductionLangues
i18n-keylessnous€4/ moisUtilisateurs actifs mensuels
Gagner gagner.
IA, illimité, inclusTous les 48, dès le premier jour
Crowdin€88/ mois1Mots hébergés : vos mots × 48
Crowdin AI, dans une quote-partVous ajoutez chacun
Intlayer€27/ mois2Sièges et projets
Génération d'IA, dans une quote-partVous ajoutez chacun
Lingo.dev€91/ mois3Des frais de base, puis des jetons IA
La facture d'IA va directement vers vousVous ajoutez chacun
Locize€77/ mois4Mots × 48, et téléchargements CDN
Vous apportez votre propre clé d'IA10 dans le plus grand plan publié
Lokalise€132/ mois5Sièges, puis clés
Les traducteurs facturés à partVous ajoutez chacun
Phrase€483/ mois6Sièges, puis mots gérés
À partir de 0,06 $ par mot, facturé séparémentVous ajoutez chacun
Smartling€552/ mois7Chaque mot, chaque langue
Traduction par IA à partir de $0,06 par motVous ajoutez chacun
Tolgee€49/ mois8Clés et sièges
Crédits de traduction automatiqueVous remplissez chacun
Weglot€1,678/ mois9Mots × langues, sur une page web
Machine, dans une quotité20 sur le plus grand plan publié

Prix publics de la liste, lus en août 2026. Les fournisseurs les modifient, alors vérifiez s'il vous plaît. Chaque facture est notre lecture de l'échelle publiée, et nous choisissons toujours le forfait payant le moins cher qui maintient votre application. Lorsqu'un fournisseur facture la première traduction une fois, nous l'étalons sur douze mois.

1 Crowdin publie 44 € par mois pour 60 000 mots hébergés dans le plan Pro, facturé annuellement. Un mot hébergé est un mot dans une langue cible. Nous répétons ce prix de bloc au-delà de 60 000.

2 Intlayer est open source. Les 29 dollars par mois couvrent le CMS et le quota de génération d'IA. Au-delà du quota, vous pouvez utiliser votre propre clé d'IA, donc nous ajoutons la facture du modèle à 10 dollars pour chaque million de tokens, répartis sur douze mois.

3 Lingo.dev publie 99 $ par mois plus 2 $ pour chaque million de tokens d'infrastructure, et il vous transfère la facture du modèle. Nous comptons 1,4 tokens par mot et 10 $ pour chaque million de tokens de coût du modèle. Les frais de base représentent la majorité de ce montant.

4 Locize publie 7 €, 19 € et 49 € par mois pour 15 000, 30 000 et 60 000 mots, avec 1, 3 et 5 millions de téléchargements CDN. Au-delà, elle publie 0,50 € pour chaque 1 000 mots supplémentaires et 5 $ pour chaque million de téléchargements supplémentaires. Nous comptons trente téléchargements par utilisateur chaque mois. Aucun plan publié ne couvre 48 langues.

5 Lokalise publie $144, $375 et $999 par mois, sans limite de clés. Nous supposons que les trois plans contiennent 5 000, 20 000 et 100 000 clés, et douze mots par clé. La traduction humaine est facturée séparément.

6 La phrase publie 525 dollars par mois pour 1 million de mots gérés dans le plan logiciel, et 1 245 dollars pour 3 millions. Nous comptons un mot géré pour chaque mot dans chaque langue, et nous répétons le bloc de 1 245 dollars ci-dessus pour 3 millions.

7 Smartling ne publie pas de prix de plateforme. Nous ne comptabilisons que la traduction par IA, au tarif publié de 0,06 $ par mot, réparti sur douze mois. Votre facture réelle est plus élevée.

8 Tolgee facture les clés, pas les mots, donc nous comptons douze mots pour chaque clé. Elle publie €49 pour 2 000 clés, €179 pour 5 000 et €499 pour 20 000, facturés annuellement. Au-delà, nous répétons le bloc de €499. Les crédits de traduction automatique sont comptabilisés séparément.

9 Weglot traduit une page web, et non une application. Son forfait le plus cher publié est à 699 € par mois pour 20 langues, donc nous adaptons ce prix à 48 langues. Vos mots s’intègrent dans chacun de ces forfaits.

Chaque ligne alternée grandit avec votre produit. Le nôtre est un prix fixe.

Avant que tu ne demandes

Questions fréquentes

Dois-je gérer les fichiers de traduction ?

Non. Il n'y a pas de fichiers JSON, pas d'étape d'extraction de clés, ni de plugin de compilation. Vous écrivez vos phrases dans votre langue source, le SDK les envoie à l'API lors de la première requête, l'API les traduit avec l'IA, et chaque requête ultérieure est servie depuis le cache. Votre code est la seule source de vérité.

Que se passe-t-il lorsque je modifie le texte source ?

Le texte source est la clé. Si vous le modifiez, vous obtiendrez une nouvelle clé avec une nouvelle traduction par IA. L'ancienne clé n'est tout simplement plus demandée, et le tableau de bord la nettoie après 30 jours de non-utilisation. Corriger une faute de frappe fonctionne de la même manière : corrigez-la dans le code, déployez, et le nouveau texte sera traduit dès la première requête.

Combien ça coûte?

Hébergé : un tarif unique par projet et par mois, selon le nombre d'utilisateurs actifs mensuels — 4 € jusqu'à 1 000, 9 € jusqu'à 5 000, 29 € jusqu'à 50 000, 99 € jusqu'à 500 000 — facturé mensuellement, annulable à tout moment. Auto-hébergé : gratuit à installer, un projet gratuit à vie, 30 € en une fois pour des projets illimités, sans abonnement ni limite d'utilisation. Aucun tarif par siège, par mot ou par chaîne dans aucune des options.

Puis-je exporter mes traductions ?

Oui. Le tableau de bord dispose d'un bouton "Exporter JSON" qui télécharge toutes les traductions de votre projet sous forme d'un seul fichier JSON. L'exportation inclut toutes les lignes, pas seulement celles utilisées au cours des 30 derniers jours, donc c'est une sauvegarde complète. Il n'y a pas de verrouillage : vos données sont toujours à un clic.

Essayez vous-même

Regardez la démo

Regardez cette courte vidéo pour voir i18n-keyless en action

Obtenez une clé API pour une application

Votre implémentation complète de l'i18n en 5 minutes. iykyk.

Vous définissez votre mot de passe après le paiement, à partir du lien que nous vous envoyons.