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.
Configuration en 5 minutes
Ton implémentation complète d'i18n en 5 minutes. Je ne blague pas.
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.
Configurez l'i18n, gardez votre base de code propre et livrez rapidement
Il existe plusieurs PITA avec les solutions d'i18n actuelles. Les douleurs sont si grandes que vous retardez l'i18n autant que possible.
Cela consomme le temps que vous devriez passer à la plage
Configurez le système de clés : au moins 1 heure de temps de développeur senior
D'avant en arrière pour chaque nouvelle clé : 1 minute par clé, x500 clés, x2 langues = 17 heures
Avec i18n-keyless, vous n’avez pas à vous soucier du tout du système d’internationalisation. 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 même pas du système d'i18n. Utilisez votre cerveau pour quelque chose de plus intéressant.
Laissez les traductions à l'IA
Avec le système de clés, vous devez gérer les traductions dans l'application.
Sinon, vos utilisateurs verront someheader.welcome.title dans leur application.
Avec i18n-keyless, vous ne vous souciez même pas du tout du système d’internationalisation. Écrivez simplement de bons titres, concentrez-vous sur le marketing et obtenez des ventes.
Les bases de code sont belles... jusqu'à ce que les clés i18n s'infectent
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 devriez faire une correction parce qu'une phrase n'est pas grammaticalement correcte. Mais vous ne le savez pas parce que vous lisez des clés.
Avec i18n-keyless, vous ne vous souciez même pas du système d’internationalisation. La base de code reste belle.
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 jetons
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 demande de pull request affiche des phrases réelles. Un humain ou un agent de révision peut évaluer la copie sans avoir à creuser pour savoir ce qu'une clé représente.
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 avez déjà — avec sa propre connexion OAuth, sans clé à coller.
Lisez le guide MCPLancez à l'échelle mondiale dès le premier jour
Arrêtez de retarder l'internationalisation (i18n) à cause de sa complexité. Implémentez-la en 5 minutes, pas en jours. Maintenez votre vitesse de développement comme si l'internationalisation n'avait pas été implémentée.
- Implémentation en 5 minutes. Je ne blague pas.
Un simple objet de configuration et vous avez terminé.
- Maintenez la vitesse de développement
Codez comme si l'i18n n'était pas du tout implémenté.
- Expédier vers les marchés mondiaux
Aucune refactorisation nécessaire lors du passage à de nouvelles langues.
- SSR et SEO prêts
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
i18n-sans-clé
C'est évident à configurer
Il suffit de l'objet de configuration le plus simple et vous êtes prêt à conquérir le monde.
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 à l'extérieur 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
Comment fonctionnent les traductions
i18n-keyless est une bibliothèque, combinée à 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, une récupération asynchrone sera effectuée auprès de l'API d'I18nKeyless pour obtenir la traduction via un appel API d'IA.
Cette opération est généralement effectuée en mode développement, pendant que vous codez. Si vous en ratez une, en production, seul le premier utilisateur qui manque de traduction verra un bogue, puis il sera immédiatement disponible pour les utilisateurs du monde entier.
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 t'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 aux 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'évaluation du magasin. Dans la liste, relancez le push.
- Non tarifé par mot
Un traducteur charge 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.
Bac à sable interactif
Voyez comment i18n-keyless fonctionne 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 ça
J’ai toujours repoussé l’internationalisation jusqu’à ce que mon client en ait tellement besoin que j’avais pas le choix. J’aime pas lire du code avec des clés d’internationalisation dedans, et j’aime pas plus maintenir des fichiers JSON que de voir à quel point les fournisseurs de traduction i18n sont chers. Alors j’ai dû créer mon propre système, et J’ADORE ÇA. Toutes mes applications sont maintenant internationalisées par défaut.
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émoignageTarification simple et prévisible
Un prix unique pour votre échelle.
Chaque fonctionnalité dans chaque plan.
Aucuns frais par mot, aucun calcul de jetons.
Jusqu'à 1 000 utilisateurs actifs par mois
Pour les applications indépendantes et les nouveaux produits
Jusqu'à 5 000 utilisateurs actifs par mois
Pour les applications qui trouvent leur public
Jusqu’à 50 000 utilisateurs actifs par mois
Pour les applications avec une traction réelle
Jusqu'à 500 000 utilisateurs actifs par mois
Pour des produits à grande échelle
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.
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 par mois ? 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.
| Solution | Votre facture mensuelle | Vous payez par | Traduction | Langues |
|---|---|---|---|---|
| i18n-keylessnous | €4/ mois | Utilisateurs actifs mensuels Gagner gagner. | IA, illimité, inclus | Tous les 48, dès le premier jour |
| Crowdin | €88/ mois1 | Mots hébergés : vos mots × 48 | Crowdin AI, dans une quote-part | Vous ajoutez chacun |
| Intlayer | €27/ mois2 | Sièges et projets | Génération d'IA, dans une quote-part | Vous ajoutez chacun |
| Lingo.dev | €91/ mois3 | Des frais de base, puis des jetons d'IA | La facture d'IA va directement vers vous | Vous ajoutez chacun |
| Locize | €77/ mois4 | Mots × 48, et téléchargements CDN | Vous apportez votre propre clé d'IA | 10 dans le plus grand plan publié |
| Lokalise | €132/ mois5 | Sièges, puis clés | Les traducteurs facturés à part | Vous ajoutez chacun |
| Phrase | €483/ mois6 | Sièges, puis mots gérés | À partir de 0,06 $ par mot, facturé séparément | Vous ajoutez chacun |
| Smartling | €552/ mois7 | Chaque mot, chaque langue | Traduction par IA à partir de 0,06 $ le mot | Vous ajoutez chacun |
| Tolgee | €49/ mois8 | Clés et sièges | Crédits de traduction automatique | Vous remplissez chacun |
| Weglot | €1,678/ mois9 | Mots × langues, sur une page web | Machine, à l'intérieur d'un quota | 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 $ 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 $ pour chaque million de tokens, répartis sur douze mois.
3 Lingo.dev publie 99 $ par mois plus 2 $ pour chaque million de jetons d'infrastructure, et il vous transfère la facture du modèle. Nous comptons 1,4 jetons par mot et 10 $ pour chaque million de jetons 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 forfaits 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 $ par mois pour 1 million de mots gérés dans le plan logiciel, et 1 245 $ 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 $ ci-dessus pour 3 millions.
7 Smartling ne publie pas de prix de plateforme. Nous ne comptons 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 autre ligne grandit avec votre produit. Le nôtre est un prix fixe.
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 forfaitaire par projet par mois, basé sur les utilisateurs actifs mensuels — 4 $ jusqu'à 1 000, 9 $ jusqu'à 5 000, 29 $ jusqu'à 50 000, 99 $ jusqu'à 500 000 — facturé mensuellement, annulable en tout temps. 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 a un bouton « Exporter JSON » qui télécharge toutes les traductions de votre projet en 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.
Regardez la démonstration
Regardez cette courte vidéo pour voir i18n-keyless en action
Obtenez la clé API pour une application
Toute votre implémentation i18n en 5 minutes. iykyk.