private static LocalizedText.TextTable InternalLoadTable(string language, string tableID, LocalizedText.TextTable overwriteTable = null) { LocalizedText.TextTable textTable; if (overwriteTable == null) { textTable = new LocalizedText.TextTable(tableID); LocalizedText.mTables.Add(textTable); } else { textTable = overwriteTable; textTable.Items.Clear(); } string path = LocalizedText.ComposeTablePath(language, tableID); string s; if (LocalizedText.UseAssetManager) { s = AssetManager.LoadTextData(path); } else { TextAsset textAsset = (TextAsset)Resources.Load <TextAsset>(path); s = !Object.op_Inequality((Object)textAsset, (Object)null) ? (string)null : textAsset.get_text(); } if (s != null) { Debug.LogWarning((object)("SG: Loading text table '" + tableID + "'")); char[] separator = new char[1] { '\t' }; using (StringReader stringReader = new StringReader(s)) { string end = stringReader.ReadToEnd(); char[] chArray = new char[1] { '\n' }; foreach (string str in end.Split(chArray)) { if (!string.IsNullOrEmpty(str) && !str.StartsWith(";")) { string[] strArray = str.Split(separator, 2); if (strArray.Length >= 2 && !string.IsNullOrEmpty(strArray[0]) && !string.IsNullOrEmpty(strArray[1])) { textTable.Items[strArray[0]] = strArray[1].Replace("<br>", "\n"); } } } } } else { Debug.LogError((object)("Failed to load text '" + path + "'")); LocalizedText.mTables.Remove(textTable); } return(textTable); }
public static string GetResourcePath(string key) { int length = key.IndexOf("."); if (length < 0) { return((string)null); } return(LocalizedText.ComposeTablePath(key.Substring(0, length))); }