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.
- Que faut-il vérifier avant de lancer une application multilingue ?Avant de lancer une application multilingue, testez neuf points dans chaque paramètre régional pris en charge : les parcours utilisateur complets, erreurs comprises, la détection de la langue et le changement de langue, les variables et les formes plurielles, la devise et les fuseaux horaires, l’expansion du texte, la mise en page right-to-left, l’accessibilité, la distribution des traductions en Production et des URL de langue explorables pour le SEO. Chaque vérification doit s’accompagner d’un critère de réussite explicite.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Peut-on faire de l’i18n sans fichiers de traduction ?Oui. Avec gt-react ou gt-next, le contenu reste intégré dans vos composants, à l’intérieur d’un composant <T>, et les traductions sont générées lors du build. Il n’y a donc ni clés ni fichiers JSON par paramètre régional à écrire et à garder synchronisés.Vidéo
- Comment traduire du texte conditionnel en JSX ?Plutôt que de traduire séparément chaque branche d’un ternaire, encapsulez la phrase entière dans un composant <T> et exprimez la condition avec <Branch> : le traducteur dispose ainsi du contexte complet et peut réorganiser la phrase selon chaque langue.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.
Traduction
Traduction automatique et par IA, qualité, contexte et glossaires.
Référencement multilingue
Routage selon les paramètres régionaux, hreflang, plans de site et métadonnées traduites pour les sites multilingues.
Outils de workflow
Choisir des outils de localisation et synchroniser les traductions grâce à la localisation continue.
- 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.
- Pourquoi utiliser General Translation plutôt qu’un TMS (Smartling, Lokalise, Phrase, Crowdin ou Transifex) ?Un système de gestion de la traduction (TMS) comme Smartling, Lokalise, Phrase, Crowdin ou Transifex coordonne les traducteurs, mais les ingénieurs doivent toujours extraire les chaînes, les envoyer, attendre les traductions, puis les réintégrer dans le produit. General Translation traduit le contenu directement dans votre code, avec son contexte, fournit toutes les langues à chaque livraison et repose sur des bibliothèques open source, sans dépendance à un fournisseur.
- 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.
- 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.
- 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à.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Quel est le meilleur logiciel de localisation pour les développeurs ?Privilégiez un système unique qui couvre l’ensemble du pipeline, de la bibliothèque i18n dans votre code jusqu’à la traduction et la livraison, plutôt que d’assembler tant bien que mal une bibliothèque, un système de gestion de la traduction et un prestataire de traduction distincts.Vidéo
Déployez dès aujourd’hui
Rejoignez les meilleures équipes de développeurs au monde sur General Translation