Ir al contenido

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 sola plantilla en Braze mediante Liquid. Tras el envío, el panel proporciona análisis agregados de la Campaign. La participación a nivel de usuario se puede medir mediante embudos de Segments personalizados, por ejemplo, combinando los filtros País y Campaign recibida.

Ventajas Consideraciones
- Enfoque centralizado
- Reducción del tiempo de creación de correos electrónicos, sin necesidad de crear un correo electrónico varias veces
- Creación manual de informes
- El informe de la Campaign muestra métricas agregadas en lugar de métricas por país
- Es necesario probar a fondo Liquid para asegurar que se rellena como se espera
- Dependiendo de cómo obtengas el valor del país o de cuántos países tengas configurados, puede ser complicado probar cada país
- Más difícil programar envíos en horarios específicos en distintas zonas horarias
- Más difícil de usar si quieres enviar contenido diferente por país.

Una plantilla por país

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

Ventajas Consideraciones
- Escalable a múltiples ubicaciones
- Informes de ingresos por país dentro de Braze (como por Campaign)
- Flexibilidad si el contenido varía drásticamente por país
- Requiere una estructuración estratégica
- Mayor esfuerzo de construcción requerido (como Campaigns separadas para cada país)

Un recorrido para todos

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

Tras el envío de un Canvas, el panel proporciona análisis de Canvas agregados, mientras que la participación a nivel de usuario se puede medir mediante embudos de Segments personalizados, como la combinación de los filtros País y Paso en Canvas recibido.

Ventajas Consideraciones
- Enfoque centralizado
- Reducción del tiempo de creación de correos electrónicos, sin necesidad de crear un correo electrónico varias veces.
- Creación manual de informes
- El informe de Canvas muestra métricas agregadas en lugar de métricas por país
- Es necesario probar a fondo Liquid para asegurar que se rellena como se espera
- Dependiendo de cómo obtengas el valor del país o de cuántos países tengas configurados, puede ser complicado probar cada país
- Más difícil programar envíos en horarios específicos en distintas zonas horarias
- Más difícil de usar si quieres enviar contenido diferente por país.

Un recorrido por país

En este enfoque, el constructor de recorridos de Canvas proporciona la flexibilidad de crear recorridos de usuario mediante múltiples componentes de Canvas. Estos componentes se pueden duplicar tanto a nivel de componente como de recorrido completo.

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

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

Una vez enviado, el panel 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.

Ventajas Consideraciones
- Informes de ingresos por país dentro de Braze (como por Canvas, variante o paso)
- Flexibilidad si el contenido varía drásticamente por país
- Posibilidad de añadir otros canales como parte del recorrido en el futuro
- Requiere una estructuración estratégica
- Mayor esfuerzo de construcción requerido (como pasos de mensaje separados para cada país)
- El Canvas puede volverse grande y difícil de leer si tienes recorridos personalizados y complejos para cada país en un solo Canvas.

Enviar mensajes traducidos

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

Etiquetas de traducción Liquid (recomendado)

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

Para un recorrido 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 hacerlo:

  1. Redacta tu mensaje, luego selecciona Idioma para generar lógica condicional Liquid para cada uno de los idiomas seleccionados.
  2. Puedes usar la siguiente plantilla Liquid para ayudarte 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 entre corchetes antes de ella.

     {% 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 el correo electrónico de un usuario para comprobar cómo aparecería un mensaje a una persona según su idioma.

Los Content Blocks de Braze son bloques de contenido reutilizables. Cuando un bloque se modifica, todas las referencias a ese bloque cambian. Por ejemplo, las actualizaciones en el encabezado o pie de página de un correo electrónico se reflejarán en todos los correos electrónicos, o para almacenar 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 construir una Campaign en el panel, se puede hacer referencia a los Content Blocks usando la etiqueta {{content_blocks.${name_of_content_block}}}. Estos bloques pueden contener todas las traducciones 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 almacena en un Content Block, se recupera, se traduce y luego se actualiza:

  1. Crea manualmente un Content Block en el panel con la etiqueta “Needs Translation”.
  2. Tu servicio realiza una recuperación nocturna de todos los Content Blocks usando el endpoint /content_blocks/list.
  3. Tu servicio obtiene los detalles de cada Content Block a través del endpoint /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 etiqueta “Needs Translation”.
  5. Tu servicio llama al endpoint /content_block/update para actualizar el contenido traducido y cambiar la etiqueta a “Translation Complete”.

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

Crea un catálogo mediante la siguiente llamada a la API:

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 mediante la siguiente llamada a la API:

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 con el siguiente formato:

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

Luego se puede hacer referencia a estos elementos del catálogo usando la personalización, como se muestra en el siguiente ejemplo, o las selecciones que te permiten crear grupos de datos.

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

Muchos partners de Braze ofrecen soluciones de localización, incluidos Transifex y Crowdin. Normalmente, los usuarios usan 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 entonces en el bloque JSON “strings” y se hace referencia a ella.

{% connected_content https://www.transifex.com/api/2/project/example/resource/example/translation/{{${language}}}/strings :basic_auth semc :save strings %}
{{strings[0].translation}}
{% 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}}

Almacena 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á en el cuerpo de tu Campaign según el 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 varios niveles de suscripción según 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 de contenido conectado, implementando el método de búsqueda de SheetDB en llamadas de solicitud GET para filtrar los objetos JSON según la etiqueta Liquid {{${language}}} para devolver automáticamente los resultados de un solo idioma en lugar de construir grandes bloques condicionales.

Paso 1: Da formato a la hoja de Google

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

language title1 body1 title2 body2
en Hey 1 Hey2 5
es Hola 2 Hola2 6
pt Oi 3 Oi2 7
de Hallo 4 Hallo2 8

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

A continuación, implementa la etiqueta 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.

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

Paso 3: Construye la plantilla de tus mensajes

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

{{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 Liquid como controlador alternativo para usuarios sin idioma.
  • El modelado de datos dentro de Google Sheets debe seguir una estructura vertical diferente basada en idiomas, en lugar 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 endpoint principal de SheetDB en lugar de usar el método de búsqueda.

Esta opción convierte una hoja de Google en una API JSON que puedes consultar con contenido conectado. Sheetlabs admite grandes volúmenes de consultas y ofrece niveles gratuitos y de pago.

Paso 1: Prepara tu hoja de traducciones en Google Sheets

Construye la hoja de Google de modo que cada fila sea un idioma. Por ejemplo:

language greeting title1 legal1
en Welcome! Your exclusive offer is here
fr Bienvenue! Votre offre exclusive est arrivée

Paso 2: Usa Sheetlabs para importar la hoja y crear una API

  1. Regístrate en Sheetlabs.
  2. Sigue las instrucciones de Sheetlabs para importar datos desde Google Sheets.
  3. Selecciona la hoja de cálculo que creaste en el paso 1.
  4. Selecciona Create a matching API.

Paso 3: Añade tu token de autenticación de Sheetlabs a Braze (opcional)

Si tu API de Sheetlabs es pública, omite este paso. Si requiere autenticación:

  1. Ve a la página My Account en Sheetlabs y copia tu token de API.
  2. Sigue los pasos en Autenticación de Braze con Basic Auth para crear una credencial de autenticación básica en Braze. Usa tu nombre de usuario de Sheetlabs (dirección de correo electrónico) y el token de API que copiaste.
  3. Guarda la credencial con un nombre como sheetlabs_creds.

Paso 4: Llama a la API de Sheetlabs desde contenido conectado

Añade una llamada de contenido conectado a Sheetlabs. Reemplaza /XXX/yourapi con la ruta de la API que creaste en el paso 2.

{% connected_content https://sheetlabs.com/XXX/yourapi?language={{${language}}} :save translations :basic_auth sheetlabs_creds %}

Paso 5: Construye la plantilla de tus mensajes

Usa Liquid para hacer referencia a los campos devueltos. Por ejemplo:

{{translations[0].greeting}} {{${first_name}}},
{{translations[0].body1}}

Consideraciones

  • Define el campo {{${language}}} para cada usuario que quieras asociar. Si un usuario no tiene un idioma configurado, incluye una alternativa con Liquid.
  • Las llamadas de contenido conectado se pueden almacenar en caché. Mide la cadencia proyectada de tu API al elegir un plan de Sheetlabs.

Para más información, consulta Uso de Sheetlabs con Braze.

New Stuff!