Skip to content

Localisation

Pour les entreprises avec des clients dans de nombreux pays, gérer la localisation tôt dans votre parcours Braze peut faire gagner du temps et des ressources à votre entreprise.

Fonctionnement

Une fois que vous avez intégré le SDK de Braze, les informations locales des appareils des utilisateurs sont automatiquement collectées. L’emplacement contient l’identifiant de langue et de région. Cette information est disponible dans l’outil de segmentation de Braze sous Pays et langue.

Gestion de la traduction

Envisagez les approches suivantes pour gérer vos traductions.

Un modèle unique pour tous

Dans cette approche, la localisation est appliquée à un seul modèle dans Braze à l’aide de Liquid. Après l’envoi, le tableau de bord fournit des analyses de campagne agrégées. L’engagement au niveau de l’utilisateur peut être mesuré à l’aide d’entonnoirs de segmentation personnalisés, par exemple en combinant les filtres Pays et Campagne reçue.

Un modèle par pays

Cette approche permet de séparer les modèles en différents lieux d’envoi. Après l’envoi, le tableau de bord présente des analyses d’envoi basées sur chaque pays séparément, et tout événement Currents au niveau de l’utilisateur en aval sera également lié à une campagne spécifique.

  • Les modèles bénéficient de la mise en place de tags à des fins de maintenance et de suivi.
  • Les campagnes peuvent hériter des configurations du même modèle Braze et des blocs de contenu (tels que les modèles d’e-mail qui contiennent Liquid).
  • Les campagnes et les modèles préexistants peuvent être dupliqués pour permettre un délai de rentabilité plus rapide.

Un voyage pour tous

Dans cette approche, la localisation est gérée au sein de Canvas Journeys et Liquid pour définir les envois de messages pour chaque utilisateur.

Après l’envoi d’un canvas, le tableau de bord fournit une analyse agrégée du canvas, tandis que l’engagement au niveau de l’utilisateur peut être mesuré via des entonnoirs de segments personnalisés, tels que la combinaison des filtres Pays et [Étape du canvas reçu.

Un voyage par pays

Dans cette approche, le générateur de parcours Canvas offre la flexibilité de créer des parcours utilisateurs via plusieurs composants Canvas. Ces composants peuvent être dupliqués au niveau des composants et de l’ensemble du parcours.

La localisation peut être réalisée à l’aide des méthodes suivantes :

  • Des Canvas séparés par pays, ce qui garantit que les parcours utilisateur complexes sont définis en haut de l’entonnoir à l’aide de filtres d’audience
  • Des parcours utilisateurs sur mesure par pays, la mise en œuvre de parcours d’audience pour segmenter intuitivement les utilisateurs à grande échelle pour chaque parcours en créant des fils de messages distincts pour chaque pays dans un seul Canvas.

Une fois envoyé, le tableau de bord fournit des analyses/analytiques dynamiques par pays et au sein des événements Currents au niveau de l’utilisateur, en fonction de l’emplacement/localisation actuel du client.

Envoi de messages traduits

Pour envoyer des messages personnalisés en fonction de la langue ou du lieu de résidence de l’utilisateur, utilisez l’une des méthodes suivantes :

Vous pouvez coller manuellement votre contenu dans le corps de votre message et utiliser Liquid pour afficher conditionnellement la bonne langue au destinataire. Pour ce faire :

  1. Composez votre message, puis sélectionnez Langue pour générer une logique conditionnelle liquide pour chacune des langues sélectionnées.
  2. Vous pouvez utiliser le modèle de liquide suivant pour vous aider à créer votre message. Pour chaque champ ayant une modélisation, vous devez saisir les variations après le segment entre crochets de modélisation. La variation doit correspondre au code de langue référencé entre crochets avant lui.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     {% if ${language} == 'en' %}
     This is a message in English from Braze!
     {% elsif ${language} == 'es' %}
     Este es un mensaje en español de Braze !
     {% elsif ${language} == 'zh' %}
     这是一条来自Braze的中文消息。
     {% else %}
     This is a message from Braze! This will go to anyone who does not match the other specified languages!
     {% endif %}
    
  3. Testez votre message avant de l’envoyer en saisissant l’ID d’un utilisateur ou un e-mail pour vérifier comment un message apparaîtrait à une personne en fonction de sa langue.

Les blocs de contenu Braze sont des blocs de contenu réutilisables. Lorsqu’un bloc est modifié, toutes les références à ce bloc sont modifiées. Par exemple, les mises à jour de l’en-tête ou du pied de page d’un e-mail seront répercutées dans tous les e-mails ou dans les traductions en interne. Ces blocs peuvent également être créés et mis à jour à l’aide de l’API REST, et les utilisateurs peuvent charger des traductions par programmation.

Lors de la création d’une campagne dans le tableau de bord, les blocs de contenu peuvent être référencés à l’aide d’une balise {{content_blocks.${name_of_content_block}}} Ces blocs peuvent contenir toutes les traductions logées dans une logique conditionnelle pour chaque langue, comme indiqué dans l’option 1, ou un bloc séparé pour chaque langue peut être utilisé.

Les blocs de contenu peuvent également être utilisés comme processus de gestion de la traduction où le contenu qui nécessite une traduction est hébergé dans un bloc de contenu, récupéré, traduit, puis mis à jour :

  1. Créez manuellement un bloc de contenu dans le tableau de bord avec la balise « Nécessite une traduction ».
  2. Votre service effectue une extraction nocturne de tous les blocs de contenu à l’aide de l’endpoint /content_blocks/list.
  3. Votre service récupère les détails de chaque bloc de contenu via l’endpoint /content_blocks/info afin d’identifier les blocs tagués pour traduction.
  4. Votre service de traduction traduit le corps de tous les blocs de contenu indiquant « Nécessite une traduction ».
  5. Votre service utilise l’endpoint /content_block/update pour mettre à jour le contenu traduit et l’étiquette avec la mention « Traduction terminée ».

Les catalogues vous permettent d’accéder aux données des objets JSON importés via l’API et les fichiers CSV afin d’enrichir vos messages, de manière similaire aux attributs personnalisés ou aux propriétés d’événements personnalisés via Liquid. Par exemple :

Créez un catalogue à l’aide de l’appel API suivant :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
curl --location --request POST 'https://your_api_endpoint/catalogs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
 "catalogs": [
   {
     "name": "translations",
     "description": "My localization samples",
     "fields": [
       {
         "name": "id",
         "type": "string"
       },
       {
         "name": "context",
         "type": "string"
       },
       {
         "name": "language",
         "type": "string"
       },
       {
         "name": "body",
         "type": "string"
       }
     ]
   }
 ]
}'

Ajoutez des éléments à l’aide de l’appel API suivant :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
curl --location --request POST 'https://your_api_endpoint/catalogs/translations/items' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
 "items": [
   {
     "id": "1",
     "context": "1",
     "language": "en",
     "body": "Hey"
   },
   {
     "id": "2",
     "context": "1",
     "language": "es",
     "body": "Hola"
   },
   {
     "id": "3",
     "context": "1",
     "language": "pt",
     "body": "Oi"
   },
   {
     "id": "4",
     "context": "1",
     "language": "de",
     "body": "Hallo"
   }
 ]
}'

Créez un fichier CSV au format suivant :

Ces éléments du catalogue peuvent ensuite être référencés à l’aide de la personnalisation, illustrée ci-dessous, ou de sélections qui vous permettent de créer des groupes de données.

1
2
3
{% catalog_items translations 1 %}
{{items[0].body}} 
//returns “Hey”

Ajoutez et utilisez des locales dans votre message pour cibler des utilisateurs dans différentes langues, le tout au sein d’une même campagne ou d’un même Canvas pour les canaux e-mail ou push. Pour une présentation complète, reportez-vous à Locales dans les messages e-mail ou Locales dans les messages push.

De nombreux partenaires de Braze proposent des solutions de localisation, notamment Transifex et Crowdin. Généralement, les utilisateurs se servent de la plateforme aux côtés d’une équipe interne et d’une agence de traduction. Ces traductions y sont ensuite téléchargées et deviennent accessibles via l’API REST. Ces services s’appuient également souvent sur le contenu connecté, ce qui permet aux utilisateurs de récupérer les traductions via l’API.

Par exemple, les appels de contenu connecté suivants font appel à Transifex et Crowdin pour récupérer une traduction, en s’appuyant sur {{${language}}} afin d’identifier la bonne traduction pour un utilisateur donné. Cette traduction est ensuite enregistrée dans le bloc JSON « chaînes » et référencée.

1
2
{% connected_content https://www.transifex.com/api/2/project/example/resource/example/translation/{{${language}}}/strings :basic_auth semc :save strings %}
{{strings[0].translation}}
1
2
{% connected_content https://api.crowdin.com/api/project/braze-test/export-file?key=you_api_key&language={{${language}}}&file=test.json&export_translated_only=1 :save response %}
{{response.value_1}}

Hébergez les traductions dans une feuille de calcul, puis utilisez l’une des méthodes suivantes pour envoyer votre message dans la langue concernée.

Vous pouvez avec une agence de traduction stocker les traductions dans une feuille de calcul Google, puis interroger ce contenu à l’aide de Braze Connected Content. Lorsque vous envoyez un message, la traduction pertinente pour chaque utilisateur sera intégrée dans le corps de votre campagne en fonction de la langue sélectionnée.

Cette option offre une méthode alternative pour transformer Google Sheets en objets JSON interrogés à l’aide du Contenu connecté. En transformant une feuille de calcul en API JSON via SheetDB, vous pouvez choisir parmi plusieurs niveaux d’abonnement en fonction de la cadence des appels à l’API.

La structure de la feuille de calcul suit les étapes de l’option 4, mais SheetDB fournit également des filtres supplémentaires pour interroger les objets.

Certains utilisateurs préféreront peut-être mettre en œuvre SheetDB avec moins de dépendances Liquid et Connected Block en implémentant la méthode de recherche de SheetDB dans les appels de requête GET pour filtrer les objets JSON sur la base de l’étiquette Liquid {{${language}}} afin de renvoyer automatiquement les résultats pour une seule langue plutôt que de créer de grands blocs conditionnels.

Étape 1 : Formater la Google Sheet

Tout d’abord, créez la Google Sheet de sorte que les langues soient des objets différents :

Étape 2 : Utiliser la balise Liquid de langue dans un appel de Contenu Connecté

Ensuite, implémentez l’étiquette Liquid {{${language}}} dans un appel de contenu connecté. Notez que SheetDB génère automatiquement le site sheet_id lors de la création de la feuille de calcul.

1
{% connected_content https://sheetdb.io/api/v1/[sheet_id]/search?language={{${language}}} :save result%}

Étape 3 : Modélisez vos messages

Enfin, utilisez le Liquid pour modéliser vos messages :

1
2
{{result[0].title1}} //returns “Hey”
{{result[0].title2}} //returns “Hey2”
Considérations
  • Le champ {{${language}}} doit être défini pour tous les utilisateurs ; dans le cas contraire, un bloc conditionnel Liquid doit être fonctionnalité en tant que traitement de repli pour les utilisateurs ne disposant pas d’une langue.
  • La modélisation des données dans Google Sheets doit suivre un autre segment vertical axé sur la langue plutôt que d’avoir des objets Message.
  • SheetDB propose un compte gratuit limité et plusieurs options payantes qu’il convient d’envisager en fonction de votre stratégie de campagne.
  • Les appels de contenu connecté peuvent être mis en cache. Nous vous recommandons de mesurer la cadence prévue des appels à l’API et d’étudier une autre approche consistant à appeler l’endpoint principal de SheetDB au lieu d’utiliser la méthode de recherche.
CETTE PAGE A-T-ELLE ÉTÉ UTILE?
New Stuff!