Ce guide explique comment définir la langue d’un utilisateur dans OneSignal et envoyer des messages dans leur langue préférée pour les notifications push, les emails et les messages in-app.
Définir la langue de l’utilisateur
OneSignal définit automatiquement la propriété language à partir de la langue de l’appareil lorsqu’un utilisateur est créé pour la première fois via les SDK web ou mobile.
Vous pouvez également définir ou mettre à jour manuellement la langue de l’utilisateur en utilisant le code de langue à 2 lettres ISO 639-1 avec :
- La méthode
setLanguage du SDK.
- Le champ
language dans les API Créer un utilisateur ou Mettre à jour un utilisateur.
- La colonne
language dans l’Importateur CSV.
Envoyer des messages en différentes langues
Utilisez les onglets ci-dessous pour voir les options de localisation par canal de messagerie.
Notifications push
Email
Messages in-app
SMS
Envoi depuis le tableau de bord
Depuis Messages > Push > Nouveau message ou Modèles, cliquez sur Ajouter des langues. Choisissez parmi :Option 1 : Cases à cocher
Sélectionnez les langues que vous prenez en charge. Toute langue non sélectionnée reviendra à Any/English.Option 2 : Importer le contenu linguistique
Utilisez le modèle fourni pour formater le message dans chaque langue.Copiez et collez le contenu dans le champ “Ajouter des langues”.Prévisualisez le contenu pour vérifier, insérez le contenu, et de nouveaux onglets apparaîtront dans l’éditeur avec le contenu désigné rempli.Option 3 : Contenu dynamique
Utilisez le Contenu dynamique qui implique la création et le téléchargement d’un fichier CSV avec les langues que vous prenez en charge.Dépannage
- Anglais requis : Incluez une ligne pour
en par défaut.
- Utilisez les en-têtes corrects :
language_code, title, subtitle, message
- Valeurs séparées par des virgules : Assurez-vous du formatage CSV approprié.
- Langue non prise en charge : Si elle n’est pas listée dans l’interface ou le modèle, elle n’est pas prise en charge. Utilisez la meilleure option suivante et contactez
support@onesignal.com.
L’éditeur du tableau de bord utilise un champ HTML standard. Les caractères spéciaux comme % peuvent causer des problèmes d’affichage dans les langues RTL. Ajoutez des marques RLM après ces caractères pour corriger les problèmes de formatage.
Envoi via API
Les champs contents et headings prennent en charge plusieurs langues : {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
Envoi depuis le tableau de bord
Depuis Messages > Email > Nouveau message ou Modèles, choisissez parmi :Option 1 : Segments
- Créez un segment pour chaque langue.
- Créez un modèle par langue.
- Envoyez chacun à son segment correspondant.
Option 2 : Syntaxe Liquid
Utilisez la syntaxe Liquid et la substitution de propriétés ou de tags pour créer des instructions conditionnelles dans le message et afficher le contenu approprié en fonction de la langue de l’utilisateur.{% assign language = subscription.language %}
{% if language == 'fr' %}
Bonjour {{ name }}!
{% elsif language == 'es' %}
Hola {{ name }}!
{% else %}
Hi {{ name }}!
{% endif %}
Option 3 : Contenu dynamique
Utilisez le Contenu dynamique qui implique la création et le téléchargement d’un fichier CSV avec les langues que vous prenez en charge.
Envoi via API
En utilisant l’API Créer un message, vous pouvez :
- Cibler des segments ou des filtres linguistiques comme vous le feriez avec le tableau de bord.
- Créer des modèles de messages avec la syntaxe Liquid en utilisant
custom_data, la substitution de propriétés ou de tags. Consultez Personnalisation des messages pour plus de détails sur ces options.
Exemple de personnalisation en masse avec custom_data :{% assign eid = message.custom_data.users[subscription.external_id] %}
Hi {{ eid.first_name }}, you have {{ eid.points }} points. Your level is {{ eid.level }}.
{
"app_id": "YOUR_APP_ID",
"template_id": "YOUR_TEMPLATE_ID",
"include_aliases": {
"external_id": ["user123", "user456"]
},
"custom_data": {
"users": {
"user123": { "first_name": "John", "points": "150", "level": "Gold" },
"user456": { "first_name": "Sarah", "points": "200", "level": "Platinum" }
}
}
}
Le client voit :
- “Hi John, you have 150 points. Your level is Gold.”
- “Hi Sarah, you have 200 points. Your level is Platinum.”
Tableau de bord - Segments
Pour envoyer un message in-app spécifique à une langue pour chaque langue que vous devez prendre en charge :
- Créez un segment pour chaque langue.
- Créez un message in-app par langue.
- Envoyez chacun à son segment correspondant.
Utilisez la syntaxe Liquid et la substitution de tags pour créer des instructions conditionnelles dans le message et afficher le contenu approprié en fonction des tags.Seule la substitution de tags est prise en charge pour les messages in-app.
language : german
first_name : Jon
{% assign lang = language%}
{% if lang == "english" %}
Good day {{first_name}}!
{%- elsif lang == 'german' -%}
Guten Tag {{first_name}}!
{%- elsif lang == 'spanish' -%}
Buenos Dias {{first_name}}!
{%- elsif lang == 'french' -%}
Bonjour {{first_name}}!
{% else %}
Hello {{first_name}}!
{% endif %}
Envoi depuis le tableau de bord
Depuis Messages > SMS > Nouveau message ou Modèles, choisissez parmi :Option 1 : Segments
- Créez un segment pour chaque langue.
- Créez un modèle par langue.
- Envoyez chacun à son segment correspondant.
Option 2 : Contenu dynamique
Utilisez le Contenu dynamique qui implique la création et le téléchargement d’un fichier CSV avec les langues que vous prenez en charge.
Envoi via API
Les champs contents et headings prennent en charge plusieurs langues : {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
Langues prises en charge
Le code de langue correspond à la propriété utilisateur language au format ISO 639-1 à 2 lettres. Nous prenons en charge les codes de langue suivants.
Si le code de langue n’est pas inclus dans la fenêtre contextuelle et le modèle CSV, alors cette langue n’est pas prise en charge. Nous recommandons d’utiliser la meilleure langue suivante et de nous envoyer une demande de produit à support@onesignal.com
| Langue | Code de langue |
|---|
| Anglais | en |
| Arabe | ar |
| Azéri | az |
| Bosniaque | bs |
| Catalan | ca |
| Chinois (simplifié) | zh-Hans |
| Chinois (traditionnel) | zh-Hant |
| Croate | hr |
| Tchèque | cs |
| Danois | da |
| Néerlandais | nl |
| Estonien | et |
| Finnois | fi |
| Français | fr |
| Géorgien | ka |
| Bulgare | bg |
| Allemand | de |
| Grec | el |
| Hindi | hi |
| Hébreu | he |
| Hongrois | hu |
| Indonésien | id |
| Italien | it |
| Japonais | ja |
| Coréen | ko |
| Letton | lv |
| Lituanien | lt |
| Malais | ms |
| Norvégien | nb |
| Persan | fa |
| Polonais | pl |
| Portugais | pt |
| Pendjabi | pa |
| Roumain | ro |
| Russe | ru |
| Serbe | sr |
| Slovaque | sk |
| Espagnol | es |
| Suédois | sv |
| Thaï | th |
| Turc | tr |
| Ukrainien | uk |
| Vietnamien | vi |