Polyglot
Vos chaînes de texte d’application et de site en 43 langues, traduites par votre propre modèle et vérifiées chaîne par chaîne.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

Ce qu'il fait
Polyglot prend les chaînes en anglais que votre application et votre site possèdent déjà et les écrit dans jusqu'à 42 langues supplémentaires, dans les fichiers et dossiers attendus par chaque plateforme, à l'aide d'un modèle que vous exécutez vous-même. Chaque chaîne est vérifiée à son retour : si un espace réservé, une balise ou un nom à conserver est perdu, ou si la réponse n'est pas dans l'alphabet de la langue, la chaîne est redemandée, et une chaîne qui échoue encore est exclue et signalée au lieu d'être livrée en l'état.
- Les formats que vous utilisez. Fichiers de messages JSON (i18next, vue-i18n, next-intl, react-intl), ARB Flutter, strings.xml Android, .strings Apple, gettext .po et documents Markdown, écrits dans values-de, de.lproj, app_de.arb ou locale/de.
- Vérification chaîne par chaîne. %1$s, {name}, {{count}}, balises HTML, sauts de ligne, URL et noms à conserver doivent revenir exactement ; le bon alphabet, pas de réponses vides ou hors de contrôle, rien ne doit rester en anglais.
- Formes plurielles réelles. Le russe a une forme singulière, paucal, pluriel et autre, l'arabe six formes, le japonais une seule forme : les pluriels Android et les messages ICU suivent les règles propres à chaque langue.
- Seulement ce qui a changé. Chaque bonne traduction est mémorisée, donc modifier une chaîne en anglais n'envoie qu'une seule chaîne, et non tout le fichier.
- Votre ton et vos termes. Une description du produit, un ton, des noms à ne jamais traduire et un glossaire sont inclus dans chaque requête, et vos commentaires sont transmis comme notes.
- Votre modèle, votre machine. Tout serveur compatible OpenAI : vLLM, llama.cpp, Ollama ou LM Studio, ou une API hébergée si vous le souhaitez. Pas de facturation au mot.
Testé sur un modèle réel
- Un modèle réel, six formats, cinq alphabets : une application d'exemple de 70 chaînes en JSON, ARB Flutter, Android, .strings Apple, gettext et Markdown, vers l'allemand, le russe, le japonais, l'arabe et l'espagnol, avec un modèle ouvert de 27 milliards de paramètres sur notre propre machine : 346 des 350 chaînes ont réussi leurs vérifications à l'entrée, en 7,5 minutes sur un serveur partagé chargé.
- Les quatre qui n'ont pas réussi étaient des erreurs dans nos vérifications, pas dans le modèle : un emprunt allemand, une adresse e-mail et un message pluriel japonais. Nous avons corrigé les vérifications ; la prochaine exécution n'a envoyé que ces quatre chaînes et a écrit les 350 en 45 secondes.
- Formes plurielles correctes du premier coup : singulier, paucal, pluriel et autre pour le russe, six formes pour l'arabe, une seule pour le japonais.
- Les 42 langues : les 22 chaînes web de l'exemple dans toutes les langues que Polyglot connaît, de l'amharique au chinois traditionnel : 924 chaînes sur 924 écrites, en 15 minutes.
- Et ce que les vérifications ne voient pas : en khmer, « Vous êtes hors ligne » est revenu sous la forme « vous êtes en ligne ». C'est un khmer parfait, donc cela est passé. C'est pourquoi la documentation demande un locuteur natif pour les chaînes les plus importantes.
Ce qui est inclus
Le traducteur
Lots envoyés à votre modèle, vérifications, nouvelles tentatives avec le problème identifié, une mémoire de traduction, langues en parallèle.
Six formats
Lecteurs et rédacteurs qui conservent les échappements, les dossiers et les règles de pluriel de chaque plateforme.
Les vérifications
Utilisables seules : vérifiez une traduction que vous avez déjà par rapport à sa source anglaise.
Une application d'exemple
Une petite application dans les six formats avec sa configuration, pour essayer avant la vôtre.
Prérequis
- Linux ou macOS avec Python 3.9 ou plus récent ; rien à installer depuis pip.
- Un serveur de modèle compatible OpenAI avec un modèle d'instructions multilingue ; le nôtre est un modèle ouvert de 27 milliards de paramètres.
À savoir
- Les vérifications détectent ce qui casse une application, pas le sens erroné : faites lire votre fiche produit, votre mur de paiement et vos textes juridiques par un locuteur natif.
- Les entrées de pluriel gettext restent en anglais dans cette version.
- La vitesse dépend de votre modèle.
- Les vérifications sont gratuites et open source : translation-checks sur GitHub. Le Kit ajoute le traducteur, les six formats, les formes de pluriel, la mémoire et un an de mises à jour.
From our field notes
Questions
Quelles langues ?
Arabe, amharique, bulgare, tchèque, allemand, grec, espagnol, persan, finnois, philippin, français, gaélique écossais, hébreu, créole haïtien, hongrois, arménien, indonésien, italien, japonais, khmer, kannada, coréen, macédonien, malais, néerlandais, norvégien, oromo, pendjabi, polonais, portugais (Brésil), roumain, russe, slovaque, slovène, serbe, suédois, thaï, turc, ukrainien, vietnamien et chinois, simplifié et traditionnel, à partir de l'anglais.
A-t-il besoin d'un GPU ?
Polyglot lui-même non ; c'est votre serveur de modèle qui décide. Un petit modèle tourne sur un CPU, lentement ; un GPU fait d'un gros fichier dans de nombreuses langues une affaire de minutes.
Que se passe-t-il pour une chaîne que le modèle se trompe ?
Elle est redemandée seule, avec le problème nommé. Si elle échoue encore, elle est laissée hors du fichier, de sorte que votre application affiche l’anglais pour cette chaîne, et l’exécution la liste avec la raison. Rien de cassé n’est écrit.
Puis-je utiliser une API hébergée à la place ?
Oui : tout service avec un point de terminaison de chat compatible OpenAI. Mettez son URL de base et le nom du modèle dans polyglot.json et sa clé dans un fichier.
Mis à jour: