1+ using BotSharp . Abstraction . Infrastructures . Enums ;
12using BotSharp . Abstraction . MLTasks ;
23using BotSharp . Abstraction . Options ;
34using BotSharp . Abstraction . Templating ;
5+ using BotSharp . Abstraction . Translation . Models ;
46using System . Collections ;
57using System . Reflection ;
68
@@ -57,7 +59,13 @@ public async Task<T> Translate<T>(Agent router, string messageId, T data, string
5759
5860 try
5961 {
60- var translatedTexts = translatedStringList . JsonArrayContent < string > ( ) ;
62+ // Override language if it's Unknown, it's used to output the corresponding language.
63+ var states = _services . GetRequiredService < IConversationStateService > ( ) ;
64+ var inputLanguage = string . IsNullOrEmpty ( translatedStringList . InputLanguage ) ? LanguageType . ENGLISH : translatedStringList . InputLanguage ;
65+ var languageState = states . GetState ( "language" , inputLanguage ) ;
66+ states . SetState ( "language" , languageState , activeRounds : 1 ) ;
67+
68+ var translatedTexts = translatedStringList . Texts ;
6169 var map = new Dictionary < string , string > ( ) ;
6270
6371 for ( var i = 0 ; i < texts . Length ; i ++ )
@@ -283,7 +291,7 @@ private T Assign<T>(T data, Dictionary<string, string> map) where T : class
283291 /// <param name="list"></param>
284292 /// <param name="language"></param>
285293 /// <returns></returns>
286- private async Task < string > InnerTranslate ( string texts , string language , string template )
294+ private async Task < TranslationOutput > InnerTranslate ( string texts , string language , string template )
287295 {
288296 var translator = new Agent
289297 {
@@ -308,7 +316,7 @@ private async Task<string> InnerTranslate(string texts, string language, string
308316 }
309317 } ;
310318 var response = await _completion . GetChatCompletions ( translator , translationDialogs ) ;
311- return response . Content ;
319+ return response . Content . JsonContent < TranslationOutput > ( ) ;
312320 }
313321
314322 #region Type methods
0 commit comments