利用Bing翻译API开发WPF翻译应用

在本文中,将探讨如何使用Bing翻译API来开发一个WPF应用程序,该程序能够提供文本翻译功能。Bing翻译API是一个提供即时文本翻译、语言检测、协作翻译以及多语言文本到语音的服务。目前,该API被一些知名网站如Facebook和eBay所使用。

Bing翻译API简介

Bing翻译API是一个服务,它提供即时文本翻译、语言检测、协作翻译功能以及多语言的文本到语音转换。该API目前被一些知名网站如Facebook和eBay所使用。Bing翻译服务提供不同使用量级别的服务,高使用量的服务是收费的,而低使用量和业余爱好者使用则是免费的。

需要注意的是,虽然Bing翻译API目前对低使用量是免费的,但这并不是未来的保证。Bing网络服务API使用条款的第14项部分指出,"(微软)可能随时更改(包括移除功能或对之前免费提供的功能收费)、更新或增强(统称为“修改”)服务..."。

如何使用Bing翻译API

要使用翻译API,需要获取一个免费的Bing应用ID。要获取Bing应用ID,请访问,使用Windows Live ID登录,填写并保存应用程序表格以生成应用ID,并启用该ID。

将使用的URL格式如下:

http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=应用ID&text=要翻译的文本&from=源语言的ISO 639-1语言代码&to=目标语言的ISO 639-1语言代码

URL有四个参数必须指定:

  • appId: 应用程序的Bing应用ID
  • text: 要翻译的文本
  • from: 要翻译的源语言,以ISO 639-1语言代码的形式
  • to: 要翻译的目标语言,以ISO 639-1语言代码的形式

最终的URL可能看起来像这样:

http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=1A2345B6789C2345B6789&text=翻译&from=en&to=es

支持的语言

下表显示了目前(截至本文撰写时)翻译API支持的语言及其ISO 639-1语言代码:

语言 代码
阿拉伯语 ar
捷克语 cs
丹麦语 da
德语 de
英语 en
爱沙尼亚语 et
芬兰语 fi
荷兰语 nl
希腊语 el
希伯来语 he
海地克里奥尔语 ht
印地语 hi
匈牙利语 hu
印度尼西亚语 id
意大利语 it
日语 ja
韩语 ko
立陶宛语 lt
拉脱维亚语 lv
挪威语 no
波兰语 pl
葡萄牙语 pt
罗马尼亚语 ro
西班牙语 es
俄语 ru
斯洛伐克语 sk
斯洛文尼亚语 sl
瑞典语 sv
泰语 th
土耳其语 tr
乌克兰语 uk
越南语 vi
简体中文 zh-CHS
繁体中文 zh-CHT

WPF语言翻译器

使用翻译应用程序非常简单。只需运行应用程序,输入想要翻译的文本,指定语言,然后单击“翻译”按钮即可显示翻译后的文本。

工作原理

在类Translator中的GetTranslatedText()方法调用Bing翻译服务,并返回包含翻译文本的字符串。

VB.NET Public Function GetTranslatedText(ByVal textToTranslate As String, ByVal fromLang As String, ByVal toLang As String) As String Dim translation As String ' 仅在指定的语言不同的情况下进行翻译。 If (fromLang <> toLang) Then Dim uri As String = "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=" & appID & "&text=" & textToTranslate & "&from=" & fromLang & "&to=" & toLang Dim request As HttpWebRequest = CType(WebRequest.Create(uri), HttpWebRequest) Try Using response As WebResponse = request.GetResponse() Dim strm As Stream = response.GetResponseStream() Using sr As New StreamReader(strm) translation = sr.ReadToEnd() End Using End Using Catch ex As WebException MessageBox.Show("确保已连接到互联网。", "翻译器", MessageBoxButton.OK, MessageBoxImage.Stop) Exit Function End Try Else MessageBox.Show("不会翻译到相同的语言。", "翻译器", MessageBoxButton.OK, MessageBoxImage.Exclamation) Exit Function End If ' 解析字符串为XElement并获取XElement值,作为翻译后的文本返回。 Return (XElement.Parse(translation).Value) End Function

设置translation字符串变量的值后,将得到一个看起来像这样的XML字符串:

XML 翻译后的文本

然后,使用XElement.Parse()方法将XML字符串解析为XElement对象,并使用XElement的Value属性返回翻译后的文本。

注意:在运行项目之前,需要在Translator类中设置appID字段的值。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485