Bot框架本地化语言

时间:2017-05-25 08:22:31

标签: c# botframework

首先,抱歉,因为我不会说英语。 此时我正在研究一个带有微软机器人框架的机器人,我们遇到了一个简单的问题。 我们需要有选择英语或西班牙语的可能性。我们制作了resx文件并且它有效...但是当我们同时从两个频道尝试时,机器人就像一个独立的实体...如果我把西班牙语放在电报中而我的同事放了英语,那么我的文本和按钮就会出现英语。 我们尝试在机器人的开头制作简单的旗帜,并强制它以英语开始,因为cortana只能用英语工作......但问题还在继续。 Cortana试图用英语说西班牙语文本...... 我们如何强制一个用户与机器人的所有“会话”使用相同的语言并且不影响其他用户? 感谢

2 个答案:

答案 0 :(得分:0)

我认为使用Strings.resx文件执行此操作的最简单方法是(在任何对话框中):

        public Task StartAsync(IDialogContext context)
        {
            context.PostAsync($"Hi!");
            PromptDialog.Choice(context,
                HandleLang,
                new[] { "English", "Espanol"},
                "Please select a language:",
                "I didn't get that");
            return Task.CompletedTask;
        }


        public async Task HandleLang(IDialogContext context, IAwaitable<string> result)
        {
            string lang = await result as string;
            switch (lang)
            {
                case "English":
                    Strings.Culture = new CultureInfo("en-US");
                    break;
                case "Espanol":
                    Strings.Culture = new CultureInfo("es-ES");
                    break;
                default:
                    break;
            }
            ... do whatever here
        }

答案 1 :(得分:0)

我只使用这种方法来本地化语言。

 Resources.Global.Culture = new System.Globalization.CultureInfo("en-US");

您可以参考此GitHub。希望对您有帮助。