public static void LoadDataBase(string lang, LanguageDataBase dataBaseVal) { _loaded = false; LanguageDataBase database = null; // LanguageContainer lc = (LanguageContainer)GameObject.FindObjectOfType(typeof(LanguageContainer)); // if(lc != null) // { // database = lc.GetLanguageDataBase(lang.ToUpper()); database = dataBaseVal; // } //#if UNITY_EDITOR // else // { // database = ( LanguageDataBase )UnityEditor.AssetDatabase.LoadAssetAtPath("Asset/Data/TextData/LanguageDataBase" + lang.ToUpper() + ".asset", // typeof(LanguageDataBase)); // } // //#endif if (database != null) { _currentLang = lang; LoadDataBase(database); } else { TraceUtil.Log(SystemModel.Common, TraceLevel.Error, "multilanguage error: can not find the database!!!!!"); } }
public void InitMap(string[] rows) { dict.Clear(); for (int i = 1; i < rows.Length; i++) { LanguageDataBase dataBase = new LanguageDataBase(); dataBase.InitWithStr(rows[i]); dict.Add(dataBase.id, dataBase); } }
private static void LoadDataBase(LanguageDataBase database) { if (_textTable == null) { _textTable = new Dictionary <string, string>(); } foreach (LanguageTextEntry entry in database.stringTable) { _textTable[entry.key] = entry.text; } _loaded = true; }
private static void CreateLanguageDataBase(string lang, List <LanguageTextEntry> list) { string className = typeof(LanguageDataBase).Name; string path = System.IO.Path.Combine(EW_ASSETS_MULTILANGUAGE_FOLDER, className + lang + ".asset"); if (File.Exists(path)) { LanguageDataBase database = (LanguageDataBase)AssetDatabase.LoadAssetAtPath(path, typeof(LanguageDataBase)); if (null == database) { return; } database.stringTable = new LanguageTextEntry[list.Count]; for (int i = 0; i < list.Count; i++) { database.stringTable[i] = new LanguageTextEntry(); database.stringTable[i].key = list[i].key; database.stringTable[i].text = list[i].text; } EditorUtility.SetDirty(database); } else { LanguageDataBase database = ScriptableObject.CreateInstance <LanguageDataBase>(); database.stringTable = new LanguageTextEntry[list.Count]; for (int i = 0; i < list.Count; i++) { database.stringTable[i] = new LanguageTextEntry(); database.stringTable[i].key = list[i].key; database.stringTable[i].text = list[i].text; } AssetDatabase.CreateAsset(database, path); } }