Atrás

gt-cli@2.9.0

Ernest McCarter avatarErnest McCarter
gt-cliv2.9.0twiliocontent-templatesi18nwhatsappsms

Descripción general

La CLI gt ahora admite Twilio Content JSON como formato de archivo. Si usas Content Template Builder de Twilio para enviar mensajes estructurados por WhatsApp, SMS o RCS, ahora puedes traducir esas plantillas con el mismo flujo de trabajo de gt translate que ya usas para tu aplicación.

Por qué esto importa

Las plantillas de contenido de Twilio son archivos JSON que definen mensajes estructurados: texto con variables, botones de respuesta rápida y tarjetas con contenido multimedia y acciones. Estas plantillas contienen cadenas de texto visibles para el usuario: etiquetas de botones, texto del cuerpo y títulos de tarjetas. Si envías mensajes en varios idiomas, esas cadenas deben traducirse.

El enfoque actual consiste en crear manualmente una plantilla de contenido independiente para cada idioma mediante la Consola o la API de Twilio. Cada plantilla tiene su propio SID, su propio ciclo de aprobación y su propia carga de mantenimiento. No hay una fuente única de referencia sobre lo que dice un mensaje en todos los idiomas.

Con esta actualización de la CLI, escribes la plantilla una sola vez en tu idioma predeterminado y dejas que gt translate se encargue del resto.

Guía paso a paso

Supongamos que estás creando un flujo de soporte al cliente por WhatsApp con Twilio. Tienes una plantilla de respuesta rápida que saluda al usuario y ofrece tres opciones:

{
  "friendly_name": "support_greeting",
  "language": "en",
  "variables": { "1": "Customer" },
  "types": {
    "twilio/quick-reply": {
      "body": "Hi, {{1}}. Thanks for contacting support. How can we help?",
      "actions": [
        { "title": "Check order status", "id": "order_status" },
        { "title": "Return an item", "id": "return_item" },
        { "title": "Speak with an agent", "id": "speak_agent" }
      ]
    },
    "twilio/text": {
      "body": "Hi, {{1}}. Thanks for contacting support. How can we help?"
    }
  }
}

Los campos body y los valores title de actions son cadenas traducibles. El marcador de posición de la variable {{1}}, los campos id y las claves estructurales no lo son.

Paso 1: Configura

Añade twilioContentJson a la configuración de tu archivo gt.config.json:

{
  "defaultLocale": "en",
  "locales": ["en", "es", "fr", "ja"],
  "files": {
    "twilioContentJson": {
      "include": ["twilio/[locale]/**/*.json"]
    }
  }
}

El marcador de posición [locale] en la ruta include indica a la CLI dónde encontrar los archivos de origen y dónde guardar las traducciones. Los archivos de origen se leen de twilio/en/ y los archivos traducidos se guardan en twilio/es/, twilio/fr/, etc.

Paso 2: Traducir

npx gt@latest translate

Se generan traducciones para cada configuración regional configurada. La salida conserva la estructura JSON de Twilio; solo cambian los valores de las cadenas.

La salida en español podría verse así:

{
  "friendly_name": "support_greeting",
  "language": "es",
  "variables": { "1": "Customer" },
  "types": {
    "twilio/quick-reply": {
      "body": "Hola, {{1}}. Gracias por contactar con soporte. ¿En qué podemos ayudarte?",
      "actions": [
        { "title": "Ver estado del pedido", "id": "order_status" },
        { "title": "Devolver un artículo", "id": "return_item" },
        { "title": "Hablar con un agente", "id": "speak_agent" }
      ]
    },
    "twilio/text": {
      "body": "Hola, {{1}}. Gracias por contactar con soporte. ¿En qué podemos ayudarte?"
    }
  }
}

Cada archivo traducido es una plantilla JSON válida de Twilio Content que se puede cargar directamente en la API de Twilio Content como una nueva plantilla específica de la configuración regional.

Enlaces