diff options
| author | chai <215380520@qq.com> | 2024-05-19 17:03:57 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 17:03:57 +0800 |
| commit | cf58771365b5953c6eac548b172aae880d1f0acd (patch) | |
| tree | a49757a4b5c447cbf877584d482367a6bfe33b10 /Thronefall_1_57/Decompile/I2.Loc/LocalizationReader.cs | |
| parent | eed315deae356ddfb17f28305e7cde6cdfc43313 (diff) | |
* rename
Diffstat (limited to 'Thronefall_1_57/Decompile/I2.Loc/LocalizationReader.cs')
| -rw-r--r-- | Thronefall_1_57/Decompile/I2.Loc/LocalizationReader.cs | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/Thronefall_1_57/Decompile/I2.Loc/LocalizationReader.cs b/Thronefall_1_57/Decompile/I2.Loc/LocalizationReader.cs deleted file mode 100644 index a940e76..0000000 --- a/Thronefall_1_57/Decompile/I2.Loc/LocalizationReader.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using UnityEngine; - -namespace I2.Loc; - -public class LocalizationReader -{ - public static Dictionary<string, string> ReadTextAsset(TextAsset asset) - { - StringReader stringReader = new StringReader(Encoding.UTF8.GetString(asset.bytes, 0, asset.bytes.Length).Replace("\r\n", "\n").Replace("\r", "\n")); - Dictionary<string, string> dictionary = new Dictionary<string, string>(StringComparer.Ordinal); - string line; - while ((line = stringReader.ReadLine()) != null) - { - if (TextAsset_ReadLine(line, out var key, out var value, out var _, out var _, out var _) && !string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value)) - { - dictionary[key] = value; - } - } - return dictionary; - } - - public static bool TextAsset_ReadLine(string line, out string key, out string value, out string category, out string comment, out string termType) - { - key = string.Empty; - category = string.Empty; - comment = string.Empty; - termType = string.Empty; - value = string.Empty; - int num = line.LastIndexOf("//", StringComparison.Ordinal); - if (num >= 0) - { - comment = line.Substring(num + 2).Trim(); - comment = DecodeString(comment); - line = line.Substring(0, num); - } - int num2 = line.IndexOf("=", StringComparison.Ordinal); - if (num2 < 0) - { - return false; - } - key = line.Substring(0, num2).Trim(); - value = line.Substring(num2 + 1).Trim(); - value = value.Replace("\r\n", "\n").Replace("\n", "\\n"); - value = DecodeString(value); - if (key.Length > 2 && key[0] == '[') - { - int num3 = key.IndexOf(']'); - if (num3 >= 0) - { - termType = key.Substring(1, num3 - 1); - key = key.Substring(num3 + 1); - } - } - ValidateFullTerm(ref key); - return true; - } - - public static string ReadCSVfile(string Path, Encoding encoding) - { - string text = string.Empty; - using (StreamReader streamReader = new StreamReader(Path, encoding)) - { - text = streamReader.ReadToEnd(); - } - text = text.Replace("\r\n", "\n"); - return text.Replace("\r", "\n"); - } - - public static List<string[]> ReadCSV(string Text, char Separator = ',') - { - int iStart = 0; - List<string[]> list = new List<string[]>(); - while (iStart < Text.Length) - { - string[] array = ParseCSVline(Text, ref iStart, Separator); - if (array == null) - { - break; - } - list.Add(array); - } - return list; - } - - private static string[] ParseCSVline(string Line, ref int iStart, char Separator) - { - List<string> list = new List<string>(); - int length = Line.Length; - int iWordStart = iStart; - bool flag = false; - while (iStart < length) - { - char c = Line[iStart]; - if (flag) - { - if (c == '"') - { - if (iStart + 1 >= length || Line[iStart + 1] != '"') - { - flag = false; - } - else if (iStart + 2 < length && Line[iStart + 2] == '"') - { - flag = false; - iStart += 2; - } - else - { - iStart++; - } - } - } - else if (c == '\n' || c == Separator) - { - AddCSVtoken(ref list, ref Line, iStart, ref iWordStart); - if (c == '\n') - { - iStart++; - break; - } - } - else if (c == '"') - { - flag = true; - } - iStart++; - } - if (iStart > iWordStart) - { - AddCSVtoken(ref list, ref Line, iStart, ref iWordStart); - } - return list.ToArray(); - } - - private static void AddCSVtoken(ref List<string> list, ref string Line, int iEnd, ref int iWordStart) - { - string text = Line.Substring(iWordStart, iEnd - iWordStart); - iWordStart = iEnd + 1; - text = text.Replace("\"\"", "\""); - if (text.Length > 1 && text[0] == '"' && text[text.Length - 1] == '"') - { - text = text.Substring(1, text.Length - 2); - } - list.Add(text); - } - - public static List<string[]> ReadI2CSV(string Text) - { - string[] separator = new string[1] { "[*]" }; - string[] separator2 = new string[1] { "[ln]" }; - List<string[]> list = new List<string[]>(); - string[] array = Text.Split(separator2, StringSplitOptions.None); - foreach (string text in array) - { - list.Add(text.Split(separator, StringSplitOptions.None)); - } - return list; - } - - public static void ValidateFullTerm(ref string Term) - { - Term = Term.Replace('\\', '/'); - int num = Term.IndexOf('/'); - if (num >= 0) - { - int startIndex; - while ((startIndex = Term.LastIndexOf('/')) != num) - { - Term = Term.Remove(startIndex, 1); - } - } - } - - public static string EncodeString(string str) - { - if (string.IsNullOrEmpty(str)) - { - return string.Empty; - } - return str.Replace("\r\n", "<\\n>").Replace("\r", "<\\n>").Replace("\n", "<\\n>"); - } - - public static string DecodeString(string str) - { - if (string.IsNullOrEmpty(str)) - { - return string.Empty; - } - return str.Replace("<\\n>", "\r\n"); - } -} |
