Volver

gt-cli@2.9.0

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

Resumen

La CLI de gt ahora es compatible con Twilio Content JSON como formato de archivo. Si usas el 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 Twilio Content 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 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 a través de 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 existe una única fuente de verdad 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.

Paso a paso

Supongamos que estás creando un flujo de atención 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 variable {{1}}, los campos id y las claves estructurales no lo son.

Paso 1: Configura

Agrega twilioContentJson a la configuración del archivo gt.config.json:

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

El marcador [locale] en la ruta include le indica al 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 traducidos se guardan en twilio/es/, twilio/fr/, etc.

Paso 2: translate

npx gt@latest translate

Las traducciones se generan para cada configuración regional definida. 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 puede cargarse directamente en la API de Twilio Content como una nueva plantilla para una configuración regional específica.

Enlaces