2017-12-28 52 views
1

私はボットフレームワーク(C#)でローカリゼーションを実現しようとしており、そのためのリソースもいくつか見つかりました。フォームの流れについてはボットフレームワークのローカライゼーション.Net

- プロンプトダイアログと通常のメッセージについて>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-localizationnodejsのローカライズドキュメントを提供する、任意のコードサンプルが本当に役立つだろうボットフレームワークのC#SDK

にユーザを促すことにより、ロケールを決定するための任意の同様のアプローチがあります。

答えて

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

関連する問題