Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Azure认知翻译器翻译UWP中的文本块?_C#_Xml_Azure_Uwp - Fatal编程技术网

C# 如何使用Azure认知翻译器翻译UWP中的文本块?

C# 如何使用Azure认知翻译器翻译UWP中的文本块?,c#,xml,azure,uwp,C#,Xml,Azure,Uwp,我创建了Azure个人资料,并注册了Azure认知翻译服务。现在我想使用translator api来翻译UWP xaml中的一组文本块。但是我不知道如何将我的xaml文本块链接到我创建的translator类中 这是我上的课: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using Sy

我创建了Azure个人资料,并注册了Azure认知翻译服务。现在我想使用translator api来翻译UWP xaml中的一组文本块。但是我不知道如何将我的xaml文本块链接到我创建的translator类中

这是我上的课:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace AlarmClockProject
{
    class translator
{
    private const string Key = "MY_API_KEY";

    private static readonly HttpClient client = new HttpClient
    {
        DefaultRequestHeaders = { { "Ocp-Apim-Subscription-Key", Key } }
    };
    public static async Task Main()
    {
        while (true)
        {
            var text = Console.ReadLine(); // read the textblock
            var translatedText = await Translate(text, "en");
            Console.WriteLine(translatedText); //put this into the textblock
        }
    }
    public static async Task<string> Translate(string text, string language)
    {
        var encodedText = WebUtility.UrlEncode(text);
        var uri = "https://api.microsofttranslator.com/V2/Http.svc/Translate?" + $"to={language}&text={encodedText}";
        var result = await client.GetStringAsync(uri);
        return XElement.Parse(result).Value;
    }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
Net系统;
使用System.Net.Http;
使用系统文本;
使用System.Threading.Tasks;
使用System.Xml.Linq;
名称空间AlarmClockProject
{
类转换器
{
private const string Key=“MY\u API\u Key”;
私有静态只读HttpClient客户端=新HttpClient
{
DefaultRequestHeaders={{“Ocp Apim订阅密钥”,密钥}
};
公共静态异步任务Main()
{
while(true)
{
var text=Console.ReadLine();//读取文本块
var translatedText=等待翻译(文本,“en”);
Console.WriteLine(translatedText);//将其放入文本块
}
}
公共静态异步任务转换(字符串文本、字符串语言)
{
var encodedText=WebUtility.UrlEncode(文本);
var uri=”https://api.microsofttranslator.com/V2/Http.svc/Translate?“+$”to={language}&text={encodedText}”;
var result=await client.GetStringAsync(uri);
返回XElement.Parse(result).Value;
}
}
}
这是我想翻译的xaml,它位于一个页面加载的事件下

        List<Article> articles = await NewsApi.GetArticlesMain();
        newsHeadlineTB.Text = articles.First().title;
        descriptionTB.Text = articles.First().description;
        newsHeadline1TB.Text = articles.Last().title;
        description1TB.Text = articles.Last().description;
List articles=wait NewsApi.GetArticlesMain();
newsHeadlineTB.Text=articles.First().title;
descriptionTB.Text=articles.First().description;
newsHeadline1TB.Text=articles.Last().title;
description1TB.Text=articles.Last().description;

我想翻译newsHeadlineTB.text和descriptionTB.text。我不确定它是否会与另一个类(newsapi.org)冲突。如何将translator.cs类链接到我的主页xaml并翻译这两个文本块?

您只需调用translate方法:

var language = "en";
List<Article> articles = await NewsApi.GetArticlesMain();
newsHeadlineTB.Text = await translator.Translate(articles.First().title, language);
descriptionTB.Text = await translator.Translate(articles.First().description, language);
newsHeadline1TB.Text = await translator.Translate(articles.Last().title, language);
description1TB.Text = await translator.Translate(articles.Last().description, language);
var language=“en”;
List articles=wait NewsApi.GetArticlesMain();
newsHeadlineTB.Text=wait translator.Translate(articles.First().title,language);
descriptionTB.Text=wait translator.Translate(articles.First().description,language);
newsHeadline1TB.Text=等待译者.Translate(articles.Last().title,language);
description1TB.Text=wait translator.Translate(articles.Last().description,language);

非常感谢!这也是一个简单的解决方案!