miduo_client/Assets/Scripts/UI/LanguageTrans.cs

71 lines
2.0 KiB
C#

using GameCore;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class LanguageTrans : UnitySingleton<LanguageTrans>
{
public string url = "https://api-translate.gamota.com/translate";//请求地址
[System.Serializable]
private class SendJson
{
public string q;
public string source;
public string target;
}
[System.Serializable]
private class ResultJson
{
public string translatedText;
public DetectedLanguage detectedLanguage;
}
[System.Serializable]
private class DetectedLanguage
{
public int confidence;
public string language;
}
public void Test()
{
Debug.Log("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
}
public void TransLanguage(string q, Action<string> func)
{
StartCoroutine(UploadPost(q, func));
}
private IEnumerator UploadPost(string q, Action<string> func)
{
UnityWebRequest uwr = new UnityWebRequest(url, "POST");
SendJson jsonData = new SendJson()
{
q = q,
source = "auto",
target = "en"
};
string json = JsonUtility.ToJson(jsonData);
Debug.Log(json);
uwr.uploadHandler = new UploadHandlerRaw(System.Text.Encoding.UTF8.GetBytes(json));
uwr.downloadHandler = new DownloadHandlerBuffer();
//如果有请求头,根据具体字段要求设置
uwr.SetRequestHeader("Content-Type", "application/json");
yield return uwr.SendWebRequest();
if (uwr.isHttpError || uwr.isNetworkError)
{
Debug.LogError("Login Error: " + uwr.error);
func.Invoke("");
}
else
{
Debug.Log(uwr.downloadHandler.text);
var result = JsonUtility.FromJson<ResultJson>(uwr.downloadHandler.text);
Debug.Log(result.translatedText);
func.Invoke(result.translatedText);
}
}
}