Skip to content

Localisation

Braze recueille automatiquement les informations d’emplacement des appareils de l’utilisateur après l’intégration du SDK. 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.

Consultez les ressources iOS et Android/FireOS suivantes pour obtenir des détails techniques sur la façon dont les paramètres régionaux sont reçus en fonction de votre plateforme.

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. L’article suivant répertorie les avantages des différentes approches d’orchestration dans les campagnes et les Canvas ainsi que les différentes façons dont les utilisateurs peuvent gérer la personnalisation dans leurs envois de message.

Orchestration

Campagne arrêtée

Dans l’approche « un modèle pour tous », la localisation est appliquée à un modèle unique 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.

L’approche « un modèle par pays » sépare les modèles en différents paramètres régionaux 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.

Canvas

Dans l’approche « Un parcours pour tous », la localisation est gérée dans les parcours Canvas et Liquid pour définir les envois de message 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.

Dans l’approche « un parcours par pays », le générateur de parcours Canvas offre la flexibilité de créer des parcours utilisateur à l’aide de plusieurs composants Canvas. Ces composants peuvent être dupliqués au niveau des composants et de l’ensemble du parcours.

La localisation peut être obtenue par les 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.

Personnalisation

Option 1 : Saisie manuelle

La saisie manuelle vous oblige à coller manuellement votre contenu dans le corps de votre message et à utiliser Liquid pour afficher de manière conditionnelle la langue correcte au destinataire.

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 %}

Pour ce faire, utilisez le format ci-dessus ou le tableau de bord de Braze :

  1. Lorsque vous composez votre message, sélectionnez le bouton Langue pour générer une logique conditionnelle liquide pour chaque langue sélectionnée.
  2. Après avoir inséré votre texte modélisé dans votre message, saisissez différentes variantes pour chaque langue. 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.
  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.

Option 2 : Blocs de contenu

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 ».

Option 3 : Catalogues

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 :

id contexte langue body
1 1 en
2 1 es Hola
3 1 pt Oi
4 1 de Hallo
5 2 en
6 2 es Hola
7 2 pt Oi
8 2 de Hallo
9 3 en
10 3 es Hola
11 3 pt Oi
12 3 de Hallo

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
4
{% catalog_items translations 1 %}
{{items[0].body}} 

//returns “Hey”

Option 4 : Ajouter un paramètre régional

Ajoutez et utilisez les paramètres locaux dans vos messages pour cibler les utilisateurs dans différentes langues au sein d’une même campagne e-mail ou d’un même Canvas.

Option 5 : Partenaires de localisation

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}}

Option 6 : Traductions dans une Google Sheet publique

Une autre option de traduction comprend le fait de les héberger dans Google Sheets. Souvent, cela peut être géré en partenariat avec une agence de traduction. Les traductions hébergées ici peuvent être interrogées à l’aide du Contenu connecté. La traduction pertinente pour un utilisateur en fonction de sa langue sera ensuite insérée dans le corps de la campagne au moment de l’envoi.

Option 7 : Transformer une feuille de calcul Google en API JSON via SheetDB

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 :

langue titre1 corps1 titre2 corps2
en Hey 1 Hey2 5
es Hola 2 Hola2 6
pt Oi 3 Oi2 7
de Hallo 4 Hallo2 8

É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!