Skip to content

Localización

Para las empresas con clientes en muchos países, gestionar la localización de forma temprana en tu recorrido con Braze puede ahorrar tiempo y recursos a tu empresa.

Cómo funciona

La información de configuración regional se almacena en el perfil de un usuario a partir de los datos que recopilas mediante un SDK de Braze (automáticamente) o la REST API. La configuración regional contiene el idioma y un identificador de región. Esta información está disponible en la herramienta de segmentación de Braze en País e Idioma.

Gestión de traducciones

Considera los siguientes enfoques para gestionar tus traducciones.

Una plantilla para todos

En este enfoque, la localización se aplica a una única plantilla en Braze utilizando Liquid. Después del envío, el dashboard proporciona análisis agregados de la Campaign. La interacción a nivel de usuario se puede medir mediante embudos de Segment personalizados, por ejemplo, combinando los filtros País y Campaign recibida.

Una plantilla por país

Este enfoque separa las plantillas en diferentes configuraciones regionales de envío. Después del envío, el dashboard muestra los análisis de envío basados en cada país por separado, y cualquier evento de Currents a nivel de usuario posterior también estará vinculado a una Campaign específica.

Un recorrido para todos

En este enfoque, la localización se gestiona dentro de los conceptos básicos de Canvas y Liquid para definir la mensajería para cada usuario.

Después de enviar un Canvas, el dashboard proporciona análisis de Canvas agregados, mientras que la interacción a nivel de usuario se puede medir mediante embudos de Segment personalizados, como la combinación de los filtros País y Paso de Canvas recibido.

Un recorrido por país

En este enfoque, el constructor de recorridos de Canvas proporciona la flexibilidad de crear recorridos de usuario a través de múltiples componentes de Canvas. Estos componentes se pueden duplicar a nivel de componente y de recorrido general.

La localización se puede lograr con los siguientes métodos:

  • Canvas separados por país, esto asegura que los recorridos de usuario complejos se definan en la parte superior del embudo utilizando filtros de audiencia
  • Recorridos de usuario personalizados por país, la implementación de Rutas de audiencia para segmentar intuitivamente a los usuarios a gran escala para cada recorrido creando hilos de mensajes separados para cada país en un solo Canvas

Una vez enviado, el dashboard proporciona análisis dinámicos por país y dentro de los eventos de Currents a nivel de usuario basados en la ubicación actual del cliente.

Envío de mensajes traducidos

Para enviar mensajes personalizados basados en el idioma, la configuración regional o los atributos personalizados de un usuario, utiliza uno de los siguientes métodos.

Etiquetas de Liquid de traducción (recomendado)

Braze admite una etiqueta de Liquid {% translation salutation %}Hello!{% endtranslation %} para dirigirse a los usuarios en diferentes idiomas con un solo mensaje.

Para un tutorial completo, consulta la guía sobre el uso de etiquetas de traducción.

Enfoques alternativos

Puedes pegar manualmente tu contenido en el cuerpo de tu mensaje y usar Liquid para mostrar condicionalmente el idioma correcto al destinatario. Para hacer esto:

  1. Redacta tu mensaje, luego selecciona Idioma para generar lógica condicional de Liquid para cada uno de tus idiomas seleccionados.
  2. Puedes usar la siguiente plantilla de Liquid para ayudar a construir tu mensaje. Para cada campo con plantilla, debes introducir las variaciones después del segmento entre corchetes de la plantilla. La variación debe corresponder al código de idioma referenciado en los corchetes antes de ella.

    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. Prueba tu mensaje antes de enviarlo introduciendo el ID o correo electrónico de un usuario para comprobar cómo aparecería un mensaje a una persona dependiendo de su idioma.

Los Content Blocks de Braze son bloques de contenido reutilizables. Cuando se modifica un bloque, todas las referencias a ese bloque cambian. Por ejemplo, las actualizaciones en un encabezado o pie de página de correo electrónico se reflejarán en todos los correos electrónicos o para alojar traducciones. Estos bloques también se pueden crear y actualizar usando la REST API, y los usuarios pueden cargar traducciones de forma programática.

Al crear una Campaign en el dashboard, se puede hacer referencia a los Content Blocks usando la etiqueta {{content_blocks.${name_of_content_block}}}. Estos bloques podrían contener todas las traducciones alojadas dentro de lógica condicional para cada idioma, como se muestra en la opción 1, o se puede usar un bloque separado para cada idioma.

Los Content Blocks también se pueden utilizar como un proceso de gestión de traducciones donde el contenido que requiere traducción se aloja dentro de un Content Block, se obtiene, se traduce y luego se actualiza:

  1. Crea manualmente un Content Block en el dashboard con la etiqueta “Needs Translation”.
  2. Tu servicio realiza una obtención nocturna de todos los Content Blocks usando el punto de conexión /content_blocks/list.
  3. Tu servicio obtiene detalles de cada Content Block a través del punto de conexión /content_blocks/info para ver qué bloques están etiquetados para traducción.
  4. Tu servicio de traducción traduce el cuerpo de todos los Content Blocks con “Needs Translation”.
  5. Tu servicio llama al punto de conexión /content_block/update para actualizar el contenido traducido y actualizar la etiqueta a “Translation Complete”.

Los Catálogos te permiten acceder a datos de objetos JSON importados a través de API y archivos CSV para enriquecer tus mensajes, de forma similar a los atributos personalizados o las propiedades de eventos personalizados a través de Liquid. Por ejemplo:

Crea un catálogo a través de la siguiente llamada a la API:

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"
       }
     ]
   }
 ]
}'

Añade elementos a través de la siguiente llamada a la API:

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"
   }
 ]
}'

Crea un CSV en el siguiente formato:

Estos elementos del catálogo se pueden referenciar usando personalización, como se muestra a continuación, o selecciones que te permiten crear grupos de datos.

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

Muchos socios de Braze ofrecen soluciones de localización, incluyendo Transifex y Crowdin. Normalmente, los usuarios utilizan la plataforma junto con un equipo interno y una agencia de traducción. Estas traducciones se cargan allí y luego son accesibles a través de la REST API. Estos servicios también suelen aprovechar el contenido conectado, lo que permite a los usuarios obtener las traducciones a través de la API.

Por ejemplo, las siguientes llamadas de contenido conectado llaman a Transifex y Crowdin para obtener una traducción, aprovechando {{${language}}} para identificar la traducción correcta para un usuario determinado. Esta traducción se guarda luego en el bloque JSON “strings” y se referencia.

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

Aloja las traducciones en una hoja de cálculo y luego usa uno de los siguientes métodos para enviar tu mensaje en el idioma correspondiente.

Puedes trabajar con una agencia de traducción para almacenar traducciones en una hoja de cálculo de Google y luego consultar este contenido usando el contenido conectado de Braze. Cuando envías un mensaje, la traducción correspondiente para cada usuario se incorporará al cuerpo de tu Campaign según su idioma seleccionado.

Esta opción proporciona un método alternativo para transformar Google Sheets en objetos JSON consultados a través de contenido conectado. Al convertir una hoja de cálculo en una API JSON a través de SheetDB, puedes elegir entre múltiples niveles de suscripción dependiendo de la cadencia de las llamadas a la API.

La estructura de la hoja de cálculo sigue los pasos de la opción 4, pero SheetDB también proporciona filtros adicionales para consultar los objetos.

Algunos usuarios pueden preferir implementar SheetDB con menos dependencias de Liquid y bloques conectados implementando el método de búsqueda de SheetDB en llamadas de solicitud GET para filtrar los objetos JSON basándose en la etiqueta de Liquid {{${language}}} para devolver automáticamente los resultados de un solo idioma en lugar de construir grandes bloques condicionales.

Paso 1: Formatea la hoja de Google

Primero, construye la hoja de Google de modo que los idiomas sean objetos diferentes:

Paso 2: Usa la etiqueta de Liquid de idioma en una llamada de contenido conectado

A continuación, implementa la etiqueta de Liquid {{${language}}} dentro de una llamada de contenido conectado. Ten en cuenta que SheetDB generará automáticamente el sheet_id al crear la hoja de cálculo.

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

Paso 3: Crea plantillas para tus mensajes

Por último, usa Liquid para crear plantillas de tus mensajes:

1
2
{{result[0].title1}} //returns “Hey”
{{result[0].title2}} //returns “Hey2”
Consideraciones
  • El campo {{${language}}} debe estar definido para todos los usuarios; de lo contrario, se debe incluir un bloque condicional de Liquid como controlador alternativo para los usuarios sin un idioma.
  • El modelado de datos dentro de Google Sheets debe seguir una estructura vertical orientada por idioma, a diferencia de tener objetos de mensaje.
  • SheetDB ofrece una cuenta gratuita limitada y múltiples opciones de pago que deben considerarse según tu estrategia de Campaign.
  • Las llamadas de contenido conectado se pueden almacenar en caché. Recomendamos medir la cadencia proyectada de las llamadas a la API e investigar un enfoque alternativo de llamar al punto de conexión principal de SheetDB en lugar de usar el método de búsqueda.
New Stuff!