如何在Google Translate API .NET中指定源语言?

时间:2012-05-03 07:27:29

标签: .net google-api

当我试图翻译简单的" 19 - 15"源语言的自动检测失败,我得到了#34;错误的语言对"异常。

.NET示例包含某种围绕Google Translate API的包装器。它位于Google.Apis.Translate.v2.cs文件中。但是这个包装器不允许指定源语言。那么,最简​​单的方法是什么呢?

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

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

3 个答案:

答案 0 :(得分:4)

您可以在翻译ListRequest中指定Source参数,如以下代码段所示:

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

答案 1 :(得分:3)

或者您可以在Google.Apis.Translate.v2.cs中为List方法创建和重载。 只需在原始List()方法下面输入以下内容:

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();

答案 2 :(得分:-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();