71 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|