2017-12-28 39 views
1

봇 프레임 워크 (C#)에서 현지화를 시도하고 있으며 일부 리소스를 발견했습니다. 프롬프트 대화 상자와 일반 메시지의 경우>https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-formflow-localize봇 프레임 워크의 현지화

- -

형태의 흐름에 대한

>https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/demo-ContosoFlowers#localization

그러나 여기에 큰 문제가 있다는 것입니다,이 두 가지가 Thread.CurrentThread.CurrentUICulture 값에 따라 달라집니다. 로케일 (How to verify if localization is working correctly in Bot framework)을 설정하여 에뮬레이터에서 테스트하는 것이 쉬웠지만 실제 사용자가 채널을 통해 액세스하는 경우 설정하는 방법은 무엇입니까?

CurrentUICulture이 올바른 방법이 아닌 경우 어떻게 현지화를 수행 할 수 있습니까? 또 다른 실행 가능한 옵션으로 상태를 설정하고 있습니까?

https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-localization봇 프레임 워크 C#을 SDK

모든 코드 샘플이 정말 도움이 될 것입니다에서 사용자에게 메시지를 표시하여 로케일을 결정하는 유사한 접근 방식이, nodejs 현지화 설명서를 제공합니다.

답변

2

dotnet SDK를 사용하여 사용자에게 메시지를 보낼 필요가 없으므로 현재 문화권을 들어오는 메시지의 문화권으로 자동 설정해야합니다.

당신이 여기서 일하는 볼 수 있습니다 : 당신이 언어를 선택하는 사용자 로케일을 무시하고 대신 사용자에게 메시지를 표시하려면 여기 행동이의 샘플을 볼 수 https://github.com/Microsoft/BotBuilder/search?utf8=%E2%9C%93&q=localizedscope&type=

: https://github.com/EricDahlvang/ChooseLanguageBot

언어 선택 도구를 작성하는 요령은 IDialog<object>을 상속하는 대화 상자를 만들어야 언어가 아직 선택되지 않은 경우 유효한 언어 옵션을 사용하여 PromptDialog을 보냅니다. 일단 사용자가 언어를 선택하면 선택한 로켈을 저장합니다. 컨텍스트를 사용하여 저장할 수 있습니다 : context.PrivateConversationData.SetValue("SOME_KEY", optionSelected.Locale);

+0

현재 문화권은 msteams, webchat 등과 같은 모든 채널에 대해 자동으로 설정됩니다. –

+0

요청에서 오는 IMessageActivity.Locale에서 문화권이 자동으로 설정됩니다. 클라이언트에 의해 자동으로 채워 져야하지만, 나 자신을 테스트하지는 않았습니다. MS가 이미 이것을 돌보고 자신의 테스트를하거나 자신이 수행 한 작업을 무시하고 언어 선택기로 직접 구현할 수 있다는 것을 믿으십시오. 이는 귀하에게 달려 있습니다. – caesay

+0

다음은 로케일 자동 감지 문제에 대한 답변입니다. https://stackoverflow.com/questions/47959242/how-to-verify-if-localization-is-working-correctly-in-bot-framework?noredirect=1&lq= 1 – caesay