diff options
Diffstat (limited to 'Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs')
| -rw-r--r-- | Thronefall_1_57/Decompile/I2.Loc/TranslationJob_WEB.cs | 154 |
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; - } - } -} |
