0

使用Microsoft Bing翻译器在3个标签上显示不同语言的输出时出现问题。Microsoft Translator for multiple textbox?

这里是我的代码:

Imports System 
Imports System.Collections.Generic 
Imports System.Web 
Imports System.Web.UI 
Imports System.Web.UI.WebControls 
Imports System.Xml.Linq 

Public Class AdmAccessToken 
    Public Property access_token() As String 
     Get 
      Return m_access_token 
     End Get 
     Set(ByVal value As String) 
      m_access_token = value 
     End Set 
    End Property 
    Private m_access_token As String 
    Public Property token_type() As String 
     Get 
      Return m_token_type 
     End Get 
     Set(ByVal value As String) 
      m_token_type = value 
     End Set 
    End Property 
    Private m_token_type As String 
    Public Property expires_in() As String 
     Get 
      Return m_expires_in 
     End Get 
     Set(ByVal value As String) 
      m_expires_in = value 
     End Set 
    End Property 
    Private m_expires_in As String 
    Public Property scope() As String 
     Get 
      Return m_scope 
     End Get 
     Set(ByVal value As String) 
      m_scope = value 
     End Set 
    End Property 
    Private m_scope As String 
End Class 

Partial Class translated 
    Inherits System.Web.UI.Page 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) 
     'Button1.Click += New EventHandler(Button1_Click1) 
    End Sub 

    Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim clientID As String = "*******" 
     Dim clientSecret As String = "************" 

     Dim strTranslatorAccessURI As String = "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13" 
     Dim strRequestDetails As String = String.Format("grant_type=client_credentials&client_id={0}&client_secret={1}&scope=http://api.microsofttranslator.com", HttpUtility.UrlEncode(clientID), HttpUtility.UrlEncode(clientSecret)) 

     Dim webRequest As System.Net.WebRequest = System.Net.WebRequest.Create(strTranslatorAccessURI) 
     webRequest.ContentType = "application/x-www-form-urlencoded" 
     webRequest.Method = "POST" 

     Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(strRequestDetails) 
     webRequest.ContentLength = bytes.Length 
     Using outputStream As System.IO.Stream = webRequest.GetRequestStream() 
      outputStream.Write(bytes, 0, bytes.Length) 
     End Using 
     Dim webResponse As System.Net.WebResponse = webRequest.GetResponse() 

     Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(GetType(AdmAccessToken)) 
     Dim token As AdmAccessToken = DirectCast(serializer.ReadObject(webResponse.GetResponseStream()), AdmAccessToken) 
     Dim headerValue As String = "Bearer " + token.access_token 

     Dim txtToTranslate As String = TextBox1.Text 
     Dim uri As String = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text=" + System.Web.HttpUtility.UrlEncode(txtToTranslate) + "&from=en&to=es" 
     Dim translationWebRequest As System.Net.WebRequest = System.Net.WebRequest.Create(uri) 
     translationWebRequest.Headers.Add("Authorization", headerValue) 
     Dim response As System.Net.WebResponse = Nothing 
     response = translationWebRequest.GetResponse() 
     Dim stream As System.IO.Stream = response.GetResponseStream() 
     Dim encode As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8") 
     Dim translatedStream As New System.IO.StreamReader(stream, encode) 
     Dim xTranslation As New System.Xml.XmlDocument() 
     xTranslation.LoadXml(translatedStream.ReadToEnd()) 
     Label1.Text = "Your Translation is: " + xTranslation.InnerText 
    End Sub 
End Class 

任何人都可以给一些建议?

我只需要知道如何将翻译后的文本转换为3种不同的标签语言:标签1用于荷兰语,标签2用于英语,标签3用于印度尼西亚语。

回答

2

您示例中代码的最后一部分是从英语翻译成西班牙语。 (以Dim txtToTranslate开头的部分...)

您必须一次性使用3次(将其放入函数中),一次从目标语言翻译成荷兰语,一次翻译成英语,一次翻译成英语印度尼西亚。

在指定了翻译的部分是这样的:

Dim uri As String = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text=" + System.Web.HttpUtility.UrlEncode(txtToTranslate) + "&from=en&to=es" 

从= EN“英语” 为了= ES的意思是“西班牙”

因此,只要修改,对于语言意味着你需要...