如何根据用户选择的语言以另一种语言添加确认提示和再见消息。假设我要添加说再见的西班牙语版本
.cancelAction(
"cancelRequest", "Thank you for reaching out, Good bye!",
{
matches: /^nevermind$|^cancel$|^cancel.*request/i,
confirmPrompt: "This will cancel your request. Are you sure?"
}
);
答案 0 :(得分:1)
您可以使用根据语言设置值的变量来执行此操作。然后可以使用此变量从对象中获取相应的文本。
例如:
var language = "spanish";
var cancelTextFromLang = {
spanish: "Gracias por comunicarte, ¡Adiós!",
english: "Thank you for reaching out, Good bye!",
french: "Merci d'avoir tendu la main, au revoir!"
};
console.log(cancelTextFromLang[language])
您可以将其应用于您的给定代码,如下所示:
var language = "spanish";
var cancelTextFromLang = {
spanish: "Gracias por comunicarte, ¡Adiós!",
english: "Thank you for reaching out, Good bye!",
french: "Merci d'avoir tendu la main, au revoir!"
};
.cancelAction(
"cancelRequest", cancelTextFromLang[language],
{
matches: /^nevermind$|^cancel$|^cancel.*request/i,
confirmPrompt: "This will cancel your request. Are you sure?"
}
);
答案 1 :(得分:0)
我正在使用session.userData.languagePreference,我正在考虑在cancelAction内添加一个if语句,但是语法错误,我不能在其中放置if语句:/
.cancelAction(
if ( session.userData.languagePreference = 0;) {
"cancelRequest", "Thank you for reaching out, Good bye!",
{
matches: /^nevermind$|^cancel$|^cancel.*request/i,
confirmPrompt: "This will cancel your request. Are you sure?"
}
);
答案 2 :(得分:-1)
Bot Framework支持本地化。您可以在节点here中了解有关如何执行此操作的信息。此页面将说明如何通过提示用户或自动确定机器人用户的语言。它还介绍了如何为提示添加语言字符串。
机器人本地化的关键是session.preferredLocal()方法。此方法保存并获取用户特定的语言环境首选项。
确定语言环境并对其进行设置的最简单方法是提示用户。这是一个Node示例
bot.dialog('/localePicker', [
function (session) {
// Prompt the user to select their preferred locale
builder.Prompts.choice(session, "What's your preferred language?", 'English|Español');
},
function (session, results) {
// Update preferred locale
var locale;
switch (results.response.entity) {
case 'English':
locale = 'en';
break;
case 'Español':
locale = 'es';
break;
}
session.preferredLocale(locale, function (err) {
if (!err) {
// Locale files loaded
session.endDialog(`Your preferred language is now ${results.response.entity}`);
} else {
// Problem loading the selected locale
session.error(err);
}
});
}
]);
此代码的第一部分提示用户输入他们喜欢的语言,并为他们提供英语和西班牙语作为两个可用选项。然后根据用户的响应,通过调用session.preferredLocale()来设置语言环境代码。
为了利用用户的首选语言环境,您将需要一个相应的本地化提示文件。这些文件将包含相应语言的各种漫游器提示。您将要使用的每种语言都需要一个文件。
通常,这些文件将位于./locale/{language}/index.json中,其中{language}是语言代码(例如“ en”或“ es”)。这些文件是json,看起来像这样: 英文
{
"greeting": ["Hello!", "Hi there"]
}
和西班牙语
{
"greeting": ["Hola!", "Hola"]
}
这是代码外观的一个例子
var bot = new builder.UniversalBot(connector, [
function (session) {
session.send("greeting");
session.beginDialog('/localePicker');
},
function (session) {
builder.Prompts.text(session, "text_prompt");
}
]);
在幕后,基本上是什么情况,将搜索session.preferredLocale()返回的index.json文件以查找提示,如果找到提示,则返回该提示,否则将返回默认语言环境的提示集。 / p>