public static LocaleData LoadTable(string table) { StringBuilder s = new StringBuilder(); s.Append(defaultResourcePath); s.Append('/'); s.Append(currentLocale.ToString()); s.Append('/'); s.Append(table); LocaleData data = Resources.Load <LocaleData>(s.ToString()); if (data != null) { return(data); } else { throw new MissingLocaleDataException("Cannot find a table \'" + table + "\' from path: " + s.ToString()); } }
public static void LoadLocale(LocaleCode code) { if (currentLocale == code) { return; } if (settings.HasLocale(code)) { currentLocale = code; PlayerPrefs.SetString(prefsLocaleLanguage, currentLocale.ToString()); StringBuilder s = new StringBuilder(); s.Append(defaultResourcePath); s.Append('/'); s.Append(currentLocale.ToString()); LocaleData[] _list = Resources.LoadAll <LocaleData>(s.ToString()); foreach (KeyValuePair <string, LocaleData> r in preloadLocaleData) { Resources.UnloadAsset(r.Value); } preloadLocaleData.Clear(); foreach (LocaleData data in _list) { if (preloadLocaleData.ContainsKey(data.name)) { preloadLocaleData[data.name] = data; Debug.LogWarning("Found a duplicate locale data \'" + data.name + "\'. Please check from project resources folder and delete an duplicated locale data."); } else { preloadLocaleData.Add(data.name, data); } } UpdateLocaleComponent(); } else { Debug.LogWarning("Locale settings doesn't support for locale \'" + code.ToString() + "\'. Nothing changed."); } }