gt-cli@2.9.0
概述
gt 命令行界面 (CLI) 现已支持将 Twilio Content JSON 作为文件格式处理。如果你使用 Twilio 的 Content Template Builder 通过 WhatsApp、SMS 或 RCS 发送结构化消息,现在也可以使用与你当前应用相同的 gt translate 工作流来翻译这些模板。
为什么这很重要
Twilio Content Templates 是用于定义结构化消息的 JSON 文件——包括带变量的文本、快速回复按钮,以及带媒体和操作的卡片。这些模板包含面向用户的字符串:按钮标签、正文文本、卡片标题。如果你要发送多种语言的消息,这些字符串就需要翻译。
目前的做法是通过 Twilio Console 或 API,手动为每种语言分别创建一个内容模板。每个模板都有自己的 SID、自己的审批流程,以及各自的维护成本。对于一条消息在不同语言中的具体内容,并没有一个统一的可信来源。
通过这次命令行界面 (CLI) 更新,你只需用默认语言编写一次模板,其余部分交给 gt translate 处理。
操作示例
假设你正在使用 Twilio 通过 WhatsApp 搭建客户支持流程。你有一个快速回复模板,用于向用户打招呼并提供三个选项:
{
"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?"
}
}
}body 字段和 actions 中的 title 值都是可翻译的字符串。{{1}} 变量占位符、id 字段以及结构键则不可翻译。
第 1 步:配置
在 gt.config.json 文件中添加 twilioContentJson 配置:
{
"defaultLocale": "en",
"locales": ["en", "es", "fr", "ja"],
"files": {
"twilioContentJson": {
"include": ["twilio/[locale]/**/*.json"]
}
}
}include 路径中的 [locale] 占位符用于告诉命令行界面 (CLI) 到哪里查找源文件,以及将翻译文件保存到哪里。源文件从 twilio/en/ 读取,翻译后的文件会保存到 twilio/es/、twilio/fr/ 等目录中。
第 2 步:翻译
npx gt@latest translate系统会为每个已配置的语言区域生成翻译。输出会保留 Twilio JSON 的结构——只有字符串值会变化。
西班牙语输出可能如下所示:
{
"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?"
}
}
}每个翻译后的文件都是有效的 Twilio Content JSON 模板,可作为新的特定语言区域模板直接上传到 Twilio Content API。