Este guia explica como definir o idioma de um usuário no OneSignal e enviar mensagens no idioma preferido dele através de notificações push, emails e mensagens in-app.
Definir idioma do usuário
O OneSignal define automaticamente a propriedade language a partir do idioma do dispositivo quando um usuário é criado pela primeira vez usando os SDKs web ou mobile.
Você também pode definir ou atualizar manualmente o idioma do usuário usando o código de idioma de 2 letras ISO 639-1 com:
- O método
setLanguage do SDK.
- O campo
language nas APIs Create user ou Update user.
- A coluna
language no Importador CSV.
Enviar mensagens em diferentes idiomas
Use as abas abaixo para visualizar opções de localização por canal de mensagem.
Notificações Push
Email
Mensagens in-app
SMS
Envio pelo painel
Em Messages > Push > New Message ou Templates, clique em Add Languages. Escolha entre:Opção 1: Caixas de seleção
Selecione os idiomas que você suporta. Qualquer idioma não selecionado voltará para Any/English.Opção 2: Importar conteúdo de idioma
Use o modelo fornecido para formatar a mensagem em cada idioma.Copie e cole o conteúdo de volta no campo “Add Languages”.Visualize o conteúdo para verificar novamente, insira o conteúdo e novas abas aparecerão no editor com o conteúdo designado preenchido.Opção 3: Conteúdo Dinâmico
Use Conteúdo Dinâmico que envolve criar e fazer upload de um arquivo CSV com os idiomas que você suporta.Solução de problemas
- Inglês obrigatório: Inclua uma linha para
en como padrão.
- Use cabeçalhos corretos:
language_code, title, subtitle, message
- Valores separados por vírgula: Garanta formatação CSV adequada.
- Idioma não suportado: Se não estiver listado na IU ou modelo, não é suportado. Use a próxima melhor opção e entre em contato com
support@onesignal.com.
O editor do painel usa um campo HTML padrão. Caracteres especiais como % podem causar problemas de exibição em idiomas RTL. Adicione marcas RLM após esses caracteres para corrigir problemas de formatação.
Envio por API
Os campos contents e headings suportam vários idiomas: {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
Envio pelo painel
Em Messages > Email > New Message ou Templates, escolha entre:Opção 1: Segmentos
- Crie um segmento para cada idioma.
- Crie um template por idioma.
- Envie cada um para seu segmento correspondente.
Opção 2: Sintaxe Liquid
Use sintaxe Liquid e substituição de propriedade ou tag para criar declarações condicionais na mensagem e renderizar o conteúdo apropriado com base no idioma do usuário.{% assign language = subscription.language %}
{% if language == 'fr' %}
Bonjour {{ name }}!
{% elsif language == 'es' %}
Hola {{ name }}!
{% else %}
Hi {{ name }}!
{% endif %}
Opção 3: Conteúdo Dinâmico
Use Conteúdo Dinâmico que envolve criar e fazer upload de um arquivo CSV com os idiomas que você suporta.
Envio por API
Usando a API Create message, você pode:
- Direcionar segmentos ou filtros de idioma como faria com o painel.
- Criar Templates de mensagem com sintaxe Liquid utilizando
custom_data, substituição de propriedade ou tag. Consulte Personalização de Mensagens para mais detalhes sobre essas opções.
Exemplo de personalização em massa com 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" }
}
}
}
Cliente vê:
- “Hi John, you have 150 points. Your level is Gold.”
- “Hi Sarah, you have 200 points. Your level is Platinum.”
Painel - Segmentos
Para enviar uma Mensagem In-App específica de idioma para cada idioma que você precisa suportar:
- Crie um segmento para cada idioma.
- Crie uma mensagem in-app por idioma.
- Envie cada uma para seu segmento correspondente.
Substituição de tag
Use sintaxe Liquid e substituição de tag para criar declarações condicionais na mensagem e renderizar o conteúdo apropriado com base em tags.Apenas a substituição de Tag é suportada para mensagens 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 %}
Envio pelo painel
Em Messages > SMS > New Message ou Templates, escolha entre:Opção 1: Segmentos
- Crie um segmento para cada idioma.
- Crie um template por idioma.
- Envie cada um para seu segmento correspondente.
Opção 2: Conteúdo Dinâmico
Use Conteúdo Dinâmico que envolve criar e fazer upload de um arquivo CSV com os idiomas que você suporta.
Envio por API
Os campos contents e headings suportam vários idiomas: {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
Idiomas suportados
O código de idioma mapeia para a propriedade de usuário language no formato de código de 2 letras ISO 639-1. Suportamos os seguintes códigos de idioma.
Se o código de idioma não estiver incluído no pop-up e template CSV, então este idioma não é suportado. Recomendamos usar o próximo melhor idioma e nos enviar uma solicitação de produto para support@onesignal.com
| Language | Language Code |
| English | en |
| Arabic | ar |
| Azerbaijani | az |
| Bosnian | bs |
| Catalan | ca |
| Chinese (Simplified) | zh-Hans |
| Chinese (Traditional) | zh-Hant |
| Croatian | hr |
| Czech | cs |
| Danish | da |
| Dutch | nl |
| Estonian | et |
| Finnish | fi |
| French | fr |
| Georgian | ka |
| Bulgarian | bg |
| German | de |
| Greek | el |
| Hindi | hi |
| Hebrew | he |
| Hungarian | hu |
| Indonesian | id |
| Italian | it |
| Japanese | ja |
| Korean | ko |
| Latvian | lv |
| Lithuanian | lt |
| Malay | ms |
| Norwegian | nb |
| Persian | fa |
| Polish | pl |
| Portuguese | pt |
| Punjabi | pa |
| Romanian | ro |
| Russian | ru |
| Serbian | sr |
| Slovak | sk |
| Spanish | es |
| Swedish | sv |
| Thai | th |
| Turkish | tr |
| Ukrainian | uk |
| Vietnamese | vi |