You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求基于Azure Cognitive Services Translator Text API的Web应用代码示例

Azure Cognitive Services Translator Text API Web应用示例(ASP.NET Core)

当然有!我给你一个基于ASP.NET Core的简单Web应用示例,实现基础的文本翻译功能,你可以基于这个结构扩展成更复杂的应用。

前提准备

  • 先在Azure门户创建Translator资源,获取你的密钥和区域(比如eastus),这是调用API必须的凭证。

1. 配置HttpClient(Program.cs)

我们先在Program.cs里注册一个HttpClient,专门用来调用Translator API:

var builder = WebApplication.CreateBuilder(args);

// 添加控制器和视图支持
builder.Services.AddControllersWithViews();

// 注册HttpClient,配置Translator API的基础地址
builder.Services.AddHttpClient("TranslatorClient", client =>
{
    client.BaseAddress = new Uri("https://api.cognitive.microsofttranslator.com/");
    // 添加API密钥和区域到请求头
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{YOUR_TRANSLATOR_KEY}");
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Region", "{YOUR_REGION}");
});

var app = builder.Build();

// 配置中间件
app.UseStaticFiles();
app.UseRouting();
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

注意:把{YOUR_TRANSLATOR_KEY}和{YOUR_REGION}替换成你自己的Azure资源信息。


2. 创建翻译控制器(TranslationController.cs)

在Controllers文件夹下新建控制器,处理翻译请求:

using Microsoft.AspNetCore.Mvc;
using System.Text;
using System.Text.Json;

namespace TranslatorWebApp.Controllers;

public class TranslationController : Controller
{
    private readonly IHttpClientFactory _httpClientFactory;

    public TranslationController(IHttpClientFactory httpClientFactory)
    {
        _httpClientFactory = httpClientFactory;
    }

    // 显示翻译页面
    public IActionResult Index()
    {
        return View();
    }

    // 处理翻译请求
    [HttpPost]
    public async Task<IActionResult> Translate(string inputText, string targetLanguage)
    {
        if (string.IsNullOrEmpty(inputText))
        {
            ViewBag.Error = "请输入要翻译的文本";
            return View("Index");
        }

        var client = _httpClientFactory.CreateClient("TranslatorClient");

        // 构造请求体:Translator API接受JSON数组格式的输入
        var requestBody = new[] { new { Text = inputText } };
        var jsonContent = new StringContent(JsonSerializer.Serialize(requestBody), Encoding.UTF8, "application/json");

        // 发送POST请求到翻译API,指定目标语言
        var response = await client.PostAsync($"/translate?api-version=3.0&to={targetLanguage}", jsonContent);

        if (!response.IsSuccessStatusCode)
        {
            ViewBag.Error = $"API调用失败:{response.StatusCode}";
            return View("Index");
        }

        // 解析响应结果
        var responseContent = await response.Content.ReadAsStringAsync();
        var translationResult = JsonSerializer.Deserialize<List<TranslationResponse>>(responseContent);

        ViewBag.OriginalText = inputText;
        ViewBag.TranslatedText = translationResult?.First()?.Translations?.First()?.Text;
        ViewBag.TargetLanguage = targetLanguage;

        return View("Index");
    }

    // 用于解析API响应的模型类
    private class TranslationResponse
    {
        public List<TranslationItem> Translations { get; set; }
    }

    private class TranslationItem
    {
        public string Text { get; set; }
        public string To { get; set; }
    }
}

3. 创建前端视图(Index.cshtml)

在Views/Translation文件夹下创建视图,提供用户交互界面:

@{
    ViewData["Title"] = "文本翻译工具";
}

<h1>Azure Translator 文本翻译</h1>

@if (!string.IsNullOrEmpty(ViewBag.Error))
{
    <div class="alert alert-danger">@ViewBag.Error</div>
}

@using (Html.BeginForm("Translate", "Translation", FormMethod.Post))
{
    <div class="mb-3">
        <label for="inputText" class="form-label">要翻译的文本</label>
        <textarea class="form-control" id="inputText" name="inputText" rows="3">@ViewBag.OriginalText</textarea>
    </div>

    <div class="mb-3">
        <label for="targetLanguage" class="form-label">目标语言</label>
        <select class="form-select" id="targetLanguage" name="targetLanguage">
            <option value="zh-Hans" selected>简体中文</option>
            <option value="en">英语</option>
            <option value="ja">日语</option>
            <option value="fr">法语</option>
            <!-- 可以添加更多语言代码,参考Azure文档 -->
        </select>
    </div>

    <button type="submit" class="btn btn-primary">翻译</button>
}

@if (!string.IsNullOrEmpty(ViewBag.TranslatedText))
{
    <div class="mt-4">
        <h3>翻译结果</h3>
        <p><strong>@ViewBag.TargetLanguage:</strong>@ViewBag.TranslatedText</p>
    </div>
}

运行说明

  1. 把代码里的密钥和区域替换成你自己的Azure资源信息
  2. 启动应用,访问/Translation/Index就能看到翻译界面
  3. 输入文本,选择目标语言,点击翻译就能看到结果

这个示例用了ASP.NET Core MVC的架构,你可以根据自己的需求改成Razor Pages或者其他Web框架的版本,核心逻辑都是通过HttpClient调用Translator API,处理请求和响应。

内容的提问来源于stack exchange,提问作者David Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:05:27