2012-05-03 34 views
2

当我试图翻译简单的“19 - 15”时,源语言的自动检测失败,并且出现“Bad语言对”异常。如何在Google Translate API .NET中指定源语言?

.NET示例包含Google翻译API的一些包装。它位于Google.Apis.Translate.v2.cs文件中。但是这个包装器不允许指定源语言。那么,制作这个最简单的方法是什么?

我认为最正确的方法是重新生成Google.Apis.Translate.v2.cs。但我不知道该怎么做。

虽然我可以处理粗糙的REST请求,但看起来很尴尬。

回答

4

您可以指定在翻译ListRequest源参数如下面的代码片段:

var request = service.Translations.List(srcText, input.TargetLanguage); 
request.Source = "fr"; 
TranslationsListResponse response = request.Fetch(); 
+0

有这种被否决或某事?不适合我... –

3

或者你也可以创建和过载为Google.Apis.Translate.v2.cs列表的方法。下面的原始列表 只需输入()这个方法:

public virtual ListRequest List(Google.Apis.Util.Repeatable<string> q, 
            string source, string target) 
{ 
    var _request = new ListRequest(service, q, target); 
    _request.Source = source; 
    return _request; 
} 

之后,你可以调用

var response = service.Translations.List(srcText, "en","ru").Fetch(); 
-1

什么工作对我来说是这样的:

var request = service.Translations.List(text, targetLanguage); 
if (!string.IsNullOrEmpty(sourceLanguage)) 
{ 
     request.Source = sourceLanguage; 
     request.Format = TranslationsResource.ListRequest.FormatEnum.Text; 
} 

var response = await request.ExecuteAsync(); 
+0

请注意详细说明如何解决OP的问题? – RamenChef

相关问题