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); }
protected Dictionary <string, LocalizeData> GenerateEntries(string json) { var entryList = JSONList <Entry> .FromJSON(json); var entries = new Dictionary <string, LocalizeData>(entryList.Count); for (int i = 0; i < entryList.Count; i++) { var entry = entryList[i]; entries.Add(entry.key, new LocalizeData() { text = entry.text, param = entry.param }); } return(entries); }