summaryrefslogtreecommitdiff
path: root/Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-19 17:03:57 +0800
committerchai <215380520@qq.com>2024-05-19 17:03:57 +0800
commitcf58771365b5953c6eac548b172aae880d1f0acd (patch)
treea49757a4b5c447cbf877584d482367a6bfe33b10 /Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs
parenteed315deae356ddfb17f28305e7cde6cdfc43313 (diff)
* rename
Diffstat (limited to 'Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs')
-rw-r--r--Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs154
1 files changed, 0 insertions, 154 deletions
diff --git a/Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs b/Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs
deleted file mode 100644
index 4136e38..0000000
--- a/Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs
+++ /dev/null
@@ -1,154 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Text;
-using System.Text.RegularExpressions;
-using UnityEngine;
-using UnityEngine.Networking;
-
-namespace I2.Loc;
-
-public class TranslationJob_WEB : TranslationJob_WWW
-{
- private Dictionary<string, TranslationQuery> _requests;
-
- private GoogleTranslation.fnOnTranslationReady _OnTranslationReady;
-
- public string mErrorMessage;
-
- private string mCurrentBatch_ToLanguageCode;
-
- private string mCurrentBatch_FromLanguageCode;
-
- private List<string> mCurrentBatch_Text;
-
- private List<KeyValuePair<string, string>> mQueries;
-
- public TranslationJob_WEB(Dictionary<string, TranslationQuery> requests, GoogleTranslation.fnOnTranslationReady OnTranslationReady)
- {
- _requests = requests;
- _OnTranslationReady = OnTranslationReady;
- FindAllQueries();
- ExecuteNextBatch();
- }
-
- private void FindAllQueries()
- {
- mQueries = new List<KeyValuePair<string, string>>();
- foreach (KeyValuePair<string, TranslationQuery> request in _requests)
- {
- string[] targetLanguagesCode = request.Value.TargetLanguagesCode;
- foreach (string text in targetLanguagesCode)
- {
- mQueries.Add(new KeyValuePair<string, string>(request.Value.OrigText, request.Value.LanguageCode + ":" + text));
- }
- }
- mQueries.Sort((KeyValuePair<string, string> a, KeyValuePair<string, string> b) => a.Value.CompareTo(b.Value));
- }
-
- private void ExecuteNextBatch()
- {
- if (mQueries.Count == 0)
- {
- mJobState = eJobState.Succeeded;
- return;
- }
- mCurrentBatch_Text = new List<string>();
- string text = null;
- int num = 200;
- StringBuilder stringBuilder = new StringBuilder();
- int i;
- for (i = 0; i < mQueries.Count; i++)
- {
- string key = mQueries[i].Key;
- string value = mQueries[i].Value;
- if (text == null || value == text)
- {
- if (i != 0)
- {
- stringBuilder.Append("|||");
- }
- stringBuilder.Append(key);
- mCurrentBatch_Text.Add(key);
- text = value;
- }
- if (stringBuilder.Length > num)
- {
- break;
- }
- }
- mQueries.RemoveRange(0, i);
- string[] array = text.Split(':');
- mCurrentBatch_FromLanguageCode = array[0];
- mCurrentBatch_ToLanguageCode = array[1];
- string text2 = $"http://www.google.com/translate_t?hl=en&vi=c&ie=UTF8&oe=UTF8&submit=Translate&langpair={mCurrentBatch_FromLanguageCode}|{mCurrentBatch_ToLanguageCode}&text={Uri.EscapeUriString(stringBuilder.ToString())}";
- Debug.Log(text2);
- www = UnityWebRequest.Get(text2);
- I2Utils.SendWebRequest(www);
- }
-
- public override eJobState GetState()
- {
- if (www != null && www.isDone)
- {
- ProcessResult(www.downloadHandler.data, www.error);
- www.Dispose();
- www = null;
- }
- if (www == null)
- {
- ExecuteNextBatch();
- }
- return mJobState;
- }
-
- public void ProcessResult(byte[] bytes, string errorMsg)
- {
- if (string.IsNullOrEmpty(errorMsg))
- {
- string @string = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
- Debug.Log(ParseTranslationResult(@string, "aab"));
- if (string.IsNullOrEmpty(errorMsg))
- {
- if (_OnTranslationReady != null)
- {
- _OnTranslationReady(_requests, null);
- }
- return;
- }
- }
- mJobState = eJobState.Failed;
- mErrorMessage = errorMsg;
- }
-
- private string ParseTranslationResult(string html, string OriginalText)
- {
- try
- {
- int num = html.IndexOf("TRANSLATED_TEXT='", StringComparison.Ordinal) + "TRANSLATED_TEXT='".Length;
- int num2 = html.IndexOf("';var", num, StringComparison.Ordinal);
- string input = html.Substring(num, num2 - num);
- input = Regex.Replace(input, "\\\\x([a-fA-F0-9]{2})", (Match match) => char.ConvertFromUtf32(int.Parse(match.Groups[1].Value, NumberStyles.HexNumber)));
- input = Regex.Replace(input, "&#(\\d+);", (Match match) => char.ConvertFromUtf32(int.Parse(match.Groups[1].Value)));
- input = input.Replace("<br>", "\n");
- if (OriginalText.ToUpper() == OriginalText)
- {
- input = input.ToUpper();
- }
- else if (GoogleTranslation.UppercaseFirst(OriginalText) == OriginalText)
- {
- input = GoogleTranslation.UppercaseFirst(input);
- }
- else if (GoogleTranslation.TitleCase(OriginalText) == OriginalText)
- {
- input = GoogleTranslation.TitleCase(input);
- }
- return input;
- }
- catch (Exception ex)
- {
- Debug.LogError(ex.Message);
- return string.Empty;
- }
- }
-}