跳转至主要内容 回家 商业智能 社区、社交和游戏 客户支持 教育 内部通信 实时和远程通信 准备和训练 网络本地化与电子商务 更多解决方案 文本翻译 文件翻译 自定义转换器 翻译应用程序 办公室 Sharepoint Yammer Visualstudio 语音翻译 计算机视觉 会话语言理解 更多信息 语言 博客 常见问题 文本翻译 文件翻译 自定义转换器 其他认知服务 支持 联系方式 保密 归属 机器翻译 客户 伙伴 合作伙伴计划 社区合作伙伴 立即尝试免费 微软365 蔚蓝 副驾驶 Windows 表面 XBOX 交易 小型企业 支持 Windows 应用程序 前景 OneDrive 微软团队 OneNote 微软边缘 从 Skype 转到 Teams 计算机 选购 XBOX 配件 VR 与混合现实 认证翻新 以旧换新 Xbox Game Pass Ultimate PC 游戏通行证 Xbox 游戏 电脑游戏 微软人工智能 微软安全 Dynamics 365 Microsoft 365 for business 微软动力平台 Windows 365 小型企业 数字主权 蔚蓝 微软开发人员 微软学习 支持人工智能市场应用程序 微软技术社区 微软市场 软件公司 Visualstudio 微软奖励 免费下载和安全 教育 礼品卡 许可 解锁故事 查看网站地图

微软翻译博客

使用 microsoft 翻译人员提供的翻译创建 web 应用程序。

使用 microsoft 翻译人员提供的翻译创建 web 应用程序。

在此演练中, 您将学习如何创建使用 microsoft 翻译器 api 翻译用户输入的文本的 web 应用程序。您将使用 asp. net 和免费的 visual studio express 2012 构建该页面。如果您已经有了 visual studio 安装, 您仍然可以按照本教程操作, 只需跳过步骤1即可。

在开始之前, 您需要注册 azure 中的 microsoft 翻译 api。有许多不同的产品, 包括免费产品, 你可以看到如何注册免费服务、注册你的应用并在这里获得你的凭据:

http://blogs.msdn.com/b/translation/p/gettingstarted1.aspx

您在这里生成的客户端 id 和客户端机密将在步骤4中使用, 因此请记下它们。

步骤1。获取 visual studio express 2012 为 web。

最好的开始方法是参观 http://www.asp.net/downloads , 然后在 "只需简单安装即可完成所有内容" 部分中选择 "立即安装" 按钮。

clip_image001

这将启动 web 平台安装程序, 该安装程序将安装 visual studio、asp. net、mvc 和大量其他可用于构建网站的好东西。

步骤2。创建 web 应用程序

运行 visual studio, 然后从 "文件" 菜单中选择 "新建项目"。您将看到一个对话框, 其中包含可用于生成网站的不同项目的列表。选择左侧的 "visual c#", 然后从列表中选择 "asp. net web 窗体应用程序"。

clip_image003

为 web 应用程序命名, 如 "翻译", 然后按 "确定"。visual studio 现在将创建生成和运行 web 应用程序所需的一切。按 f5 生成并运行应用程序, 您将看到如下内容:

clip_image005

 

 

步骤3。创建用于文本翻译的 ui

在本节中, 您将向网站添加允许最终用户键入某些文本的控件, 按翻译按钮, 然后查看他们输入的文本的翻译。例如, 这种类型的功能对于在使用不同语言时与客户交互非常有用。

从解决方案资源管理器中, 找到 "已提交. aspx" 页面。在设计器中打开它, 您将看到如下内容:

clip_image016

Delete the 3 <p> tags that say ‘Use this area to provide additional information’, and replace with some controls to provide a basic translation UI, like this:

clip_image018

为方便起见, 以下是此页的来源:

<%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Translator.About" %>

<asp: 内容 鲁纳= "服务器" ID= "身体内容" 内容= "主要内容">
    <企业集团 类= "标题">
        <h1><%: 标题 %>.</h1>
        <h2>你的应用说明页面。</h2>
    </企业集团>

    <本文>
        输入要翻译的文本:<Br />
        <asp: 文本框 ID= "textbox1" 鲁纳= "服务器" 高度= "25px" 宽度= "342px"></asp: 文本框>
        <asp: 按钮 ID= "按钮 1" 鲁纳= "服务器" 高度= "37px" onclick= "Button1_Click" 文本= "翻译" />
        <Br />
        您翻译的文本是:<Br />
        <asp: 文字 ID= "文字 1" 鲁纳= "服务器"></asp: 文字>
    </本文>

    <一边>
        <h3>其他职务</h3>
        <P>        
            使用此区域可提供其他信息。
        </P>
        <Ul>
            <李><一个 鲁纳= "服务器" Href="~/">回家</一个></李>
            <李><一个 鲁纳= "服务器" Href= "~/about-abouts. aspx">关于金龙</一个></李>
            <李><一个 鲁纳= "服务器" Href= "~/contactt. aspx">联系方式</一个></李>
        </Ul>
    </一边>
</asp: 内容>

请注意, 在设计器中, 应双击该按钮以生成 "Button1_Click" 代码。您将在下一步中编写此代码。

步骤4。编写用于翻译用户文本的代码

在上一节中, 您创建了用于文本翻译的基本 ui。它将允许用户编写一些文本, 并按下一个按钮。在本节中, 您将在该按钮后面编写代码, 将用户所需的文本翻译成西班牙语, 并将其呈现在页面上。

首先, 您需要向解决方案中添加一个新类。叫它吧 admaccess标记 并给它下面的代码:

使用 制度; 制度; 制度; 制度;
使用 System.Collections.Generic;
使用 林克;
使用 网站;

命名 空间 翻译者
{
    公共 类 许可证:AdmAccessToken
    {
        公共 字符串 access_token { get; set; }
        公共 字符串 token_type { get; set; }
        公共 字符串 expires_in { get; set; }
        公共 字符串 scope { get; set; }
    }
}

 

请注意, 4 字符串的名称应与此处的名称完全匹配, 否则以后代码中将出现错误。

接下来, 在 visual studio 的 "解决方案资源管理器" 中, 右键单击 "引用" 文件夹, 然后选择 "添加引用"。使用下面的此对话框将引用添加到

– System.Runtime.Serialization

– System.XML.Linq

– System.ServiceModel.Web

在 About.aspx.cs 的代码顶部, 您将看到许多 "正在使用" 的语句。将使用 System.Xml.Linq 添加到这些, 使其如下所示:

使用 制度; 制度; 制度; 制度;
使用 System.Collections.Generic;
使用 林克;
使用 网站;
使用 System.Web.UI;
使用 System.Web.UI.WebControls;
使用 System.Xml.Linq;

命名 空间 翻译者
{
    公共 部分 类 About : Page
    {
        保护 无效 页面 _ 加载 (对象 sender, EventArgs e)
        {

        }

        保护 无效 Button1_Click (对象 sender, EventArgs e)
        {

        }
    }
}

 

您将看到 Button1_Click 代码为空。向其中添加以下代码。此代码将使用之前创建的客户端 id 和客户端机密获取翻译服务的访问令牌。

字符串 客户端 id = "<Your ClientID>";
字符串 客户端机密 = "<Your Client Secret>";
字符串字符串转换 accessuri = 
      "https://datamarket.accesscontrol.windows.net/v2/OAuth2-13";
字符串字符串请求详细信息 = 
      字符串.格式 ("grant_type=client_credentials&client_id={0}&client_secret={1} &scope=http://api.microsofttranslator.com", url编码 (客户 id), http. urlcode (客户机密);

System.Net.WebRequest 的 web 请求 = System.Net.WebRequest.Create (字符串转换访问);
网站请求. 内容类型 = "应用程序/www-forms-urlenen编码";
方法 = "开机自检";
字节[] 字节 = System.Text.Encoding.ASCII.GetBytes (请方详细信息);
网站请求. 内容长度 = 字节。长度;
使用 (System.IO.Stream outputStream = webRequest.GetRequestStream())
{
  outputStream.Write(bytes, 0, bytes.Length);
}

System.Net.WebResponse webResponse = webRequest.GetResponse();
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = 新增功能 
    System.Runtime.Serialization.Json.DataContractJsonSerializer (类型(admaccess标记));

令牌 = (admaccess令牌) 序列化程序。阅读对象 (网络响应. getresestream ());

字符串 头像值 = "承载者" + 标记. access _ 标识;

 

此代码将对数据市场服务形成 post, 传递您的 id 和机密, 并获取 json 对象。然后将该对象反序列化为 admaccesstoken。然后, 您可以从中派生访问令牌。

然后将此标记添加到字符串中, 前缀为 "承载者" (不要忘记空格), 以创建将发送到翻译服务的标头值。

然后使用此标题值调用翻译服务, 并传递用户的文本, 您将使用如下代码:

字符串 ttto-tetp0纯 = textbox1. text;
字符串 uri = "http://api.microsofttranslator.com/v2/Http.svc/Translate?text =" + System.Web.HttpUtility.UrlEncode (txtToTranslate) + "从 = en & to = es";
System.Net.WebRequest 翻译 webrequest = System.Net.WebRequest.Create (uri);
translationWebRequest.Headers.Add ("授权", 头像价值);

System.Net.WebResponse 响应 = 空;
响应 = 翻译 webreqution. get响应 ();
System.IO.Stream 流 = 响应。();
System.Text.Encoding 编码 = System.Text.Encoding.GetEncoding ("utf-8");

System.IO.StreamReader 翻译流 = 新增功能 System.IO.StreamReader (流、编码);
System.Xml.XmlDocument xTranslation = 新增功能 System.Xml.XmlDocument ();
(翻译流. readtoend ());

文本 1. 文本 = x 翻译。

 

 

文本框被称为 "textbox1", 因此用户键入的文本可以简单地从中派生。之后, 将创建转换器 http 服务的 uri, 文本本身是 url 编码并添加到 uri。

请注意, "en" 语言用于 "发件人" (即, 我假设您是用英语键入), 而 "es" 用于 "to" (即它将翻译成西班牙语)。支持的语言的这些代码的完整列表如下所示: http://msdn.microsoft.com/en-us/library/hh456380.aspx

转换器服务返回 xml, 因此代码调用该服务, 将响应作为 xml 获取, 然后将其解码为文本。然后, 它将结果加载到您在 au. aspx 上创建的名为 "文本 1" 的文本中。

你可以在这里看到它的作用:

clip_image019

这就对了!现在, 您已使用 microsoft 翻译 api 将机器翻译添加到 asp. net 应用程序。

总结

在本演练中, 您了解了如何使用 asp. net 生成 web 应用程序, 以及如何向其中添加机器翻译。您使用 microsoft 翻译小工具提供页面内容的翻译, 并且了解了如何使用 c# 对 microsoft 翻译器 api 进行编程, 以便翻译用户生成的内容。


英语 (美国)
您的隐私选择 退出图标 您的隐私选择
消费者健康隐私 联系我们 隐私 管理 cookie 使用条件 商标 我们的广告政策