Microsoft Translator中的GetLanguageNames问题 [英] Problem with GetLanguageNames in Microsoft Translator

查看:76
本文介绍了Microsoft Translator中的GetLanguageNames问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Android应用中的Microsoft Translator,但我遇到了GetLanguageNames问题。

Hi, I'm trying to use the Microsoft Translator from an Android app but I am having problems with GetLanguageNames.

我设法收到access_token和语言代码,但是当我尝试获取语言名称时出现此错误:

I managed to receive the access_token and the Languages Codes, but when I try to get the Language Names I have this error:

< html version =" - // W3C // DTD XHTML 2.0 // EN" XML:朗= QUOT;恩" xsi:schemaLocation =" http://www.w3.org/1999/xhtml http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd"的xmlns = QUOT; HTTP://www.w3.org/1999/xhtml"
xmlns:xsi =" http://www.w3.org/2001/XMLSchema-instance">< HEAD>< TITLE>请求错误< / TITLE>< / HEAD>< BODY> ;< DIV id =" content">< P>< B>错误状态代码:< / B> 'InternalServerError'< / P>< P>< B>详细信息:
< / B>服务器在处理请求时遇到错误。请详见LT服务器日志&; / P><! - 填充xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - >< / DIV>< / BODY>< / HTML>

这是我的Java代码:

HttpClient httpclient = new DefaultHttpClient();



$


$




   

  &NBSP; &NBSP; &NBSP;   HttpPost request = new HttpPost(" http://api.microsofttranslator.com/v2/Http.svc/GetLanguageNames");



&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; request.addHeader(" Authorization"," Bearer" +"" + access_token);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;列表与LT;&的NameValuePair GT; nameValuePairs = new ArrayList< NameValuePair>();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;   nameValuePairs.add(new BasicNameValuePair(" locale"," en"));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;   for(int i = 0; i< codes.length; i ++){

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;   nameValuePairs.add(new BasicNameValuePair(" languageCodes []",codes [i]));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;  }



&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;  尝试{

request.setEntity(new UrlEncodedFormEntity(nameValuePairs));

} catch(UnsupportedEncodingException e){

// TODO自动生成catch block

e.printStackTrace();

}





尝试{

  &NBSP; &NBSP;   HttpResponse response = httpclient.execute(request);

&NBSP; &NBSP; &NBSP;   HttpEntity entity = response.getEntity();
$


&NBSP; &NBSP; &NBSP;   if(entity!= null){

&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; String retSrc = EntityUtils.toString(entity); 

&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; string_return = retSrc;



  &NBSP; &NBSP;  }



}

&NBSP; &NBSP; &NBSP; &NBSP; catch(exception ex)

  {





  }&NBSP;

HttpClient httpclient = new DefaultHttpClient();






   
         HttpPost request = new HttpPost("http://api.microsofttranslator.com/v2/Http.svc/GetLanguageNames");

            request.addHeader("Authorization", "Bearer"+" "+access_token);
             List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
             nameValuePairs.add(new BasicNameValuePair("locale", "en"));
             for(int i=0;i<codes.length;i++){
             nameValuePairs.add(new BasicNameValuePair("languageCodes[]", codes[i]));
             }

             try {
request.setEntity(new UrlEncodedFormEntity(nameValuePairs));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


try {
       HttpResponse response = httpclient.execute(request);
       HttpEntity entity = response.getEntity();

       if (entity != null) {
          String retSrc = EntityUtils.toString(entity); 
          string_return = retSrc;

       }

}
        catch(Exception ex)
 {


  } 




推荐答案

您好Guillocrack,

Hi Guillocrack,

它看起来好像您缺少languageCodes参数。 GetLangaugeNames()方法要求您传入要获取友好名称的语言代码。

it looks as if you are missing the languageCodes parameter. The GetLangaugeNames() method requires you to pass in the language codes that you want to get the friendly name for.

语言代码例如是"en"。 GetLanguageNames()方法返回友好名称"English"。对于"en"的languageCode。在"语言环境"中参数指定友好语言名称的语言。例如,如果locale
是"fr",则使用languageCodes =" en"从GetLanguageNames()返回。将是"英语"而不是"英语"。您可以传递一个languageCodes数组,然后在
中接收一系列友好语言名称"locale"。语言。

Language code is for instance "en". The GetLanguageNames() method returns the friendly name "English" for languageCode of "en". In the "locale" parameter you specify the language of the friendly language name. If locale was "fr", for example, the return from GetLanguageNames() with languageCodes="en" would be "Anglais" instead of "English". You can pass an array of languageCodes and then receive an array of friendly language names in the "locale" language.

要检索可以在其间转换的所有语言代码,请使用GetLanguagesForTranslate()方法。您可以直接将GetLangaugesForTranslate()的返回值传递给GetLangaugeNames(),以获取您可以使用您在locale参数中指定的语言向用户显示的语言友好名称列表。

To retrieve all the languages codes that you can translate between, use the GetLanguagesForTranslate() method. You can directly pass the return from GetLangaugesForTranslate() to GetLangaugeNames() in order to obtain a list of language friendly names you can display to user, in the language you specify in the locale parameter.

如果这是有意义的,请告诉我们,这是
Chris Wendt

Microsoft Translator

Let us know if this makes sense,
Chris Wendt
Microsoft Translator


这篇关于Microsoft Translator中的GetLanguageNames问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆