2

我使用 pakage qna maker 开发了一个机器人,我需要更改 tooManyAttempts 资源的标签,因为在法语中它不是最好的词。我可以更改资源吗?或者我可以跟踪 tooManyAttempts 变量来改变他的价值吗?

谢谢你的帮助

4

1 回答 1

0

如果你看一下QnAMakerDialogGithub 上的实现(这里),你会发现这里声明了消息:

protected virtual async Task QnAFeedbackStepAsync(IDialogContext context, QnAMakerResults qnaMakerResults)
{
    var qnaList = qnaMakerResults.Answers;
    var questions = qnaList.Select(x = >x.Questions[0]).Concat(new[] {
        Resource.Resource.noneOfTheAboveOption
    }).ToArray();

    PromptOptions < string > promptOptions = new PromptOptions < string > (
    prompt: Resource.Resource.answerSelectionPrompt, tooManyAttempts: Resource.Resource.tooManyAttempts, options: questions, attempts: 0);

    PromptDialog.Choice(context: context, resume: ResumeAndPostAnswer, promptOptions: promptOptions);
}

如您所见,TooManyAttemptsException抛出时发送的消息在包的Res​​ources中:Resource.Resource.tooManyAttempts

您可以考虑覆盖该方法,但您很快就会面临必须引用未定义方法的问题:这里ResumeAndPostAnswer定义为私有,因此不可见。

因此,遗憾的是,其中一种解决方案是从 GitHub 项目中获取所有必要的资源(也就是说,获取几乎所有的 QnAMakerDialog 实现)

于 2018-03-04T21:56:09.527 回答