dialogflow-es - 更改 DialogFlow 机器人中的日/月语言

标签 dialogflow-es chatbot

我正在使用 DialogFlow 为一家意大利餐厅创建一个助手。

我已将语言设置为西类牙语,一切似乎都很顺利,但是当我显示预订的最终日期时,它以英语显示(附图中的周五和五月)。

可以更改吗? enter image description here

这是对餐 table 预订过程生成上述特定响应的代码:

function createBooking(agent) {
    let guests = agent.parameters.comensales;
    let time = new Date(agent.parameters.time);
    let date = new Date(agent.parameters.date);
    let bookingDate = new Date(date);
    var numeroReserva = Math.random().toString(16).slice(2, 8).toUpperCase();
    bookingDate.setHours(time.getHours());
    bookingDate.setMinutes(time.getMinutes());
    let now = new Date();

    if (guests < 1){
        agent.add('You need to reserve a table for at least one person. Please try again!');
    } else if (bookingDate < now){
        agent.add(`No puedes reservar una fecha pasada. Por favor, inténtalo de nuevo!`);
    } else if (bookingDate.getFullYear() > now.getFullYear()) {
        agent.add(`No puedes hacer una reserva para ${bookingDate.getFullYear()} todavía. Por favor, elige una fecha en ${now.getFullYear()}.`);
    } else {
        let timezone = parseInt(agent.parameters.time.toString().slice(19,22));
        bookingDate.setHours(bookingDate.getHours() + timezone);
        agent.add(`Perfecto. He reservado una mesa para ${guests} el ${bookingDate.toString().slice(0,21)}`);
        agent.add(`Tu código de reserva es: ${numeroReserva}`);
        agent.add('Nos vemos pronto!');
        agent.add('Buon appetito!');
    }
  }

最佳答案

运行实现的代码在 Google 的计算基础设施内运行,该基础设施的默认区域设置/语言为美国英语。当对话流中的请求到达时,该请求会携带我们用于响应的语言。请参阅 Webhook Request JSON 中的 languageCode 。当我们在 Node.js 中使用 API 时,看起来这些数据在 agent.locale 属性中可用。

查看 JavaScript Date对象,我们似乎有一个名为 toLocaleString() 的方法,它将日期/时间转换为字符串,但还提供用于创建特定于语言的内容和格式的语言(区域设置)。如果我们将所有这些放在一起,我们可能会发现以下代码行可能有效:

agent.add(`Perfecto. He reservado una mesa para ${guests} el ${bookingDate.toLocalString(agent.locale).slice(0,21)}`);

这可能需要进行一些测试才能正确。我首先记录 agent.locale 作为测试,以确保它具有我们期望/希望的值。

关于dialogflow-es - 更改 DialogFlow 机器人中的日/月语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56011414/

相关文章:

node.js - 如何在 Dialogflow NodeJS 客户端中设置自定义平台

node.js - 在 dialogflow sdk v2 上将参数发送到 webhook

python - 将 Dialogflow 连接到 Pepper - HTTPSConnection 问题

C++ 程序已停止工作

c# - 聊天机器人未在 Microsoft Teams 中发回消息

python - 使用 twisted 和 wokkel 的聊天机器人

rest - Dialogflow 未检测上下文意图

botframework - 如何通过 REST API 为连接到 Microsoft Teams channel 的机器人获取机器人 ID 和用户 ID

用于个人粉丝页面的 Facebook Messenger Chatbot

c# - 如何在 C# 中调用 google.apis.dialogflow.v2