Guide de configuration complet
Tout ce dont vous avez besoin pour installer, configurer et utiliser GoLocal! afin de rendre votre application Bubble.io multilingue.
Données Bubble sécurisées, traduction stable de l'interface utilisateur et logique multilingue explicite
Mettez à jour le plugin depuis Bubble Plugins avant de tester les fonctionnalités ci-dessous. La configuration du projet, les traductions et la facturation restent attachées au projet GoLocal. Les développeurs d'applications n'ont pas besoin de coller ou de conserver un script dans l'en-tête HTML de Bubble ; la version publiée du plugin contient le runtime pris en charge.
Les données modifiables restent intactes
Les entrées ordinaires, les entrées multilignes, les éditeurs Quill et les autres zones contenteditable ne sont pas traduites de manière inverse pendant la saisie par l'utilisateur.
Exclusions de contenu réutilisables
Protégez les valeurs de base de données saisies par l'utilisateur et les cellules de groupes répétitifs avec do_not_translate_selectors au lieu des ID HTML dupliqués.
Recherche inversée automatique et sécurisée
Bubble SearchBox, Dropdown, MultiDropdown hérité et Select2 MultiDropdown peuvent faire correspondre les choix traduits aux valeurs de la langue source.
Élément GoLocal Query
Utilisez un élément GoLocal Query indépendant par entrée ordinaire uniquement lorsque cette entrée pilote une recherche de texte, une condition ou un filtre API dans la langue source.
1 Installer le plugin
GoLocal! est disponible sous forme de plugin gratuit sur la place de marché Bubble.io. Vous ne payez rien pour l'installer : le plugin lui-même coûte 0 $. La facturation ne s'applique que lorsque vous le connectez à un projet GoLocal! avec une clé API.
Ouvrez l'éditeur Bubble → onglet Plugins.
Cliquez sur "+ Ajouter des plugins" et recherchez "GoLocal" ou "Auto Translator".
Installez GoLocal! — Traducteur automatique. S'il est déjà installé, mettez-le à jour avec la dernière version publiée.
Faites glisser l'élément GoLocal! sur n'importe quelle page (généralement un en-tête réutilisable). L'élément est invisible.
2 Créez votre compte et votre projet
Pour activer le plugin, vous avez besoin d'un Clé API. Les clés API sont générées dans votre tableau de bord GoLocal! lorsque vous créez un projet.
UN Essai gratuit de 5 jours démarre automatiquement. Aucune carte de crédit requise. Ton Clé API est généré immédiatement.
Copiez la clé API — vous en aurez besoin lors de la configuration du plugin dans Bubble.
myapp.bubbleapps.io, entrez exactement cela.3 Configurer le plugin
Cliquez sur l'élément GoLocal!. Au minimum, définissez un champ:
Configuration minimale requise :
api_key→ collez la clé API de votre projet GoLocal!Avec juste la clé API, GoLocal! charge la configuration du projet, utilise le navigateur du visiteur ou la sélection de widget enregistrée, traduit le texte visible de l'interface utilisateur et affiche le sélecteur de langue.
4 Champs du plugin — Référence
api_keyRequisClé API de votre projet à partir du tableau de bord GoLocal!.
Lié au domaine – peut être inclus en toute sécurité dans le code côté client.
source_languageFacultatifCode à deux lettres de la langue d'origine de votre application. Exemples : en, uk, de.
Normalement, laissez ce champ vide lorsque la langue source est déjà configurée dans le projet GoLocal. Définissez-le uniquement lorsque vous devez intentionnellement remplacer la valeur project/Worker.
target_languageFacultatifLaissez normalement ce champ vide. Le widget et la sélection persistante du visiteur contrôlent la langue active lors du chargement des pages.
Une valeur codée en dur telle que fr force cette langue à chaque fois que l'élément s'initialise et peut remplacer le choix du visiteur. Liez une valeur dynamique uniquement lorsque votre application Bubble possède intentionnellement un état de langue et fournit un code de langue stable sur chaque page.
enabledFacultatifCase à cocher contrôlant si la traduction est active. Défaut: à carreaux.
show_widgetFacultatifAfficher le widget de changement de langue intégré. Défaut: à carreaux. Désactivez-le uniquement lorsque votre application Bubble fournit ses propres commandes et appels de langue. switch_language.
widget_positionFacultatifPosition des widgets : bottom-right (défaut), bottom-left, top-right, top-left.
dataset_1FacultatifPré-traduisez votre base de données Bubble pour un chargement instantané.
Format structuré (recommandé) :
// Configuration de Bubble :
Effectuez une recherche sur (Catégories) :format sous forme de texte
Contenu: {Le titre de cette catégorie ; Le nom de cette catégorie ; Le corps de cette catégorie}
Délimiteur : ,
// Ajoute un autre type :
:append Faites une recherche sur (Cures) :format sous forme de texte
Contenu: {Le titre de ce remède ; Le nom de ce remède ; La prescription de ce remède}
Délimiteur : ,
Champs à l'intérieur { } séparés par ; — des blocs séparés par ,. Voir Ensembles de données pour plus de détails.
do_not_translate_idsFacultatifID d'éléments séparés par des virgules à ne jamais traduire. La spécification d’un ID de groupe/conteneur exclut tous les enfants.
Exemple: user-bio, code-block, brand-section
Les ID HTML doivent être uniques. Ne réutilisez pas le même identifiant dans les cellules de groupes répétitifs ; utilisez plutôt do_not_translate_selectors avec une classe.
do_not_translate_selectorsFacultatifSélecteurs CSS pour le contenu réutilisable ou répétitif qui doit rester exactement tel que stocké. Un élément correspondant et tous ses enfants sont exclus.
Exemples : .gl-user-content, [data-user-content], [id^="gl-user-content-"]
Recommandé pour les valeurs de base de données saisies par l'utilisateur et les groupes répétitifs. Un sélecteur de classe ou de préfixe d'ID peut faire correspondre en toute sécurité de nombreuses lignes sans créer d'ID HTML en double.
private_translate_idsFacultatifDes éléments qui sont traduits mais les traductions ne sont pas mis en cache globalement. À utiliser pour les données par utilisateur (noms, adresses).
Exemple: user-name, order-address
Si le contenu doit rester exactement tel que l'utilisateur l'a saisi, n'utilisez pas ce champ. Excluez-le plutôt avec do_not_translate_selectors.
5 Ensembles de données — Traduction de votre base de données Bubble
La plupart des applications Bubble affichent les données de la base de données. Sans ensembles de données, le contenu dynamique est traduit dès la première vue, ce qui entraîne un retard visible. Les ensembles de données prétraduisent tout pour chargement instantané.
Format 1 : Structuré – pour les éléments à plusieurs champs (recommandé)
Enveloppez chaque article dans {}, séparez les champs par ; (point-virgule), utilisez , comme délimiteur entre les éléments.
// Bubble : Effectuer une recherche sur (Catégories) :format en texte
Contenu: {Le titre de cette catégorie ; Le nom de cette catégorie ; Le corps de cette catégorie}
Délimiteur : ,
// Ajouter : Effectuer une recherche sur (Cures) :format sous forme de texte
Contenu: {Le titre de ce remède ; Le nom de ce remède ; La prescription de ce remède}
Délimiteur : ,
// Résultat: {Santé;Bien-être;Guide...},{Beauté ; Soins de la peau ; Routines...},{Aspirine;Soulagement;Prendre 2x...}
{} divisé par ; — blocs divisés par , — les virgules dans votre texte sont sûres.Format 2 : Simple – pour les listes à valeur unique
Pour les valeurs courtes sans virgules (noms de catégories, balises) :
Contenu: Le nom de cette catégorie Délimiteur : ,
// Sortie : électronique, vêtements, livres, jouets
Important: Si le texte peut contenir des virgules, utilisez toujours le format structuré avec {field;field} emballage.
normalized_query uniquement dans le filtre ou l'état. Consultez le guide complet Bubble.6 Bubble États, événements et actions
L'élément principal GoLocal! possède la traduction de page et expose la langue active à Bubble. Utilisez ses états dans les conditions et ses événements pour démarrer les flux de travail au bon moment du cycle de vie de la traduction.
1. Prêt pour l'exécution
translator_ready = yes signifie GoLocal initialisé. Cela ne signifie pas que tous les éléments dynamiques Bubble ont fini de se traduire.
2. La langue a changé
language_changed se déclenche lorsque la langue active change. Lire current_language ici.
3. Réussite terminée
translation_complete se déclenche une fois qu'un lot de traduction est terminé. Le contenu dynamique peut créer des lots ultérieurs.
current_languagetextLe code de langue actif à deux lettres. Utilisez-le pour les liens PDF, les conditions Bubble et l'interface utilisateur linguistique appartenant à l'application.
detected_languagetextLangue source/navigateur détectée signalée par le moteur d'exécution.
translator_readyyes/noOui, une fois le runtime de traduction initialisé.
is_translatingyes/noOui pendant que GoLocal traite une passe de traduction.
translation_completeyes/noIndicateur d'achèvement pour la passe la plus récente.
total_textsnumberNombre d'éléments de texte observés dans la session d'exécution en cours.
cached_local / cached_bundle / cached_servernumberCompteurs de cache de diagnostic. Utile pour le support et les contrôles de performances.
traduit / erreurs / tokens_usednumberTraduction d’exécution et compteurs d’erreurs.
last_error / preload_statustextLa dernière erreur d'exécution et l'état de préchargement pour les diagnostics.
Actions des éléments
switch_language— passer au champ d'action requistarget_lang, Par exemplefr.Start_translation— commencer ou reprendre l'observation et la traduction.Stop_translation- arrêtez d'observer et de traduire jusqu'à ce que vous redémarriez.rescan_dom- analyse explicitement le contenu rendu après une fenêtre contextuelle Bubble, un élément réutilisable ou une mise à jour de groupe répétitif.
Exemple : afficher un lien PDF en français
Créez une condition Bubble sur le lien ou le groupe : When GoLocal! A's current_language is "fr". Si un workflow doit s'exécuter lorsque le visiteur change de langue, utilisez When GoLocal! A language_changed. Vous n'avez pas besoin d'attendre translation_complete juste pour lire la langue sélectionnée.
7 Données utilisateur, formulaires et groupes répétitifs
GoLocal traduit le texte de l'interface, mais les données saisies ou créées par vos utilisateurs doivent rester stables. Le runtime actuel protège les entrées ordinaires, les entrées multilignes, les éditeurs Quill et autres contenteditable zones pendant qu’une personne tape.
Coffre-fort par défaut
- • Les valeurs d'entrée et d'entrée multiligne sont enregistrées exactement telles que saisies.
- • Quill
.ql-editoret d'autres régions modifiables sont ignorées lors de la saisie. - • Les e-mails, mots de passe, numéros, dates, identifiants et fichiers doivent toujours utiliser leurs valeurs Bubble d'origine.
L'affichage nécessite une exclusion
Lorsque le contenu utilisateur enregistré est affiché ultérieurement par un élément de texte Bubble normal, GoLocal ne peut pas savoir s'il s'agit d'une copie de l'interface utilisateur ou de données utilisateur. Marquez cet élément d’affichage ou son plus petit conteneur comme zone sans traduction.
Configuration de groupe répétitif recommandée
- 1. Sélectionnez uniquement l'élément Texte qui affiche le contenu utilisateur. N'excluez pas l'intégralité du groupe répétitif si ses boutons, titres et étiquettes statiques doivent toujours être traduits.
- 2. Donnez à chaque ligne un identifiant dynamique unique.gl-user-content-Identifiant unique de l'objet de la cellule actuelle
- 3. Ajoutez un sélecteur à l'élément GoLocal.do_not_translate_selectors = [id^="gl-user-content-"]
Si votre configuration Bubble ou un élément réutilisable peut appliquer une classe personnalisée, .gl-user-content est encore plus simple. Ajoutez cette classe une fois à do_not_translate_selectors.
Marqueurs sans traduction pris en charge
Le runtime respecte data-tr-skip, data-no-translate, translate="no", et imbriqué .notranslate éléments. Les champs de sélection ID et CSS configurés restent la méthode native Bubble la plus simple.
Passer par rapport à la traduction privée
do_not_translate_* conserve la valeur d'origine. private_translate_ids traduit toujours la valeur mais empêche un cache global partagé. Utilisez la traduction privée uniquement lorsque le contenu doit véritablement être traduit.
home ou check_box. Si une icône est basée sur du texte, excluez le plus petit conteneur d'icône/de contrôle afin que le mot-clé glyphe ne soit jamais traduit.8 Éditeur de traduction et corrections manuelles
Utilisez l'éditeur de traduction pour la copie de produit fixe : étiquettes de navigation, titres, boutons, texte d'aide et autres expressions qui doivent faire l'objet d'une traduction révisée. Les saisies manuelles sont verrouillées et ne sont pas remplacées par une traduction automatique ultérieure.
Bonne correction manuelle
Source Plan de mise à niveau → phrase produit française révisée Améliorer le plan. Il s'agit d'une copie d'interface stable et appartient à l'éditeur.
Ne corrigez pas les données utilisateur une ligne à la fois
Un nom créé par le client tel que Travail à domicile doit être exclu au niveau de l’élément d’affichage Bubble. L’ajout de milliers de traductions d’identité ne constitue pas un remplacement sûr pour une zone sans traduction.
- 1. Ouvrez le projet dans le tableau de bord GoLocal et choisissez Traductions.
- 2. Recherchez l'expression source exacte et la paire de langues.
- 3. Modifiez la valeur cible ou utilisez Ajouter une traduction pour une nouvelle phrase source exacte.
- 4. Sauvegarder. L'entrée est marquée manuel, la version du bundle change et le runtime actualise le dictionnaire du projet.
- 5. Testez à nouveau l’itinéraire Bubble exact où la phrase est restituée. Utiliser
rescan_domuniquement si la phrase apparaît après un rendu tiers inhabituel.
en → fr, pas auto → fr. Le runtime demande la paire de sources résolues du projet.9 Comment fonctionne la traduction
GoLocal surveille le rendu Bubble DOM, applique d'abord les traductions du bundle de projet et du cache local, et ne demande que les phrases manquantes ou modifiées. Il continue d'observer les popups, les éléments réutilisables et les groupes répétitifs que Bubble restituera ultérieurement.
Chargement initial de la page
Le moteur d'exécution résout les langues source et cible, charge le groupe de projets en cours, analyse le texte visible de l'interface utilisateur et révèle la page via le flux anti-scintillement intégré.
Traductions mises en cache
Les phrases connues sont appliquées à partir du cache du bundle ou du navigateur sans les régénérer. Une version modifiée du bundle invalide les valeurs obsolètes mises en cache.
Contenu dynamique Bubble
L'observateur DOM récupère les fenêtres contextuelles nouvellement rendues, les éléments réutilisables, les groupes visibles sous condition et les cellules de groupes répétitifs. rescan_dom est une solution de secours explicite.
10 Dépannage et tests de version
La page est réinitialisée dans une seule langue
Laissez target_language vide sur chaque page et élément GoLocal réutilisable, sauf si votre application Bubble possède délibérément le langage. Une valeur codée en dur est réappliquée lors de l’initialisation.
Le widget est manquant
Confirmez que show_widget est coché, que la version la plus récente du plugin est installée et qu'un seul élément GoLocal prévu contrôle la page. Testez ensuite en dehors du mode débogueur étape par étape de Bubble.
Une fenêtre contextuelle ou une nouvelle ligne de groupe répétitif reste non traduite
Attendez que l'élément devienne visible. L'observateur le trouve normalement automatiquement ; si un élément tiers s'affiche de manière inhabituelle, exécutez rescan_dom après l'affichage de la fenêtre contextuelle ou du groupe.
Modifications de saisie ou de texte enrichi lors de la saisie
Mettez à jour le plug-in, confirmez le runtime actuel et vérifiez que le flux de travail de sauvegarde lit la valeur d'entrée/éditeur d'origine, et non le texte d'affichage traduit ou normalized_query.
Le texte français créé par l'utilisateur est à nouveau traduit
Exclure l'affichage Texte/conteneur via do_not_translate_selectors. Protégez la plus petite valeur dynamique, pas toute l’interface utilisateur statique qui l’entoure.
Une correction manuelle revient en auto
Les entrées manuelles actuelles sont verrouillées. Confirmez que vous avez modifié le même texte source et la même paire de langues exactes utilisées par le moteur d'exécution, puis envoyez le projet, l'itinéraire, la phrase et la durée du test à l'assistance.
Les noms de mois/jour restent en anglais
Le navigateur natif ou le chrome du sélecteur de date Bubble suit les paramètres régionaux du navigateur/contrôle. GoLocal traduit les étiquettes environnantes mais ne réécrit pas l'interface utilisateur interne du sélecteur de date.
Chrome propose sa propre traduction de page
Le plugin marque déjà le document notranslate pour la traduction du navigateur tout en permettant à GoLocal de s'exécuter. Mettez à jour le plugin ; n’ajoutez pas de deuxième extension de traduction ou de deuxième script.
Le texte s'enroule différemment après la traduction
GoLocal préserve la typographie Bubble. Les phrases traduites peuvent être plus longues, alors vérifiez la largeur minimale, la largeur maximale, la hauteur d'ajustement, le débordement et les règles réactives de Bubble à chaque point d'arrêt.
Liste de contrôle d'acceptation Bubble
- ✓Changer de source → cible → source sans actualiser.
- ✓Naviguez entre toutes les pages Bubble et les en-têtes réutilisables.
- ✓Ouvrez les fenêtres contextuelles et chargez les lignes de groupes répétitifs après le chargement de la page.
- ✓Tapez, collez, modifiez, enregistrez et rouvrez les champs de texte normal et riche.
- ✓Testez une valeur de données utilisateur exclue dans chaque groupe répétitif.
- ✓Testez SearchBox, liste déroulante, recherche héritée/Select2 MultiDropdown.
- ✓Testez chaque lien conditionnel et PDF/ressource current_language.
- ✓Testez à nouveau Chrome, Safari, la largeur mobile et une session privée.
[GoLocal v4].11 Tarifs& Facturation
Trois plans, tous avec mots de traduction illimités et langues cibles illimitées.
| Fonctionnalité | Starter | Pro | Business |
|---|---|---|---|
| Prix mensuel | $15/mo | $35/mo | $89/mo |
| Prix annuel | $149/yr | $349/yr | $890/yr |
| Langues cibles | Illimité | Illimité | Illimité |
| Limite MAU | 30K | 150K | 1M |
| Projets | 1 | 1 | 2 |
MAU
Visiteurs uniques qui ont vu les traductions. Les robots ont été filtrés. 10 % de dépassement gratuit, puis 3 $/10 000 $ supplémentaires.
Langues
Tous les forfaits payants incluent un nombre illimité de langues cibles sans frais supplémentaires par langue.
Essai gratuit de 5 jours
Chaque nouveau projet commence par un essai gratuit. Aucune carte de crédit requise.
12 Programme de partenariat
Gagnez de l'argent en recommandant GoLocal!
Partagez votre lien de parrainage - gagnez commissions récurrentes pour chaque client payant que vous apportez.
Inscrivez-vous en tant que partenaire
Tableau de bord → onglet Partenaire → « Rejoindre le programme partenaire ». Obtenez votre lien de parrainage unique.
Partagez votre lien
Blog, YouTube, forum Bubble, réseaux sociaux, tutoriels ou directement avec les clients.
Gagnez des commissions
Commission récurrente pour la durée de vie de l'abonnement de chaque utilisateur référé.
Soyez payé
Demandez un paiement par virement bancaire ou PayPal lorsque le solde atteint le seuil minimum.
Prêt à rendre votre application multilingue ?
Installez le plugin gratuit, créez un projet, collez votre clé API — et votre application Bubble parle toutes les langues.