Localisation
Pour les entreprises ayant des clients dans de nombreux pays, la prise en charge de la localisation dès le début de votre parcours Braze peut enregistrer des gains de temps et de ressources.
Comment cela fonctionne-t-il ?
Une fois que vous avez intégré le SDK de Braze, les informations locales des appareils des utilisateurs sont automatiquement collectées. La locale contient la langue et un identifiant 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/analytiques agrégées de la campagne (en cas d’utilisation). 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.
| Avantages | Considérations | |
|---|---|---|
| - Approche centralisée - Réduction du temps nécessaire pour créer un e-mail, plus besoin de le faire plusieurs fois. |
- Créer un rapport manuel - Le rapport de campagne présente des indicateurs agrégés plutôt que des indicateurs par pays. - Nécessité de tester minutieusement le liquide pour s’assurer qu’il se remplit comme prévu - Selon la manière dont vous introduisez la valeur du pays ou le nombre de comtés que vous avez mis en place, il peut être difficile de tester chaque pays. - Il est plus difficile de planifier des envois à des heures précises, quel que soit le fuseau horaire. - Plus difficile à utiliser si vous souhaitez envoyer un contenu distinct par pays. |
|
| -– | -– | -– |
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/analytiques 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.
| Avantages | Considérations |
|---|---|
| - Extensible à plusieurs emplacements/localisations - Rapports sur les chiffres d’affaires par pays au sein de Braze (par campagne, par exemple). - Flexibilité en cas de contenu radicalement différent d’un pays à l’autre |
- Nécessité d’une structuration stratégique - Plus d’efforts pour créer (par exemple, des campagnes distinctes pour chaque pays) |
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/analytique agrégée du Canvas, tandis que l’engagement au niveau de l’utilisateur peut être mesuré via des entonnoirs de segmentation personnalisés, tels que la combinaison des éléments suivants Pays et Étape du canvas reçu filtres.
| Avantages | Considérations |
|---|---|
| - Approche centralisée - Réduction du temps nécessaire pour créer un e-mail - plus besoin de créer un e-mail plusieurs fois. |
- Créer un rapport manuel - Le rapport Canvas présente des indicateurs agrégés plutôt que des indicateurs par pays. - Nécessité de tester minutieusement le liquide pour s’assurer qu’il se remplit comme prévu - Selon la manière dont vous introduisez la valeur du pays ou le nombre de comtés que vous avez mis en place, il peut être difficile de tester chaque pays. - Il est plus difficile de planifier des envois à des heures précises, quel que soit le fuseau horaire. - Plus difficile à utiliser si vous souhaitez envoyer un contenu distinct par pays. |
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 éléments peuvent être reproduits au niveau des composants et de l’ensemble du voyage.
La localisation peut être réalisée à l’aide des méthodes suivantes :
- Canevas séparés par pays, cela permet de s’assurer que les parcours utilisateurs 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.
| Avantages | Considérations |
|---|---|
| - Rapports sur les chiffres d’affaires par pays au sein de Braze (par exemple par Canvas, variante ou étape). - Flexibilité en cas de contenu radicalement différent d’un pays à l’autre - Possibilité d’ajouter d’autres canaux dans le cadre du voyage à l’avenir |
- Nécessité d’une structuration stratégique - Plus d’efforts de création requis (par exemple, des étapes de messages distinctes pour chaque pays) - Les canvas peuvent devenir volumineux et difficiles à lire si vous avez des parcours personnalisés et complexes pour chaque pays dans un seul canvas. |
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 :
- Composez votre message, puis sélectionnez Langue pour générer une logique conditionnelle liquide pour chacune des langues sélectionnées.
-
Vous pouvez utiliser le modèle de liquide suivant pour vous aider à créer votre message. Pour chaque champ avec templating, vous devez saisir les variations après le segment de templating entre crochets. La variation doit correspondre au code linguistique référencé dans les parenthèses qui la précèdent.
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 %}
- Testez votre message avant de l’envoyer en saisissant l’ID ou l’e-mail d’un utilisateur pour vérifier comment un message apparaîtrait à une personne en fonction de sa langue.
Nous recommandons toujours d’inclure une déclaration {% else %} dans votre message. Alors que la plupart des utilisateurs verront l’envoi de messages pour leur langue spécifique, le texte sera visible pour ceux qui :
- Vous n’avez pas sélectionné de langue
- Vous avez une langue qui n’est pas prise en charge par Braze
- Disposer d’un appareil où la langue est indétectable
Les blocs de contenu de 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 maison. Ces blocs peuvent également être créés et mis à jour à l’aide de l’API REST, et les utilisateurs peuvent télécharger des traductions par programme.
Lorsque vous créez une campagne dans le tableau de bord, les blocs de contenu peuvent être référencés à l’aide de l’étiquette {{content_blocks.${name_of_content_block}}}. Ces blocs peuvent contenir toutes les traductions logées dans une logique conditionnelle pour chaque langue, comme le montre l’option 1, ou un bloc séparé pour chaque langue peut être utilisé.
Les blocs de contenu peuvent également être utilisés dans le cadre d’un processus de gestion de la traduction, où le contenu à traduire est hébergé dans un bloc de contenu, recherché, traduit, puis mis à jour :
- Créez manuellement un bloc de contenu dans le tableau de bord avec l’étiquette “Needs Translation”.
- Votre service effectue une extraction nocturne de tous les blocs de contenu à l’aide de l’endpoint
/content_blocks/list. - Votre service récupère les détails de chaque bloc de contenu via l’endpoint
/content_blocks/infopour voir quels blocs sont tagués pour la traduction. - Votre service de traduction traduit le corps de tous les blocs de contenu “à traduire”.
- Votre service se connecte à l’endpoint
/content_block/updatepour mettre à jour le contenu traduit et mettre à jour l’étiquette avec la mention “Translation Complete”.
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 via 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 via 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 | corps |
|---|---|---|---|
| 1 | 1 | fr | Hé |
| 2 | 1 | es | Hola |
| 3 | 1 | pt | Oi |
| 4 | 1 | de | Bonjour |
| 5 | 2 | fr | Hé |
| 6 | 2 | es | Hola |
| 7 | 2 | pt | Oi |
| 8 | 2 | de | Bonjour |
| 9 | 3 | fr | Hé |
| 10 | 3 | es | Hola |
| 11 | 3 | pt | Oi |
| 12 | 3 | de | Bonjour |
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”
De nombreux partenaires de Braze proposent des solutions de localisation, notamment Transifex et Crowdin. En général, 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 sont ensuite accessibles via l’API REST. Ces services s’appuient aussi souvent sur le contenu connecté, ce qui permet aux utilisateurs d’aller chercher 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}}} pour identifier la bonne traduction pour un utilisateur donné. Cette traduction est ensuite enregistrée dans le bloc JSON “chaînes de caractères” 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.
L’API de Google Sheets est limitée à 500 requêtes par 100 secondes et par projet. Les appels au contenu connecté peuvent être mis en cache, mais cette solution n’est pas extensible pour une campagne à fort trafic.
Cette option fournit une méthode alternative pour transformer les feuilles Google en objets JSON interrogés via le 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 feuille Google
Tout d’abord, créez la feuille Google de manière à ce 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 l’étiquette Liquid dans un appel au contenu connecté
Ensuite, mettez en œuvre l’étiquette Liquid {{${language}}} dans le cadre d’un appel au 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 Liquid pour la mise en forme de 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 une verticale différente, axée sur le langage, par opposition aux objets messages.
- 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 au 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.
Modifier cette page sur GitHub