Как использовать Azure Cognitive Translator для перевода текстового блока в UWP? - PullRequest
0 голосов
/ 12 февраля 2020

Я создал профиль 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 I wi sh чтобы перевести, который находится под событием 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. Я не уверен, будет ли это sh с другим классом (newsapi.org). Как связать класс translationator.cs с моей главной страницей xaml и перевести эти два текстовых блока?

1 Ответ

1 голос
/ 12 февраля 2020

Вам просто нужно вызвать метод перевода:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...