![](/img/trans.png)
[英]How do I, or can I use a static resource for the StringFormat on a TextBlock?
[英]How do I use Azure Cognitive Translator to translate a textblock in UWP?
我創建了一個 Azure 配置文件,並注冊了 Azure Cognitive Translator 服務。 現在我想使用翻譯器api來翻譯UWP xaml中的一堆文本塊。 但我不確定如何將我的 xaml 文本塊鏈接到我創建的翻譯器類。
這是我制作的課程:
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;
}
}
}
這是我希望翻譯的 xaml,它位於 page_loaded 事件下。
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;
我想翻譯 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.