Base de connaissances
Réponses aux questions fréquentes sur la localisation d’applications, de documentation et de contenu avec General Translation.
Internationalisation
Mise en place de l’i18n dans une base de code : bibliothèques, frameworks et composants.
- Comment traduire une application Flask ou FastAPI ?Marquez les chaînes visibles par l’utilisateur, déterminez le paramètre régional de chaque requête (généralement à partir de l’en-tête Accept-Language), puis chargez les traductions correspondantes. Les applications Flask s’appuient généralement sur Flask-Babel et des catalogues gettext, tandis que les applications FastAPI intègrent Babel dans un middleware. La CLI de General Translation remplit ces catalogues, et ses SDK expérimentaux gt-flask et gt-fastapi traduisent les chaînes t() intégrées au code, sans catalogue.Vidéo
- Comment localiser une application Android avec strings.xml ?Placez toutes les chaînes de caractères par défaut dans res/values/strings.xml, ajoutez un strings.xml pour chaque langue dans un dossier qualifié par paramètre régional, comme values-es ou values-b+zh+Hant+TW, et lisez le texte avec stringResource ou getString. Traduisez à la main, dans la Play Console ou avec la CLI de General Translation, qui génère chaque dossier values et reconstruit les formes plurielles pour chaque langue cible.Vidéo
- Comment ajouter l’i18n à une application Next.js utilisant le Pages Router ?Ajoutez un bloc i18n contenant locales et defaultLocale à next.config.js, et Next.js sert /es et /fr, redirige les visiteurs selon la langue de leur navigateur et transmet le paramètre régional à getStaticProps et getServerSideProps. Une bibliothèque se charge d’afficher les messages ; gt-next de General Translation génère en plus les traductions à partir du texte intégré dans le JSX.Vidéo
- Comment ajouter l’i18n à TanStack Start ?TanStack Start ne propose pas d’i18n intégrée. Il faut donc ajouter une bibliothèque qui résout le paramètre régional à chaque requête serveur, généralement à partir d’un préfixe d’URL ou d’un cookie, et qui charge les messages avant l’affichage. Paraglide JS, react-i18next et Lingui affichent les traductions que vous leur fournissez ; le package expérimental gt-tanstack-start de General Translation les génère en plus à partir du texte intégré dans le JSX.Vidéo
- Comment traduire une application Vue ?Traduire une application Vue consiste à faire passer chaque chaîne de caractères des modèles par une recherche dans la langue active, puis à la traduire dans chaque langue cible. Le plugin gt-vue de General Translation traduit le contenu encapsulé dans le composant <T>, et npx gt translate génère un catalogue par langue cible.Vidéo
- Comment traduire une application React Native ?Marquez le texte dans vos composants, générez un fichier de traduction pour chaque langue, ajoutez des polyfills Intl et chargez le fichier correspondant à la langue de l’appareil. Avec gt-react-native, la bibliothèque expérimentale de General Translation, vous encapsulez le texte dans <T>, un plugin Babel ajoute les polyfills et npx gt translate génère les fichiers.Vidéo
- Comment traduire une application React ?Traduire une application React consiste à internationaliser ses composants pour qu’ils s’affichent dans la langue de l’utilisateur, puis à traduire chaque chaîne de caractères dans chacune des langues prises en charge. gt-react de General Translation traduit le JSX sur place dans le composant <T>, et npx gt translate génère un fichier par langue.Vidéo
- Comment traduire une application Node.js ?Détectez la langue de chaque requête, généralement à partir de son en-tête Accept-Language, et renvoyez toutes les chaînes dans cette langue. Le package gt-node de General Translation lie le paramètre régional à chaque requête avec withGT et traduit les chaînes avec getGT, à partir des traductions générées par npx gt translate --publish avant le déploiement.Vidéo
- Comment traduire des chaînes en dehors du JSX ?Faites passer chaque chaîne qui n’est pas un enfant JSX, comme un espace réservé ou une constante définie au niveau du module, par une fonction de traduction à l’endroit où elle est affichée. Le hook useGT de General Translation renvoie cette fonction, et msg, combiné à useMessages, traduit les constantes définies en dehors d’un composant.Vidéo
- Comment internationaliser une application avec Cursor ou Claude Code ?Commencez par le prompt Setup for Agents de General Translation dans Cursor ou Claude Code, choisissez une fonctionnalité et des langues cibles, puis laissez l’agent implémenter et vérifier le résultat. La connexion via le navigateur, la documentation lisible par machine et les outils MCP font le lien entre la configuration initiale, la traduction et la relecture. Utilisez Locadex pour automatiser la localisation continue au moyen de pull requests.Vidéo
- Comment ajouter l’i18n à une application Next.js App Router ?Commencez par gt init pour configurer General Translation dans un projet App Router pris en charge, puis balisez le contenu source, générez les traductions et vérifiez le changement de langue. gt-next conserve les textes dans le JSX avec leur contexte de traduction ; la CLI, l’éditeur du tableau de bord et Locadex prennent en charge la génération, la relecture et les mises à jour continues. Ce guide présente également la configuration initiale explicite avec des fichiers locaux.Vidéo
- Qu’est-ce que la pseudo-localisation ?La pseudo-localisation est un test qui remplace votre texte source par une version modifiée, accentuée, allongée d’environ 40 % et encadrée de crochets, afin de faire apparaître les chaînes codées en dur, les troncatures, les polices défaillantes et les phrases concaténées avant même qu’une traduction n’existe. Android propose à cet effet les pseudo-paramètres régionaux en-XA et ar-XB.Vidéo
- Internationalisation et localisation (i18n et l10n)L’internationalisation (i18n) désigne le travail de code et de conception qui permet à un même produit de prendre en charge de nombreux paramètres régionaux, par exemple le formatage des dates avec Intl ou la prise en charge du texte right-to-left. La localisation (l10n) l’adapte à un paramètre régional donné, ce qui englobe la traduction, mais aussi la devise, les formats de date, les unités, le ton et les aspects juridiques.Vidéo
- Comment trouver les chaînes codées en dur qui ne sont pas traduites ?Exécutez dans votre CI un linter qui signale les littéraux de chaîne de caractères visibles par l’utilisateur, comme la règle no-literal-string d’eslint-plugin-i18next pour JSX, la vérification HardcodedText d’Android Lint ou le linter HardCodedString d’erb_lint pour Rails. Parcourez ensuite l’application avec un pseudo-paramètre régional pour repérer le texte que les vérifications statiques ne peuvent pas détecter.Vidéo
- Comment rendre un site web multilingue ?Choisissez où stocker les traductions (dans un proxy, un plugin de CMS, un constructeur de sites ou votre propre code), puis attribuez à chaque langue sa propre URL, comme le recommande Google. Traduisez les pages entières ainsi que les titres et les méta-descriptions, reliez les versions avec hreflang et proposez un sélecteur de langue plutôt que de rediriger automatiquement les visiteurs.Vidéo
- Comment nommer les clés de traduction i18n ?Nommez les clés selon l’endroit où le texte apparaît et ce qu’il signifie, par exemple checkout.summary.title, et non selon sa formulation anglaise. Attribuez une clé distincte à chaque usage, même si le texte anglais est identique : en allemand, le bouton Open se traduit par Öffnen, alors que l’état Open se traduit par Offen.Vidéo
- Comment localiser une app iOS avec les String Catalogs ?Ajoutez vos langues dans Xcode, rédigez le texte destiné aux utilisateurs avec des API localisables comme Text de SwiftUI et String(localized:), puis lancez une compilation pour que Xcode rassemble ces chaînes de caractères dans un String Catalog (.xcstrings). Traduisez dans Xcode, via XLIFF, ou avec la CLI de General Translation si vos catalogues doivent être mis à jour à chaque livraison et partager la même terminologie que votre site web et votre app Android.Vidéo
- Comment détecter la langue du navigateur d’un utilisateur ?Lisez la liste ordonnée des langues du navigateur (navigator.languages en JavaScript ou l’en-tête Accept-Language côté serveur), triée par valeur q, puis mettez-la en correspondance avec vos paramètres régionaux pris en charge, en prévoyant une solution de secours. Safari et la navigation privée de Chrome n’indiquent qu’une seule langue, et la géolocalisation par IP révèle l’emplacement, pas la langue.Vidéo
- Bonnes pratiques pour le sélecteur de langue : UX, SEO et accessibilitéAffichez chaque langue sous son propre nom, comme Deutsch ou 日本語, et bannissez les drapeaux, qui représentent des pays. Faites pointer chaque option vers la même page dans cette langue grâce à un lien explorable par les robots, mémorisez le choix dans un cookie et ne redirigez jamais automatiquement une URL localisée.Vidéo
- Liste de contrôle des tests de localisation pour les applications multilinguesTestez neuf points dans chaque paramètre régional pris en charge sur une compilation de Production : les parcours complets, y compris les états d’erreur et les e-mails, le changement de langue, les formes plurielles, la devise et les fuseaux horaires, le foisonnement du texte, la mise en page right-to-left, l’accessibilité, la distribution des traductions et des URL de langue explorables. Associez à chaque vérification un critère de réussite explicite.Vidéo
- General Translation vs i18next, react-intl et next-intl : quelle bibliothèque d’i18n choisir ?Les bibliothèques open source comme i18next, react-intl et next-intl ne traduisent rien. Elles affichent les traductions que vous leur fournissez dans un fichier de catalogue par langue, rédigées par vous, vos traducteurs ou un service tiers. Les bibliothèques de General Translation sont elles aussi open source et remplissent le même rôle, mais General Translation se charge en plus de la traduction, en s’appuyant sur votre code comme contexte.Vidéo
- General Translation ou vue-i18n : lequel choisir ?General Translation permet aux équipes Vue d’écrire le texte source directement dans les modèles et de générer les traductions avec la CLI. Son plugin gt-vue affiche ce contenu avec une gestion des formes plurielles et un formatage des nombres adaptés au paramètre régional. Optez pour cette solution si vous ne voulez plus maintenir de fichiers sources à clés ; vue-i18n reste pertinent pour les équipes qui utilisent le module i18n de Nuxt et un workflow de catalogue bien établi.Vidéo
- General Translation ou Symfony Translation : lequel choisir ?Symfony Translation affiche les messages en PHP et en Twig. General Translation traduit ses catalogues YAML en CI, les maintient à jour à mesure que votre source évolue et offre aux relecteurs un tableau de bord pour les modifier. Conservez le rendu de Symfony et intégrez la traduction automatisée à votre workflow de livraison.Vidéo
- General Translation ou Rails I18n : avez-vous besoin des deux ?Rails I18n recherche les messages et formate les dates et les nombres. General Translation produit les traductions, les tient à jour au fil de l’évolution de votre texte anglais et offre à votre équipe un tableau de bord pour la relecture. Utilisez les deux pour livrer des catalogues Rails traduits à chaque version.Vidéo
- General Translation ou Paraglide JS : lequel choisir ?Choisissez General Translation pour garder vos textes intégrés au code et générer des traductions qui tiennent compte de la structure de vos composants React, d’une terminologie partagée et d’une relecture dans le tableau de bord. Choisissez Paraglide JS pour des fonctions de messages compilées et typées, avec un tree-shaking message par message. Paraglide affiche vos catalogues ; General Translation relie vos textes source à la génération des traductions et à leurs mises à jour au fil de l’eau.Vidéo
- General Translation ou nestjs-i18n : lequel choisir ?nestjs-i18n résout la langue de chaque requête dans une application NestJS et affiche les messages à partir de catalogues JSON ou YAML propres à chaque langue, mais il ne traduit rien. La CLI de General Translation traduit ces catalogues, et sa bibliothèque gt-node traduit le contenu qui n’existe qu’à l’exécution : vous pouvez donc conserver nestjs-i18n et lui adjoindre General Translation.Vidéo
- General Translation ou Mobility : lequel choisir ?Mobility stocke les attributs traduits de vos modèles dans votre base de données. General Translation produit ces traductions via son API, en s’appuyant sur votre glossaire et vos instructions personnalisées. Utilisez les deux pour traduire vos fiches produits, articles et autres contenus de base de données sans renoncer à vos modèles Rails.Vidéo
- General Translation ou Lingui : lequel choisir ?Choisissez General Translation pour conserver vos textes intégrés au code comme avec Lingui, tout en générant les traductions à partir de la structure de votre JSX comme contexte. Lingui extrait les messages intégrés dans des catalogues que vos traducteurs ou un service connecté se chargent de traduire. La CLI de General Translation met à jour les traductions au fil de l’évolution de votre code, et votre équipe les relit dans le tableau de bord.Vidéo
- General Translation ou le framework de traduction de Django : avez-vous besoin des deux ?Utilisez conjointement le framework de traduction de Django et General Translation. Django gère l’extraction des messages, la sélection de la langue et l’affichage. General Translation remplit ses fichiers PO, formes du pluriel comprises, avec la terminologie de votre produit et une relecture dans le tableau de bord. Vos modèles et vos motifs d’URL restent inchangés, tandis que les traductions évoluent au rythme de votre code.Vidéo
- General Translation ou Intlayer : lequel choisir ?Intlayer conserve le contenu de chaque composant dans un fichier de déclaration typé placé juste à côté, où toutes les langues sont écrites côte à côte, et peut compléter les langues manquantes grâce à un fournisseur d’IA que vous configurez. General Translation conserve les textes directement intégrés dans vos composants, dans une seule langue, et génère les autres langues en s’appuyant sur le contexte de votre code.Vidéo
- General Translation ou GNU gettext : avez-vous besoin des deux ?Conservez GNU gettext pour l’extraction et l’affichage, et ajoutez General Translation pour générer et maintenir les fichiers PO. General Translation tient compte des notes aux traducteurs et du contexte des messages lors de la génération, applique une terminologie partagée et met à la disposition des relecteurs un éditeur dans le tableau de bord. Vos appels gettext existants et vos catalogues compilés restent en place.Vidéo
- General Translation ou Babel et Flask-Babel : lequel choisir ?Babel formate les dates, les nombres et les devises pour n’importe quel paramètre régional et gère les catalogues gettext, tandis que Flask-Babel l’intègre à Flask, mais aucun des deux ne traduit vos chaînes. La CLI de General Translation remplit les fichiers PO de Babel pour chaque langue, formes du pluriel comprises : vous pouvez ainsi conserver Flask-Babel et ne plus traduire vos catalogues à la main.Vidéo
- Faut-il développer votre propre i18n ou utiliser General Translation ?Une i18n faite maison (un dictionnaire par langue et un petit utilitaire t()) suffit pour une ou deux langues et un peu de texte. À mesure que l’application grandit, vous finissez par réécrire les règles de pluriel, les solutions de repli et la synchronisation des fichiers, et il vous reste à produire les traductions. Les bibliothèques open source de General Translation gèrent l’affichage, et General Translation génère et met à jour les traductions à partir de votre code.Vidéo
- Alternatives à react-intl : General Translation ou react-intlGeneral Translation permet aux équipes React de conserver la syntaxe de messages ICU tout en y ajoutant la génération de traductions, une terminologie partagée et la relecture dans le tableau de bord. react-intl fournit le formatage et l’outillage de catalogues FormatJS ; General Translation produit en plus les traductions.Vidéo
- Alternatives à i18next : General Translation ou i18nextChoisissez General Translation pour conserver vos textes directement dans vos composants React et générer des traductions en tirant parti de leur structure JSX et du contexte de votre produit. Vous pouvez aussi conserver i18next et utiliser General Translation pour traduire vos catalogues existants. i18next assure le rendu des messages et la sélection des formes plurielles ; la génération des traductions relève d’un service distinct.Vidéo
- Peut-on faire de l’i18n sans fichiers de traduction ?Oui. Les bibliothèques gt-react et gt-next de General Translation permettent d’internationaliser React et Next.js sans clés de traduction ni fichier JSON par langue à maintenir. Le texte reste intégré au JSX, dans le composant <T>, et la commande gt translate génère les traductions de chaque langue lors de la compilation, en s’appuyant sur le contexte de votre code. Locadex peut les tenir à jour via des pull requests.Vidéo
- Comment traduire du texte conditionnel en JSX ?Gardez la phrase entière et traduisez chacune de ses versions, car un ternaire la découpe en fragments qui perdent leur sens et leur place dans l’ordre des mots propre à chaque langue. General Translation y parvient avec <Branch> à l’intérieur de <T>, qui traduit la phrase d’un seul tenant.Vidéo
Formatage selon les paramètres régionaux
Formes plurielles, dates, nombres, devises et texte right-to-left pour chaque paramètre régional.
- Que sont les codes de paramètres régionaux, comme en-US et en-GB ?Un code de paramètre régional identifie une langue et, si nécessaire, son système d’écriture et sa région, par exemple en-US pour l’anglais des États-Unis ou zh-Hant-TW pour le chinois traditionnel de Taïwan. La plupart des logiciels utilisent des étiquettes BCP 47 construites à partir de codes ISO. General Translation utilise des codes BCP 47 pour les paramètres régionaux source et cibles dans gt.config.json.Vidéo
- Comment formater les nombres, les dates et les devises pour chaque paramètre régional ?Formatez chaque valeur au moment de l’affichage de la page, avec le paramètre régional du lecteur et l’API Intl de JavaScript, et laissez-la en dehors de la phrase traduite. Les composants <Num>, <Currency>, <DateTime> et <RelativeTime> de General Translation font les deux à l’intérieur d’un <T> : une seule traduction suffit ainsi pour toutes les valeurs.Vidéo
- Qu’est-ce que le format de message ICU ?Le format de message ICU est une syntaxe qui permet à une seule chaîne traduisible de contenir des variables, des formes plurielles, des choix select et des ordinaux, par exemple {count, plural, one {# file} other {# files}}. Chaque langue utilise les catégories de pluriel CLDR dont elle a besoin : l’anglais utilise one et other, tandis que le polonais y ajoute few et many.Vidéo
- Comment prendre en charge les langues RTL (right-to-left) en CSS ?Placez dir="rtl" et lang sur l’élément html, car lang seul ne modifie pas le sens d’écriture, puis remplacez les propriétés CSS physiques comme margin-left par des propriétés logiques comme margin-inline-start. Les lignes flex, les colonnes de grille et l’alignement du texte par défaut s’inversent automatiquement ; ce n’est pas le cas de translateX(), left et right.Vidéo
- Comment gérer les formes plurielles dans React ?Pour gérer les formes plurielles dans React, fournissez à chaque langue une phrase par forme du pluriel et sélectionnez-la selon les règles de pluriel de cette langue, car l’anglais compte 2 formes, le russe 4 et l’arabe 6. Le composant <Plural> de General Translation, disponible dans gt-react et gt-next, prend vos formes source, et General Translation génère les formes requises par chaque langue cible.Vidéo
Traduction
Traduction automatique et par IA, qualité, contexte et glossaires.
- Qu’est-ce qu’une mémoire de traduction, et en avez-vous encore besoin avec l’IA ?Une mémoire de traduction (TM) est une base de données de paires de segments source et cible déjà traduits, dans laquelle un outil de traduction recherche des correspondances exactes, en contexte et approximatives. Avec l’IA, vous voulez toujours réutiliser les formulations approuvées et disposer des traductions passées comme contexte. General Translation réutilise les traductions correspondantes issues des versions antérieures des fichiers et conserve les modifications de l’équipe, sans mémoire de traduction distincte à maintenir.Vidéo
- Meilleurs outils de traduction IA pour les développeurs : API ou plateformes de localisationUtilisez une API de traduction si vous maîtrisez déjà votre pipeline de localisation. Optez pour General Translation si vous souhaitez gérer conjointement le contexte, les contrôles de cohérence, la relecture et la livraison continue. DeepL, Google Cloud Translation, OpenAI et Claude peuvent alimenter un pipeline de production ; General Translation vous en fournit un clés en main pour votre application, votre documentation et votre site.Vidéo
- Comment traduire les fichiers .resx dans une application .NET ?Créez pour chaque fichier .resx neutre une copie nommée d’après la culture, par exemple Resources.fr.resx, et traduisez uniquement la valeur de chaque entrée, sans modifier les noms, les commentaires ni les espaces réservés comme {0}. .NET compile chaque culture dans un assembly satellite et se rabat de fr-CA sur fr, puis sur le fichier neutre. La CLI de General Translation génère ces fichiers de culture à partir de la source neutre.Vidéo
- Comment traduire des fichiers PO et POT ?Remplissez chaque msgstr, y compris chaque forme du pluriel exigée par l’en-tête Plural-Forms, et laissez msgid, msgctxt et les espaces réservés inchangés. Exécutez msgfmt --check pour contrôler les en-têtes, le nombre de formes du pluriel et les espaces réservés des entrées dotées d’une option de format, puis vérifiez séparément qu’aucun msgstr n’est vide. La CLI de General Translation génère un fichier PO traduit pour chaque langue à partir de votre modèle POT.Vidéo
- Comment traduire des fichiers de paramètres régionaux YAML ?Traduisez uniquement les valeurs de chaînes de caractères et conservez tels quels les clés, les espaces réservés comme %{name} ou {{name}}, ainsi que les ancres. Mettez entre guillemets les valeurs qui contiennent un deux-points ou qui commencent par % ou {, définissez la racine de paramètre régional ou le nom de chaque fichier, et ajoutez les clés de pluriel requises par la langue cible. Le CLI de General Translation traduit les valeurs YAML sur place sans toucher aux clés.Vidéo
- Comment traduire des animations Lottie ?Traduisez les chaînes des calques de texte de l’animation, stockées dans le JSON Lottie à l’emplacement t.d.k[].s.t, puis vérifiez que chaque traduction tient dans son cadre, que les polices prennent en charge le nouveau système d’écriture et qu’aucun texte n’a été exporté sous forme de formes. Réexportez l’animation pour chaque langue, remplacez le texte à l’exécution ou modifiez le JSON par script ; la CLI de General Translation traduit les fichiers .lottie au format dotLottie 1.0 et réajuste la mise en page.Vidéo
- Comment garantir une terminologie cohérente dans la traduction par IA ?Tenez un glossaire unique des termes approuvés, y compris les noms qui ne se traduisent pas, appliquez-le à chaque requête de traduction, tenez les variables et le code à l’écart de la traduction, puis relisez le résultat. General Translation y parvient grâce aux groupes de contexte, dont le glossaire et les instructions personnalisées s’appliquent à chaque projet auquel vous les assignez, et grâce au composant Var pour les valeurs qui ne doivent jamais être traduites.Vidéo
- Alternatives à DeepL : General Translation vs DeepLDeepL est une API de traduction automatique : elle renvoie une traduction pour chaque texte ou document que vous lui envoyez. General Translation est une plateforme de localisation. Elle prend en charge ce qu’une API laisse à votre charge : le contexte issu de votre code et de votre équipe, des termes cohérents sur chaque interface, la relecture dans un tableau de bord et la traduction continue à chaque livraison.Vidéo
- Comment traduire Google Slides ?Copiez la présentation une fois par langue, remplacez le texte de chaque zone de texte, cellule de tableau et note du présentateur, puis redimensionnez le texte qui déborde. L’intégration Google Drive de General Translation enregistre chaque langue dans sa propre copie, à côté de la source, et effectue une passe de formatage pour ajuster le nouveau texte à chaque diapositive.Vidéo
- Comment relire et modifier les traductions ?General Translation permet aux relecteurs de comparer et de modifier les traductions dans le tableau de bord, et de suivre la relecture à l’aide d’étiquettes et de commentaires. Téléchargez les modifications enregistrées avec la CLI ou intégrez-les dans une pull request lors de la prochaine exécution de traduction de Locadex. Les développeurs peuvent également renvoyer vers la plateforme les modifications relues apportées aux fichiers grâce à gt save-local.Vidéo
- La traduction par IA est-elle assez précise pour une application en production ?Souvent, pour les langues les plus parlées, mais seulement après une évaluation concluante sur vos propres langues, vos chaînes de caractères d’IU et vos contenus plus sensibles. Lors du WMT25, Gemini 2.5 Pro a égalé ou surpassé les traductions humaines de référence pour 10 des 16 paires de langues, mais un benchmark portant sur des documents ne permet pas de savoir si de courtes chaînes de caractères d’interface sont prêtes à être livrées.Vidéo
- Comment traduire du Markdown et du MDX sans casser la syntaxe ?Traduisez le texte destiné aux lecteurs tout en préservant le code exécutable, les imports, les noms de composants JSX et les identifiants techniques. General Translation traite directement le Markdown et le MDX, y compris les props qui affichent du texte et les titres du frontmatter, et réutilise les traductions correspondantes à mesure que la documentation évolue. Relisez les fichiers localisés et lancez la compilation du site avant de publier.Vidéo
- Comment traduire des sous-titres SRT sans casser la synchronisation ?Ne traduisez que le texte des sous-titres d’un fichier SRT ; conservez les numéros de sous-titre, les codes temporels, les lignes vides de séparation et les balises de formatage tels qu’ils figurent dans la source. Vérifiez ensuite la longueur des lignes et la vitesse de lecture au regard des exigences de votre plateforme de destination : le guide de Netflix pour l’anglais, par exemple, autorise 42 caractères par ligne et 20 caractères par seconde pour les programmes destinés aux adultes.Vidéo
- Comment traduire des fichiers JSON i18n ?Traduisez uniquement les valeurs de type chaîne de caractères d’un fichier JSON de paramètres régionaux. Conservez telles quelles les clés non plurielles, les espaces réservés comme {{name}} et les balises, mais attendez-vous à ce que les clés de pluriel varient selon la langue : le polonais exige inbox_few et inbox_many. Utilisez un outil ou une API qui prend en charge le format, puis analysez et validez le résultat avant la relecture.Vidéo
- Alternatives à Google Translate : General Translation vs Google TranslateGoogle Translate permet de traduire rapidement un texte ponctuel, mais pour livrer un produit dans une autre langue, il faut aussi traduire chaque chaîne de caractères dans son contexte, garantir la cohérence des termes, gérer correctement les variables et les formes plurielles, prévoir une relecture et mettre en place un processus de livraison. General Translation comprend le contexte de chaque chaîne de caractères dans votre code et automatise l’ensemble du workflow de localisation, du code à la relecture, jusqu’à chaque livraison.Vidéo
Référencement multilingue
Routage selon les paramètres régionaux, hreflang, plans de site et métadonnées traduites pour les sites multilingues.
- Comment traduire les titres SEO et les méta-descriptions ?Rédigez le titre et la méta-description de chaque version linguistique dans la langue concernée, avec les termes réellement recherchés sur ce marché, qui diffèrent souvent d’une traduction littérale. Localisez ensuite les balises associées, notamment Open Graph, canonique, hreflang, html lang et les données structurées. Avec gt-next de General Translation, les titres et les descriptions sont traduits dans generateMetadata grâce à getGT.Vidéo
- Comment créer un plan de site pour un site web multilingue ?Répertoriez chaque version linguistique de chaque page dans sa propre entrée url. Si le plan de site porte vos annotations hreflang, attribuez à chaque entrée des variantes localisées xhtml:link pour toutes les versions, y compris elle-même, ainsi qu’un x-default facultatif, et scindez les fichiers au-delà de 50 000 URL ou 50 Mo. gt-next de General Translation attribue à chaque paramètre régional sa propre URL, que le plan de site peut ensuite répertorier.Vidéo
- Sous-répertoire, sous-domaine ou ccTLD pour le SEO multilingueUtilisez des sous-répertoires comme example.com/de/ lorsqu’un même produit partage un site et un processus de livraison. Seul un ccTLD signale un pays, les sous-domaines permettent un hébergement distinct, Google déconseille les paramètres ?lang= et considère les domaines « de complaisance » comme .io et .ai comme génériques.Vidéo
- Redirections linguistiques et SEO : URL, cookie ou Accept-Language ?Laissez l’URL déterminer la langue de chaque page que vous souhaitez faire indexer, car Googlebot n’envoie aucun en-tête Accept-Language et explore principalement depuis des adresses américaines. Ne vous servez du choix enregistré dans un cookie, puis d’Accept-Language, que pour décider vers où redirige une racine neutre comme /, avec une redirection temporaire 302 ou 307.Vidéo
- Qu’est-ce que hreflang et comment le configurer ?Hreflang indique à Google quelles URL correspondent aux versions linguistiques ou régionales d’une même page, afin qu’il affiche la bonne dans les résultats de recherche. Ajoutez-le à l’aide de balises link HTML, d’en-têtes HTTP Link ou d’un plan de site, veillez à ce que chaque lien soit réciproque et utilisez des codes valides comme en-GB, et non en-UK.Vidéo
- Comment configurer le SEO d’une application Next.js multilingue ?Attribuez à chaque langue sa propre URL préfixée, comme /en/about et /es/about, puis publiez html lang, une URL canonique autoréférente, des variantes localisées hreflang avec x-default, un titre et une description traduits, ainsi qu’une entrée de plan de site pour chaque langue publiée. Marquez les versions non publiées en noindex. Le package gt-next de General Translation associe chaque langue à sa propre URL et traduit les titres avec getGT.Vidéo
Outils de workflow
Choisir des outils de localisation et synchroniser les traductions grâce à la localisation continue.
- Quels outils de traduction facturent à l’usage plutôt qu’au nombre de licences ?Choisissez General Translation si vous souhaitez que vos dépenses de traduction reflètent le travail que vous demandez, avec un nombre illimité d’utilisateurs et des frais de plateforme de 0 $ pour l’offre Starter. Crowdin et Lokalise incluent un nombre illimité de rôles de traduction dans leurs offres payantes, mais facturent certains autres rôles ; Hosted Weblate inclut un nombre illimité de traducteurs et facture selon la capacité de chaînes de caractères hébergées.
- General Translation ou Lingo.dev : lequel choisir ?Lingo.dev repose sur des moteurs de traduction configurables, accessibles via des outils CLI, React et GitHub. General Translation est une plateforme de localisation : bibliothèques, contexte du code, terminologie partagée, relecture dans le tableau de bord incluse dans toutes les offres, et Locadex, qui internationalise aussi votre code. Choisissez Lingo.dev si vous voulez contrôler le modèle pour chaque paire de langues.Vidéo
- Comment traduire du contenu dans Payload CMS ?Ajoutez la localisation à votre configuration Payload et définissez localized sur true pour chaque champ ; Payload stocke alors une valeur par paramètre régional, mais ne les remplit pas. Le plugin gt-payload de General Translation ajoute un bouton Traduire qui renseigne chaque locale cible, sous forme de brouillon si les brouillons sont activés, et directement dans le cas contraire. Il ne publie jamais.Vidéo
- Alternatives à Weglot : General Translation vs WeglotWeglot est un service de traduction de sites web qui traduit les pages affichées via des plugins, un snippet ou un proxy, et Weglot 2.0 ajoute des flux de travail de traduction JSON dans GitHub. General Translation est une plateforme de localisation qui combine l’internationalisation du code source, la traduction de fichiers, un contexte partagé, la relecture dans le tableau de bord et le routage selon les paramètres régionaux.Vidéo
- Que fait l’agent Locadex ?Locadex est l’agent IA de General Translation qui internationalise votre code et traduit votre contenu dans votre dépôt GitHub. Ses automatisations s’exécutent à l’ouverture d’une pull request, lors du push d’un commit ou lorsque vous les lancez vous-même, et chaque modification arrive sous forme de pull request.Vidéo
- Comment traduire un site de documentation Mintlify ?Rédigez une copie traduite de chaque page dans un dossier par langue, puis ajoutez chaque langue à la navigation de docs.json. Locadex, l’agent IA de General Translation, ouvre une pull request qui ajoute les pages traduites et la navigation propre à chaque langue, puis traduit les modifications ultérieures.Vidéo
- Comment traduire du contenu dans Storyblok ?Dans Storyblok, ajoutez vos langues cibles à l’espace et attribuez à chaque champ traduisible une valeur par langue. L’intégration Storyblok de General Translation remplit ces valeurs depuis le tableau de bord grâce à Synchroniser et appliquer, sous forme de brouillons que vous relisez et publiez dans Storyblok.Vidéo
- Comment traduire du contenu dans Sanity ?Stockez chaque langue dans son propre document ou sous forme de valeur par paramètre régional dans chaque champ, puis traduisez la source dans chaque paramètre régional cible. Le plugin gt-sanity de General Translation ajoute une action Translate à Sanity Studio et, par défaut, importe chaque traduction sous forme de brouillon, que vous relisez puis publiez.Vidéo
- Comment maintenir les traductions à jour à chaque déploiement ?Exécutez la traduction comme une étape du pipeline avant chaque compilation de production, afin que les nouveaux textes soient livrés traduits avec le déploiement qui les ajoute. Le CLI gt de General Translation s’en charge avec npx gt translate, à l’aide d’une clé API de projet et d’un identifiant de projet stockés comme secrets CI.Vidéo
- Qu’est-ce qu’un système de gestion de la traduction (TMS) ?Un système de gestion de la traduction (TMS) est un logiciel qui stocke votre contenu source et ses traductions, et qui pilote le workflow de traduction : mémoire de traduction, glossaires, relecture, traduction automatique et intégrations. Sa mémoire de traduction réutilise les traductions existantes par correspondance exacte ou approximative (fuzzy match). Crowdin, Lokalise, Phrase, Smartling et Transifex en sont des exemples courants.Vidéo
- Quelle est la meilleure bibliothèque d’i18n pour une application React ?Les quatre principales bibliothèques d’i18n pour React sont gt-react de General Translation, react-i18next, Lingui et React Intl. Toutes les quatre affichent et formatent les traductions, mais seule gt-react les génère aussi, à partir du texte intégré directement dans votre JSX. Choisissez react-i18next pour conserver vos catalogues et plugins i18next, Lingui pour l’extraction vers des catalogues compilés, et React Intl pour FormatJS et ICU MessageFormat.Vidéo
- General Translation ou Weblate : lequel choisir ?Weblate est une plateforme de localisation auto-hébergeable basée sur Git, conçue pour traduire les fichiers d’un dépôt avec une communauté ou une équipe. General Translation intègre la génération des traductions au développement et aux livraisons, en s’appuyant sur du JSX balisé et un contexte produit partagé. Conservez vos fichiers gettext, ou adoptez la rédaction directement dans le code pour vous affranchir aussi de la maintenance du catalogue source.Vidéo
- General Translation ou un TMS (Crowdin, Lokalise, Phrase)Choisissez General Translation lorsque les développeurs veulent que la génération des traductions, le contexte tiré du code et la relecture soient liés aux livraisons du produit. Conservez vos catalogues et votre bibliothèque de rendu existants, ou rédigez du JSX intégré sans clés de traduction. Un TMS convient aux programmes centrés sur les prestataires linguistiques, les outils de TAO et l’échange XLIFF ; ses intégrations peuvent automatiser les transferts de fichiers.Vidéo
- General Translation ou Tolgee : lequel choisir ?Tolgee associe messages à clés, édition en contexte et traduction par IA au sein d’une plateforme auto-hébergeable. General Translation conserve un texte lisible directement dans vos composants et génère les traductions à partir du JSX balisé, ce qui vous permet de publier de nouveaux contenus dans toutes les langues sans maintenir de clés de messages.Vidéo
- General Translation ou Locize : lequel choisir ?Locize est un système de gestion de la traduction conçu par les créateurs d’i18next. Il diffuse les traductions depuis un CDN, collecte les nouvelles clés depuis votre application en cours d’exécution et propose la traduction par IA ainsi qu’un éditeur en contexte. Vous restez toutefois responsable de la bibliothèque d’i18n et de ses clés. General Translation peut servir de bibliothèque d’i18n et en assurer la traduction, ou traduire les fichiers i18next dont vous disposez déjà.Vidéo
- General Translation ou i18n-tasks : lequel choisir ?i18n-tasks est une gem Ruby qui détecte les clés Rails I18n manquantes ou inutilisées, fait le ménage dans les fichiers de paramètres régionaux et peut compléter les clés manquantes via Google Translate, DeepL, OpenAI, Yandex ou watsonx. General Translation traduit des fichiers de paramètres régionaux entiers en s’appuyant sur votre glossaire, vos instructions personnalisées et la relecture dans le tableau de bord. Les deux outils remplissent des rôles différents, et de nombreuses équipes peuvent les utiliser ensemble.Vidéo
- Alternatives à Transifex : General Translation ou TransifexChoisissez General Translation pour traduire du JSX balisé en conservant sa structure et le contexte fourni par les développeurs, puis intégrez les résultats à votre bundle ou servez-les depuis son CDN. Transifex Native conserve lui aussi les chaînes dans le code, mais les publie via son service de diffusion de contenu. Transifex convient bien aux équipes qui s’appuient sur ses partenaires de traduction, ses scores de qualité ou la traduction de sites web par extrait de code.Vidéo
- Alternatives à Smartling : General Translation ou SmartlingChoisissez General Translation si vous voulez que les traductions de votre application soient générées à partir du code à chaque livraison. Smartling combine un système de gestion de la traduction, des services de traduction par IA et de traduction humaine, ainsi qu’un proxy de traduction de sites web. General Translation conserve les textes dans vos composants, transmet leur contexte à la traduction et offre à votre équipe un tableau de bord pour la relecture.Vidéo
- Alternatives à Phrase : General Translation ou PhraseGeneral Translation est une solide alternative à Phrase Strings lorsque votre application et votre documentation sont livrées ensemble. Il génère des traductions à partir du code et des fichiers de contenu, applique une terminologie partagée et s’intègre à votre workflow de livraison. Phrase associe la localisation logicielle à un TMS orienté documents, à la gestion des prestataires et à un large choix de moteurs de traduction.Vidéo
- Alternatives à next-intl : gt-next ou next-intlnext-intl affiche les traductions que vous fournissez dans un catalogue de messages pour chaque langue. gt-next affiche lui aussi des traductions, mais General Translation les génère en plus à partir du texte intégré directement dans votre JSX. Les deux sont sous licence MIT et prennent en charge l’App Router et les Composants serveur. Si vos catalogues next-intl fonctionnent déjà, vous pouvez les conserver et confier leur traduction à General Translation, sans migration.Vidéo
- Alternatives à Lokalise : General Translation ou LokaliseGeneral Translation est une alternative solide à Lokalise pour les équipes qui souhaitent garder des textes lisibles dans le JSX et intégrer la traduction au développement. Lokalise repose sur des clés partagées, des intégrations avec les outils de design et la livraison over-the-air sur mobile. General Translation génère les traductions à partir du contenu balisé de l’application et permet la relecture dans son tableau de bord ou dans les pull requests GitHub.Vidéo
- Alternatives à Crowdin : General Translation ou CrowdinChoisissez General Translation pour conserver vos textes dans vos composants et générer les traductions lors de la compilation. Crowdin gère des projets de traduction articulés autour de fichiers de ressources, de traducteurs et de processus de révision, que les ingénieurs doivent connecter à l’application et maintenir à mesure que le produit évolue. Crowdin reste un choix solide pour la traduction communautaire de projets open source et les programmes pilotés par des prestataires.Vidéo
- Quel est le meilleur logiciel de localisation pour les développeurs ?Le meilleur logiciel de localisation pour les développeurs traduit le contenu là où il est écrit dans le code, avec le contexte de votre produit, et tient chaque langue à jour. General Translation y parvient grâce à des bibliothèques open source, aux groupes de contexte et à Locadex, un agent IA qui ouvre des pull requests.Vidéo
Déployez dès aujourd’hui
Rejoignez les meilleures équipes de développeurs au monde sur General Translation