Questions fréquentes

Tout ce que vous devez savoir sur i18n-keyless avant de commencer.

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?

Auto-hébergé : entièrement gratuit, projets illimités, sans abonnement et sans limite d'utilisation — installez l'image Docker, utilisez votre propre clé AI. Ça vous plaît ? Offrez-moi un café ! Hébergé : un prix fixe par projet et par mois, selon 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. Aucun tarif à l'utilisateur, au mot ou à la chaîne dans les deux cas.

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.

Quels frameworks prend-il en charge ?

React, React Native, Vue, Svelte, Vanilla JS, Node.js, Ruby on Rails, Python, Go, Swift et Kotlin. Chaque SDK fonctionne de la même manière : enveloppez votre texte dans un appel de traduction, et l'API renvoie la traduction pour la langue actuelle. Les SDK serveurs sont thread-safe et mettent en cache les traductions en mémoire.

Combien de langues sont prises en charge?

48 langues, y compris les variantes régionales comme zh-Hans / zh-Hant, en / en-GB, fr / fr-CA, pt / pt-BR et es / es-MX. L'arabe, l'hébreu et l'ourdou sont aussi sur la liste, alors les langues de droite à gauche fonctionnent aussi. Ajouter une nouvelle langue à votre projet se fait en un clic dans le tableau de bord.

Est-ce que ça fonctionne avec le rendu côté serveur ?

Oui. Le SDK Node.js utilise AsyncLocalStorage, ce qui permet à vos chargeurs, fonctions head et composants serveur de traduire sans avoir besoin d'un fournisseur React. Côté client, le fournisseur React hydrate à partir du HTML rendu côté serveur. Il existe des guides étape par étape pour Next.js, Nuxt et TanStack Start dans la documentation.

Est-ce que ça ralentit mon application ?

La première fois qu'une nouvelle chaîne est demandée, l'API appelle le modèle d'IA — environ une demi-seconde pour une chaîne d'interface utilisateur courte, plus pour un paragraphe. Toutes les demandes suivantes sont servies depuis la base de données, ce qui est une réponse habituelle du cache. Le SDK met également en cache les traductions localement, de sorte que les utilisateurs revenant ne voient aucun délai réseau. Si dix utilisateurs demandent la même chaîne en même temps, une seule requête à l'IA est effectuée.

Que se passe-t-il si le service tombe en panne ?

Chaque SDK met en cache les traductions localement — dans localStorage sur le web, dans AsyncStorage sur mobile, et en mémoire sur le serveur. Si l'API n'est pas accessible, le SDK fournit les traductions en cache. Vos utilisateurs voient la dernière traduction connue, jamais une chaîne vide. Lorsque l'API revient, le SDK se rafraîchit silencieusement.

Quel fournisseur d'IA utilise-t-il ?

Cinq fournisseurs sont pris en charge : Mistral, OpenAI, Anthropic, Google, et tout point de terminaison compatible OpenAI comme Ollama, Groq ou Together. L'opérateur sélectionne le fournisseur et le modèle à partir du tableau de bord ou de l'environnement. Le défaut sur i18n-keyless.com est Mistral. Les utilisateurs auto-hébergés peuvent exécuter Ollama localement et ne rien envoyer à un tiers.

Puis-je remplacer une traduction par IA ?

Oui. Cliquez sur n'importe quelle cellule dans le tableau de bord, tapez le texte correct et enregistrez. La correction est permanente : l'API n'écrase jamais une valeur définie manuellement. Vous pouvez également remplacer les traductions via l'API ou via le serveur MCP, afin qu'un agent de codage IA puisse corriger une traduction pour vous.

Puis-je migrer depuis i18next ou une autre bibliothèque ?

Oui. Il y a un guide de migration étape par étape pour i18next, react-intl et Lokalise dans la documentation. L'API a un point de terminaison de migration qui importe vos traductions existantes une par une, sans appel à l'IA ni frais. Le serveur MCP a le même outil, donc un agent IA peut faire la migration pour vous.

Y a-t-il un plan gratuit ?

L'édition auto-hébergée est entièrement gratuite avec des projets illimités — installez l'image Docker, utilisez votre propre clé d'IA et conservez vos données sur votre propre serveur. Aucune limite de temps, aucune restriction de fonctionnalités. Le forfait hébergé commence à 4 € par mois par projet si vous préférez ne pas gérer un serveur.

Le code source est-il disponible ?

Le serveur, le tableau de bord et l'image Docker sont publiés sur GitHub sous la licence Elastic 2.0. Vous pouvez lire chaque ligne, exécuter le code et le modifier. Les SDK — React, Vue, Node, Rails et les autres — sont sous licence MIT. La seule restriction : vous ne pouvez pas proposer le logiciel en tant que service hébergé à des tiers.

Un mainteneur : que se passe-t-il si le projet s'arrête ?

Les SDK sont sous licence MIT et restent disponibles sur npm, PyPI, RubyGems et les autres registres. Le serveur est public sous la licence Elastic 2.0 et le protocole entre eux est documenté, donc n'importe qui peut l'exécuter, le forker ou écrire un serveur contre lui. Vos traductions restent dans une seule exportation JSON en tout temps. Si le service hébergé cesse de fonctionner : les applications installées continuent de servir leurs traductions en cache, un nouveau client revient à la langue source, et en pointant le SDK vers votre propre instance avec API_URL, tout est restauré. Ce que vous perdriez, c'est la traduction par IA des nouvelles chaînes sur i18n-keyless.com — pas vos données ni votre application.

Lisez la réponse complète, avec le code
Le contexte n'est-il qu'une clé déguisée ?

Non. Une clé est obligatoire pour chaque chaîne, doit être unique et se trouve dans un espace de noms global que vous entretenez manuellement. Un contexte est facultatif et est attaché aux quelques chaînes dont le sens est ambigu — par exemple, "Close" pour fermer la fenêtre ou "close" au sens de proximité — et il décrit le sens, sans nommer la chaîne. La plupart des chaînes n'en ont pas. Le texte source sert de référence, avec ou sans contexte ; deux textes identiques avec deux contextes différents ne sont que deux lignes.

Lisez la réponse complète, avec le code
Puis-je examiner la copie dans une pull request?

Oui. La chaîne source est dans le code, donc tout changement de formulation est une différence que le réviseur lit dans la demande de tirage, en langage clair plutôt qu'un nom de clé. Ce qui n'est pas dans git, ce sont les traductions dans les autres langues : elles résident dans la base de données, comme c'est le cas pour toute plateforme de traduction, et vous les consultez dans le tableau de bord, où une marque « révisé » par cellule sépare ce qu'une personne a vérifié de ce qu'a écrit l'IA, ou dans l'export JSON.

Lisez la réponse complète, avec le code
Pourquoi pas Tolgee, qui est aussi open source ?

Tolgee est une plateforme de traduction basée sur des clés sous licence Apache 2.0, avec édition en contexte, contexte de capture d'écran et mémoire de traduction ; si vous voulez ces fonctionnalités, ou des traducteurs dans la boucle, c'est un bon choix. i18n-keyless n'a pas de clés, pas de fichiers de localisation, la traduction par IA est activée par défaut avec un remplacement manuel que l'IA ne réécrit jamais, un serveur sous licence Elastic 2.0 avec des SDK MIT, et une image auto-hébergée fonctionnant sur SQLite dans un conteneur. Pour une correction en contexte, prenez une capture d'écran et transmettez-la à un agent IA connecté au serveur MCP : il trouve la chaîne et remplace la traduction. La page de comparaison dans la documentation affiche les prix côte à côte.

Lisez la réponse complète, avec le code
Auto-hébergé ou abonnement : lequel ?

Auto-hébergé : la même image Docker sur votre propre serveur, entièrement gratuite avec des projets illimités, avec votre propre clé IA et vos données chez vous. Ça vous plaît ? Offrez-moi un café ! Abonnement : nous le gérons, les mises à jour sont automatiques, un prix fixe à partir de 4 $ par mois par projet. Prenez l'abonnement si vous préférez ne pas gérer un serveur.

Lisez la réponse complète, avec le code
Comment gérer les valeurs dynamiques comme les noms ou les comptes ?

Utilisez l'option de remplacement. Écrivez la phrase avec un espace réservé — « Bonjour {name}, vous avez {count} éléments » — et transmettez les valeurs au moment du rendu avec replace : { "{name}": userName, "{count}": String(n) }. L'IA voit l'espace réservé et le conserve dans chaque traduction. Le SDK remplace la valeur au moment de l'exécution.

Comment gérer les pluriels ?

Écrivez une forme avec {count} où le nombre s'insère et transmettez le nombre en tant que count. L'API stocke un message pluriel ICU par langue avec exactement les formes dont la langue a besoin — deux en français, quatre en russe, six en arabe — vérifiées via Intl.PluralRules, et le SDK sélectionne la bonne. Ajoutez l'ordinal pour les rangs (1er, 2e). Vous n'écrivez jamais les branches vous-même.

Lisez la réponse complète, avec le code
Comment gérer les genres ?

Passez la valeur dans select — select={{ gender: "féminin" }} — et le modèle écrit une variante par valeur, dans chaque langue, en tenant compte des besoins linguistiques. Les valeurs sont des identifiants d'un ensemble fermé, au maximum 10 par variable et 2 variables par phrase ; un select et un count peuvent être combinés. Les valeurs ouvertes comme un nom restent un remplacement.

Lisez la réponse complète, avec le code
Comment formater les dates, les nombres et les devises ?

Le SDK ne les formate pas, c'est votre runtime qui le fait. Utilisez Intl.DateTimeFormat et Intl.NumberFormat avec la langue actuelle du SDK, puis insérez le résultat dans la phrase avec replace. Une phrase, une traduction, le bon format dans chaque langue.

Lisez la réponse complète, avec le code
Puis-je personnaliser l'invite de traduction ?

Non, et vous n'avez pas besoin de le faire. L'invite lit votre contexte pour chaque clé : c'est là que se définissent le ton, le public et le sens, et c'est ce qui fait qu'un même mot se traduit différemment à deux endroits. Et toute traduction peut être remplacée manuellement dans le tableau de bord ; l'API n'écrase jamais ce que vous avez écrit.

Lisez la réponse complète, avec le code
Est-ce qu'il a un serveur MCP pour les agents de codage IA ?

Oui. L’API est aussi un serveur MCP avec authentification OAuth 2.1. Un agent d’IA peut lister les traductions, traduire des chaînes, remplacer des valeurs, importer des traductions existantes et gérer les membres du projet — les mêmes opérations qu’un humain effectue dans le tableau de bord. Connectez-le depuis Claude Code, Cursor, Windsurf ou tout client compatible MCP.

Puis-je l'utiliser pour les chaînes backend et les courriels?

Oui. Les SDK Node.js, Ruby on Rails, Python et Go s'exécutent sur le serveur. Traduisez un objet d'email, un message d'erreur ou une notification push de la même manière que vous traduisez une chaîne d'interface utilisateur. Les SDK côté serveur mettent en cache les traductions en mémoire et les actualisent en arrière-plan, donc ils n'ajoutent pas de latence à votre requête.

Mon équipe au complet peut-elle travailler sur les traductions ?

Oui. Ajoutez des membres d'équipe à un projet depuis le tableau de bord ou via l'API. Chaque membre peut voir toutes les traductions, remplacer n'importe quelle valeur et ajouter des langues. Les administrateurs créent des projets et gèrent les membres. Il n'y a pas de tarification par siège : ajoutez autant de personnes que vous avez besoin.

Comment puis-je corriger une faute de frappe ?

Le texte source est la clé. Si vous corrigez une faute de frappe dans le texte source, vous obtenez une nouvelle clé avec une nouvelle traduction ; l'ancienne chaîne n'est tout simplement plus demandée, et le tableau de bord la nettoie automatiquement après 30 jours de non-utilisation. Une faute de frappe dans une traduction : modifiez la cellule dans le tableau de bord, et la correction est permanente.

Lisez la réponse complète, avec le code