public TableDataPlatform[] platforms; //these overwrite certain keys in the string table public Dictionary <string, LocalizeData> Generate() { if (!file) { return(new Dictionary <string, LocalizeData>()); } List <LocalizeJSON.Entry> tableEntries = JSONList <LocalizeJSON.Entry> .FromJSON(file.text); var entries = new Dictionary <string, LocalizeData>(tableEntries.Count); foreach (var entry in tableEntries) { entries.Add(entry.key, new LocalizeData(entry.text, entry.param)); } //append platform specific entries if (platforms != null) { TableDataPlatform platform = null; foreach (TableDataPlatform platformDat in platforms) { if (platformDat.platform == Application.platform) { platform = platformDat; break; } } //override entries based on platform if (platform != null && platform.file) { var platformEntries = JSONList <LocalizeJSON.Entry> .FromJSON(platform.file.text); foreach (var platformEntry in platformEntries) { LocalizeData dat; if (entries.TryGetValue(platformEntry.key, out dat)) { dat.text = platformEntry.text; if (platformEntry.param != null && platformEntry.param.Length > 0) { dat.param = platformEntry.param; } entries[platformEntry.key] = dat; } else { entries.Add(platformEntry.key, new LocalizeData(platformEntry.text, platformEntry.param)); } } } } return(entries); }
void LoadCurrentPlatform(TableDataPlatform[] platforms, Dictionary <string, Data> table) { if (platforms == null) { return; } //append platform specific entries TableDataPlatform platform = null; foreach (TableDataPlatform platformDat in platforms) { if (platformDat.platform == Application.platform) { platform = platformDat; break; } } //override entries based on platform if (platform != null) { List <Entry> platformEntries = fastJSON.JSON.ToObject <List <Entry> >(platform.file.text); foreach (Entry platformEntry in platformEntries) { Data dat; if (table.TryGetValue(platformEntry.key, out dat)) { dat.text = platformEntry.text; if (platformEntry.param != null) { dat.param = platformEntry.param; } table[platformEntry.key] = dat; } else { table.Add(platformEntry.key, new Data(platformEntry.text, platformEntry.param)); } } } }
public void Generate(string json, Dictionary <string, Data> baseTable) { if (mEntries != null) { return; } List <Entry> tableEntries = EntryList.FromJSON(json); mEntries = new Dictionary <string, Data>(tableEntries.Count); foreach (Entry entry in tableEntries) { string[] parms = null; //if no params, grab from base if (entry.param == null && baseTable != null) { Data dat; if (baseTable.TryGetValue(entry.key, out dat)) { parms = dat.param; } } else { parms = entry.param; } mEntries.Add(entry.key, new Data(entry.text, parms)); } //append platform specific entries if (platforms != null) { TableDataPlatform platform = null; foreach (TableDataPlatform platformDat in platforms) { if (platformDat.platform == Application.platform) { platform = platformDat; break; } } //override entries based on platform if (platform != null) { List <Entry> platformEntries = EntryList.FromJSON(platform.file.text); foreach (Entry platformEntry in platformEntries) { Data dat; if (mEntries.TryGetValue(platformEntry.key, out dat)) { dat.text = platformEntry.text; if (platformEntry.param != null) { dat.param = platformEntry.param; } mEntries[platformEntry.key] = dat; } else { mEntries.Add(platformEntry.key, new Data(platformEntry.text, platformEntry.param)); } } } } }